論述各種不同排程演算法的優劣

2021-07-30 15:13:01 字數 2626 閱讀 3049

排程演算法是指根據系統的資源分配策略所規定的資源分配演算法。而選擇排程方式和演算法的若干準則如下:

1) 面向使用者的準則:周轉時間短、響應時間快、截止時間的保證、優先權準則。

2) 面向系統的準則:系統吞吐量、處理機利用率好、各類資源平衡利用。

3) 最優準則:最大的cpu利用率、最大的吞吐量、最短的周轉時間、最短的等待時間、最短的響應時間。

綜合以上準則,下面淺顯論述一下主要的處理機排程演算法的優劣點。

1、先來先服務和短作業(程序)優先排程演算法fcfs

基本思想:按照程序進入就緒佇列的先後次序來分配處理機。一般採用非剝奪的排程方式。適用於作業排程也用於程序排程。

當作業排程採用該演算法:每次排程都是從後備作業佇列中,選擇乙個或多個最先進入該佇列的作業,將它們調入記憶體,並分配資源、建立程序,之後進入就緒佇列。

當程序排程採用該演算法:該演算法總是把處理機分配給最先進入就緒佇列的程序,乙個程序一旦分得處理機,便一直執行下去,直到該程序完成或阻塞時,才釋放處理機。 

優缺點:有利於長作業程序,而不利於短作業程序這是因為若乙個長作業先到達系統,就會使許多短作業等待很長的時間,從而引起許多短作業使用者的不滿。有利於cpu繁忙型作業,不利於i/o,忙的作業。

現在作業系統中,已很少用該演算法作為主要排程策略,尤其是在分時系統和實時系統中。但它常被結合在其它排程策略中使用。

2、短作業(程序)優先排程演算法(sjf/spf)

基本思想:短作業或短程序優先排程。

短作業優先排程演算法(sjf):用於作業排程。主要任務是從後備佇列中選擇乙個或若干個估計執行時間最短的作業,將它們調入記憶體執行。

短程序優先排程演算法(spf):用於程序排程。主要任務是從就緒佇列中選出一估計執行時間最短的程序,將處理機分配給它。

優缺點:降低作業的平均等待時間,提高系統吞吐量。對長作業不利;未考慮作業的緊迫程度;對程序估計執行時間難以**。

3、高優先權優先排程演算法priority schedulingfirst

為了考慮作業的緊迫程度,引入了最高優先權排程演算法(fpf)

1) 優先權排程演算法型別

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

基本原理:系統把處理機分配給就緒佇列中優先權最高的程序後,該程序便一直執行下去,直到完成;或因發生某時間使該程序放棄處理機時,系統才可將處理機重新分配給另一優先權最高的程序。

適用:批處理系統,實時性要求不高的實時系統。

b) 搶占式優先權演算法

基本原理:系統把處理機優先權最高的程序,使之執行。若在其執行期間,只要又出現另乙個優先權更高的程序,則立即停止當前程序的執行,重新分配處理機給新來的優先權更高的程序。

適用:實時性要求高的實時系統,對效能要求高的批處理和分時系統。

2) 優先權型別

a) 靜態優先權

靜態優先權是在建立程序的時確定的,且在程序的整個執行期間保持不變。一般,利用某一範圍內的整數來表示,如,0~7或0~255中的整數。

b) 動態優先權

是指在建立程序時確定的優先權,在程序的執行期間會發生變化。

4、高響應比優先排程演算法

思想:利用響應比也就是優先權來決定給作業分配處理機。

rp為響應比。

我們可以看出,優先權隨等待時間的增加而提高,因此長作業在等待一定時間後,就有機會分配到處理機執行。

5、基於時間片的輪轉排程演算法rr,round robin

早期的分時系統採用時間片輪轉演算法,90年代後,採用多極反饋佇列排程演算法。

1) 時間片輪轉法

基本思想:系統將所有就緒程序按fcfs的原則,排成乙個佇列,依次排程,把cpu分配給隊首程序,並令其執行乙個時間片/cpu時間,通常為幾個毫秒~幾百毫秒。時間片用完後,該程序將被搶占並插入就緒佇列末尾。

2) 多級反饋佇列排程演算法round robin withmultiple feedback

基本思想:多級反饋佇列排程演算法是時間片輪轉演算法和優先順序排程演算法的綜合和發展,通過動態調整程序優先順序和時間片大小,不必事先估計程序的執行時間,多級反饋佇列可兼顧多方面的系統目標,是目前公認的一種較好的程序排程演算法。

實現過程:

1) 設定多個就緒佇列,並為每個佇列賦予不同的優先順序。佇列1的優先順序最高,其餘佇列逐個降低。

2) 每個佇列中程序執行時間片的大小也各不相同,程序所在佇列的優先順序越高,其相應的時間片就越短。

3) 當乙個新程序進入系統時,首先將它放入佇列1的末尾,按fcfs等待排程。如能完成,便可準備撤離系統,反之由排程程式將其轉入佇列2的末尾,按fcfs再次等待排程,如此下去,進入佇列n按時間片輪轉演算法排程執行。

4) 僅當佇列1為空時,才排程佇列2中的程序執行。若佇列i中的程序正執行,此時有新程序進入優先順序較高的佇列中,則新程序將搶占執行。原程序轉移至下一佇列。

6、結論:

1) 如等待時間相同,則要求服務時間愈短,其優先權愈高—spf。就是短作業優先演算法。

2) 如要求服務時間相同,優先權決定於等待時間----fcfs。就是先來先服務演算法。

3) 對長作業,若等待時間足夠長,優先權也高,也能獲得cpu。是本演算法的優點,解決了短作業優先演算法中,長作業的執行得不到保證的情況。也就是引入該演算法的原因。

根據解析度不同呼叫不同的css檔案

解 釋 var ie1024 var ie800 var ie1152 var ieother 引號裡面分別填寫,使用者使用ie的時候並且解析度為1024 768,800 600,1152 864要使用的css檔名。var firefox1024 var firefox800 var firefox...

根據解析度不同呼叫不同的css檔案

摘錄於 解 釋 var ie1024 var ie800 var ie1152 var ieother 引號裡面分別填寫,使用者使用ie的時候並且解析度為1024 768,800 600,1152 864要使用的css檔名。var firefox1024 var firefox800 var fir...

不同調製方式對通道容量影響的分析

不同的調製方式會影響通道的容量嗎?如果有影響,調製方式是如何影響到通道容量的?在分析通道容量時,我們首先考慮通道的型別,如連續通道,離散通道,半連續通道,半離散通道。只有先分析清楚通道型別,然後才可以進行建模計算相關的通道轉移概率 p y x p y x p y x 然後根據通道的計算公式來得到相應...