操作系統原理 作業調度策略 細講


 

 

 

以下是幾個調度策略:

FCFS

 

A周轉時間:20-0=20 帶權周轉時間 20/20=1

B周轉時間:23-1=22t=1時便到了,但一直在等着A) 帶權周轉時間 22/3=7.33

C周轉時間:28-2=26 帶權周轉時間 26/5=5.2

 

以下兩個圖是對比,一個是長進程先到,讓短進程等着。

 

 

 

(如果沒有其它策略的話,短進程和長進程老老實實都去排隊的話,短進程肯定不願意呀。我去食堂排隊,我就買自己的飯,前面那個人帶一個寢室的飯,為啥我要和他排在一個隊里。)

 

 

 

SPN

 

 

(短進程肯定喜歡這個呀,對短進程來說,只要我時間短,我就能排前面,而且這個算法是對FCFS的優化,你也看見上面的了,短進程在長進程之前執行確實是可以高山平均周轉時間,還有拿個帶權的周轉時間。)

但是就不把長進程當人看了。誰讓你那么浪費時間呢,你就等着吧,可能這一等,就再也不可能執行了。

但這個呢,還是老老實實排隊的。

 

 

他和FCFS是一類的。

下面的

SPTshortest process next

最短剩余時間優先算法則是搶了(開始插隊了!!)

看個例題

 

 

t=0時刻,只有p1到了,所以p1開始了。(雖然p1是長進程)

但是不能搶啊,這可是由FCFS優化而來的SPN算法,非搶占。

p2到了等着,p3到了等着,p4到了等着。

p1執行完了,在排隊的人里看,誰的運行時間是最短的,不就是p3嘛,才1s,那他就續着p1的繼續執行了,下面就以此類推。p2p4運行時間相同,那就按先來先服務吧,p2上,最后是p4.

等待時間 p10   p28-2=6  p37-4=3   p412-5=7

 

 

 

SRTshortest remaining time)可是SPN的優化版本。可以搶了,不用死板的排隊了。

p1到了,就執行了。p2到了,p1才執行了兩秒(剩余時間7-2=5,和前來搶占的p2比較,p24秒,按照SRT的規矩,時間短的先執行),所以p2就搶了p1的位置開始執行。p2執行了兩秒,剩了兩秒,p3來了,p3表示自己才1秒,泥奏凱。p3執行,p3執行完,p4來了,現在的隊伍里是p15s  p22s  p44s,按這個順序,就是p2  p4  p5

等待時間:p1:2s---11s都在等待  p2:4s--5s等了1s  p3:沒有等待 p4:5s來的,7s才執行。等了兩秒。

 

時間片輪轉算法

 

 

一個一個的排隊(不過排的時間都是定量的,一個時間片的時長,不會因為你是長進程就占到便宜。)執行完時間片就到隊尾繼續排隊。

分了兩種情況:

時間片過大

 

 

 

 

看上面的圖,發現就是和FCFS差不多了。

 

時間片過小

 

 

 

交換頻繁,開銷過大

 

排隊在規定時間做自己的事,做完了就走,做不完,排隊去!

 

 

(時間片輪換,要考也沒啥可考的吧。)

 

 

 

 

 

 

 

接下來還有

高優先權優先調度算法,又稱最短響應比優先(HRRN

可能會疑惑,為什么這兩個名字指的是同一個算法。

 

 

 

 

前面的算法以運行時間作為優先級的標准,那樣太片面了,所以這個算法就是給每個p1p2p3按照其緊急程度編個優先級,這樣就很完美。(同樣分為非搶占式和搶占式,就跟SPNSRT一樣,多重復幾遍就能記得更清晰喲)

那么接下來咱們就看看按照怎么樣的標准來編優先級才會完美。

 

 

 

 

 

 

 

例題:

 

 

開始A 運行,這個是非搶占的。A運行完B到了,那就B運行,B運行完已經是6s了,CDE都到了,現在才需要算優先級(響應比),前面的算響應比的公式還記得嗎,

 

w是等待時間,s是運行時間。(在這里t=9是時間節點,算等待時間就拿9減就好了)

C:9-4=5 等了5s  5+4/4=2.25

D:9-6=3   3+5/5=1.6

E:9-8=1    (1+2)/2=1.5

高響應比的優先,選C執行。

 

咱們現在算的都是動態優先級,所以在c執行完后,DE的優先級已經改變了。要再算一次。在這里t=13是時間節點,算等待時間就拿13減就好了)

D:13-6=7   7+5/5=2.4

E:13-8=5    (5+2)/2=3.5

高響應比的優先,選E執行。

E之后只剩下DD執行,結束。

 

(從上面兩步你就可以清楚的認識到:等待的越久,優先級就越高;運行的時間越短,優先級越高。)

 

 

 

再看這個,平均歸一化周轉時間。

就是各個進程執行時的響應比的平均值。

我們確定的有兩個C2.25   E3.5

其余三個都是動態的,要計算一下。

A等待時間0  0+3/3=1

B等待時間3-2=1  1+6/6=1.17

D最后一個執行的,等待時間  20-6=14  14+5/5=2.8

再都加起來除以5就得到了。

多級反饋隊列算法

 

 

 

最短響應比優先是非搶占的動態優先級調度策略

多級反饋隊列算法則是搶占的動態優先級調度策略

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM