Giải thuật điều phối Round Robin (RR)

0
2032

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).

image001
Như vậy, khi một tiến trình sử dụng hết thời gian quantum mà nó được cấp phát, thì dù vẫn còn phải xử lý tiếp, phần dư của nó cũng sẽ được chuyển về phía sau trong danh sách hàng đợi. Sau đó, căn cứ vào danh sách Ready list đã nạp trước đó, CPU sẽ lấy tiếp tiến trình kế cận để đưa vào xử lý, với mức quantum là như nhau cho tất cả các tiến trình.

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à image002 để 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:

image005

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

image006

Nhận xét RR

– Loại bỏ hiện tượng độc chiếm CPU
– 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á lớn => FCFS (giảm tính tương tác)
+ 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

– Một độ ưu tiên (integer) được gán vào mỗi tiến trình
– 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
Tiến trình có độ ưu tiên cao nhất
– Thời điểm lựa chọn tiến trình
+ Độc quyền
+ 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)

image007

Nhận xét điều phối với độ ưu tiên

Cách tính độ ưu tiên ?
– Hệ thống gán
– Người dùng gán
Tính chất độ ưu tiên
– Tĩnh
+ Vấn đề Starvation: các tiến trình độ ưu tiên thấp có thể không bao giờ thực thi được
+ 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…)
– Động
Võ T. Thương
thuongvt@hotmail.com

Bài tập có hướng dẫn về chiến lược điều phối Round Robin (Xem tiếp trang sau)

LEAVE A REPLY