CPU Scheduler

Introduction

CPU Scheduler 負責從處於 ready state 中的 process 中選擇一個 process 放到 CPU 上執行

Four Conditions Trigger CPU Scheduler

No Choice

  1. Process 去等 I/O 了(running statewaiting state
  2. Process terminates

→ 這兩種狀況 OS 必須從 ready queue 中找一個新的 process 來跑,沒有「讓原本的 process 繼續跑的選項」

Have Choice

  1. interrupt 發生,原 process 被踢回 ready queue,但它實際上還能繼續跑,OS 可選擇讓它繼續或是踢人
  2. 某個 I/O 完成,那個 process 回到 ready queue,OS 可以選擇搶走現在 running process 的 CPU 給它,或繼續讓現在的跑完

→ 這兩種情況 OS 可以決定要不要做 context switch

注意執行 handler 時原 process 處於 ready state 而非 running state