計算機操作系統(tǒng)原理教程第6章 CPU調(diào)度_第1頁
計算機操作系統(tǒng)原理教程第6章 CPU調(diào)度_第2頁
計算機操作系統(tǒng)原理教程第6章 CPU調(diào)度_第3頁
計算機操作系統(tǒng)原理教程第6章 CPU調(diào)度_第4頁
計算機操作系統(tǒng)原理教程第6章 CPU調(diào)度_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

韓都衣舍官方旗艦店

韓都衣舍女裝您值得擁有

/

好狗友

/

廣東韓都衣舍批發(fā)

/

韓都衣舍旗艦店

/

1第6章CPU調(diào)度主要內(nèi)容基本概念調(diào)度準則調(diào)度算法多處理器調(diào)度實時調(diào)度算法評估進程調(diào)度模型26.1基本概念1、CPU-I/O區(qū)間周期進程的觀測屬性:進程執(zhí)行由CPU執(zhí)行和I/O等待周期組成。CPU區(qū)間-I/O區(qū)間-CPU區(qū)間-I/O區(qū)間-……-CPU區(qū)間通常具有大量短CPU區(qū)間和少量長CPU區(qū)間2、CPU調(diào)度程序當CPU變?yōu)榭臻e時,操作系統(tǒng)必須從就緒隊列中選擇一個進程來執(zhí)行,進程選擇是由CPU調(diào)度程序來執(zhí)行的,又稱為短期調(diào)度程序(short-termscheduler)就緒隊列可實現(xiàn)為FIFO隊列、優(yōu)先隊列、樹或無序鏈表等形式33、可搶占式調(diào)度CPU調(diào)度決策發(fā)生的環(huán)境當一個進程從運行狀態(tài)切換到等待狀態(tài)當一個進程從運行狀態(tài)切換到就緒狀態(tài)當一個進程從等待狀態(tài)切換到就緒狀態(tài)當一個進程終止時非搶占(nonpreemptive)調(diào)度(1、4情況)可搶占(preemptive)調(diào)度(2、3情況)可搶占調(diào)度的代價共享數(shù)據(jù)的不一致性問題影響操作系統(tǒng)內(nèi)核的設計44、分派程序分派程序負責將CPU的控制交給由短期調(diào)度程序所選擇的進程,其功能包括:切換上下文切換到用戶模式跳轉(zhuǎn)到用戶程序的合適位置以重新啟動這個程序分派延遲(dispatchlatency):分派程序停止一個進程而啟動另一個進程執(zhí)行所要花費的時間56.2調(diào)度準則常用的調(diào)度準則CPU使用率:CPU實際使用時間與總占用時間之比吞吐量:一個時間單元內(nèi)所完成進程的數(shù)量周轉(zhuǎn)時間:從進程提交到進程完成的時間間隔等待時間:在就緒隊列中等待所花時間之和響應時間:從提交請求到產(chǎn)生第一響應的時間希望最大化CPU使用率和吞吐量,最小化周轉(zhuǎn)時間、等待時間和響應時間絕大多數(shù)情況下,要優(yōu)化平均度量值有時需要優(yōu)化最小值或最大值本書使用平均等待時間來度量(有時用平均周轉(zhuǎn)時間)66.3調(diào)度算法1、先到先服務調(diào)度(first-come,first-served,FCFS)先請求CPU的進程被首先分配到CPU,可用FIFO隊列來實現(xiàn)平均等待時間通常相當長非搶占調(diào)度例

進程

區(qū)間時間P124P23P33P1P2P30242730平均等待時間(0+24+27)/3=17P2P3P103630平均等待時間(0+3+6)/3=372、最短作業(yè)優(yōu)先調(diào)度(shortest-job-first,SJF)當CPU可用時,賦給具有最短后續(xù)CPU區(qū)間(最短下一個CPU區(qū)間)的進程;如果兩個進程具有同樣長度的CPU區(qū)間,可使用FCFS調(diào)度來處理SJF調(diào)度算法最佳,平均等待時間最短困難:如何確定下一個CPU請求的長度指數(shù)平均(exponentialaverage)n+1=tn+(1-)n常用于長期調(diào)度,短期調(diào)度很難實現(xiàn)SJF算法可能是搶占或非搶占的,可搶占SJF調(diào)度有時稱為最短剩余時間優(yōu)先(shortest-remaining-time-first)調(diào)度8非搶占調(diào)度例:進程

區(qū)間時間P16P28P37P43搶占調(diào)度例:進程

到達時間

區(qū)間時間P108P214P329P435P4P1P3P2P1P2P4P1P30391624平均等待時間:(3+16+9+0)/4=7015101726平均等待時間:((10-1)+(1-1)+(17-2)+(5-3))/4=7.7591、設作業(yè)J1和J2的運行時間t1<=t2,當采用短作業(yè)優(yōu)先時,調(diào)度順序為J1、J2,平均周轉(zhuǎn)時間為(t1+(t1+t2))/2=(2t1+t2)/2。不采用短作業(yè)優(yōu)先時,調(diào)度順序為J2、J1,平均周轉(zhuǎn)時間為(t2+(t2+t1))/2=(t1+2t2)/2。顯然,得證。2、假設當n=k時成立,則當n=k+1時,J1,J2,……,Jk,Jk+1,它們的運行時間分別為:t1,t2,……,tk,

tk+1。(ti<=

ti+1)當采用短作業(yè)優(yōu)先時,調(diào)度順序為J1,J2,……,Jk,Jk+1,所有作業(yè)的平均周轉(zhuǎn)時間為:T=[T1+T2+…+Tk+Tk+1]/n=

[t1+(t1+t2)+…+(t1+t2+…+tk)+(t1+t2+…+tk+tk+1)]/n不采用短作業(yè)優(yōu)先時,假設調(diào)度順序為J1,J2,…,Jk+1,Jk。

所有作業(yè)的平均周轉(zhuǎn)時間為:T’=[T1+T2+…+Tk+1+Tk]/n=

[t1+(t1+t2)+…+(t1+t2+…+tk+1)+(t1+t2+…+tk+1+tk)]/n則:T’-T=[(tk+1+tk+1+tk)-(tk+tk+tk+1)]/n=(tk+1-tk)/n>=0。

得證。證明:采用SJF調(diào)度算法可以使平均周轉(zhuǎn)時間最少。10補充:最高響應比優(yōu)先算法響應比R=周轉(zhuǎn)時間/執(zhí)行時間=(執(zhí)行時間+等待時間)/執(zhí)行時間每次調(diào)度前計算響應比,選值最高的調(diào)度執(zhí)行,例:A運行完,計算BCD的響應比:B=(70+50)/50=2.4;C=(60+10)/10=7;D=(10+20)/20=1.5。調(diào)度C。C運行完,計算BD的響應比:B=(80+50)/50=2.6;D=(20+20)/20=2。先調(diào)度B后調(diào)度D。進程提交時間執(zhí)行時間A8:00120B8:5050C9:0010D9:5020開始時間結(jié)束時間等待時間周轉(zhuǎn)時間8:0010:00012010:1011:008013010:0010:10607011:0011:207090平均52.5102.5113、優(yōu)先權(quán)調(diào)度(priority-schedulingalgorithm)每個進程都有一個優(yōu)先權(quán)與其關(guān)聯(lián),具有最高優(yōu)先權(quán)的進程會被分配到CPU。具有相同優(yōu)先權(quán)的進程按FCFS順序調(diào)度低數(shù)字表示高優(yōu)先權(quán)優(yōu)先權(quán)定義:內(nèi)部或外部優(yōu)先權(quán)調(diào)度可以是搶占或非搶占優(yōu)先權(quán)調(diào)度的一個主要問題:無窮阻塞(indefiniteblocking)或稱為饑餓(starvation),即低優(yōu)先權(quán)進程可能無窮等待饑餓的解決方案:老化(aging)即逐漸增加在系統(tǒng)中等待很長時間的進程的優(yōu)先權(quán),例如UNIX系統(tǒng)中,每秒計算一次優(yōu)先權(quán):

p_pri=min{127,(p_cpu/16+PUSER+p_nice)}

每過一個時鐘嘀嗒加1用戶優(yōu)先權(quán)基數(shù)調(diào)節(jié)參數(shù)12優(yōu)先權(quán)調(diào)度例:進程

區(qū)間時間

優(yōu)先權(quán)P1103P211P324P415P552P2P5P1P3P4016161819平均等待時間:(6+0+16+18+1)/5=8.213優(yōu)先權(quán)調(diào)度練習進程到達時間CPU區(qū)間時間優(yōu)先級

P1833P2911P31023P41114P51242注:搶占和非搶占兩種情況141)搶占式P1P2P1P5P3P4891012161819平均等待時間:[(0+(10-9))+0+(16-10)+(18-11)+0]/5=2.8進程到達時間CPU區(qū)間時間優(yōu)先級

P1833P2911P31023P41114P51242152)非搶占式P1P2P5P3P481112161819平均等待時間:[(0+(11-9))+(16-10)+(18-11)+0]/5=3進程到達時間CPU區(qū)間時間優(yōu)先級

P1833P2911P31023P41114P51242164、輪轉(zhuǎn)法調(diào)度(round-robin,RR)類似于FCFS調(diào)度,但通過為每個進程分配時間量(timequantum)或稱為時間片,增加搶占以在進程間切換CPU調(diào)度程序循環(huán)就緒隊列,為每個進程分配不超過一個時間片間隔的CPU平均等待時間通常相當長RR調(diào)度算法是可搶占的性能很大程度上依賴于時間片的大小例(時間片為4ms):

進程

區(qū)間時間P124P23P33P1P2P3P1P1P1P1P1047101418222630平均等待時間:[(0+(10-4))+4+7]/3=5.6617輪轉(zhuǎn)法調(diào)度練習(時間片為2、5)進程CPU區(qū)間時間

P110P21P32P41P55181)時間片為2P1P2P3P4P5P1P5P1P5P1P1023568101214151819平均等待時間:{[(0+(8-2))+(12-10)+(15-14)]+2+3+5+[6+(14-12)+(10-8)]}/5=5.8進程CPU區(qū)間時間

P110P21P32P41P55192)時間片為5P1P2P3P4P5P1056891419平均等待時間:[(0+(14-5))+5+6+8+9]/5=7.4進程CPU區(qū)間時間

P110P21P32P41P55205、多級隊列調(diào)度

(multilevelqueue-schedulingalgorithm)根據(jù)進程的某些屬性,將其永久的分配到一個隊列,每個隊列有自己的調(diào)度算法隊列之間通常采用固定優(yōu)先權(quán)可搶占調(diào)度來實現(xiàn)也可以在隊列之間劃分時間片216、多級反饋隊列調(diào)度(multilevelfeedbackqueuescheduling)多級隊列調(diào)度算法中,進程進入系統(tǒng)后,被永久的分配到一個隊列,優(yōu)點是低調(diào)度開銷,缺點是不夠靈活多級反饋隊列調(diào)度允許進程在隊列之間移動,根據(jù)不同CPU區(qū)間特點以區(qū)分進程定義時需要考慮的參數(shù)隊列數(shù)量每個隊列的調(diào)度算法用以確定何時升級到較高優(yōu)先權(quán)隊列的方法用以確定進程何時降級到較低優(yōu)先權(quán)隊列的方法用以確定進程在需要服務時應進入哪個隊列的方法最通用的CPU調(diào)度算法,但也是最復雜的22常用調(diào)度算法小結(jié)先來先處理(FCFS)——非搶占最短作業(yè)優(yōu)先(SJF)優(yōu)先權(quán)搶占或非搶占時間片輪轉(zhuǎn)(RR)——搶占多級隊列多級反饋隊列236.4多處理器調(diào)度限定同構(gòu)系統(tǒng),即處理器功能相同任何可用處理器可用于運行隊列內(nèi)的任何進程通用內(nèi)存訪問(uniformmemoryaccess,UMA)負載分配(loadsharing)為每個處理器提供獨立的隊列使用一個共同就緒隊列針對2)的兩種調(diào)度方法每個處理器自我調(diào)度主-從結(jié)構(gòu),即選擇一個處理器為其他處理器進行調(diào)度非對稱多處理(asymmetricmultiprocessing):主服務器246.5實時調(diào)度實時計算分為硬實時(hardreal-time)和軟實時(softreal-time)實現(xiàn)軟實時功能要求系統(tǒng)必須有優(yōu)先權(quán)調(diào)度,且實時進程必須有最高的優(yōu)先權(quán)分派延遲必須小為了讓分派延遲保持很小,需要允許系統(tǒng)可搶占,實現(xiàn)方法有在長時間系統(tǒng)調(diào)用內(nèi)插入搶占點(preemptionpoint)-內(nèi)核安全位置使整個內(nèi)核可搶占-同步機制保護內(nèi)核數(shù)據(jù)結(jié)構(gòu)254、實時調(diào)度策略優(yōu)先級+時間片輪轉(zhuǎn)調(diào)度:獲得秒級的響應時間基于優(yōu)先權(quán)的非搶占調(diào)度:數(shù)秒~數(shù)百毫秒級的響應時間基于優(yōu)先權(quán)的固定點搶占調(diào)度:數(shù)十毫秒級基于優(yōu)先權(quán)的立即搶占調(diào)度:獲得毫秒級的響應時間時限調(diào)度算法時限要求最近的任務優(yōu)先占用處理機最少裕度調(diào)度算法:選擇裕度(laxity)最少的進程執(zhí)行裕度=截止時間-(就緒時間+計算時間)266.7進程調(diào)度模型Solaris2:基于優(yōu)先級的、可搶占的進程調(diào)度Windows2000:基于優(yōu)先權(quán)的、可搶占的調(diào)度算法Linux分時:優(yōu)先權(quán)的、基于信用度的調(diào)度算法實時:先到先處理(FCFS)和輪轉(zhuǎn)(RR)每一次定時器中斷,信用減1,當信用減為0時,暫停該進程,其它進程搶占若無可運行進程有信用,重新計算所有進程的信用:信用=信用/2+優(yōu)先級每次調(diào)度選擇信用多的進程27綜合練習題進程到達時間CPU區(qū)間時間優(yōu)先級

P10202P25153P31051P415104

FCFS、SJF(搶占、非搶占)、優(yōu)先級(搶占、非搶占)、RR(時間片=5)281、FCFSP1P2P3P4020354050平均等待時間:[0+(20-5)+(35-10)+(40-15)]/4=65/4=16.25進程到達時間CPU區(qū)間時間優(yōu)先級

P10202P25153P31051P415104292、SJF(非搶占)P1P3P4P2020253550平均等待時間:[0+(35-5)+(20-10)+(25-15)]/4=50/4=12.5進程到達時間CPU區(qū)間時間優(yōu)先級

P10202P25153P31051P415104302、SJF(搶占)P1P3P1P4P201015253550平均等待時間:[(0+(15-10))+(35-5)+(10-10)+(25-15)]=45/4=11.25進程到達時間CPU區(qū)間時間優(yōu)先級

P10202P25153P31051P415104313、優(yōu)先級(非搶占)P1P3P2P4020254050平均等待時間:[0+(25-5)+(20-10)+(40-15)]/4=55/4=13.75進程到達時間CPU區(qū)間時間優(yōu)先級

P10202P2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論