CPU調度演算法 讀作業系統概念第六版

來源:互聯網
上載者:User

 先到先服務調度,FCFS調度演算法(非搶佔式)

當一個進程進入到就緒隊列,其PCB被連結到隊列的尾部。當CPU空閑時,CPU被分配給位於隊列頭的進程。接著,該運行進程從隊列中被刪除。FCFS調度的代碼編寫簡單且容易理解。

 

最短作業優先調度演算法,SJF調度演算法(搶佔式或非搶佔式)

當CPU為可用時,它會賦給具有最短後續CPU區間的進程。如果兩個進程具有同樣長度的CPU區間,那麼可以使用FCFS調度來處理。

SJF演算法可能是搶佔的或非搶佔的。當一個新進程到達就緒隊列而以前進程正在執行時,就需要選擇。新進程,與當前運行進程所產生的CPU區間相比,可能有一個更短的下一個CPU區間。可搶佔SJF演算法可能會搶佔當前運行進程,而非搶佔SJF演算法會允許當前運行進程完成其CPU區間。可搶佔SJF調度有時稱為最短剩餘時間優先調度

 

優先權調度演算法

每個進程都由一個優先權與其關聯,具有最高優先權的進程會被分配到CPU。具有相同優先權的進程按FCFS順序調度。

 

輪轉法(round-robin,RR)調度演算法

 輪轉法調度演算法是專門為分時系統而設計的。它類似於FCFS調度,但是增加了搶佔以在進程間切換。定義一個較小時間單元,稱為時間量或時間片。時間片通常為10ms到100ms。就緒隊列作為迴圈隊列處理。CPU發送器迴圈就緒隊列,為每個進程分配不超過一個時間片間隔的CPU。

為了實現RR調度,將就緒隊列實現為進程的FIFO隊列。新進程增加到就緒隊列的尾部。CPU發送器從就緒隊列中選擇第一個進程,設定定時器在一個時間片之後中斷,最後指派該進程。接著,有兩種情況可能發生。進程可能只需要小於一個時間片的CPU區間。對於這種情況,進程本身會自動釋放CPU。發送器接著會處理就緒隊列的下一個進程。另一種情況是,當前運行進程的CPU區間比一個時間片要長,定時器會中斷併產生作業系統中斷。進行環境切換,該進程會被加入到就緒隊列的尾部。接著,CPU發送器會選擇就緒隊列中的下一個進程。

多級隊列調度

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.