Scheduling Criteria
這裡介紹我們用來評估一個 CPU scheduling algorithm 好不好的標準,他們彼此間會互相衝突,所以設計 scheduler 時需要做一定的 tradeoff
1. CPU Utilization
指「CPU 有多少時間在做有用的事」。理想上希望接近 100%,但實際上因為 dispatch latency、I/O wait 等因素不可能達到。這個指標關注的是整個系統層面,不是單一 process
2. Throughput
在單位時間內「完成幾個 process」,也就是單位時間內 terminate 的 process 數量。這個指標也是系統層面,關心的是整體產出量
3. Turnaround Time
從一個 process 被提交到完全結束的總時間,包含 ready queue 等待時間,I/O wait 時間以及實際執行時間
4. Waiting Time
Process 在 ready queue 等 CPU 的累積時間
5. Response Time
從用戶送出 request 到第一個產生回應的時間
例如:我在 terminal 下一個指令在 0.1 秒後第一個輸出出現到整個指令跑完要 10 秒,那麼
- Response time = 0.1 sec
- Turnaround time = 10 sec
Right Scheduling Algorithm for Each Mode
Batch Mode
- Maximize CPU utilization
- Maximize throughput
- Minimize turnaround time
Interactive Mode (Online Mode)
- Minimize waiting time
- Minimize response time
Real-Time Mode
- Non of the above