1. 程式人生 > >操作系統筆記(六)調度

操作系統筆記(六)調度

run 轉移 queue main tex pos 多級 用戶 gpo

  • CPU 調度
  1. 理論基礎:進程執行由CPU execution和I/O wait組成
  2. 本質:從ready queue中選擇可以執行的進程,分配給CPU
  3. 發生調度的狀態轉移:1)preemptive:running to ready, waiting to ready 2)non-preemptive:running to waiting, terminate
  • 調度算法 (指標:average waiting time)
  1. FCFS 按順序處理,先到先得
  2. Shortest job first(non-preemptive) vs shortest remaining time first(preemptive) :搶占式會優先處理新到達的短進程
  3. 優先級調度:優先調用優先級高的進程。問題:饑餓(低優先級得不到cpu)和priority inversion(高優先級依賴於低優先級)
  4. Round Robin調度:輪流處理。問題:時間片過大就等於FCFS; 時間片過小導致context switch的開銷過大。
  5. 多級隊列:foreground進程隊列,background進程隊列。每個隊列的優先級不同。
  6. 多級反饋隊列調度:進程可以在不同隊列間遊走。(時間片用完,優先級自動降低,避免饑餓)
  • 調度policy 和 調度mechanism 分離:支持用戶自定義。

操作系統筆記(六)調度