Giải thuật điều phối Round Robin (RR)
Hôm nay ra tiếp tục với một thuật giải định thời CPU khác, đó là Round Robin (RR).
Đối với thuật giải RR, mỗi tiến trình trước khi bắt đầu được đưa vào CPU xử lý, sẽ được cấp phát cho một đơn vị thời gian chiếm dụng CPU nhất định.
Ta gọi chung giá trị hằng số này với cái tên là quantum. Điểm khác biệt của RR với FCFS đó là RR tuân thủ theo cơ chế không độc quyền (preemtive).
Nếu gọi n là số tiến trình có trong Ready list, thời gian quantum là q, như vậy mỗi tiến trình sẽ có một khoảng thời gian là để sử dụng CPU.
Về mặt thời gian thì với RR, thời gian hoàn tất trung bình sẽ cao hơn SJF, bù lại, tính đáp ứng sẽ tốt hơn.
Để hình dung rõ ràng, ta sẽ xét 2 ví dụ sau đây.
Process | Arrival Time | Burst Time |
P1 | 0 | 24 |
P2 | 1 | 3 |
P3 | 2 | 3 |
Với bảng dữ liệu trên, ta biết thêm được quantum time=4. Như vậy, để tính toán thuận tiện, ta cũng tiếp tục sử dụng giản đồ Gantt:
Với giản đồ Gantt này, ta có thể tính được:
– Thời gian xử lý: P1=24, P2=3 và P3= 3.
– Thời gian đợi lần lượt:
+ P1 đợi 0 + (10-4) (ms).
+ P2 đợi 4-1=3 (ms).
+ P3 đợi 7-2=5 (ms).
– Thời gian hoàn tất tiến trình:
+ P1: 30 (ms).
+ P2: 6 (ms).
+ P3: 8 (ms).
– Thời gian trung bình: AvgWT = (6+3+5)/3 = 4.66
Các bạn có thể xem chi tiết ở đây
Nhận xét RR
– Phù hợp với hệ thống tương tác người dùng
– Hiệu quả ? Phụ thuộc vào việc lựa chọn quantum q
+ q quá nhỏ => chủ yếu thực hiện chuyển đổi ngữ cảnh (context switching)
+ Thường q = 10-100 milliseconds
Điều phối với độ ưu tiên
– Phân biệt tiến trình quan trọng với tiến trình bình thường
– Tiêu chí lựa chọn tiến trình
+ Không độc quyền (có độ ưu tiên)
Minh họa điều phối với độ ưu tiên (không độc quyền)
Nhận xét điều phối với độ ưu tiên
– Người dùng gán
– Tĩnh
+ Giải pháp Aging – tăng độ ưu tiên cho tiến trình chờ lâu trong hệ thống (sống lâu lên lão làng…)