操作系統(tǒng)原理處理機(jī)管理華中科技大學(xué)計(jì)算機(jī)學(xué)院實(shí)用教案_第1頁
操作系統(tǒng)原理處理機(jī)管理華中科技大學(xué)計(jì)算機(jī)學(xué)院實(shí)用教案_第2頁
操作系統(tǒng)原理處理機(jī)管理華中科技大學(xué)計(jì)算機(jī)學(xué)院實(shí)用教案_第3頁
操作系統(tǒng)原理處理機(jī)管理華中科技大學(xué)計(jì)算機(jī)學(xué)院實(shí)用教案_第4頁
操作系統(tǒng)原理處理機(jī)管理華中科技大學(xué)計(jì)算機(jī)學(xué)院實(shí)用教案_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1第六章 處理機(jī)管理(gunl)第1頁/共53頁第一頁,共54頁。2第六章 處理機(jī)調(diào)度(diod)6.1 處理機(jī)的二級調(diào)度(diod)宏觀上:作業(yè)(zuy)調(diào)度微觀上:進(jìn)程調(diào)度第2頁/共53頁第二頁,共54頁。3P106 11sb:緩沖區(qū)s中是否(sh fu)有空,初值為1;tb: 緩沖區(qū)t中是否(sh fu)有空,初值為1;sa:緩沖區(qū)s中是否(sh fu)有數(shù)據(jù),初值為0;ta: 緩沖區(qū)t中是否(sh fu)有數(shù)據(jù),初值為0;第3頁/共53頁第三頁,共54頁。4第4頁/共53頁第四頁,共54頁。5這樣(zhyng)做程序運(yùn)行的結(jié)果是正確的,但并行工作的程度大大降低,如何改?第5頁/共53頁

2、第五頁,共54頁。6第6頁/共53頁第六頁,共54頁。7對于(duy) 1 p1與P2、P3、P4同步(三個(gè)信號燈)對于(duy) 2 P3、P4與p5同步(二個(gè)信號燈)信號燈初值均為1第7頁/共53頁第七頁,共54頁。86.2 作業(yè)調(diào)度(diod)6.2.1作業(yè)調(diào)度(diod)的功能 作業(yè)調(diào)度的主要任務(wù)是完成作業(yè)從后備狀態(tài)到執(zhí)行狀態(tài)和從執(zhí)行狀態(tài)到完成狀態(tài)的轉(zhuǎn)變。 作業(yè)調(diào)度功能: 1.記錄已進(jìn)入系統(tǒng)的各作業(yè)的情況(JCB,Job Control Block); 2.按一定的調(diào)度算法,從后備作業(yè)中選擇一個(gè)或幾個(gè)作業(yè)進(jìn)入系統(tǒng)內(nèi)存; 3 . 為 被 選 中 的 作 業(yè) 創(chuàng) 建 進(jìn) 程 , 并 且 為

3、 其 申 請(shnqng)系統(tǒng)資源; 4.作業(yè)加束后作善后處理工作。第8頁/共53頁第八頁,共54頁。96.2 作業(yè)(zuy)調(diào)度 6.2.2 作業(yè)(zuy)控制塊(JCB,Job Control Block)每 個(gè) 作 業(yè) 進(jìn) 入 系 統(tǒng)(xtng)時(shí)由系統(tǒng)(xtng)為其建立一個(gè)作業(yè)控制塊JCB( J o b C o n t r o l Block),它是存放作業(yè)控制和管理信息的數(shù)據(jù)結(jié)構(gòu),主要信息見右圖。第9頁/共53頁第九頁,共54頁。106.2.3 調(diào)度性能(xngnng)的衡量 作業(yè)調(diào)度算法規(guī)定了從后備作業(yè)中選擇作業(yè)進(jìn)入系統(tǒng)內(nèi)存的原則,這些原則的性能如何,就是本節(jié)所討論的問題。 一

4、、確定調(diào)度算法時(shí)應(yīng)考慮的因素 1.應(yīng)與系統(tǒng)的整體設(shè)計(jì)目標(biāo)一致 2.考慮系統(tǒng)中各種資源的負(fù)載均勻(jnyn) 3.保證作業(yè)的執(zhí)行 4.對一些專用資源的使用特性的考慮第10頁/共53頁第十頁,共54頁。116.2.3 調(diào)度(diod)性能的衡量二、調(diào)度性能的衡量通常(tngchng)采用平均周轉(zhuǎn)時(shí)間和帶權(quán)平均周轉(zhuǎn)時(shí)間作業(yè)的周轉(zhuǎn)時(shí)間: ti = tci-tsi ti:作業(yè)周轉(zhuǎn)時(shí)間 tci:作業(yè)完成時(shí)間 tsi: 作業(yè)提交時(shí)間第11頁/共53頁第十一頁,共54頁。126.2.3 調(diào)度性能(xngnng)的衡量第12頁/共53頁第十二頁,共54頁。136.2.4 先來先服務(wù)調(diào)度(diod)算法和短作業(yè)優(yōu)

5、先調(diào)度(diod)算法 先來先服務(wù)調(diào)度算法: 先來先服務(wù)算法是按作業(yè)來到的先后次序進(jìn)行調(diào)度的,換句話說,調(diào)度程序每次選擇的作業(yè)是等待時(shí)間(shjin)最久的,而不管作業(yè)的運(yùn)行時(shí)間(shjin)的長短。這種調(diào)度算法突出的優(yōu)點(diǎn)是實(shí)現(xiàn)簡單,效率軟低,在一些實(shí)際的系統(tǒng)和一般應(yīng)用程序中采用這種算法的較多。第13頁/共53頁第十三頁,共54頁。146.2.4 先來先服務(wù)調(diào)度算法和短作業(yè)(zuy)優(yōu)先調(diào)度算法 短作業(yè)優(yōu)先調(diào)度算法: 短作業(yè)優(yōu)先調(diào)度算法考慮作業(yè)的運(yùn)行(ynxng)時(shí)間,每次總是選擇一個(gè)運(yùn)行(ynxng)時(shí)間最小的作業(yè)調(diào)入內(nèi)存(系統(tǒng)). 在一般情況下這種調(diào)度算法比先來先服務(wù)調(diào)度算法的效率要高一些

6、。實(shí)現(xiàn)相對先來先服務(wù)調(diào)度算法要困難些,如果作業(yè)的到來順序及運(yùn)行(ynxng)時(shí)間不合適,會(huì)出現(xiàn)餓死現(xiàn)象,例如,系統(tǒng)中有一個(gè)運(yùn)行(ynxng)時(shí)間很長的作業(yè)JN,和幾個(gè)運(yùn)行(ynxng)時(shí)間小的作業(yè),然后,不斷地有運(yùn)行(ynxng)時(shí)間小于JN的作業(yè)的到來,這樣,作業(yè)JN就得不可調(diào)度而餓死。另外,作業(yè)運(yùn)行(ynxng)的估計(jì)時(shí)間也有問題。第14頁/共53頁第十四頁,共54頁。156.2.4 先來先服務(wù)調(diào)度算法(sun f)和短作業(yè)優(yōu)先調(diào)度算法(sun f)第15頁/共53頁第十五頁,共54頁。166.2.5 其它(qt)幾種調(diào)度算法響應(yīng)比高者優(yōu)先調(diào)度算法:先來先服務(wù)和短作業(yè)(zuy)優(yōu)先算法都有

7、其片面性,先來先服務(wù)調(diào)度算法只考慮作業(yè)(zuy)的等待時(shí)間,而忽視了作業(yè)(zuy)的運(yùn)行時(shí)間,短作業(yè)(zuy)優(yōu)先算法則相反,只考慮了作業(yè)(zuy)的運(yùn)行時(shí)間,而忽視了作業(yè)(zuy)黲等待時(shí)間。響應(yīng)比高者優(yōu)先調(diào)度算法是介于這兩種算法之間的一種拆衷的算法。第16頁/共53頁第十六頁,共54頁。176.2.5 其它(qt)幾種調(diào)度算法 響應(yīng)比高者優(yōu)先調(diào)度算法 這樣算法從理論上講是比較完備(wnbi)的,但作業(yè)調(diào)度程序要統(tǒng)計(jì)作業(yè)的等待時(shí)間,使用用戶的估計(jì)的運(yùn)行時(shí)間,并要作浮點(diǎn)運(yùn)算(這是系統(tǒng)程序最忌諱的)浪費(fèi)大量的計(jì)算時(shí)間,這是系統(tǒng)程序所不允許的。第17頁/共53頁第十七頁,共54頁。186.2.5

8、其它(qt)幾種調(diào)度算法 優(yōu)先數(shù)調(diào)度算法 優(yōu)先數(shù)調(diào)度算法是終合考慮各方面的因素(作業(yè)(zuy)等待時(shí)間、運(yùn)行時(shí)間、緩急程度,系統(tǒng)資源使用等),給每個(gè)作業(yè)(zuy)設(shè)置一個(gè)優(yōu)先數(shù),調(diào)度程序總是選擇一個(gè)優(yōu)先數(shù)最大(或者最?。┑淖鳂I(yè)(zuy)調(diào)入(系統(tǒng))內(nèi)存。這種算法實(shí)現(xiàn)的困難在于如何終合考慮,這些因素之間的關(guān)系怎樣處理。第18頁/共53頁第十八頁,共54頁。196.2.5 其它幾種調(diào)度(diod)算法 均衡調(diào)度算法 均衡調(diào)度算法就是( jish)一種更為理想化的調(diào)度算法,如何實(shí)現(xiàn)就更困難,并且算法本身的開銷有時(shí)會(huì)遠(yuǎn)選大于先來先服務(wù)和小作業(yè)優(yōu)先調(diào)度算法的不足,這也是這兩種算法被眾多系統(tǒng)采用的最根本的

9、原因。第19頁/共53頁第十九頁,共54頁。206.3 進(jìn)程調(diào)度6.3.1 調(diào)度/分派(fnpi)結(jié)構(gòu) 處理機(jī)分配由調(diào)度和分派兩個(gè)功能組成。 調(diào)度:組織和維護(hù)就緒進(jìn)程隊(duì)列。包括確定調(diào)度算法、按調(diào)度算法組織和維護(hù)就緒進(jìn)程隊(duì)列。 分派:是指當(dāng)處理機(jī)空閑時(shí),從就緒隊(duì)列隊(duì)首中移一個(gè)PCB,并將該進(jìn)程投入運(yùn)行。 調(diào)度與進(jìn)程控制和進(jìn)程通信的功能有密切的聯(lián)系,當(dāng)一個(gè)進(jìn)程阻塞時(shí),這種進(jìn)程將進(jìn)入相應(yīng)的等待隊(duì)列中,并讓出CPU,調(diào)用進(jìn)程分派程序選擇一個(gè)就緒進(jìn)程占用CPU;當(dāng)一進(jìn)程被喚醒時(shí),這種進(jìn)程將插入到就緒進(jìn)程隊(duì)列中。 在一般(ybn)的操作系統(tǒng)教材中把上述功能稱為進(jìn)程調(diào)度。第20頁/共53頁第二十頁,共54頁

10、。216.3.2 進(jìn)程調(diào)度(diod)的功能 1.記錄和保持系統(tǒng)中所有進(jìn)程的有關(guān)情況和狀態(tài)特征 有關(guān)進(jìn)程調(diào)度的信息是記錄在PCB中的,在進(jìn)程調(diào)度中用到的主要是進(jìn)程的狀態(tài)、調(diào)度優(yōu)先級(優(yōu)先數(shù))、就緒(jix)進(jìn)程隊(duì)列等。第21頁/共53頁第二十一頁,共54頁。226.3.2 進(jìn)程(jnchng)調(diào)度的功能 2.決定分配(fnpi)(處理機(jī))策略 確定進(jìn)程調(diào)度的策略,例如,先來先服務(wù)、優(yōu)先數(shù)調(diào)度策略,調(diào)度策略的不同,組織就緒進(jìn)程隊(duì)列的方式也不同。先來先服務(wù)調(diào)度策略,就緒隊(duì)列要按等待時(shí)間大到小的順序排隊(duì);優(yōu)先數(shù)調(diào)度,則就緒進(jìn)程隊(duì)列要按優(yōu)先數(shù)的升療(或降序)的方式排隊(duì)。等等。第22頁/共53頁第二十二

11、頁,共54頁。236.3.2 進(jìn)程(jnchng)調(diào)度的功能 3.實(shí)施處理機(jī)的分配 總而言之,進(jìn)程調(diào)度(diod)包括: 調(diào)度(diod)算法的選擇(調(diào)度(diod)算法) 調(diào)度(diod)時(shí)機(jī)的選擇(調(diào)度(diod)時(shí)機(jī)) 實(shí)施進(jìn)程調(diào)度(diod)(調(diào)度(diod)程序)第23頁/共53頁第二十三頁,共54頁。246.3.2 進(jìn)程調(diào)度(diod)的功能 調(diào)度時(shí)機(jī)(UNIX系統(tǒng)中): (1)進(jìn)程自動(dòng)放棄處理機(jī): 當(dāng)進(jìn)程進(jìn)入高低優(yōu)先級睡眠狀態(tài)(zhungti)時(shí) (在sleep()程序中); 在進(jìn)程進(jìn)入暫停狀態(tài)(zhungti)時(shí)(在stop()程序中); 進(jìn)程進(jìn)入僵死狀態(tài)(zhungti)時(shí)

12、(在exit()程序中);第24頁/共53頁第二十四頁,共54頁。256.3.2 進(jìn)程(jnchng)調(diào)度的功能 在中斷自陷總控程序中,當(dāng)先前態(tài)是用戶態(tài),且runrun標(biāo)志大于0,則進(jìn)行強(qiáng)迫調(diào)度,強(qiáng)行剝奪現(xiàn)運(yùn)行進(jìn)程的處理機(jī),轉(zhuǎn)進(jìn)程調(diào)度程序。 runrun標(biāo)志大于0是說明系統(tǒng)中處于就緒狀態(tài)的進(jìn)程的優(yōu)先級高于現(xiàn)運(yùn)行進(jìn)程的優(yōu)先級,這時(shí)要進(jìn)行強(qiáng)迫調(diào)度,出現(xiàn)這種情況有兩種可能:高低優(yōu)先級睡眠進(jìn)程被喚醒后其優(yōu)先級高于現(xiàn)運(yùn)行進(jìn)程;當(dāng)一個(gè)進(jìn)程占用一段時(shí)間的CPU后,它的優(yōu)先級要降低,造成現(xiàn)運(yùn)行進(jìn)程的優(yōu)先級低于系統(tǒng)中的其它就緒進(jìn)程(時(shí)間片到是其中的一種情況)。 教材p136進(jìn)程調(diào)度的幾種時(shí)機(jī)是一般(ybn)操作

13、系統(tǒng)原理中的概念。 2)強(qiáng)迫調(diào)度第25頁/共53頁第二十五頁,共54頁。266.3.2 進(jìn)程調(diào)度(diod)的功能 實(shí)施進(jìn)程調(diào)度的程序稱為進(jìn)程調(diào)度程序(或稱調(diào)度程序),在通常的操作系統(tǒng)原理中,該程序?qū)儆?shy)系統(tǒng)進(jìn)程的執(zhí)行程序,有的操作系統(tǒng)是把進(jìn)程調(diào)度程序作一個(gè)特別的處理,如早期的操作系統(tǒng)中把進(jìn)程調(diào)度程序稱為交通控制程序,不屬于(shy)系統(tǒng)中的任何進(jìn)程。 在UNIX系統(tǒng)中,進(jìn)程調(diào)度程序swtch( )分屬個(gè)不同的進(jìn)程,即調(diào)用swtch( )的進(jìn)程讓出處理機(jī)的進(jìn)程)、0進(jìn)程、被調(diào)度到的進(jìn)程。第26頁/共53頁第二十六頁,共54頁。276.3.3 調(diào)度(diod)方式(略)第27頁/共53頁

14、第二十七頁,共54頁。286.3.4 調(diào)度(diod)用的進(jìn)程狀態(tài)變遷圖在這個(gè)圖中新創(chuàng)建的進(jìn)程(jnchng)進(jìn)入低優(yōu)就緒狀態(tài),一個(gè)運(yùn)行進(jìn)程(jnchng)因時(shí)間片到(實(shí)際上是計(jì)算量大的進(jìn)程(jnchng))而轉(zhuǎn)換成低優(yōu)就緒;進(jìn)程(jnchng)因等待I/O完成而轉(zhuǎn)換高優(yōu)就緒.第28頁/共53頁第二十八頁,共54頁。296.3.4 調(diào)度用的進(jìn)程狀態(tài)(zhungti)變遷圖調(diào)度程序首先看高優(yōu)就緒進(jìn)程隊(duì)列(duli)是否為空,若不為空,則從高優(yōu)就緒進(jìn)程中選擇一個(gè)進(jìn)程占用CPU,否則,從低優(yōu)就緒隊(duì)列(duli)中選擇。 這種調(diào)度效果是能充分地利用系統(tǒng)資源。為什么?UNIX系統(tǒng)的進(jìn)程調(diào)度狀態(tài)變遷圖,與

15、前一種調(diào)度變遷圖有著異曲同功的效果。第29頁/共53頁第二十九頁,共54頁。306.3.5 進(jìn)程優(yōu)先(yuxin)數(shù)調(diào)度算法 優(yōu)先數(shù)調(diào)度算法是目前操作系統(tǒng)廣泛采用的一種進(jìn)程調(diào)度算法,這種算法按照某種原則由系統(tǒng)(或用戶、或系統(tǒng)與用戶結(jié)合)賦予每個(gè)進(jìn)程一個(gè)優(yōu)先數(shù),在處理機(jī)空閑時(shí),進(jìn)程調(diào)度程序就從就緒進(jìn)程中選擇一個(gè)優(yōu)先數(shù)最大(或者最?。┑倪M(jìn)程占用CPU(該進(jìn)程就從就緒狀態(tài)轉(zhuǎn)換成運(yùn)行狀態(tài))。 采用這種調(diào)度算法的關(guān)鍵是如何確定進(jìn)程的優(yōu)先數(shù)、一個(gè)進(jìn)程的優(yōu)先數(shù)確定之后是固定的,還是隨著(su zhe)該進(jìn)程運(yùn)行的情況的變化而變化。第30頁/共53頁第三十頁,共54頁。316.3.5 進(jìn)程優(yōu)先(yuxin)數(shù)

16、調(diào)度算法 靜態(tài): 進(jìn)程的優(yōu)先數(shù)在進(jìn)程創(chuàng)建時(shí)確定后就不再變化 確定進(jìn)程優(yōu)先數(shù): 系統(tǒng)確定:(運(yùn)行時(shí)間、使用資源,進(jìn)程的類型) 用戶確定:(緊迫程度(chngd),計(jì)費(fèi)與進(jìn)程優(yōu)先數(shù)有關(guān)) 系統(tǒng)與用戶結(jié)合(用戶可以為本用戶的進(jìn)程設(shè)置優(yōu)先數(shù),但不是作調(diào)度用,系統(tǒng)還要根據(jù)系統(tǒng)情況把用戶設(shè)置的進(jìn)程優(yōu)先數(shù)作為確定進(jìn)程優(yōu)先數(shù)的一個(gè)參數(shù))第31頁/共53頁第三十一頁,共54頁。326.3.5 進(jìn)程優(yōu)先數(shù)調(diào)度(diod)算法 動(dòng)態(tài)進(jìn)程優(yōu)先數(shù): 系統(tǒng)在運(yùn)行的過程中,根據(jù)系統(tǒng)的設(shè)計(jì)目標(biāo),不斷地調(diào)整進(jìn)程的優(yōu)先數(shù),這種方法的優(yōu)點(diǎn)是能比較客觀地反映(fnyng)進(jìn)程的實(shí)際情況和保證達(dá)到系統(tǒng)設(shè)計(jì)目標(biāo)。第32頁/共53頁第三十

17、二頁,共54頁。336.3.6 循環(huán)(xnhun)輪轉(zhuǎn)調(diào)度 循環(huán)輪轉(zhuǎn)調(diào)度實(shí)際上是一種先來先服務(wù)算法的調(diào)度算法,它把系統(tǒng)的響應(yīng)時(shí)間分成大小相等(或不相等)的時(shí)間單位,稱為時(shí)間片。每個(gè)進(jìn)程(jnchng)被調(diào)度到后,占用一個(gè)時(shí)間片,片用完后,該進(jìn)程(jnchng)讓出CPU,由運(yùn)行狀態(tài)轉(zhuǎn)換成就緒狀態(tài),排在就緒隊(duì)列的隊(duì)尾。多個(gè)進(jìn)程(jnchng)循環(huán)輪轉(zhuǎn)。第33頁/共53頁第三十三頁,共54頁。346.3.6 循環(huán)(xnhun)輪轉(zhuǎn)調(diào)度第34頁/共53頁第三十四頁,共54頁。356.3.6 循環(huán)(xnhun)輪轉(zhuǎn)調(diào)度 系統(tǒng)按進(jìn)程( jnchng)轉(zhuǎn)換成就緒狀態(tài)的時(shí)間的降序排隊(duì),調(diào)度程序每次調(diào)度,總是

18、從隊(duì)首移出一程的PCB,然后,將此進(jìn)程( jnchng)投入運(yùn)行(由就緒狀態(tài)轉(zhuǎn)換成運(yùn)行狀態(tài))。一個(gè)運(yùn)行時(shí)間片到的進(jìn)程( jnchng)從運(yùn)行狀態(tài)轉(zhuǎn)換成就緒狀態(tài)后,排在就緒隊(duì)列的隊(duì)尾。 評價(jià): 優(yōu)點(diǎn)是實(shí)現(xiàn)簡單、系統(tǒng)開銷小 缺點(diǎn)是不靈活,當(dāng)系統(tǒng)中進(jìn)程( jnchng)較少時(shí),系統(tǒng)開銷變大 為什么? 由于該算法簡單易于實(shí)現(xiàn),且系統(tǒng)開銷較小,早期的分時(shí)操作系統(tǒng)和目前一些應(yīng)用系統(tǒng)中廣泛采用了這種調(diào)度算法。第35頁/共53頁第三十五頁,共54頁。366.3.6 循環(huán)(xnhun)輪轉(zhuǎn)調(diào)度 二、可變時(shí)間片輪轉(zhuǎn)調(diào)度 為了克服前種調(diào)度算法的缺點(diǎn),人們設(shè)計(jì)出一種可變時(shí)間片的調(diào)度算法,其思想是:時(shí)間片的大小是可變的

19、,系統(tǒng)可根據(jù)系統(tǒng)中當(dāng)前的進(jìn)程數(shù)來確定時(shí)間片的大小。 這種算法從理論上克服了系統(tǒng)中進(jìn)程數(shù)很少時(shí)系統(tǒng)開銷大的缺點(diǎn),但修改時(shí)間片的大小,統(tǒng)計(jì)系統(tǒng)進(jìn)程的數(shù)量也需要消耗系統(tǒng)時(shí)間,還有一個(gè)調(diào)整(tiozhng)時(shí)間片大小的周期,太大,等于是固定時(shí)間片,太小,系統(tǒng)開銷很大,得不嘗失。第36頁/共53頁第三十六頁,共54頁。376.4 UNIX系統(tǒng)的進(jìn)程調(diào)度(diod)6.4.1 UNIX調(diào)度(diod)算法 我們從調(diào)度算法、調(diào)度時(shí)機(jī)、調(diào)度程序三個(gè)方面來分析UNIX系統(tǒng)的進(jìn)程調(diào)度。 一、調(diào)度算法 UNIX系統(tǒng)采用優(yōu)先(yuxin)數(shù)調(diào)度算法,每個(gè)進(jìn)程有一個(gè)進(jìn)程優(yōu)先(yuxin)數(shù),p_pri是proc結(jié)構(gòu)中的

20、一個(gè)變量,其取值范圍是127127,其值越小,進(jìn)程的優(yōu)先(yuxin)級越高(即,調(diào)度程序總是從就緒狀態(tài)的進(jìn)程中選擇一個(gè)優(yōu)先(yuxin)數(shù)最小的進(jìn)程占用CPU)。第37頁/共53頁第三十七頁,共54頁。386.4 UNIX系統(tǒng)(xtng)的進(jìn)程調(diào)度6.4.1 UNIX調(diào)度算法 優(yōu)先數(shù)的確定: 1.系統(tǒng)設(shè)置 在進(jìn)程進(jìn)入( jnr)睡眠狀態(tài)時(shí),在SLEEP()中設(shè)置將要進(jìn)入( jnr)睡眠狀態(tài)進(jìn)程的優(yōu)先數(shù),當(dāng)該進(jìn)程被喚醒后,就以系統(tǒng)給它設(shè)置的優(yōu)先數(shù)去參與處理機(jī)的竟?fàn)?。?8頁/共53頁第三十八頁,共54頁。396.4 UNIX系統(tǒng)(xtng)的進(jìn)程調(diào)度6.4.1 UNIX調(diào)度算法 進(jìn)程進(jìn)入高優(yōu)先

21、級睡眠的原因: (1)0進(jìn)程(100優(yōu)先數(shù)); (2)因資源請求得不到滿足的進(jìn)程,磁盤(80),打印機(jī) (20),; (3)等待塊設(shè)備I/O完成的進(jìn)程,(50)。 進(jìn)程進(jìn)入低優(yōu)先級睡眠的原因: (1)因等待字符設(shè)備I/O完成的進(jìn)程,(020的優(yōu)先數(shù)); (2) 所有處于用戶態(tài)運(yùn)行進(jìn)程,優(yōu)先數(shù)一般情況下為大于100。 這樣(zhyng)做的目的是為什么? 為使系統(tǒng)資源得到充分的利用,換句話說,是為了提高系統(tǒng)資源的使用效率。第39頁/共53頁第三十九頁,共54頁。406.4 UNIX系統(tǒng)的進(jìn)程( jnchng)調(diào)度6.4.1 UNIX調(diào)度算法 2.優(yōu)先(yuxin)數(shù)的計(jì)算 (1)計(jì)算公式: p_

22、pri = 127, (p_cpu/16+p_nice+PUSER) 其中: p_cpu 進(jìn)程占用CPU的程度 p_nice 用戶通過系統(tǒng)調(diào)用nice(priority)設(shè)置 的進(jìn)程優(yōu)先(yuxin)數(shù)。 PUSER 常數(shù),其值為100第40頁/共53頁第四十頁,共54頁。416.4 UNIX系統(tǒng)(xtng)的進(jìn)程調(diào)度6.4.1 UNIX調(diào)度算法第41頁/共53頁第四十一頁,共54頁。42 UNIX系統(tǒng)的設(shè)計(jì)者采用了一個(gè)巧妙的方法,既避免了繁雜(fnz)的統(tǒng)計(jì)工作,也不需做浮點(diǎn)運(yùn)行算。(這就是我們要學(xué)習(xí)的工程能力,或稱分析問題和解決問題的能力,學(xué)會(huì)和記往一兩個(gè)科學(xué)的定理和公式并不難,難的是怎樣

23、將這些普遍的理論用于實(shí)際的工程之中,UNIX系統(tǒng)中有很多值得我們學(xué)習(xí)的地方,對p_cpu的處理就是其中之一,這里并不要求把UNIX中的p_cpu的處理完全記住,而是要通過對它的了解,學(xué)會(huì)處理實(shí)際工程問題的方法。)6.4 UNIX系統(tǒng)的進(jìn)程調(diào)度(diod)6.4.1 UNIX調(diào)度(diod)算法第42頁/共53頁第四十二頁,共54頁。43 UINX系統(tǒng)中對p_cpu的處理: 每個(gè)時(shí)鐘中斷:p_cpu+; 每秒鐘(時(shí)鐘中斷): if(p_cpu-SCHMAG PUSERB.現(xiàn)運(yùn)行進(jìn)程在自陷處理程序trap( )末尾重新計(jì)算本進(jìn)程的優(yōu)先數(shù).目的:調(diào)用(dioyng)nice() 設(shè)置的本進(jìn)程的優(yōu)先數(shù)

24、p_nice的改變反映到p_pri中去;C.現(xiàn)運(yùn)行進(jìn)程(jnchng)在執(zhí)行時(shí)鐘中斷處理程序時(shí),若發(fā)現(xiàn)中斷前為用戶態(tài),則每隔1秒鐘重新計(jì)算本進(jìn)程(jnchng)的優(yōu)先數(shù)。因?yàn)楝F(xiàn)運(yùn)行進(jìn)程(jnchng)已經(jīng)占用了一些CPU的時(shí)間,要反映到p_pri中去。6.4 UNIX系統(tǒng)(xtng)的進(jìn)程調(diào)度6.4.1 UNIX調(diào)度算法第46頁/共53頁第四十六頁,共54頁。47這三種重新計(jì)算(調(diào)整)進(jìn)程優(yōu)先數(shù)都沒有修改由系統(tǒng)設(shè)置的進(jìn)程優(yōu)先數(shù),從而保證了處于核心態(tài)的進(jìn)程能盡快地得到CPU,使得系統(tǒng)資源(設(shè)備)能得到充分地利用,提高了系統(tǒng)資源的使用效率,而計(jì)算進(jìn)程的優(yōu)先數(shù)又使得系統(tǒng)中所有處于用戶態(tài)的進(jìn)程能較均衡

25、地占用CPU,保證了各用戶終端的響應(yīng)時(shí)間(shjin),實(shí)現(xiàn)了分時(shí)操作系統(tǒng)的特性。6.4 UNIX系統(tǒng)(xtng)的進(jìn)程調(diào)度6.4.1 UNIX調(diào)度算法第47頁/共53頁第四十七頁,共54頁。486.4 UNIX系統(tǒng)(xtng)的進(jìn)程調(diào)度6.4.1 UNIX調(diào)度時(shí)機(jī)調(diào)度時(shí)機(jī)(UNIX系統(tǒng)中):1)進(jìn)程自動(dòng)(zdng)放棄處理機(jī)在進(jìn)程進(jìn)入高低優(yōu)先級睡眠狀態(tài)時(shí)(在sleep()程序中);在進(jìn)程進(jìn)入暫停狀態(tài)時(shí)(在stop()程序中);進(jìn)程進(jìn)入僵死狀態(tài)時(shí)(在exit()程序中);2)強(qiáng)迫調(diào)度在中斷自陷總控程序(chngx)中,當(dāng)先前態(tài)是用戶態(tài),且runrun標(biāo)志大于0,則進(jìn)行強(qiáng)迫調(diào)度,強(qiáng)行剝奪現(xiàn)運(yùn)行進(jìn)程的處理機(jī),轉(zhuǎn)進(jìn)程調(diào)度程序(chngx)。第48頁/共53頁第四十八頁,共54頁。496.4 UNIX系統(tǒng)(xtng)的進(jìn)程調(diào)度6.4.2 UNIX調(diào)度時(shí)機(jī) runrun

溫馨提示

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

最新文檔

評論

0/150

提交評論