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 秒,那麼

  1. Response time = 0.1 sec
  2. 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