作業調度


先來先服務調度算法

先來先服務(FCFS)調度算法是一種最簡單的調度算法,該算法既可用於作業調度,也可用於進程調度。采用FCFS算法,每次從后備隊列中選擇一個或多個最先進入該隊列的作業,將他們調入內存,為他們分配資源,創建進程,然后放入就緒隊列。在進程調度中采用FCFS算法時,則每次調度是從就緒隊列中選擇一個最先進入該隊列的進程,為之分配處理機,使之投入運行。該進程一直運行到完成或發生某事件而阻塞后才放棄處理機。

短作業優先的調度算法

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

優先級調度算法

該算法又稱為優先權調度算法,他既可以用於作業調度,又可用於進程調度。該算法中的優先級用於描述作業運行的緊迫程度。

兩種類型:

非剝奪式(非搶占式)優先級調度算法。當一個進程正在處理上運行時,即使有某個更為重要或緊迫的進程進入就緒隊列,仍然讓正在進行的進程繼續運行,直到由於其自身原因而主動讓出處理機(任務完成或等待事件),才把處理機分配給更為重要或緊迫的進程。
剝奪式(搶占式)優先級調度算法。當一個進程正在處理機上運行時,若有某個更為重要或緊迫的進程進入就緒隊列,則立即暫停正在運行的進程,將處理機分配給更重要或緊迫的進程。
兩種優先級:

靜態優先級。優先級是在創建進程時確定的,且在進程的整個運行期間保持不變。確定靜態優先級的主要依據有進程類型、進程對資源的要求、用戶要求。
動態優先級。在進程運行過程中,根據進程情況的變化動態調整優先級。動態調整優先級的主要依據有進程占有 CPU 時間的長短、就緒進程等待 CPU 時間的長短。
一般來說,進程優先級的設置有下面幾點原則:

系統進程 > 用戶進程。系統進程作為系統的管理者,理應擁有更高的優先權。
交互型進程 > 非交互型進程。與用戶進行交互的進程需要被優先處理,即要有更高的優先級。
I/O型進程 > 計算型進程。頻繁使用 I/O 設備的進程稱為 I/O 型進程,I/O 設備的處理速度要比 CPU慢很多,所以將 I/O 型進程的優先級設置得更高,就有可能讓 I/O 設備盡早開始工作,進而提升系統的整體效率。

高響應比優先調度算法 (HRRN)
高響應比優先調度算法(Highest Response Ratio Next)是一種對CPU中央控制器響應比的分配的一種算法。HRRN是介於FCFS(先來先服務算法)與SJF(短作業優先算法)之間的折中算法,既考慮作業等待時間又考慮作業運行時間,既照顧短作業又不使長作業等待時間過長,改進了調度性能。

響應比=作業周轉時間/作業處理時間=(作業處理時間+作業等待時間)/作業處理時間=1+(作業等待時間/作業處理時間)
等待時間=最后一個的提交時間-該作業到達的時間
作業執行規則,響應比高的先執行
周轉時間=完成時間-提交時間

例題
作業號 提交時間 執行時間 完成時間 周轉時間
p1 10.0 2.0
p2 10.2 1.0
p3 10.4 0.5
p4 10.5 0.3
先執行的是第一個提交作業,然后其余的作業再用響應比來判斷執行順序
先執行p1 :

作業號 提交時間 執行時間 完成時間 周轉時間
p1 10.0 2.0 12.0 2.0
p2 10.2 1.0
p3 10.4 0.5
p4 10.5 0.3
設響應比為R
此時 R(p2)=1+((12.0-10.2)/1.0)=2.8
R(p3)=1+((12.0-10.4)/0.5)=4.2
R(p4)=1+((12.0-10.5)/0.3)=6
所以 執行p4:

作業號 提交時間 執行時間 完成時間 周轉時間
p1 10.0 2.0 12.0 2.0
p2 10.2 1.0
p3 10.4 0.5
p4 10.5 0.3 12.3 1.8
設響應比為R
此時 R(p2)=1+((12.3-10.2)/1.0)=3.1
R(p3)=1+((12.3-10.4)/0.5)=4.8
所以 再執行p3:

作業號 提交時間 執行時間 完成時間 周轉時間
p1 10.0 2.0 12.0 2.0
p2 10.2 1.0
p3 10.4 0.5 12.8 2.4
p4 10.5 0.3 12.3 1.8
因此最后執行p2:

作業號 提交時間 執行時間 完成時間 周轉時間
p1 10.0 2.0 12.0 2.0
p2 10.2 1.0 13.8 3.6
p3 10.4 0.5 12.8 2.4
p4 10.5 0.3 12.3 1.8
此算法作業的平均周轉時間為:(2.0+3.6+2.4+1.8)/4=2.45


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM