作業系統(5) 程序排程演算法

2021-09-28 19:57:25 字數 2367 閱讀 9612

吞吐量:單位時間內cpu完成作業的數量。

cpu利用率:從0%~100%。

在所有排程演算法中,最簡單的是非搶占式的fcfs演算法。

演算法原理:程序按照它們請求cpu的順序使用cpu.就像你買東西去排隊,誰第乙個排,誰就先被執行,在它執行的過程中,不會中斷它。當其他人也想進入記憶體被執行,就要排隊等著,如果在執行過程**現一些事,他現在不想排隊了,下乙個排隊的就補上。此時如果他又想排隊了,只能站到隊尾去。

演算法優點:易於理解且實現簡單,只需要乙個佇列(fifo),且相當公平

演算法缺點:比較有利於長程序,而不利於短程序,有利於cpu 繁忙的程序,而不利於i/o 繁忙的程序

短作業優先(sjf, shortest job first)又稱為「短程序優先」spn(shortest process next);這是對fcfs演算法的改進,其目標是減少平均周轉時間。

演算法原理:對預計執行時間短的程序優先分派處理機。通常後來的短程序不搶先正在執行的程序。

演算法優點:相比fcfs 演算法,該演算法可改善平均周轉時間和平均帶權周轉時間,縮短程序的等待時間,提高系統的吞吐量。

演算法缺點:對長程序非常不利,可能長時間得不到執行,且未能依據程序的緊迫程度來劃分執行的優先順序,以及難以準確估計程序的執行時間,從而影響排程效能。

最高響應比優先法(hrrn,highest response ratio next)是對fcfs方式和sjf方式的一種綜合平衡。fcfs方式只考慮每個作業的等待時間而未考慮執行時間的長短,而sjf方式只考慮執行時間而未考慮等待時間的長短。因此,這兩種排程演算法在某些極端情況下會帶來某些不便。hrrn排程策略同時考慮每個作業的等待時間長短和估計需要的執行時間長短,從中選出響應比最高的作業投入執行。這樣,即使是長作業,隨著它等待時間的增加,w / t也就隨著增加,也就有機會獲得排程執行。這種演算法是介於fcfs和sjf之間的一種折中演算法。

演算法原理:響應比r定義如下: r =(w+t)/t = 1+w/t

其中t為該作業估計需要的執行時間,w為作業在後備狀態佇列中的等待時間。每當要進行作業排程時,系統計算每個作業的響應比,選擇其中r最大者投入執行。

演算法優點:由於長作業也有機會投入執行,在同一時間內處理的作業數顯然要少於sjf法,從而採用hrrn方式時其吞吐量將小於採用sjf 法時的吞吐量。

演算法缺點:由於每次排程前要計算響應比,系統開銷也要相應增加。

該演算法採用剝奪策略。時間片輪轉排程是一種最古老,最簡單,最公平且使用最廣的演算法,又稱rr排程。每個程序被分配乙個時間段,稱作它的時間片,即該程序允許執行的時間。

演算法原理:讓就緒程序以fcfs 的方式按時間片輪流使用cpu 的排程方式,即將系統中所有的就緒程序按照fcfs 原則,排成乙個佇列,每次排程時將cpu 分派給隊首程序,讓其執行乙個時間片,時間片的長度從幾個ms 到幾百ms。在乙個時間片結束時,發生時鐘中斷,排程程式據此暫停當前程序的執行,將其送到就緒佇列的末尾,並通過上下文切換執行當前的隊首程序,程序可以未使用完乙個時間片,就出讓cpu(如阻塞)。

演算法優點:時間片輪轉排程演算法的特點是簡單易行、平均響應時間短。

演算法缺點:不利於處理緊急作業。在時間片輪轉演算法中,時間片的大小對系統效能的影響很大,因此時間片的大小應選擇恰當

怎樣確定時間片的大小:

時間片大小的確定

1.系統對響應時間的要求

2.就緒佇列中程序的數目

3.系統的處理能力

多級反饋佇列排程演算法是一種cpu處理機排程演算法,unix作業系統採取的便是這種排程演算法。

多級反饋佇列排程演算法描述:

1、程序在進入待排程的佇列等待時,首先進入優先順序最高的q1等待。

2、首先排程優先順序高的佇列中的程序。若高優先順序中佇列中已沒有排程的程序,則排程次優先順序佇列中的程序。例如:q1,q2,q3三個佇列,只有在q1中沒有程序等待時才去排程q2,同理,只有q1,q2都為空時才會去排程q3。

3、對於同乙個佇列中的各個程序,按照時間片輪轉法排程。比如q1佇列的時間片為n,那麼q1中的作業在經歷了n個時間片後若還沒有完成,則進入q2佇列等待,若q2的時間片用完後作業還不能完成,一直進入下一級佇列,直至完成。

4、在低優先順序的佇列中的程序在執行時,又有新到達的作業,那麼在執行完這個時間片後,cpu馬上分配給新到達的作業(搶占式)。

在多級反饋佇列排程演算法中,如果規定第乙個佇列的時間片略大於多數人機互動所需之處理時間時,便能夠較好的滿足各種型別使用者的需要。

linux核心的三種主要排程策略:

sched_other 分時排程策略,

sched_fifo實時排程策略,先到先服務

sched_rr實時排程策略,時間片輪轉

作業系統 程序排程演算法

cpu利用率 cpu忙碌的時間佔總時間的比例 利 用率 忙碌的 時間總時 間利用率 frac 利用率 總時 間忙碌的 時間 系統吞吐量 單位時間完成作業或程序的數量 吞 吐量 完成的 作業數量 總時 間吞吐量 frac 吞吐量 總時 間完成的 作業數量 周轉時間 完成作業需要花費的總時間 周 轉時 ...

作業系統 程序排程及其演算法

儲存處理機資訊 按某種演算法選取程序 把處理器分配給程序 排隊器。把就緒程序排成乙個或者幾個佇列 分派器。把程序從就緒佇列中取出來,然後把處理機給他 非搶占式 搶占式把就緒程序排成乙個佇列,把cpu分配給隊首程序,執行一定的時間,執行完畢就分配給另乙個新的隊首程序,每隔一定的時間就執行乙個程序 一旦...

程序排程演算法 作業系統筆記

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