1. 程式人生 > >處理器調度算法

處理器調度算法

因此 cfs算法 帶來 等待時間 mage bubuko jpg rdquo 程序

1. P117頁,練習15:最高響應比

HRRF最高響應比優先算法

技術分享圖片

2. P119頁,練習22(2):時間片輪轉

進程P1運行完成時,P2和P3到達就緒隊列

進程P2運行完成時,P3,P1,P4依次到達就緒隊列

進程P3運行完成時,P1,P4,P2依次到達就緒隊列

技術分享圖片

技術分享圖片

3. 現設定采用三級反饋隊列調度算法,三個隊列分別為0、1和2,對應時間片為2、4、8。現有四個進程A、B、C、D,到達時刻分別為0、5、7、12,執行時間分別為7、4、13、2。請寫出整個進程調度過程,包括每個時間段,執行的進程,執行後進程狀態,各個隊列內進程的變化。

技術分享圖片

4. 從以下幾個方面比較各個調度算法的優缺點:

1.資源利用率

2.吞吐率

3.周轉率

4.響應時間

5.公平性

6.適用範圍

(1)先來先服務調度算法:先來先服務調度算法是一種非搶占式的算法,先進入就緒隊列的進程,先分配處理機運行。一旦一個進程占有了處理機,它就一直運行下去,直到該進程完成工作或者因為等待某事件發生而不能繼續運行時才釋放處理機。

(2)最短作業優先算法:最短作業優先算法這是對FCFS算法的改進,其目標是減少平均周轉時間。對預計執行時間短的作業(進程)優先分派處理機。通常後來的短作業不搶先正在執行的作業。

(3)最短剩余時間優先算法:這是一個剝奪式調度算法。此算法的資源利用率和吞吐率較高,周轉率較快,響應時間較短,也是一個不是很公平的算法,適用於剩余時間短的進程。優缺點:能夠克服FCFS算法偏愛長作業的缺點,實現起來比較復雜,要時時觀察每個作業的剩余時間,但是此算法的平均等待時間和平均周轉時間都比FCFS和SJF的好。

(4)最高響應比優先算法:最高響應比優先法是對FCFS方式和SJF方式的一種綜合平衡。FCFS方式只考慮每個作業的等待時間而未考慮執行時間的長短,而SJF方式只考慮執行時間而未考慮等待時間的長短。因此,這兩種調度算法在某些極端情況下會帶來某些不便。HRN調度策略同時考慮每個作業的等待時間長短和估計需要的執行時間長短,從中選出響應比最高的作業投入執行。這種算法是介於FCFS和SJF之間的一種折中算法。

(5)優先級調度算法:優先級算法是多級隊列算法的改進,平衡各進程對響應時間的要求。適用於作業調度和進程調度,可分成搶先式和非搶先式。靜態優先級,作業調度中的靜態優先級大多按以下原則確定:由用戶自己根據作業的緊急程度輸入一個適當的優先級。由系統或操作員根據作業類型指定優先級。系統根據作業要求資源情況確定優先級。

(6)輪轉調度算法:輪轉法是讓每個進程在就緒隊列中的等待時間與享受服務的時間成正比例。將系統中所有的就緒進程按照FCFS原則,排成一個隊列。每次調度時將CPU分派給隊首進程,讓其執行一個時間片。時間片的長度從幾個ms到幾百ms。在一個時間片結束時,發生時鐘中斷。調度程序據此暫停當前進程的執行,將其送到就緒隊列的末尾,並通過上下文切換執行當前的隊首進程。

(7)多級反饋隊列調度算法:多級反饋隊列算法是輪轉算法和優先級算法的綜合和發展。設置多個就緒隊列,分別賦予不同的優先級,如逐級降低,隊列1的優先級最高。每個隊列執行時間片的長度也不同,規定優先級越低則時間片越長,如逐級加倍。新進程進入內存後,先投入隊列1的末尾,按FCFS算法調度;若按隊列1一個時間片未能執行完,則降低投入到隊列2的末尾,同樣按FCFS算法調度;如此下去,降低到最後的隊列,則按“時間片輪轉”算法調度直到完成。僅當較高優先級的隊列為空,才調度較低優先級的隊列中的進程執行。

處理器調度算法