❶ 如果多個進程同時到達系統,則平均周轉時間最短的進程調度演算法是什麼
如果多個進程同時到達系統,則平均周轉時間最短的進程調度演算法是 短進程優先調度演算法 。
短進程優先調度演算法SJ(P)F,是指對短作業或短進程優先調度的演算法。它們可以分別用於作業調度和進程調度。短作業優先(SJF)的調度演算法是從後備隊列中選擇一個或若干個估計運行時間最短的作業,將它們調入內存運行。而短進程(SPF)調度演算法則是從就緒隊列中選出一個估計運行時間最短的進程,將處理機分配給它,使它立即執行並一直執行到完成,或發生某事件而被阻塞放棄處理機再重新調度。
優點是SJ(P)F調度演算法能有效地降低作業(進程)的平均等待時間,提高系統吞吐量。
缺點是該演算法對長作業不利;完全未考慮作業的緊迫程度,因而不能保證緊迫性作業(進程)長期不被調度;由於作業(進程)的長短只是根據用戶所提供的估計執行時間而定的,而用戶又可能會有意或無意地縮短其作業的估計運行時間,致使該演算法不一定能真正做到短作業游戲那調度。
該程序定義了一個進程數據塊(struct spf),該數據塊有進程名(name)、到達時間(arrivetime)、服務時間(servicetime)、開始執行時間(starttime)、完成時間(finishtime)、周轉時間(zztime)、平均周轉時間(averzztime)。用到的公式有:完成時間=到達時間+服務時間;周轉時間=完成時間-到達時間;(第一次執行的進程的完成時間=該進程的到達時間;下一個進程的開始執行時間=上一個進程的完成時間)。運行進程的順序需要對進程的到達時間和服務時間進行比較。如果某一進程是從0時刻到達的,那麼首先執行該進程;之後就比較進程的服務時間,誰的服務時間短就先執行誰(如果服務時間相同則看它們的到達時間,到達時間短的先執行);如果到達時間和服務時間相同,則按先來先服務演算法執行。
❷ 處理機調度有哪幾種方式它們分別有什麼優缺點
先來先服務FCFS和短作業(進程)優先SJ(P)F調度演算法,SJF調度演算法用於作業和進程調度,能有效的降低作業的平均等待時間,提高系統吞吐量。缺點:該演算法對長作業不利,完全未考慮作業的緊迫程度,因此不能保證緊迫性作業會被及時處理,由於作業的長短只是根據用戶所提供的估計執行時間而定的,而用戶又可能會有意或無意地縮短其作業的估計運行時間,致使該演算法不一定能真正做到短作業優先調度。 高優先權優先調度演算法,優先權調度演算法包括非搶占式優先權演算法和搶占式優先權調度演算法;高響應比優先調度演算法,特點:有利於短作業、先來先服務、對於長作業也可獲得處理機。 基於時間片的輪轉調度演算法,時間片輪轉法和多級反饋隊列調度演算法。
❸ 什麼是短作業優先的作業調度演算法
1.先來先服務調度演算法(FCFS):就是按照各個作業進入系統的自然次序來調度作業。這種調度演算法的優點是實現簡單,公平。其缺點是沒有考慮到系統中各種資源的綜合使用情況,往往使短作業的用戶不滿意,因為短作業等待處理的時間可能比實際運行時間長得多。
2.短作業優先調度演算法(SPF): 就是優先調度並處理短作業,所謂短是指作業的運行時間短。而在作業未投入運行時,並不能知道它實際的運行時間的長短,因此需要用戶在提交作業時同時提交作業運行時間的估計值。
3.最高響應比優先演算法(HRN):FCFS可能造成短作業用戶不滿,SPF可能使得長作業用戶不滿,於是提出HRN,選擇響應比最高的作業運行。響應比=1+作業等待時間/作業處理時間。
4. 基於優先數調度演算法(HPF):每一個作業規定一個表示該作業優先順序別的整數,當需要將新的作業由輸入井調入內存處理時,優先選擇優先數最高的作業。
5.均衡調度演算法,即多級隊列調度演算法
基本概念:
作業周轉時間(Ti)=完成時間(Tei)-提交時間(Tsi)
作業平均周轉時間(T)=周轉時間/作業個數
作業帶權周轉時間(Wi)=周轉時間/運行時間
響應比=(等待時間+運行時間)/運行時間
❹ 進程調度演算法
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隊列的進程(搶占式)。特別說明,當再度運行到當前隊列的該進程時,僅分配上次還未完成的時間片,不再分配該隊列對應的完整時間片。
❺ SJF調度演算法
SJF調度演算法:最短作業優先演算法SJF(Shortest Job First ),SJF演算法以進入系統的作業所要求的CPU時間為標准,總選取估計計算時間最短的作業投入運行。
SJF 調度演算法優缺點:演算法易於實現。但效率不高,主要弱點是忽視了作業等待時間;會出現飢餓現象。SJF 調度演算法可證明為最佳的,這是因為對於給定的一組進程, SJF 演算法的平均等待時間最小。雖然 SJF 演算法最佳,但是它不能在短期CPU 調度層次上加以實現。因為沒有辦法知道下一個 CPU 區間的長度。
SJF演算法Gantt圖:
進程 區間時間
PI 6
P2 8
P3 7
P4 3
進程 P1 的等待時間是 3 ms,進程P2的等待時間為 16 ms,進程P3的等待時間為 9ms,進程P4的等待時間為 0ms。因此,平均等待時間為(3 + 16 + 9 +0) / 4 = 7 ms。
❻ 什麼是最短作業優先調度演算法這種作業調度演算法的不公平之處表現在哪裡
這種演算法會根據作業長短,也就是作業服務時間的多少來調度作業,服務時間短的會被優先調度執行。
演算法的缺點在於對比較長的作業可能長期得不到調度,對長作業不利;還有就是作業的服務時間是用戶向系統提交作業時設定好的,難免有些用戶為了讓自己的作業先調度,會把服務時間縮短,也就是有人為的因素在裡面。
❼ 優先順序調度演算法
優先順序調度演算法的原理是給每個進程賦予一個優先順序,每次需要進程切換時,找一個優先順序最高的進程進行調度。這樣,如果賦予長進程一個高優先順序,則該進程就不會再「飢餓」。事實上,STCF演算法本身就是一種優先順序調度,只不過它給予短進程高優先順序而已。
優先順序調度的優點是可以賦予重要的進程以高優先順序以確保重要任務能夠得到CPU時間。其缺點則與STCF演算法一樣,低優先順序的進程可能會「飢餓」。不過,這個問題在優先順序調度演算法里比在STCF里好解決:只要動態地調節優先順序即可。例如,在一個進程執行特定CPU時間後將其優先順序降低一個級別,或者將處於等待進程的優先順序提高一個級別。這樣,一個進程如果等待時間很長,其優先順序將因持續提升而超越其他進程的優先順序,從而得到CPU時間。這樣,「飢餓」現象就可以防止。
不過,優先順序調度還有一個缺點,就是響應時間不能保證,除非將一個進程的優先順序設置為最高。即使將優先順序設置為最高,但如果每個人都將自己進程的優先順序設為最高,則響應時間還是無法保證。