操作系統之調度算法

1. 比較調度算法的準則

  • CPU 使用率:CPU 處於忙狀態的時間百分比
  • 吞吐量:單位時間內完成的進程數量
  • 週轉時間:進程從初始化到結束(包括等待)的總時間
  • 等待時間:進程在就緒隊列中的總時間
  • 響應時間:從提交請求到產生響應所花費的總時間

2. 調度算法

2.1 先來先服務算法(FCFS)

思路:按照請求的順序進行調度。
優點:簡單。
缺點:平均等待時間波動較大:短進程可能排在長進程後面;I/O 資源和 CPU 資源的利用率較低 。

2.2 短進程優先算法(SPN)

思路:按估計運行時間最短的順序進行調度。
優點:具有最優平均週轉時間。
缺點:可能導致飢餓、需要預知未來。

2.3 最高響應比優先算法

思路:選擇就緒隊列中響應比 R 值最高的進程,R=(w+s)/s,w:等待時間,s:執行時間
優點:關注進程的等待時間,防止無限期推遲。

2.4 最短剩餘時間優先算法(SRT)

思路:按估計剩餘時間最短的順序進行調度。SPN 算法的可搶佔改進。

2.5 時間片輪轉算法

思路:時間片結束時,按 FCFS 算法切換到下一個就緒進程。

時間片太大:等待時間過長,極限情況退化成 FCFS。
時間片太小:反應迅速,但產生大量上下文切換,影響系統吞吐量。

2.6 優先級調度算法

思路:爲每個進程分配一個優先級,按優先級進行調度,爲了防止低優先級的進程永遠等不到調度,可以隨着時間的推移增加等待進程的優先級。

2.7 多級隊列算法

思路:就緒隊列被劃分成多個獨立的子隊列,每個隊列擁有自己的調度策略。隊列間的調度:固定優先級、時間片輪轉。

2.8 多級反饋隊列算法

思路:進程可在不同隊列間移動的多級隊列算法,時間片大小隨優先級級別增加而增加,如進程在當前的時間片內沒有完成,則降到下一個優先級。

2.9 公平共享調度算法

思路:按用戶對進程分組,每個用戶分配一定的 CPU 份額,保證某個進程很多的用戶無法壟斷資源。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章