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

下載本文檔

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

文檔簡(jiǎn)介

會(huì)計(jì)學(xué)1操作系統(tǒng)原理處理機(jī)管理華中科技大學(xué)計(jì)算機(jī)學(xué)院2第六章處理機(jī)管理第1頁(yè)/共53頁(yè)3第六章處理機(jī)調(diào)度

6.1處理機(jī)的二級(jí)調(diào)度宏觀上:作業(yè)調(diào)度微觀上:進(jìn)程調(diào)度第2頁(yè)/共53頁(yè)4P10611sb:緩沖區(qū)s中是否有空,初值為1;tb:緩沖區(qū)t中是否有空,初值為1;sa:緩沖區(qū)s中是否有數(shù)據(jù),初值為0;ta:緩沖區(qū)t中是否有數(shù)據(jù),初值為0;第3頁(yè)/共53頁(yè)5第4頁(yè)/共53頁(yè)6這樣做程序運(yùn)行的結(jié)果是正確的,但并行工作的程度大大降低,如何改?第5頁(yè)/共53頁(yè)7第6頁(yè)/共53頁(yè)8對(duì)于1p1與P2、P3、P4同步(三個(gè)信號(hào)燈)對(duì)于2P3、P4與p5同步(二個(gè)信號(hào)燈)信號(hào)燈初值均為1第7頁(yè)/共53頁(yè)96.2作業(yè)調(diào)度

6.2.1作業(yè)調(diào)度的功能作業(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,JobControlBlock);2.按一定的調(diào)度算法,從后備作業(yè)中選擇一個(gè)或幾個(gè)作業(yè)進(jìn)入系統(tǒng)內(nèi)存;3.為被選中的作業(yè)創(chuàng)建進(jìn)程,并且為其申請(qǐng)系統(tǒng)資源;4.作業(yè)加束后作善后處理工作。第8頁(yè)/共53頁(yè)106.2作業(yè)調(diào)度

6.2.2作業(yè)控制塊(JCB,JobControlBlock)每個(gè)作業(yè)進(jìn)入系統(tǒng)時(shí)由系統(tǒng)為其建立一個(gè)作業(yè)控制塊JCB(JobControlBlock),它是存放作業(yè)控制和管理信息的數(shù)據(jù)結(jié)構(gòu),主要信息見(jiàn)右圖。第9頁(yè)/共53頁(yè)116.2.3調(diào)度性能的衡量作業(yè)調(diào)度算法規(guī)定了從后備作業(yè)中選擇作業(yè)進(jìn)入系統(tǒng)內(nèi)存的原則,這些原則的性能如何,就是本節(jié)所討論的問(wèn)題。一、確定調(diào)度算法時(shí)應(yīng)考慮的因素1.應(yīng)與系統(tǒng)的整體設(shè)計(jì)目標(biāo)一致2.考慮系統(tǒng)中各種資源的負(fù)載均勻3.保證作業(yè)的執(zhí)行4.對(duì)一些專(zhuān)用資源的使用特性的考慮第10頁(yè)/共53頁(yè)126.2.3調(diào)度性能的衡量二、調(diào)度性能的衡量通常采用平均周轉(zhuǎn)時(shí)間和帶權(quán)平均周轉(zhuǎn)時(shí)間作業(yè)的周轉(zhuǎn)時(shí)間:

ti=tci-tsiti:作業(yè)周轉(zhuǎn)時(shí)間

tci:作業(yè)完成時(shí)間

tsi:作業(yè)提交時(shí)間第11頁(yè)/共53頁(yè)136.2.3調(diào)度性能的衡量第12頁(yè)/共53頁(yè)146.2.4先來(lái)先服務(wù)調(diào)度算法和短作業(yè)優(yōu)先調(diào)度算法先來(lái)先服務(wù)調(diào)度算法:先來(lái)先服務(wù)算法是按作業(yè)來(lái)到的先后次序進(jìn)行調(diào)度的,換句話說(shuō),調(diào)度程序每次選擇的作業(yè)是等待時(shí)間最久的,而不管作業(yè)的運(yùn)行時(shí)間的長(zhǎng)短。這種調(diào)度算法突出的優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,效率軟低,在一些實(shí)際的系統(tǒng)和一般應(yīng)用程序中采用這種算法的較多。第13頁(yè)/共53頁(yè)156.2.4先來(lái)先服務(wù)調(diào)度算法和短作業(yè)優(yōu)先調(diào)度算法短作業(yè)優(yōu)先調(diào)度算法:短作業(yè)優(yōu)先調(diào)度算法考慮作業(yè)的運(yùn)行時(shí)間,每次總是選擇一個(gè)運(yùn)行時(shí)間最小的作業(yè)調(diào)入內(nèi)存(系統(tǒng)).

在一般情況下這種調(diào)度算法比先來(lái)先服務(wù)調(diào)度算法的效率要高一些。實(shí)現(xiàn)相對(duì)先來(lái)先服務(wù)調(diào)度算法要困難些,如果作業(yè)的到來(lái)順序及運(yùn)行時(shí)間不合適,會(huì)出現(xiàn)餓死現(xiàn)象,例如,系統(tǒng)中有一個(gè)運(yùn)行時(shí)間很長(zhǎng)的作業(yè)JN,和幾個(gè)運(yùn)行時(shí)間小的作業(yè),然后,不斷地有運(yùn)行時(shí)間小于JN的作業(yè)的到來(lái),這樣,作業(yè)JN就得不可調(diào)度而餓死。另外,作業(yè)運(yùn)行的估計(jì)時(shí)間也有問(wèn)題。第14頁(yè)/共53頁(yè)166.2.4先來(lái)先服務(wù)調(diào)度算法和短作業(yè)優(yōu)先調(diào)度算法第15頁(yè)/共53頁(yè)176.2.5其它幾種調(diào)度算法響應(yīng)比高者優(yōu)先調(diào)度算法:先來(lái)先服務(wù)和短作業(yè)優(yōu)先算法都有其片面性,先來(lái)先服務(wù)調(diào)度算法只考慮作業(yè)的等待時(shí)間,而忽視了作業(yè)的運(yùn)行時(shí)間,短作業(yè)優(yōu)先算法則相反,只考慮了作業(yè)的運(yùn)行時(shí)間,而忽視了作業(yè)黲等待時(shí)間。響應(yīng)比高者優(yōu)先調(diào)度算法是介于這兩種算法之間的一種拆衷的算法。第16頁(yè)/共53頁(yè)186.2.5其它幾種調(diào)度算法

響應(yīng)比高者優(yōu)先調(diào)度算法這樣算法從理論上講是比較完備的,但作業(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頁(yè)/共53頁(yè)196.2.5其它幾種調(diào)度算法優(yōu)先數(shù)調(diào)度算法優(yōu)先數(shù)調(diào)度算法是終合考慮各方面的因素(作業(yè)等待時(shí)間、運(yùn)行時(shí)間、緩急程度,系統(tǒng)資源使用等),給每個(gè)作業(yè)設(shè)置一個(gè)優(yōu)先數(shù),調(diào)度程序總是選擇一個(gè)優(yōu)先數(shù)最大(或者最小)的作業(yè)調(diào)入(系統(tǒng))內(nèi)存。這種算法實(shí)現(xiàn)的困難在于如何終合考慮,這些因素之間的關(guān)系怎樣處理。第18頁(yè)/共53頁(yè)206.2.5其它幾種調(diào)度算法均衡調(diào)度算法均衡調(diào)度算法就是一種更為理想化的調(diào)度算法,如何實(shí)現(xiàn)就更困難,并且算法本身的開(kāi)銷(xiāo)有時(shí)會(huì)遠(yuǎn)選大于先來(lái)先服務(wù)和小作業(yè)優(yōu)先調(diào)度算法的不足,這也是這兩種算法被眾多系統(tǒng)采用的最根本的原因。第19頁(yè)/共53頁(yè)216.3進(jìn)程調(diào)度

6.3.1調(diào)度/分派結(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ì)列中。在一般的操作系統(tǒng)教材中把上述功能稱(chēng)為進(jìn)程調(diào)度。第20頁(yè)/共53頁(yè)226.3.2進(jìn)程調(diào)度的功能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)先級(jí)(優(yōu)先數(shù))、就緒進(jìn)程隊(duì)列等。第21頁(yè)/共53頁(yè)236.3.2進(jìn)程調(diào)度的功能2.決定分配(處理機(jī))策略確定進(jìn)程調(diào)度的策略,例如,先來(lái)先服務(wù)、優(yōu)先數(shù)調(diào)度策略,調(diào)度策略的不同,組織就緒進(jìn)程隊(duì)列的方式也不同。先來(lái)先服務(wù)調(diào)度策略,就緒隊(duì)列要按等待時(shí)間大到小的順序排隊(duì);優(yōu)先數(shù)調(diào)度,則就緒進(jìn)程隊(duì)列要按優(yōu)先數(shù)的升療(或降序)的方式排隊(duì)。等等。第22頁(yè)/共53頁(yè)246.3.2進(jìn)程調(diào)度的功能3.實(shí)施處理機(jī)的分配總而言之,進(jìn)程調(diào)度包括:調(diào)度算法的選擇(調(diào)度算法)調(diào)度時(shí)機(jī)的選擇(調(diào)度時(shí)機(jī))實(shí)施進(jìn)程調(diào)度(調(diào)度程序)第23頁(yè)/共53頁(yè)256.3.2進(jìn)程調(diào)度的功能調(diào)度時(shí)機(jī)(UNIX系統(tǒng)中):(1)進(jìn)程自動(dòng)放棄處理機(jī):當(dāng)進(jìn)程進(jìn)入高低優(yōu)先級(jí)睡眠狀態(tài)時(shí)

(在sleep()程序中);在進(jìn)程進(jìn)入暫停狀態(tài)時(shí)(在stop()程序中);進(jìn)程進(jìn)入僵死狀態(tài)時(shí)(在exit()程序中);第24頁(yè)/共53頁(yè)266.3.2進(jìn)程調(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是說(shuō)明系統(tǒng)中處于就緒狀態(tài)的進(jìn)程的優(yōu)先級(jí)高于現(xiàn)運(yùn)行進(jìn)程的優(yōu)先級(jí),這時(shí)要進(jìn)行強(qiáng)迫調(diào)度,出現(xiàn)這種情況有兩種可能:高低優(yōu)先級(jí)睡眠進(jìn)程被喚醒后其優(yōu)先級(jí)高于現(xiàn)運(yùn)行進(jìn)程;當(dāng)一個(gè)進(jìn)程占用一段時(shí)間的CPU后,它的優(yōu)先級(jí)要降低,造成現(xiàn)運(yùn)行進(jìn)程的優(yōu)先級(jí)低于系統(tǒng)中的其它就緒進(jìn)程(時(shí)間片到是其中的一種情況)。教材p136進(jìn)程調(diào)度的幾種時(shí)機(jī)是一般操作系統(tǒng)原理中的概念。2)強(qiáng)迫調(diào)度第25頁(yè)/共53頁(yè)276.3.2進(jìn)程調(diào)度的功能

實(shí)施進(jìn)程調(diào)度的程序稱(chēng)為進(jìn)程調(diào)度程序(或稱(chēng)調(diào)度程序),在通常的操作系統(tǒng)原理中,該程序?qū)儆谙到y(tǒng)進(jìn)程的執(zhí)行程序,有的操作系統(tǒng)是把進(jìn)程調(diào)度程序作一個(gè)特別的處理,如早期的操作系統(tǒng)中把進(jìn)程調(diào)度程序稱(chēng)為交通控制程序,不屬于系統(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頁(yè)/共53頁(yè)286.3.3調(diào)度方式(略)第27頁(yè)/共53頁(yè)296.3.4調(diào)度用的進(jìn)程狀態(tài)變遷圖在這個(gè)圖中新創(chuàng)建的進(jìn)程進(jìn)入低優(yōu)就緒狀態(tài),一個(gè)運(yùn)行進(jìn)程因時(shí)間片到(實(shí)際上是計(jì)算量大的進(jìn)程)而轉(zhuǎn)換成低優(yōu)就緒;進(jìn)程因等待I/O完成而轉(zhuǎn)換高優(yōu)就緒.第28頁(yè)/共53頁(yè)306.3.4調(diào)度用的進(jìn)程狀態(tài)變遷圖調(diào)度程序首先看高優(yōu)就緒進(jìn)程隊(duì)列是否為空,若不為空,則從高優(yōu)就緒進(jìn)程中選擇一個(gè)進(jìn)程占用CPU,否則,從低優(yōu)就緒隊(duì)列中選擇。這種調(diào)度效果是能充分地利用系統(tǒng)資源。為什么?UNIX系統(tǒng)的進(jìn)程調(diào)度狀態(tài)變遷圖,與前一種調(diào)度變遷圖有著異曲同功的效果。第29頁(yè)/共53頁(yè)316.3.5進(jìn)程優(yōu)先數(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ù)確定之后是固定的,還是隨著該進(jìn)程運(yùn)行的情況的變化而變化。第30頁(yè)/共53頁(yè)326.3.5進(jìn)程優(yōu)先數(shù)調(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)程的類(lèi)型)用戶確定:(緊迫程度,計(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頁(yè)/共53頁(yè)336.3.5進(jìn)程優(yōu)先數(shù)調(diào)度算法動(dòng)態(tài)進(jìn)程優(yōu)先數(shù):系統(tǒng)在運(yùn)行的過(guò)程中,根據(jù)系統(tǒng)的設(shè)計(jì)目標(biāo),不斷地調(diào)整進(jìn)程的優(yōu)先數(shù),這種方法的優(yōu)點(diǎn)是能比較客觀地反映進(jìn)程的實(shí)際情況和保證達(dá)到系統(tǒng)設(shè)計(jì)目標(biāo)。第32頁(yè)/共53頁(yè)346.3.6循環(huán)輪轉(zhuǎn)調(diào)度循環(huán)輪轉(zhuǎn)調(diào)度實(shí)際上是一種先來(lái)先服務(wù)算法的調(diào)度算法,它把系統(tǒng)的響應(yīng)時(shí)間分成大小相等(或不相等)的時(shí)間單位,稱(chēng)為時(shí)間片。每個(gè)進(jìn)程被調(diào)度到后,占用一個(gè)時(shí)間片,片用完后,該進(jìn)程讓出CPU,由運(yùn)行狀態(tài)轉(zhuǎn)換成就緒狀態(tài),排在就緒隊(duì)列的隊(duì)尾。多個(gè)進(jìn)程循環(huán)輪轉(zhuǎn)。第33頁(yè)/共53頁(yè)356.3.6循環(huán)輪轉(zhuǎn)調(diào)度第34頁(yè)/共53頁(yè)366.3.6循環(huán)輪轉(zhuǎn)調(diào)度系統(tǒng)按進(jìn)程轉(zhuǎn)換成就緒狀態(tài)的時(shí)間的降序排隊(duì),調(diào)度程序每次調(diào)度,總是從隊(duì)首移出一程的PCB,然后,將此進(jìn)程投入運(yùn)行(由就緒狀態(tài)轉(zhuǎn)換成運(yùn)行狀態(tài))。一個(gè)運(yùn)行時(shí)間片到的進(jìn)程從運(yùn)行狀態(tài)轉(zhuǎn)換成就緒狀態(tài)后,排在就緒隊(duì)列的隊(duì)尾。評(píng)價(jià):優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單、系統(tǒng)開(kāi)銷(xiāo)小缺點(diǎn)是不靈活,當(dāng)系統(tǒng)中進(jìn)程較少時(shí),系統(tǒng)開(kāi)銷(xiāo)變大為什么?

由于該算法簡(jiǎn)單易于實(shí)現(xiàn),且系統(tǒng)開(kāi)銷(xiāo)較小,早期的分時(shí)操作系統(tǒng)和目前一些應(yīng)用系統(tǒng)中廣泛采用了這種調(diào)度算法。第35頁(yè)/共53頁(yè)376.3.6循環(huán)輪轉(zhuǎn)調(diào)度

二、可變時(shí)間片輪轉(zhuǎn)調(diào)度

為了克服前種調(diào)度算法的缺點(diǎn),人們?cè)O(shè)計(jì)出一種可變時(shí)間片的調(diào)度算法,其思想是:時(shí)間片的大小是可變的,系統(tǒng)可根據(jù)系統(tǒng)中當(dāng)前的進(jìn)程數(shù)來(lái)確定時(shí)間片的大小。

這種算法從理論上克服了系統(tǒng)中進(jìn)程數(shù)很少時(shí)系統(tǒng)開(kāi)銷(xiāo)大的缺點(diǎn),但修改時(shí)間片的大小,統(tǒng)計(jì)系統(tǒng)進(jìn)程的數(shù)量也需要消耗系統(tǒng)時(shí)間,還有一個(gè)調(diào)整時(shí)間片大小的周期,太大,等于是固定時(shí)間片,太小,系統(tǒng)開(kāi)銷(xiāo)很大,得不嘗失。第36頁(yè)/共53頁(yè)386.4UNIX系統(tǒng)的進(jìn)程調(diào)度

6.4.1UNIX調(diào)度算法我們從調(diào)度算法、調(diào)度時(shí)機(jī)、調(diào)度程序三個(gè)方面來(lái)分析UNIX系統(tǒng)的進(jìn)程調(diào)度。一、調(diào)度算法

UNIX系統(tǒng)采用優(yōu)先數(shù)調(diào)度算法,每個(gè)進(jìn)程有一個(gè)進(jìn)程優(yōu)先數(shù),p_pri是proc結(jié)構(gòu)中的一個(gè)變量,其取值范圍是-127~127,其值越小,進(jìn)程的優(yōu)先級(jí)越高(即,調(diào)度程序總是從就緒狀態(tài)的進(jìn)程中選擇一個(gè)優(yōu)先數(shù)最小的進(jìn)程占用CPU)。第37頁(yè)/共53頁(yè)396.4UNIX系統(tǒng)的進(jìn)程調(diào)度

6.4.1UNIX調(diào)度算法

優(yōu)先數(shù)的確定:1.系統(tǒng)設(shè)置在進(jìn)程進(jìn)入睡眠狀態(tài)時(shí),在SLEEP()中設(shè)置將要進(jìn)入睡眠狀態(tài)進(jìn)程的優(yōu)先數(shù),當(dāng)該進(jìn)程被喚醒后,就以系統(tǒng)給它設(shè)置的優(yōu)先數(shù)去參與處理機(jī)的竟?fàn)?。?8頁(yè)/共53頁(yè)406.4UNIX系統(tǒng)的進(jìn)程調(diào)度

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

6.4.1UNIX調(diào)度算法2.優(yōu)先數(shù)的計(jì)算(1)計(jì)算公式:

p_pri={127,(p_cpu/16+p_nice+PUSER)其中:

p_cpu進(jìn)程占用CPU的程度

p_nice用戶通過(guò)系統(tǒng)調(diào)用nice(priority)設(shè)置的進(jìn)程優(yōu)先數(shù)。

PUSER常數(shù),其值為100第40頁(yè)/共53頁(yè)426.4UNIX系統(tǒng)的進(jìn)程調(diào)度

6.4.1UNIX調(diào)度算法第41頁(yè)/共53頁(yè)43UNIX系統(tǒng)的設(shè)計(jì)者采用了一個(gè)巧妙的方法,既避免了繁雜的統(tǒng)計(jì)工作,也不需做浮點(diǎn)運(yùn)行算。(這就是我們要學(xué)習(xí)的工程能力,或稱(chēng)分析問(wèn)題和解決問(wèn)題的能力,學(xué)會(huì)和記往一兩個(gè)科學(xué)的定理和公式并不難,難的是怎樣將這些普遍的理論用于實(shí)際的工程之中,UNIX系統(tǒng)中有很多值得我們學(xué)習(xí)的地方,對(duì)p_cpu的處理就是其中之一,這里并不要求把UNIX中的p_cpu的處理完全記住,而是要通過(guò)對(duì)它的了解,學(xué)會(huì)處理實(shí)際工程問(wèn)題的方法。)6.4UNIX系統(tǒng)的進(jìn)程調(diào)度

6.4.1UNIX調(diào)度算法第42頁(yè)/共53頁(yè)44UINX系統(tǒng)中對(duì)p_cpu的處理:每個(gè)時(shí)鐘中斷:p_cpu++;

每秒鐘(時(shí)鐘中斷):

if(p_cpu-SCHMAG<0)p_cpu=0;

其中:SCHMAG調(diào)度魔數(shù)10

在計(jì)算p_pri的公式中,PUSER是個(gè)常數(shù),由于用戶不可能頻繁地設(shè)置進(jìn)程的優(yōu)先數(shù),所以p_nice實(shí)際上也是個(gè)常數(shù),那么決定p_pri的實(shí)際上就是p_cpu。根據(jù)UNIX系統(tǒng)與調(diào)度算法可得出如下的一個(gè)負(fù)反饋的過(guò)程,從這個(gè)過(guò)程中可看出什么?6.4UNIX系統(tǒng)的進(jìn)程調(diào)度

6.4.1UNIX調(diào)度算法第43頁(yè)/共53頁(yè)45這種負(fù)反饋的效果使得系統(tǒng)中在用戶態(tài)下運(yùn)行的進(jìn)程能均衡地得到處理機(jī),達(dá)到UNIX系統(tǒng)的設(shè)計(jì)目標(biāo)。(UNIX系統(tǒng)什么設(shè)計(jì)目標(biāo)?)6.4UNIX系統(tǒng)的進(jìn)程調(diào)度

6.4.1UNIX調(diào)度算法第44頁(yè)/共53頁(yè)46(3)計(jì)算優(yōu)先數(shù)的時(shí)機(jī)

在UNIX系統(tǒng)中什么時(shí)候計(jì)算進(jìn)程的優(yōu)先數(shù)?計(jì)算哪些進(jìn)程的優(yōu)先數(shù)?會(huì)不會(huì)改變系統(tǒng)設(shè)置的進(jìn)程的優(yōu)先數(shù)?6.4UNIX系統(tǒng)的進(jìn)程調(diào)度

6.4.1UNIX調(diào)度算法第45頁(yè)/共53頁(yè)47計(jì)算進(jìn)程優(yōu)先數(shù)的時(shí)機(jī):A.在時(shí)鐘中斷處理程序中,每秒末計(jì)算滿足下面條件進(jìn)程的優(yōu)先數(shù):

p_pri>PUSERB.現(xiàn)運(yùn)行進(jìn)程在自陷處理程序trap()末尾重新計(jì)算本進(jìn)程的優(yōu)先數(shù).目的:調(diào)用nice()設(shè)置的本進(jìn)程的優(yōu)先數(shù)p_nice的改變反映到p_pri中去;C.現(xiàn)運(yùn)行進(jìn)程在執(zhí)行時(shí)鐘中斷處理程序時(shí),若發(fā)現(xiàn)中斷前為用戶態(tài),則每隔1秒鐘重新計(jì)算本進(jìn)程的優(yōu)先數(shù)。因?yàn)楝F(xiàn)運(yùn)行進(jìn)程已經(jīng)占用了一些CPU的時(shí)間,要反映到p_pri中去。6.4UNIX系統(tǒng)的進(jìn)程調(diào)度

6.4.1UNIX調(diào)度算法第46頁(yè)/共53頁(yè)48這三種重新計(jì)算(調(diào)整)進(jìn)程優(yōu)先數(shù)都沒(méi)有修改由系統(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)程能較均衡地占用CPU,保證了各用戶終端的響應(yīng)時(shí)間,實(shí)現(xiàn)了分時(shí)操作系統(tǒng)的特性。6.4UNIX系統(tǒng)的進(jìn)程調(diào)度

6.4.1UNIX調(diào)度算法第47頁(yè)/共53頁(yè)496.4UNIX系統(tǒng)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論