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] Chia CPU theo cpu.shares của cgroup

    cgroup cpu.shares

    Trong cgroup (cgroup v1, controller cpu), thuộc tính cpu.shares quyết định tỉ lệ CPU tương đối giữa các nhóm khi CPU bị tranh chấp. Một nhóm có share gấp đôi sẽ nhận gấp đôi CPU. Với hệ thống có ncpu lõi (tổng năng lực = ncpu * 100%):

    cpu_nhóm = ncpu * 100 * share_nhóm / (tổng share)
    

    Cho số lõi và danh sách cgroup, tính %CPU mỗi nhóm nhận được, làm tròn 2 chữ số.

    Ví dụ

    Input:

    1
    2
    A 1024
    B 1024
    

    Output:

    A 50.00
    B 50.00
    
    • Định dạng đầu vào:

      Dòng đầu: ncpu. Dòng thứ hai: n. Mỗi dòng tiếp theo: tên_nhóm share.

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

      1 ≤ ncpu ≤ 64; 1 ≤ n ≤ 100; 1 ≤ share ≤ 100000.

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

      Với mỗi cgroup in tên %CPU (2 chữ số thập phân).

    Ví dụ:

    Đầu vào:

    1
    2
    A 1024
    B 1024
    

    Đầu ra:

    A 50.00
    B 50.00

    Giải thích:

    Hai nhóm share bằng nhau, mỗi nhóm 1*100*1024/2048 = 50.00%.

    Đang tải editor...