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