可剝奪式處理機排程問題例項及程序排程演算法

2021-07-06 11:00:13 字數 2395 閱讀 7394

問題一:

在0時刻,程序a進入系統,按照這個順序,在30時刻,程序b和程序c也抵達;在90時刻,程序d和程序e也抵達。乙個時間片是10個單元。(程序a需要占用cpu 50個單元;程序b需要占用cpu 40個單元;程序c需要占用cpu 30個單元;程序d需要占用cpu 20個單元;程序e需要占用cpu 10個單元;)如果按照短作業優先順序的方法,哪個程序最後結束?

問題一求解:

解析:短作業優先=最短剩餘時間作業優先,即是可剝奪式處理機排程問題,支援搶占。!!!!

看圖一目了然。

如果按短作業優先順序的方法,程序b最後結束。

問題二:

某多道程式設計系統配有一台處理器和兩台外設io1和io2,現有3個優先順序由高到低的作業j1、j2和j3都已裝入了主存,它們使用資源的順序和占用時間分別是:

j1

:io2(30ms),cpu(10ms),io1(30ms),cpu(10ms) j2

:io1(20ms),cpu(20ms),io2(40ms)

j3:cpu(30ms),io1(20ms)

處理器排程採用可搶占的優先順序演算法,忽略其他輔助操作時間,回答下列問題:

(1)分別計算作業j1、j2和j3從開始到完成所用的時間

(2)3個作業全部完成時cpu的利用率

問題二求解:

注意:cpu不可同時使用(單cpu);每個io裝置也不可同時使用,如io1。!!!!

分析:

(1)j1占用io2傳輸30ms時,j1傳輸完成,搶占j2的cpu,執行10ms,再傳輸30ms,執行10ms,完成。由圖可見,j1從開始到完成所用的時間為:30+10+30+10=80ms。

j2與其並行地在io1上傳輸20ms,搶占j3的cpu,j2執行10ms後,被j1搶占cpu,等待10ms之後,j2再次得到cpu,執行10ms,j2啟動io2傳輸,40ms完成。由圖可見,j2從開始到完成所用的時間為:20+10+10+10+40=90ms。

j3在cpu上執行20ms,被j2搶占cpu,等待30ms,再執行10ms,等待10ms,j3啟動io1進行20ms的傳輸,完成。j3從開始到完成所用的時間為:20+30+10+10+20=90ms。

(2)三個作業全部完成時,cpu的利用率為:(10+20+30+10)/90=7/9=78%。

(3)三個作業全部完成時,外設io1的利用率為:(20+30+20)/90=7/9=78%。

擴充套件知識:作業系統程序排程演算法

fpf:優先權排程演算法型別,當把該演算法用於作業排程時,系統將從後備佇列中選擇若干個優先權最高的作業裝入記憶體。當用於程序排程時,該演算法是把處理機分配給就緒佇列中優先權最高的程序;又分為:

1)非搶占式優先權演算法。在這種方式下,系統一旦把處理機分配給就緒佇列中優先權最高的程序後,該程序便一直執行下去,直至完成;或因發生某事件使該程序放棄處理機時,系統方可再將處理機重新分配給另一優先權最高的程序。

2)搶占式優先權排程演算法:在這種方式下,系統同樣是把處理機分配給優先權最高的程序,使之執行。但在其執行期間,只要又出現了另乙個其優先權更高的程序,程序排程程式就立即停止當前程序(原優先權最高的程序)的執行,重新將處理機分配給新到的優先權最高的程序。

hrrn:在批處理系統中,短作業優先演算法是一種比較好的演算法,其主要的不足之處是長作業的執行得不到保證。如果我們能為每個作業引入前面所述的動態優先權,並使作業的優先順序隨著等待時間的增加而以速率a 提高,則長作業在等待一定的時間後,必然有機會分配到處理機。最高響應比優先,r=(w+s)/s,其中r表示響應比,w表示已經等待的時間,s表示期待服務的時間;

時間片輪轉法:在早期的時間片輪轉法中,系統將所有的就緒程序按先來先服務的原則排成乙個佇列,每次排程時,把cpu 分配給隊首程序,並令其執行乙個時間片。時間片的大小從幾ms 到幾百ms。當執行的時間片用完時,由乙個計時器發出時鐘中斷請求,排程程式便據此訊號來停止該程序的執行,並將它送往就緒佇列的末尾;然後,再把處理機分配給就緒佇列中新的隊首程序,同時也讓它執行乙個時間片。

多級反饋佇列排程演算法:它是目前被公認的一種較好的程序排程演算法。程序第一次進入系統是放置於rq0,第一次被強佔並返回就緒態時,放入rq1,以後每次被強佔就下降一級。如果程序處於最低等級,則不再降級,反覆返回到該佇列,直到結束。

處理機排程 程序排程

使用者程序數一般都多於處理機數,這將導致使用者程序互相爭奪處理機,那麼多程序競爭處理機,處理機到底給誰呢?就涉及了程序排程的問題。因此要求程序排程程式按一定的策略,動態地把處理機分配給處於就緒佇列中的某乙個程序。1.程序管理模組將系統中各程序的執 況和狀態特徵記錄在各程序的pcb表中 2.程序管理模...

處理機排程 程序排程 作業排程演算法

在多道程式系統中,主存中有著多個程序,其數目往往多於處理機數目,這就要求系統能按照某種演算法,動態地將處理機分配給就緒佇列中的某個程序,使之執行。對於批量型作業而言,通常需要經歷作業排程 又稱為高階排程或長程排程 和程序排程 又稱為低階排程或短程排程 兩個過程後方能獲得處理機 對於終端型作業,通常只...

程序和處理機排程

n 死鎖 指各併發程序彼此等待對方所占用的資源,且這些程序在未得到對方資源前不會釋放自己所擁有的資源,從而導致併發程序不能繼續向前推進的狀態 產生死鎖的四個必要條件 資源互斥 非剝奪 請求和保持 部分分配 環路等待。n死鎖的解決方案 a 預防 在系統設計時確定資源分配演算法,保證不發生死鎖 具體的方...