Lập lịch xoay vòng (Round Robi n RR)

Một phần của tài liệu giáo trình nguyên lý hệ điều hành Chương 2: QUẢN LÝ TIẾN TRÌNH; CHƯƠNG 3. LẬP LỊCH CPU; CHƯƠNG 4. ĐỒNG BỘ HOÁ TIẾN TRÌNH; CHƯƠNG 5. BẾ TẮC (Trang 25 - 26)

Trong thuật toán này, hệ thống quy định một lượng tử thời gian (time quantum) khoảng từ 10 - 100 mili giây.

Mỗi tiến trình trong hàng đợi lần lượt được phân phối một lượng tử thời gian để thực hiện. Sau khoảng thời gian đó, nếu tiến trình chưa kết thúc hoặc không rơi vào trạng thái đợi thì nó được chuyển về cuối hàng đợi.

Hàng đợi các tiến trình được tổ chức theo kiểu vòng tròn và các tiến trình luôn luôn đảm bảo được phục vụ. Khi có tiến trình mới phát sinh, nó sẽ được đưa vào hàng đợi vòng tròn. Các tiến trình dù ngắn hay dài đều có độ ưu tiên phục vụ như nhau.

Nhược điềm là do phải thường xuyên phân phối lại CPU nên thời gian chờ đợi trung bình của RR có thể lớn hơn so với FCFS.

Chú ý: Trong thuật toán, cần chọn giá trị lượng tử thời gian thích hợp. Nếu chọn giá trị lượng tử thời gian lớn thì việc bố sung tiến trình mới hoặc kích hoạt tiến trình bị ngắt sẽ làm tăng thời gian chờ đợi trung bình, nhưng ngược lại nếu chọn giá trị lượng tử thời gian nhỏ thì nó sẽ làm cho các tiến trình phải liên tục chuyển trạng thái đầu đến giảm hệ số hữu ích của CPU.

Thông thường giá trị lượng tử thời gian được chọn theo công thức q = t/n hoặc q = t/n - s. Trong đó t là thời gian khống chế trước; n là số tiến trình; s là thời gian chuyển từ tiến trình này sang tiến trình khác (chuyển ngữ cảnh).

Ví dụ: cho dãy tiến trình có thời điểm đến và thời gian xử lý như sau:

Tiến trình Thời gian xử lý(ms)

P1 53

P2 17

P3 68

P4 24

Với lượng tử thời gian q = 20 ms Giản đồ Gantt theo thuật toán RR là:

46

thời gian đáp ứng tốt hơn.

Một phần của tài liệu giáo trình nguyên lý hệ điều hành Chương 2: QUẢN LÝ TIẾN TRÌNH; CHƯƠNG 3. LẬP LỊCH CPU; CHƯƠNG 4. ĐỒNG BỘ HOÁ TIẾN TRÌNH; CHƯƠNG 5. BẾ TẮC (Trang 25 - 26)