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所有人一輪跑完,退化成 FCFS10.5

q 越大,turnaround 反而越低——因為短 process()可以 在第一輪就直接結束,不需要再回來排隊等。

經驗法則:80% 的 burst 應比 q 短,讓大多數 process 一輪完成。