Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Hệ điều hành Unix] Phân bổ CPU theo cây cgroup 2 tầng

    Cây cgroup phân tầng

    Trên hệ thống dùng cgroup phân tầng, CPU được chia theo từng tầng. Tầng trên cùng chia 100% CPU giữa các user theo cpu.shares của họ. Phần CPU mỗi user nhận lại được chia tiếp cho các tiến trình con của user đó theo share của chúng:

    cpu_user = 100 * share_user / (tổng share user)
    cpu_proc = cpu_user * share_proc / (tổng share proc trong user)
    

    In user/tiến_trình kèm %CPU (2 chữ số), giữ thứ tự nhập.

    Ví dụ

    Input:

    2
    alice 1024 1
    p1 100
    bob 1024 1
    p2 100
    

    Output:

    alice/p1 50.00
    bob/p2 50.00
    
    • Định dạng đầu vào:

      Dòng đầu: nu (số user). Với mỗi user: dòng tên_user share_user số_tiến_trình, rồi số_tiến_trình dòng tên_tiến_trình share.

    • Ràng buộc đầu vào:

      1 ≤ nu ≤ 50; mỗi user 1..50 tiến trình; 1 ≤ share ≤ 100000.

    • Định dạng đầu ra:

      Với mỗi tiến trình in user/tiến_trình %CPU (2 chữ số thập phân), theo thứ tự nhập.

    Ví dụ:

    Đầu vào:

    2
    alice 1024 1
    p1 100
    bob 1024 1
    p2 100
    

    Đầu ra:

    alice/p1 50.00
    bob/p2 50.00

    Giải thích:

    Hai user share bằng nhau, mỗi user 50%; mỗi user 1 tiến trình nên tiến trình nhận trọn 50.00%.

    Đang tải editor...