導航:首頁 > 源碼編譯 > sjf演算法是最簡單的調度嗎

sjf演算法是最簡單的調度嗎

發布時間:2022-06-25 04:12:32

❶ 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。

❷ 操作系統相關演算法:SJF和SPF的區別

SJF的調度演算法是從後備隊列中選擇一個或若干個估計運行時間最短的作業,將它們調入內存運行;而SPF調度演算法是從就緒隊列中選出一個估計運行時間最短的進程,將處理機分配給它,使它立即執行並一直執行到完成,或發生某事件而被阻塞放棄處理機時再重新調度。

❸ 以下五個作業,fcfs sjf hrrn三種調度演算法平均周轉時間,高響應比怎麼算

作業調度演算法 .

  1. 先來先服務(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 法時的吞吐量。另外,由於每次調度前要計算響應比,系統開銷也要相應增加。

❹ SJF是什麼意思

是網路上的一個梗,指stg界最高毒奶。

SJF指射擊游戲(Shooting game),游戲類型的一種,也是動作游戲的一種。射擊游戲帶有很明顯的動作游戲特點,也沒有純然的射擊游戲,因為射擊必須要經過一種動作方式來呈現它的「射擊」。

「毒奶」指反向加油、拖累隊友。

詳解:

奶,在電競中作為名詞時候,指使用於游戲治療輔助職業;在電競中作為動詞時即指治療的動作。

毒奶,顧名思義,有毒的奶,即起到治療的反作用,害死隊友的行為。

❺ 短作業優先調度演算法sjf 寫一下具體的運算過程,謝謝

短作業優先(SJF, Shortest Job First)又稱為「短進程優先」SPN(Shortest Process Next);這是對FCFS演算法的改進,其目標是減少平均周轉時間。
定義
對預計執行時間短的作業(進程)優先分派處理機。通常後來的短作業不搶先正在執行的作業。

❻ 處理機調度有哪幾種方式它們分別有什麼優缺點

先來先服務FCFS和短作業(進程)優先SJ(P)F調度演算法,SJF調度演算法用於作業和進程調度,能有效的降低作業的平均等待時間,提高系統吞吐量。缺點:該演算法對長作業不利,完全未考慮作業的緊迫程度,因此不能保證緊迫性作業會被及時處理,由於作業的長短只是根據用戶所提供的估計執行時間而定的,而用戶又可能會有意或無意地縮短其作業的估計運行時間,致使該演算法不一定能真正做到短作業優先調度。 高優先權優先調度演算法,優先權調度演算法包括非搶占式優先權演算法和搶占式優先權調度演算法;高響應比優先調度演算法,特點:有利於短作業、先來先服務、對於長作業也可獲得處理機。 基於時間片的輪轉調度演算法,時間片輪轉法和多級反饋隊列調度演算法。

❼ 如果多個進程同時到達系統,則平均周轉時間最短的進程調度演算法是什麼

如果多個進程同時到達系統,則平均周轉時間最短的進程調度演算法是 短進程優先調度演算法 。
短進程優先調度演算法SJ(P)F,是指對短作業或短進程優先調度的演算法。它們可以分別用於作業調度和進程調度。短作業優先(SJF)的調度演算法是從後備隊列中選擇一個或若干個估計運行時間最短的作業,將它們調入內存運行。而短進程(SPF)調度演算法則是從就緒隊列中選出一個估計運行時間最短的進程,將處理機分配給它,使它立即執行並一直執行到完成,或發生某事件而被阻塞放棄處理機再重新調度。
優點是SJ(P)F調度演算法能有效地降低作業(進程)的平均等待時間,提高系統吞吐量。
缺點是該演算法對長作業不利;完全未考慮作業的緊迫程度,因而不能保證緊迫性作業(進程)長期不被調度;由於作業(進程)的長短只是根據用戶所提供的估計執行時間而定的,而用戶又可能會有意或無意地縮短其作業的估計運行時間,致使該演算法不一定能真正做到短作業游戲那調度。
該程序定義了一個進程數據塊(struct spf),該數據塊有進程名(name)、到達時間(arrivetime)、服務時間(servicetime)、開始執行時間(starttime)、完成時間(finishtime)、周轉時間(zztime)、平均周轉時間(averzztime)。用到的公式有:完成時間=到達時間+服務時間;周轉時間=完成時間-到達時間;(第一次執行的進程的完成時間=該進程的到達時間;下一個進程的開始執行時間=上一個進程的完成時間)。運行進程的順序需要對進程的到達時間和服務時間進行比較。如果某一進程是從0時刻到達的,那麼首先執行該進程;之後就比較進程的服務時間,誰的服務時間短就先執行誰(如果服務時間相同則看它們的到達時間,到達時間短的先執行);如果到達時間和服務時間相同,則按先來先服務演算法執行。

❽ 作業調度的演算法有哪些

作業調度的演算法有:演算法有先來先服務、最短作業優先演算法、最高響應比優先演算法、基於優先數調度演算法。

1、演算法有先來先服務

最簡單的調度演算法,按作業的先後順序進行調度,只考慮每個作業的等待時間而未考慮執行時間的長短。

2、最短作業優先演算法

最短作業優先演算法是對先來先服務演算法的改進,其目標是減少平均周轉時間。對預計執行時間短的作業優先分派處理機。通常後來的短作業不搶先正在執行的作業。 只考慮執行時間而未考慮等待時間的長短。

3、最高響應比優先演算法

最高響應比優先演算法是對先來先服務方式和最短作業優先演算法方式的一種綜合平衡。最高響應比優先法調度策略同時考慮每個作業的等待時間的長短和估計需要的執行時間長短,從中選出相應比最高的作業投入執行。

4、基於優先數調度演算法

優先數調度演算法常用於批處理系統中。在進程調度中,每次調度時,系統把處理機分配給就緒隊列中優先數最高的進程。它又分為兩種:非搶占式優先數演算法和搶占式優先數演算法。

(8)sjf演算法是最簡單的調度嗎擴展閱讀:

作業調度是指按照時間周期(年、月、日、時、分、秒等)對作業進行分割,並根據業務需求、作業長度、存儲管理及依賴性關系對作業的執行方式加以調度。主要任務是從作業後備隊列中選擇作業進入主存運行。作業調度的功能主要有以下幾方面:

1、記錄各作業在系統中的狀態;

2、從後備隊列中挑選一部分作業投入運行;

3、從被選中的作業做好執行前的准備工作;

4、在作業執行結束時,做善後處理工作。

進行作業調度有很多作業調度演算法,這些作業調度演算法要實現的目標是:

1、調度對所有作業都是公平合理的;

2、應使設備有較高的利用率(提供系統利用率);

3、每次運行盡可能多的作業(提高系統吞吐量);

4、較快的相應時間。

❾ SJF什麼意思

最短作業優先演算法SJF SJF(Shortest Job First ) SJF演算法以進入系統的作業所要求的CPU時間為標准,總選取估計計算時間最短的作業投入運行。 SJF演算法的優缺點: 演算法易於實現。但效率不高,主要弱點是忽視了作業等待時間;會出現飢餓現象。 SJF演算法與FCFS演算法的比較: SJF的平均作業周轉時間比FCFS要小,故它的調度性能比FCFS好。 SJF調度演算法的問題: 實現SJF調度演算法需要知道作業所需運行時間,否則調度就沒有依據,要精確知道一個作業的運行時間是辦不到的。

❿ 理發店裡面只有一位理發師,A、B、C三位顧客同時來到這里。怎樣安排可以使三位顧客等待的時間總和最少

每次選擇預計花費時間最短的顧客進行理發,最後的三位顧客等待的時間總和最少。

這個問題可以用計算機中作業調度演算法來解決。同時到達的不同任務單核的情況下怎樣使等待時間的總和最少?已經經過證明的演算法,最短任務優先就可以做到。計算機裡面的一個經典演算法最短任務優先SJF,採用SJF策略可以使各個任務總體等待時間最短。

最短任務優先SJF調度演算法是被證明了的最佳調度演算法,這是因為對於給定的一組任務,SJF演算法的平均周轉時間最小。通過將短任務移到長任務之前,短任務等待時間的減少大於長任務等待時間的增加,因此,平均等待時間減少了。

(10)sjf演算法是最簡單的調度嗎擴展閱讀:

SJF演算法能有效地降低任務的平均等待時間,但是也存在一些不容忽視的缺點。

1、如果不斷有短任務進來,長任務有可能要一直等待。

2、如果無法准確知道任務的確切執行時間,致使該演算法不一定能真正做到短任務優先調度。

參考資料來源:網路——sjf

閱讀全文

與sjf演算法是最簡單的調度嗎相關的資料

熱點內容
安卓重力感應怎麼關 瀏覽:718
我的世界ios怎麼建伺服器地址 瀏覽:757
伺服器埠ip都是什麼意思 瀏覽:260
華為主題軟體app怎麼下 瀏覽:837
我們的圖片能夠收藏加密嗎 瀏覽:978
mysql空值命令 瀏覽:213
python整點秒殺 瀏覽:882
怎麼樣互傳app 瀏覽:292
python分布式抓包 瀏覽:36
輕量級php論壇 瀏覽:342
如何查看應用存儲在哪個文件夾 瀏覽:436
app開發項目范圍怎麼寫 瀏覽:76
androidjms 瀏覽:843
彈珠連貫解壓 瀏覽:243
程序員的網課 瀏覽:904
廣東加密狗防拷貝公司 瀏覽:450
rtf轉換pdf 瀏覽:350
單片機退出中斷 瀏覽:142
可以對單個內容加密的便簽 瀏覽:825
1024程序員節小米 瀏覽:316