程序排程演算法

2021-09-07 10:46:43 字數 3240 閱讀 8910

排程演算法是指:根據系統的資源分配策略所規定的資源分配演算法。

1. 先來先服務排程演算法。先來先服務(fcfs)排程演算法是一種最簡單的排程演算法,該演算法既可用於作業排程, 也可用於程序排程。fcfs演算法比較有利於長作業(程序),而不利於短作業(程序)。由此可知,本演算法適合於cpu繁忙型作業, 而不利於i/o繁忙型的作業(程序)。 

2. 短作業(程序)優先排程演算法。短作業(程序)優先排程演算法(sj/pf)是指對短作業或短程序優先排程的演算法,該演算法既可用於作業排程, 也可用於程序排程。但其對長作業不利;不能保證緊迫性作業(程序)被及時處理;作業的長短只是被估算出來的。

採用sj(p)f演算法後,不論是平均周轉時間還是平均帶權周轉時間,都有較明顯的改善,尤其是對短作業d,其周轉時間由原來的(用fcfs演算法時)11 降為3;而平均帶權周轉時間是從5.5降到1.5。這說明sjf排程演算法能有效地降低作業的平均等待時間,提高系統吞吐量

—優先權排程演算法

—1) 非搶占式優先權演算法

— 系統一旦把處理機分配給就緒佇列中優先權最高的程序後,該程序便一直執行下去,直至完成或因某事件使該程序放棄處理機時,系統方可再將處理機分配給另一優先權更高的程序。這種排程演算法主要用於批處理系統中;也可用於某些對實時性要求不嚴的實時系統中。

—2) 搶占式優先權排程演算法(重要)

— 系統把處理機分配給優先權最高的程序,使之執行。但在其執行期間,只要又出現了另乙個其優先權更高的程序,程序排程程式就立即停止當前程序的執行,重新將處理機分配給新到的優先權最高的程序;顯然,這種搶占式的優先權排程演算法能更好地滿足緊迫作業的要求,故而常用於要求比較嚴格的實時系統中,以及對效能要求較高的批處理和分時系統中。

基於時間片的輪轉排程演算法

—1.時間片輪轉法

—1) 基本原理

— 系統能在給定的時間內響應所有使用者的請求。

—2) 時間片大小的確定

— 很小的時間片有利於短作業,能較快完成,但是會頻繁地發生中斷、程序上下文的切換,從而增加系統開銷;反之,時間片太長,每個程序都可以在乙個時間片內完成,該演算法便退化為fcfs演算法,無法滿**互式使用者的需求。所以,要選擇乙個合適的時間片,較為可取的是時間片的略大於一次典型的幾乎所需要的時間。

2.多級反饋佇列排程演算法(重要)

— 多級反饋佇列排程演算法不必事先知道各種程序所需的執行時間,而且還可以滿足各種型別程序的需要,因而它是目前被公認的一種較好的程序排程演算法。

—排程演算法的實施過程如下所述

—(1) 應設定多個就緒佇列,並為各個佇列賦予不同的優先順序

— (2) 當乙個新程序進入記憶體後,首先將它放入第一佇列的末尾,按fcfs原則排隊等待排程

— (3) 僅當第一佇列空閒時,排程程式才排程第二佇列中的程序執行;僅當第1~(

i-1)佇列均空時,才會排程第

i佇列中的程序執行

—多級反饋佇列排程演算法具有較好的效能,能很好地滿足各種型別使用者的需要

—(1) 終端型作業使用者

—(2) 短批處理作業使用者

—(3) 長批處理作業使用者

排程演算法是指:根據系統的資源分配策略所規定的資源分配演算法。

1. 先來先服務排程演算法。先來先服務(fcfs)排程演算法是一種最簡單的排程演算法,該演算法既可用於作業排程, 也可用於程序排程。fcfs演算法比較有利於長作業(程序),而不利於短作業(程序)。由此可知,本演算法適合於cpu繁忙型作業, 而不利於i/o繁忙型的作業(程序)。

2. 短作業(程序)優先排程演算法。短作業(程序)優先排程演算法(sj/pf)是指對短作業或短程序優先排程的演算法,該演算法既可用於作業排程, 也可用於程序排程。但其對長作業不利;不能保證緊迫性作業(程序)被及時處理;作業的長短只是被估算出來的。

1. 優先權排程演算法的型別。為了照顧緊迫性作業,使之進入系統後便獲得優先處理,引入了最高優先權優先(fpf)排程演算法。 此演算法常被用在批處理系統中,作為作業排程演算法,也作為多種作業系統中的程序排程,還可以用於實時系統中。當其用於作業排程, 將後備佇列中若干個優先權最高的作業裝入記憶體。當其用於程序排程時,把處理機分配給就緒佇列中優先權最高的程序,此時, 又可以進一步把該演算法分成以下兩種:

1)非搶占式優先權演算法

2)搶占式優先權排程演算法(高效能計算機作業系統)

2. 優先權型別 。對於最高優先權優先排程演算法,其核心在於:它是使用靜態優先權還是動態優先權, 以及如何確定程序的優先權。 

3. 高響應比優先排程演算法 

為了彌補短作業優先演算法的不足,我們引入動態優先權,使作業的優先等級隨著等待時間的增加而以速率a提高。 該優先權變化規律可描述為:優先權=(等待時間+要求服務時間)/要求服務時間;即 =(響應時間)/要求服務時間

1. 時間片輪轉法。時間片輪轉法一般用於程序排程,每次排程,把cpu分配隊首程序,並令其執行乙個時間片。 當執行的時間片用完時,由乙個記時器發出乙個時鐘中斷請求,該程序被停止,並被送往就緒佇列末尾;依次迴圈。   2. 多級反饋佇列排程演算法 多級反饋佇列排程演算法多級反饋佇列排程演算法,不必事先知道各種程序所需要執行的時間,它是目前被公認的一種較好的程序排程演算法。 其實施過程如下:

1) 設定多個就緒佇列,並為各個佇列賦予不同的優先順序。在優先權越高的佇列中, 為每個程序所規定的執行時間片就越小。

2) 當乙個新程序進入記憶體後,首先放入第一佇列的末尾,按fcfs原則排隊等候排程。 如果他能在乙個時間片中完成,便可撤離;如果未完成,就轉入第二佇列的末尾,在同樣等待排程…… 如此下去,當乙個長作業(程序)從第一佇列依次將到第n佇列(最後佇列)後,便按第n佇列時間片輪轉執行。

3) 僅當第一佇列空閒時,排程程式才排程第二佇列中的程序執行;僅當第1到第(i-1)佇列空時, 才會排程第i佇列中的程序執行,並執行相應的時間片輪轉。

4) 如果處理機正在處理第i佇列中某程序,又有新程序進入優先權較高的佇列, 則此新佇列搶占正在執行的處理機,並把正在執行的程序放在第i佇列的隊尾。

程序排程演算法(程序排程策略)

程序排程演算法 排程演算法是指 根據系統的資源分配策略所規定的資源分配演算法。一 先來先服務和短作業 程序 優先排程演算法 1.先來先服務排程演算法。先來先服務 fcfs 排程演算法是一種最簡單的排程演算法,該演算法既可用於作業排程,也可用於程序排程。fcfs演算法比較有利於長作業 程序 而不利於短...

程序排程演算法

排程演算法是指 根據系統的資源分配策略所規定的資源分配演算法。一 先來先服務和短作業 程序 優先排程演算法 1.先來先服務排程演算法。先來先服務 fcfs 排程演算法是一種最簡單的排程演算法,該演算法既可用於作業排程,也可用於程序排程。fcfs演算法比較有利於長作業 程序 而不利於短作業 程序 由此...

程序排程演算法

先來先服務 first come first service,fcfs 排程演算法按照程序進入就緒佇列的先後順序選擇可以占用處理器的程序。這是一種不可搶占方式的排程演算法,優點是實現簡單,缺點是後來的程序等待cpu的時間較長。它現今主要用作輔助排程法 例如結合在優先順序排程演算法中使用,當有兩個最高...