Mô phỏng lập lịch theo độ ưu tiên, không ngắt (Priority non-preemptive) và tính thời gian chờ trung bình.
Mỗi tiến trình có thêm số priority. Quy ước: số priority nhỏ hơn = độ ưu tiên cao hơn. Khi CPU rảnh, trong các tiến trình đã đến và chưa chạy, chọn tiến trình có priority cao nhất (số nhỏ nhất). Tie-break: priority bằng → arrival nhỏ → ID nhỏ. Tiến trình chạy đến hết.
Thuật toán từng bước:
time = 0, mọi tiến trình chưa xong.arrival ≤ time, chưa xong; nếu rỗng nhảy time tới arrival sớm nhất.(priority, arrival, ID). Cộng time - arrival vào tổng chờ, time += burst, đánh dấu xong.n.Ví dụ: (arrival,burst,priority) = (0,4,2),(0,3,1),(0,1,3). Thứ tự chạy theo priority: P1(0..3), P0(3..7), P2(7..8). Chờ = 3,0,7 → TB = 3.33.
Dòng đầu n. n dòng arrival burst priority. ID từ 0.
1 ≤ n ≤ 1000; 0 ≤ arrival ≤ 10000; 1 ≤ burst ≤ 10000; 1 ≤ priority ≤ 100.
Thời gian chờ trung bình, làm tròn 2 chữ số ({:.2f}).
Ví dụ:
Đầu vào:
3
0 4 2
0 3 1
0 1 3
Đầu ra:
3.33
Giải thích:
Đang tải editor...