1. FSFS ,SJF ,HRN演算法實例
1、設在單道批處理系統中有四道作業,它們提交的時刻及運行時間如下:
作業號 提交時刻(h) 運行時間(h)
1 8.0 1.0
2 8.5 0.5
3 9.0 0.2
4 9.1 0.1
請分別給出在演算法FCFS、SJF和HRN中這組作業的調度順序、平周轉時間和平均帶權周轉時間。
【解答】
FCFS演算法調度順序:1,2,3,4,作業運行情況如下表
作業號 開始時間 完成時間 周轉時間 帶權周轉時間
1 8.0 9.0 1.0 1.0
2 9.0 9.5 1.0 2.0
3 9.5 9.7 0.7 3.5
4 9.7 9.8 0.7 7.0
平均周轉時間T=(1.0+1.0+0.7+0.7)/4=0.85
平均帶權周轉時間W=(1.0+2.0+3.5+7.0)/4=3.375
SJF演算法調度順序:1,3,4,2,作業運行情況如下表
作業號 開始時間 完成時間 周轉時間 帶權周轉時間
1 8.0 9.0 1.0 1.0
2 9.3 9.8 1.3 2.6
3 9.0 9.2 0.2 1.0
4 9.2 9.3 0.2 2.0
平均周轉時間T=(1.0+1.3+0.2+0.2)/4=0.675
平均帶權周轉時間W=(1.0+2.6+1.0+2.0)/4=1.65
HRN演算法調度順序:1,2,4,3,作業運行情況如下表
作業號 開始時間 完成時間 周轉時間 帶權周轉時間
1 8.0 9.0 1.0 1.0
2 9.0 9.5 1.0 2.0
3 9.6 9.8 0.8 4.0
4 9.5 9.6 0.5 5.0
平均周轉時間T=(1.0+1.0+0.8+0.5)/4=0.825
平均帶權周轉時間W=(1.0+2.0+4.0+5.0)/4=3.0
2. 以下五個作業,fcfs sjf hrrn三種調度演算法平均周轉時間,高響應比怎麼算
作業調度演算法 .
先來先服務(FCFS, First Come First Serve)是最簡單的調度演算法,按先後順序進行調度。
定義:
按照作業提交或進程變為就緒狀態的先後次序,分派CPU;
當前作業或進程佔用CPU,直到執行完或阻塞,才出讓CPU(非搶占方式)。
在作業或進程喚醒後(如I/O完成),並不立即恢復執行,通常等到當前作業或進程出讓CPU。
適用場景:
比較有利於長作業,而不利於短作業。因為長作業會長時間占據處理機。
有利於CPU繁忙的作業,而不利於I/O繁忙的作業。
演算法實現原理圖:
2. 輪轉法(Round Robin)
輪轉法是讓每個進程在就緒隊列中的等待時間與享受服務的時間成正比例。
定義:
將系統中所有的就緒進程按照FCFS原則,排成一個隊列。
每次調度時將CPU分派給隊首進程,讓其執行一個時間片。時間片的長度從幾個ms到幾百ms。
在一個時間片結束時,發生時鍾中斷。
調度程序據此暫停當前進程的執行,將其送到就緒隊列的末尾,並通過上下文切換執行當前的隊首進程。
進程可以未使用完一個時間片,就出讓CPU(如阻塞)。
時間片長度的確定:
時間片長度變化的影響
過長->退化為FCFS演算法,進程在一個時間片內都執行完,響應時間長。
過短->用戶的一次請求需要多個時間片才能處理完,上下文切換次數增加,響應時間長。
對響應時間的要求:T(響應時間)=N(進程數目)*q(時間片)
就緒進程的數目:數目越多,時間片越小
系統的處理能力:應當使用戶輸入通常在一個時間片內能處理完,否則使響應時間,平均周轉時間和平均帶權周轉時間延長。
演算法實現原理圖:
3. 多級反饋隊列演算法(Round Robin with Multiple Feedback)
多級反饋隊列演算法是輪轉演算法和優先順序演算法的綜合和發展。
定義:
設置多個就緒隊列,分別賦予不同的優先順序,如逐級降低,隊列1的優先順序最高。每個隊列執行時間片的長度也不同,規定優先順序越低則時間片越長,如逐級加倍。
新進程進入內存後,先投入隊列1的末尾,按FCFS演算法調度;若按隊列1一個時間片未能執行完,則降低投入到隊列2的末尾,同樣按FCFS演算法調度;如此下去,降低到最後的隊列,則按「時間片輪轉」演算法調度直到完成。
僅當較高優先順序的隊列為空,才調度較低優先順序的隊列中的進程執行。如果進程執行時有新進程進入較高優先順序的隊列,則搶先執行新進程,並把被搶先的進程投入原隊列的末尾。
優點:
為提高系統吞吐量和縮短平均周轉時間而照顧短進程。
為獲得較好的I/O設備利用率和縮短響應時間而照顧I/O型進程。
不必估計進程的執行時間,動態調節
幾點說明:
I/O型進程:讓其進入最高優先順序隊列,以及時響應I/O交互。通常執行一個小時間片,要求可處理完一次I/O請求的數據,然後轉入到阻塞隊列。
計算型進程:每次都執行完時間片,進入更低級隊列。最終採用最大時間片來執行,減少調度次數。
I/O次數不多,而主要是CPU處理的進程。在I/O完成後,放回優先I/O請求時離開的隊列,以免每次都回到最高優先順序隊列後再逐次下降。
為適應一個進程在不同時間段的運行特點,I/O完成時,提高優先順序;時間片用完時,降低優先順序。
演算法實現原理圖:
4. 優先順序法(Priority Scheling)
優先順序演算法是多級隊列演算法的改進,平衡各進程對響應時間的要求。適用於作業調度和進程調度,可分成搶先式和非搶先式。
靜態優先順序:
作業調度中的靜態優先順序大多按以下原則確定:
由用戶自己根據作業的緊急程度輸入一個適當的優先順序。
由系統或操作員根據作業類型指定優先順序。
系統根據作業要求資源情況確定優先順序。
進程的靜態優先順序的確定原則:
按進程的類型給予不同的優先順序。
將作業的情態優先順序作為它所屬進程的優先順序。
動態優先順序:
進程的動態優先順序一般根據以下原則確定:
根據進程佔用有CPU時間的長短來決定。
根據就緒進程等待CPU的時間長短來決定。
5.短作業優先法(SJF, Shortest Job First)
短作業優先又稱為「短進程優先」SPN(Shortest Process Next);這是對FCFS演算法的改進,其目標是減少平均周轉時間。
定義:
對預計執行時間短的作業(進程)優先分派處理機。通常後來的短作業不搶先正在執行的作業。
SJF的特點:
(1) 優點:
比FCFS改善平均周轉時間和平均帶權周轉時間,縮短作業的等待時間;
提高系統的吞吐量;
(2) 缺點:
對長作業非常不利,可能長時間得不到執行;
未能依據作業的緊迫程度來劃分執行的優先順序;
難以准確估計作業(進程)的執行時間,從而影響調度性能。
SJF的變型:
「最短剩餘時間優先」SRT(Shortest Remaining Time)(允許比當前進程剩餘時間更短的進程來搶占)
「最高響應比優先」HRRN(Highest Response Ratio Next)(響應比R = (等待時間 + 要求執行時間) / 要求執行時間,是FCFS和SJF的折衷)
6. 最高響應比優先法(HRN,Highest Response_ratio Next)
最高響應比優先法是對FCFS方式和SJF方式的一種綜合平衡。FCFS方式只考慮每個作業的等待時間而未考慮執行時間的長短,而SJF方式只考慮執行時間而未考慮等待時間的長短。因此,這兩種調度演算法在某些極端情況下會帶來某些不便。HRN調度策略同時考慮每個作業的等待時間長短和估計需要的執行時間長短,從中選出響應比最高的作業投入執行。
響應比R定義如下: R =(W+T)/T = 1+W/T
其中T為該作業估計需要的執行時間,W為作業在後備狀態隊列中的等待時間。每當要進行作業調度時,系統計算每個作業的響應比,選擇其中R最大者投入執行。這樣,即使是長作業,隨著它等待時間的增加,W / T也就隨著增加,也就有機會獲得調度執行。這種演算法是介於FCFS和SJF之間的一種折中演算法。由於長作業也有機會投入運行,在同一時間內處理的作業數顯然要少於SJF法,從而採用HRN方式時其吞吐量將小於採用SJF 法時的吞吐量。另外,由於每次調度前要計算響應比,系統開銷也要相應增加。
3. 利用短作業優先演算法(SJF),計算進程的周轉時間和帶權周轉時間。非常著急!!
周轉時間=進程結束的時間 - 進程到達的時間;
帶權周轉時間=周轉時間 / 執行時間;
如:A作業2:30到達,3:30結束,需要執行40分鍾。
周轉時間=3:30-2:30=60分鍾
帶權周轉時間=60分鍾/40分鍾=1.5
4. SJF是什麼意思
是網路上的一個梗,指stg界最高毒奶。
SJF指射擊游戲(Shooting game),游戲類型的一種,也是動作游戲的一種。射擊游戲帶有很明顯的動作游戲特點,也沒有純然的射擊游戲,因為射擊必須要經過一種動作方式來呈現它的「射擊」。
「毒奶」指反向加油、拖累隊友。
詳解:
奶,在電競中作為名詞時候,指使用於游戲治療輔助職業;在電競中作為動詞時即指治療的動作。
毒奶,顧名思義,有毒的奶,即起到治療的反作用,害死隊友的行為。
5. SJF什麼意思
最短作業優先演算法SJF SJF(Shortest Job First ) SJF演算法以進入系統的作業所要求的CPU時間為標准,總選取估計計算時間最短的作業投入運行。 SJF演算法的優缺點: 演算法易於實現。但效率不高,主要弱點是忽視了作業等待時間;會出現飢餓現象。 SJF演算法與FCFS演算法的比較: SJF的平均作業周轉時間比FCFS要小,故它的調度性能比FCFS好。 SJF調度演算法的問題: 實現SJF調度演算法需要知道作業所需運行時間,否則調度就沒有依據,要精確知道一個作業的運行時間是辦不到的。
6. 進程調度演算法
FCFS調度演算法屬於不可剝奪演算法。從表面上看,它對所有作業都是公平的,但若一個長作業先到達系統,就會使後面許多短作業等待很長時間,因此它不能作為分時系統和實時系統的主要調度策略。但它常被結合在其他調度策略中使用。例如,在使用優先順序作為調度策略的系統中,往往對多個具有相同優先順序的進程按FCFS原則處理。
FCFS調度演算法的特點是演算法簡單,但效率低; 對長作業比較有利,但對短作業不利(相對SJF和高響應比);
FCFS調度演算法有利於CPU繁忙型作業,而不利於I/O繁忙型作業。
短作業優先調度演算法是一個非搶占策略,他的原則是下一次選擇預計處理時間最短的進程,因此短進程將會越過長作業,跳至隊列頭。該演算法即可用於作業調度,也可用於進程調度。 但是他對長作業不利,不能保證緊迫性作業(進程)被及時處理,作業的長短只是被估算出來的。
缺點:
該演算法對長作業不利,SJF調度演算法中長作業的周轉時間會增加。更嚴重的是,如果有一長作業進入系統的後備隊列,由於調度程序總是優先調度那些 (即使是後進來的)短作業,將導致長作業長期不被調度(「飢餓」現象,注意區分「死鎖」。後者是系統環形等待,前者是調度策略問題)。
該演算法完全未考慮作業的緊迫程度,因而不能保證緊迫性作業會被及時處理。
由於作業的長短只是根據用戶所提供的估計執行時間而定的,而用戶又可能會有意或無意地縮短其作業的估計運行時間,致使該演算法不一定能真正做到短作業優先調度。
SJF調度演算法的平均等待時間、平均周轉時間最少。
高響應比優先調度演算法既考慮作業的執行時間也考慮作業的等待時間,綜合了先來先服務和最短作業優先兩種演算法的特點。
該演算法中的響應比是指作業等待時間與運行比值,響應比公式定義如下:
響應比 =(等待時間+要求服務時間)/ 要求服務時間,即RR=(w+s)/s=1+w/s,因此 響應比一定是大於等於1的。
短作業與先後次序的兼顧,且不會使長作業長期得不到服務。
響應比計算系統開銷,增加系統開銷。
高響應比優先調度演算法適合批處理系統,主要用於作業調度。
為了實現 RR 調度,我們將就緒隊列視為進程的 FIFO 隊列。新進程添加到就緒隊列的尾部。CPU 調度程序從就緒隊列中選擇第一個進程,將定時器設置在一個時間片後中斷,最後分派這個進程。
接下來,有兩種情況可能發生。進程可能只需少於時間片的 CPU 執行。對於這種情況,進程本身會自動釋放 CPU。調度程序接著處理就緒隊列的下一個進程。否則,如果當前運行進程的 CPU 執行大於一個時間片,那麼定時器會中斷,進而中斷操作系統。然後,進行上下文切換,再將進程加到就緒隊列的尾部,接著 CPU 調度程序會選擇就緒隊列內的下一個進程。
採用 RR 策略的平均等待時間通常較長。
在 RR 調度演算法中,沒有進程被連續分配超過一個時間片的 CPU(除非它是唯一可運行的進程)。如果進程的 CPU 執行超過一個時間片,那麼該進程會被搶占,並被放回到就緒隊列。因此, RR調度演算法是搶占的。
演算法描述
1、進程在進入待調度的隊列等待時,首先進入優先順序最高的Q1等待。
2、首先調度優先順序高的隊列中的進程。若高優先順序中隊列中已沒有調度的進程,則調度次優先順序隊列中的進程。例如:Q1,Q2,Q3三個隊列,當且僅當在Q1中沒有進程等待時才去調度Q2,同理,只有Q1,Q2都為空時才會去調度Q3。
3、對於同一個隊列中的各個進程,按照FCFS分配時間片調度。比如Q1隊列的時間片為N,那麼Q1中的作業在經歷了N個時間片後若還沒有完成,則進入Q2隊列等待,若Q2的時間片用完後作業還不能完成,一直進入下一級隊列,直至完成。
4、在最後一個隊列QN中的各個進程,按照時間片輪轉分配時間片調度。
5、在低優先順序的隊列中的進程在運行時,又有新到達的作業,此時須立即把正在運行的進程放回當前隊列的隊尾,然後把處理機分給高優先順序進程。換而言之,任何時刻,只有當第1~i-1隊列全部為空時,才會去執行第i隊列的進程(搶占式)。特別說明,當再度運行到當前隊列的該進程時,僅分配上次還未完成的時間片,不再分配該隊列對應的完整時間片。
7. 跪求操作系統帝!!關於一個SJF演算法的問題!!
非搶占式SJF演算法
0時刻A執行,3個時間,周轉時間3.
3時刻B等了1個時間,而C還沒到執行B,6個時間,到達時間按9,周轉時間7.
9時刻CDE都到了等待。E的工作時間最短,執行E,2個時間到達11,周轉時間3.
11時刻CD在等待。C需求時間短,C執行,4個時間,到達15,周轉時間11.
15時刻D執行,5個時間,到達20整個完成,周轉時間是14.
平均周轉時間=(3+7+3+11+14)/5=7.6
帶權平均周轉時間=(3/3+7/6+3/2+11/4+14/5)/5=1.84