Cho N tiến trình, mỗi tiến trình có thời điểm đến (arrival), thời gian sử dụng CPU (burst) và độ ưu tiên (priority — số càng NHỎ thì ưu tiên càng CAO).
Hãy mô phỏng thuật toán Lập lịch theo độ ưu tiên CÓ ƯU TIÊN NGẮT (Preemptive Priority):
Thuật toán từng bước:
Thời gian chờ (waiting) = turnaround − burst, với turnaround = completion − arrival.
In ra thời gian chờ trung bình của tất cả tiến trình (2 chữ số thập phân).
Ví dụ: 3 tiến trình ID 1..3, arrival [0,1,2], burst [4,3,1], priority [3,2,1]. Tiến trình 3 đến lúc t=2 có ưu tiên cao nhất nên ngắt và chạy trước.
Dòng đầu là số nguyên N. N dòng tiếp theo, dòng thứ i gồm 3 số nguyên: arrival, burst, priority của tiến trình ID i (ID đánh số từ 1).
1 ≤ N ≤ 1000; 0 ≤ arrival ≤ 10000; 1 ≤ burst ≤ 1000; 1 ≤ priority ≤ 100.
Một số thực: thời gian chờ trung bình, làm tròn 2 chữ số thập phân.
Ví dụ:
Đầu vào:
3
0 4 3
1 3 2
2 1 1
Đầu ra:
1.67
Giải thích:
Đang tải editor...