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

2021-09-25 03:20:05 字數 1957 閱讀 8921

在多道程式系統中,主存中有著多個程序,其數目往往多於處理機數目,這就要求系統能按照某種演算法,動態地將處理機分配給就緒佇列中的某個程序,使之執行。

對於批量型作業而言,通常需要經歷作業排程(又稱為高階排程或長程排程)和程序排程(又稱為低階排程或短程排程)兩個過程後方能獲得處理機;對於終端型作業,通常只需要經過程序排程即可獲得處理機。

高階排程的物件是作業,作業和程序是不同的東西。 作業是乙個更為廣泛的概念,作業不僅包含了通常的程式和資料,還應該包含乙份作業說明書,系統根據說明書來對程式的執行程序控制。

程序排程:是指對處於就緒狀態的多個程序,按照一定的策略選出乙個程序使之從就緒狀態變成執行狀態,真正獲得cpu來執行程式。

1.非搶占式:採用這種排程方式時,一旦處理機分配給某個程序後,不管該程序執行多長時間,都會讓它一直執行下去,不會因為其他原因而搶占正常執行程序的處理機。

引起原因:

1)正在執行的程序執行結束,或因某個原因該程序不再執行。

2)該程序執行過程中因為提出i/o請求而暫停執行。

3)在程序通訊或同步過程中執行了某個原語操作,如p操作。

2.搶占式:這種排程方式允許排程程式按照某種原則去暫停某個正在執行的程序,將已分配給該程序的處理機重新分配給另外乙個程序。

引起原因:

1)優先權原則。當一些優先權較高的程序或作業到達時,正在執行的程序會停止,排程程式將處理機分配給優先權更高的程序。

2)短作業(程序)優先原則。當新到達的程序或作業比正在執行的程序或作業執行時間短,排程程式將處理機分配給短程序。

3)時間片原則。各程序按照時間片輪流執行,當前時間片用完之後,該程序便停止執行,排程程式程序重新排程。

作業排程:fcfs、sjf、高優先權優先、高響應比優先

程序排程:fcfs、sjf、高優先權優先、時間片輪轉

1.先來先服務(fcfs)排程演算法

該演算法根據名字就很好理解,先來後到,始終選隊首程序(作業),程序獲得cpu,直至執行完畢或發生某個等待事件,釋放cup。

該排程演算法有利於長程序(作業),不利於短程序(作業)。

2.短作業(程序)優先(sjf)排程演算法

和fcfs類似,只是在進行選擇的時候,從後備佇列中選擇乙個執行時間最短的程序(作業)。

該排程演算法不利於長程序(作業),也沒有考慮到程序的緊迫程度。

3.高優先權優先排程演算法

1)靜態優先順序 排程演算法:程序建立時被賦予優先順序,而且在程序的執行過程中保持不變,優先順序最高的程序率先被排程,優先順序相同的程序採用fcfs排程演算法

2)動態優先順序 排程演算法:程序建立時賦予優先順序,但是優先順序在執行過程中可以改變,以便獲得更好的排程效能。 優先順序最高的先被排程,優先順序相同的程序採用fcfs排程演算法。

4.高響應比有限排程演算法

優先權 = (等待時間 + 要求服務時間)/ 要求服務時間

從上面的式子可以看出:

1)當作業的等待時間相同時,如果要求服務的時間越短,優先權越大,所以該演算法更有利於短作業。

2)當作業的要求服務時間相同時,等待時間越長,優先權越高,此時它實現的是fcfs。

3)對於長作業而言,作業的優先順序可以隨著等待時間的增加而提高,,當期等待時間達到一定程度時,其優先順序也能提公升到很高,從而也能獲得處理機。

5.時間片輪轉排程演算法

每個程序按照先進先出的原則進入就緒佇列,每次排程時,排程程式將cpu分配給隊首的程序,讓其執行乙個時間片q,該程序執行完時間片q後,有以下幾種情況:

1)該程序執行完畢,排程下乙個程序執行

2)該程序未執行完,程序執行被時鐘中斷,排到就緒佇列隊尾,特別注意:如果這個時候有乙個新到達的程序,則剛才時間片用完的程序排在新到達程序的後面。然後排程就緒佇列中的下乙個程序執行。

3)該程序i/o等原因而被阻塞,該程序進入阻塞佇列,排程就緒佇列的下乙個程序執行,等該程序被解封後,再從阻塞佇列進入就緒佇列隊尾。

處理機排程 程序排程

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

處理機排程 排程演算法

先來先服務 fcfs 排程演算法 短作業 程序 優先排程演算法sjf spf 根據作業的長短在就緒佇列中排好隊,若採取非搶占方式則根據佇列順序依次執行 若為搶占方式,時間片完或新程序的作業比執行態的作業長度短,則搶占當前正在執行的程序,被搶占程序按照時間長短在就緒佇列排隊等待。特別注意就緒佇列中的排...

處理機排程 排程演算法

將使用者作業和就緒程序按提交順序或變為就緒狀態的先後排成佇列,按照先來先服務的方式進行排程處理。1.直 該演算法在一般意義下是公平的。即每個作業或程序都按照它們在佇列中等待時間長短決定它們是否優先享受服務 2.但如果執行時間較短的作業或程序在某些執行時間很長的作業或程序之後到達,則它們將等待很長時間...