Round-Robin (RR) Scheduling
Introduction
每個 process 輪流拿到一小段 CPU 時間,叫做 time quantum(),用完就排到 queue 尾巴等下一輪
Mechanism
Timer 每隔 時間就發出 interrupt,強制把當前 process 踢回 ready queue 尾端,再換下一個來跑。這樣 n 個 process 的情況下,每個 process 最多等 的時間就一定能拿到 CPU,保證沒有人被餓死
Size of
Two Extreme Cases
此時 RR 退化成 FCFS scheduling
因為 context switch 本身也需要時間,因此當 時 CPU 大部分時間都會用在 context switch
所以 一定要遠大於 context switch time
Relation: Turnaround Time &
Introduction
沒有越大越好或是越小越好而是存在一個甜蜜點
Example
四個 process:,arrival time 全為 0。
| q | 執行順序 | 平均 Turnaround |
|---|---|---|
| q=1 | 每人輪流跑 1 單位,切換極頻繁 | 12.25 |
| q=4 | 每人最多跑 4 單位 | 12.5 |
| q=7 | 所有人一輪跑完,退化成 FCFS | 10.5 |
q 越大,turnaround 反而越低——因為短 process()可以 在第一輪就直接結束,不需要再回來排隊等。
經驗法則:80% 的 burst 應比 q 短,讓大多數 process 一輪完成。