進程調度是什么意思?設置系統經常見的5種進程調度算法
發表時間:2023-09-12 來源:明輝站整理相關軟件相關文章人氣:
[摘要]進程調度是什么意思?對于進程大家再熟悉不過了,那么對于進程調度程序大家了解嗎?熟悉操作系統的用戶都知道,用戶進程數一般都多于處理機數,這就導致了進程會爭奪處理機的情況,這時候進程調度程序就派上用場了。可能很多伙伴都會好奇進程調度程序是怎么實現調度的呢?下面給大家總結了操作系統常見的五種進程調度算法...
進程調度是什么意思?對于進程大家再熟悉不過了,那么對于進程調度程序大家了解嗎?熟悉操作系統的用戶都知道,用戶進程數一般都多于處理機數,這就導致了進程會爭奪處理機的情況,這時候進程調度程序就派上用場了。可能很多伙伴都會好奇進程調度程序是怎么實現調度的呢?下面給大家總結了操作系統常見的五種進程調度算法。
進程調度是什么意思?
無論是在批處理系統還是分時系統中,用戶進程數一般都多于處理機數、這將導致它們互相爭奪處理機。另外,系統進程也同樣需要使用處理機。這就要求進程調度程序按一定的策略,動態地把處理機分配給處于就緒隊列中的某一個進程,以使之執行。
操作系統的常見進程調度算法:
一、先來先服務 (FCFS,first come first served)
在所有調度算法中,最簡單的是非搶占式的FCFS算法。
算法原理:進程按照它們請求CPU的順序使用CPU.就像你買東西去排隊,誰第一個排,誰就先被執行,在它執行的過程中,不會中斷它。當其他人也想進入內存被執行,就要排隊等著,如果在執行過程中出現一些事,他現在不想排隊了,下一個排隊的就補上。此時如果他又想排隊了,只能站到隊尾去。
算法優點:易于理解且實現簡單,只需要一個隊列(FIFO),且相當公平
算法缺點:比較有利于長進程,而不利于短進程,有利于CPU 繁忙的進程,而不利于I/O 繁忙的進程
二、最短作業優先(SJF, Shortest Job First)
短作業優先(SJF, Shortest Job First)又稱為“短進程優先”SPN(Shortest Process Next);這是對FCFS算法的改進,其目標是減少平均周轉時間。
算法原理:對預計執行時間短的進程優先分派處理機。通常后來的短進程不搶先正在執行的進程。
算法優點:相比FCFS 算法,該算法可改善平均周轉時間和平均帶權周轉時間,縮短進程的等待時間,提高系統的吞吐量。
算法缺點:對長進程非常不利,可能長時間得不到執行,且未能依據進程的緊迫程度來劃分執行的優先級,以及難以準確估計進程的執行時間,從而影響調度性能。
三、最高響應比優先法(HRRN,Highest Response Ratio Next)
最高響應比優先法(HRRN,Highest Response Ratio Next)是對FCFS方式和SJF方式的一種綜合平衡。FCFS方式只考慮每個作業的等待時間而未考慮執行時間的長短,而SJF方式只考慮執行時間而未考慮等待時間的長短。因此,這兩種調度算法在某些極端情況下會帶來某些不便。HRN調度策略同時考慮每個作業的等待時間長短和估計需要的執行時間長短,從中選出響應比最高的作業投入執行。這樣,即使是長作業,隨著它等待時間的增加,W / T也就隨著增加,也就有機會獲得調度執行。這種算法是介于FCFS和SJF之間的一種折中算法。
算法原理:響應比R定義如下: R =(W+T)/T = 1+W/T
其中T為該作業估計需要的執行時間,W為作業在后備狀態隊列中的等待時間。每當要進行作業調度時,系統計算每個作業的響應比,選擇其中R最大者投入執行。
算法優點:由于長作業也有機會投入運行,在同一時間內處理的作業數顯然要少于SJF法,從而采用HRRN方式時其吞吐量將小于采用SJF 法時的吞吐量。
算法缺點:由于每次調度前要計算響應比,系統開銷也要相應增加。
四、時間片輪轉算法(RR,Round-Robin)
該算法采用剝奪策略。時間片輪轉調度是一種最古老,最簡單,最公平且使用最廣的算法,又稱RR調度。每個進程被分配一個時間段,稱作它的時間片,即該進程允許運行的時間。
算法原理:讓就緒進程以FCFS 的方式按時間片輪流使用CPU 的調度方式,即將系統中所有的就緒進程按照FCFS 原則,排成一個隊列,每次調度時將CPU 分派給隊首進程,讓其執行一個時間片,時間片的長度從幾個ms 到幾百ms。在一個時間片結束時,發生時鐘中斷,調度程序據此暫停當前進程的執行,將其送到就緒隊列的末尾,并通過上下文切換執行當前的隊首進程,進程可以未使用完一個時間片,就出讓CPU(如阻塞)。
算法優點:時間片輪轉調度算法的特點是簡單易行、平均響應時間短。
算法缺點:不利于處理緊急作業。在時間片輪轉算法中,時間片的大小對系統性能的影響很大,因此時間片的大小應選擇恰當
怎樣確定時間片的大小:
1、系統對響應時間的要求
2、就緒隊列中進程的數目
3、系統的處理能力
五、多級反饋隊列(Multilevel Feedback Queue)
多級反饋隊列調度算法是一種CPU處理機調度算法,UNIX操作系統采取的便是這種調度算法。
多級反饋隊列調度算法描述:
1、進程在進入待調度的隊列等待時,首先進入優先級最高的Q1等待。
2、首先調度優先級高的隊列中的進程。若高優先級中隊列中已沒有調度的進程,則調度次優先級隊列中的進程。例如:Q1,Q2,Q3三個隊列,只有在Q1中沒有進程等待時才去調度Q2,同理,只有Q1,Q2都為空時才會去調度Q3。
3、對于同一個隊列中的各個進程,按照時間片輪轉法調度。比如Q1隊列的時間片為N,那么Q1中的作業在經歷了N個時間片后若還沒有完成,則進入Q2隊列等待,若Q2的時間片用完后作業還不能完成,一直進入下一級隊列,直至完成。
4、在低優先級的隊列中的進程在運行時,又有新到達的作業,那么在運行完這個時間片后,CPU馬上分配給新到達的作業(搶占式)。
在多級反饋隊列調度算法中,如果規定第一個隊列的時間片略大于多數人機交互所需之處理時間時,便能夠較好的滿足各種類型用戶的需要。
關于進程調度的算法就給大家概括到這里了,經過小編的總結,相信大家對于進程調度程序都有一定了解了吧。學習教程快速掌握從入門到精通的電腦知識