分享進程調度是什么意思

進程調度是什么意思?對于進程大家再熟悉不過了,那么對于進程調度程序大家了解嗎?熟悉操作系統的用戶都知道,用戶進程數一般都多于處理機數,這就導致了進程會爭奪處理機的情況,這時候進程調度程序就派上用場了 ??赡芎芏嗷锇槎紩闷孢M程調度程序是怎么實現調度的呢?下面給大家總結了操作系統常見的五種進程調度算法 。

分享進程調度是什么意思


進程調度是什么意思?
無論是在批處理系統還是分時系統中,用戶進程數一般都多于處理機數、這將導致它們互相爭奪處理機 。另外,系統進程也同樣需要使用處理機 。這就要求進程調度程序按一定的策略,動態地把處理機分配給處于就緒隊列中的某一個進程,以使之執行 。
操作系統的常見進程調度算法:
一、先來先服務 (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調度 。每個進程被分配一個時間段,稱作它的時間片,即該進程允許運行的時間 。

推薦閱讀