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] Time slice của CFS theo trọng số

    Lát thời gian (time slice) trong CFS

    CFS không dùng quantum cố định. Trong một sched period (chu kỳ lập lịch, đơn vị ms), mỗi tiến trình được cấp một lát thời gian tỉ lệ với trọng số:

    slice_i = period * weight_i / (tổng weight)
    

    Cho chu kỳ period và danh sách tiến trình (kèm nice), tính time slice của từng tiến trình, làm tròn 2 chữ số thập phân.

    Ví dụ

    Input:

    12
    2
    1 0
    2 0
    

    Output:

    1 6.00
    2 6.00
    

    Chu kỳ 12ms, hai tiến trình cùng weight nên mỗi bên 6ms.

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

      Dòng đầu: period. Dòng thứ hai: n. Mỗi dòng tiếp theo: PID nice.

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

      1 ≤ period ≤ 1000; 1 ≤ n ≤ 100; -20 ≤ nice ≤ 19.

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

      Với mỗi tiến trình in PID slice (2 chữ số thập phân, đơn vị ms).

    Ví dụ:

    Đầu vào:

    12
    2
    1 0
    2 0
    

    Đầu ra:

    1 6.00
    2 6.00

    Giải thích:

    slice = period*w/tổng = 12*1024/2048 = 6.00ms cho mỗi tiến trình.

    Đang tải editor...