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] Mô phỏng CFS k lượt chọn vruntime

    Mô phỏng bộ lập lịch CFS

    Ta mô phỏng CFS qua k lượt. Mọi tiến trình bắt đầu với vruntime = 0. Tại mỗi lượt:

    1. Chọn tiến trình có vruntime nhỏ nhất (hòa → PID nhỏ hơn).
    2. Cho nó chạy tick đơn vị thời gian thực.
    3. Cập nhật vruntime += tick * 1024 / weight (weight tra theo nice).

    In dãy PID được chọn qua k lượt. Tiến trình nice thấp (weight lớn) sẽ xuất hiện thường xuyên hơn.

    Ví dụ

    Input:

    2 4 10
    1 0
    2 0
    

    Output:

    1 2 1 2
    

    Hai tiến trình cùng weight nên luân phiên đều.

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

      Dòng đầu: n k tick. Mỗi dòng tiếp theo: PID nice.

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

      1 ≤ n ≤ 50; 1 ≤ k ≤ 1000; 1 ≤ tick ≤ 100; -20 ≤ nice ≤ 19.

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

      In một dòng gồm k PID theo thứ tự được chọn chạy.

    Ví dụ:

    Đầu vào:

    2 4 10
    1 0
    2 0
    

    Đầu ra:

    1 2 1 2

    Giải thích:

    Cùng weight: lượt 1 chọn PID nhỏ hơn (1), vruntime hai bên tăng đều nên luân phiên 1 2 1 2.

    Đang tải editor...