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…)
thuongvt@hotmail.com
Bài biết rất hay và dễ hiểu, cảm ơn người đã đăng bài!
l
???
cho em hỏi là khi đề yêu cầu vẽ giảng đồ grantt mà có áp dụng độ ưu tiên không độc quyền thì mình sẽ giải quyết nó ra sao ạ, em xin cảm ơn add!
nếu 2 process vào hàng đợi cùng 1 lúc trong chiến lược điều phối Round Robin thì tiêu chí gì để quyết định process nào đc chọn trc
nếu 1 process trong chiến lược điều phối Round Robin vừa chạy xong 1 chu kỳ tại thời điểm x và tại thời điểm x này xuất hiện 1 process mới vào hàng đợi, vậy process nào sẽ đứng trước process nào
1. “nếu 2 process vào hàng đợi cùng 1 lúc trong chiến lược điều phối Round Robin thì tiêu chí gì để quyết định process nào đc chọn trc” –> HDH sẽ dùng chiến lược SJF (công việc ngắn nhất), tiến trình thời gian use CPU ngắn hơn sẽ được ưu tiên chạy trước.
2. “nếu 1 process trong chiến lược điều phối Round Robin vừa chạy xong 1 chu kỳ tại thời điểm x và tại thời điểm x này xuất hiện 1 process mới vào hàng đợi, vậy process nào sẽ đứng trước process nào” –> tiến trình cũ được ưu tiên trước, mới xếp hàng sau
giải thuật RR có quantum=2, tại thời điểm x chỉ còn P3 với thời gian xử lý còn lại = 4. Vậy P3
chạy đến thời điểm x+2 thì quay về hàng đợi rồi chạy tiếp có phải không ạ, nếu phải thì trong biểu đồ gantt P3 chạy từ x đến x+4 hay phải chia thành 2 đoạn x->x+2 và x+2->x+4 ạ