資源描述:
《《課件操作系統(tǒng)處理機(jī)調(diào)度》PPT課件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第三章處理機(jī)調(diào)度與死鎖王培崇本章授課目的使學(xué)生理解和掌握處理機(jī)調(diào)度和死鎖的基本概念,掌握常用的處理機(jī)調(diào)度算法和預(yù)防、避免死鎖的方法。3.1處理機(jī)調(diào)度的層次3.1.1高級(jí)、中級(jí)和低級(jí)調(diào)度1.高級(jí)調(diào)度(HighScheduling)即作業(yè)調(diào)度調(diào)度作業(yè)進(jìn)入內(nèi)存,并為其分配必要的資源。考慮如下兩點(diǎn):1)接納多少個(gè)作業(yè):主要考慮內(nèi)存大小、執(zhí)行效率系統(tǒng)吞吐量等因素。2)接納哪些作業(yè):取決于具體的調(diào)度算法。1.作業(yè)和作業(yè)步(1)作業(yè)(Job)。包含了通常的程序和數(shù)據(jù),而且還應(yīng)配有一份作業(yè)說(shuō)明書,系統(tǒng)根據(jù)該說(shuō)明書來(lái)對(duì)程序的運(yùn)行進(jìn)行
2、控制。在批處理系統(tǒng)中,是以作業(yè)為基本單位從外存調(diào)入內(nèi)存的。(2)作業(yè)步(JobStep)。每個(gè)作業(yè)都必須經(jīng)過(guò)若干個(gè)相對(duì)獨(dú)立,又相互關(guān)聯(lián)的順序加工步驟才能得到結(jié)果,把其中的每一個(gè)加工步驟稱為一個(gè)作業(yè)步,各作業(yè)步之間存在著相互聯(lián)系,上一個(gè)作業(yè)步的輸出作為下一個(gè)作業(yè)步的輸入。一個(gè)典型的作業(yè)可分成三個(gè)作業(yè)步:①“編譯”作業(yè)步;②“連結(jié)裝配”作業(yè)步;③“運(yùn)行”作業(yè)步;(3)作業(yè)流。若干個(gè)作業(yè)進(jìn)入系統(tǒng)后,被依次存放在外存上,這便形成了輸入的作業(yè)流;在操作系統(tǒng)的控制下,逐個(gè)作業(yè)進(jìn)行處理,于是便形成了處理作業(yè)流。2.作業(yè)控制塊JC
3、B(JobControlBlock)系統(tǒng)感知作業(yè)在系統(tǒng)中存在的標(biāo)志,其中保存了系統(tǒng)對(duì)作業(yè)進(jìn)行管理和調(diào)度所需的全部信息。在JCB中通常應(yīng)包含的內(nèi)容有:作業(yè)標(biāo)識(shí)、用戶名稱、用戶帳戶、作業(yè)類型(CPU繁忙型、I/O繁忙型、批量型、終端型)、作業(yè)狀態(tài)、調(diào)度信息(優(yōu)先級(jí)、作業(yè)已運(yùn)行時(shí)間)、資源需求(預(yù)計(jì)運(yùn)行時(shí)間、要求內(nèi)存大小、要求I/O設(shè)備的類型和數(shù)量等)、進(jìn)入系統(tǒng)時(shí)間、開始處理時(shí)間、作業(yè)完成時(shí)間、作業(yè)退出時(shí)間、資源使用情況等。JCB的建立、調(diào)度、撤銷:作業(yè)進(jìn)入系統(tǒng)時(shí),系統(tǒng)便為每個(gè)作業(yè)建立一個(gè)JCB,根據(jù)作業(yè)類型將它插入相應(yīng)
4、的后備隊(duì)列中。作業(yè)調(diào)度程序依據(jù)一定的調(diào)度算法來(lái)調(diào)度它們,被調(diào)度到的作業(yè)將會(huì)裝入內(nèi)存。當(dāng)一個(gè)作業(yè)執(zhí)行結(jié)束進(jìn)入完成狀態(tài)時(shí),系統(tǒng)負(fù)責(zé)回收分配給它的資源,撤消它的作業(yè)控制塊。2.低級(jí)調(diào)度(LowLevelScheduling):進(jìn)程調(diào)度也稱微觀調(diào)度,從處理機(jī)資源分配的角度來(lái)看,即占有CPU來(lái)運(yùn)行。處理機(jī)需要經(jīng)常選擇就緒進(jìn)程或線程進(jìn)入運(yùn)行狀態(tài)。低級(jí)調(diào)度的時(shí)間尺度通常是毫秒級(jí)的。由于低級(jí)調(diào)度算法的頻繁使用,要求在實(shí)現(xiàn)時(shí)做到高效。低級(jí)調(diào)度的主要功能(1)保存處理機(jī)的現(xiàn)場(chǎng)信息。(2)按某種算法選取進(jìn)程。如優(yōu)先數(shù)算法、輪轉(zhuǎn)法等,從就
5、緒隊(duì)列中選取一個(gè)進(jìn)程,把它的狀態(tài)改為運(yùn)行狀態(tài),并準(zhǔn)備把處理機(jī)分配給它。(3)把處理器分配給進(jìn)程。進(jìn)程調(diào)度中的三個(gè)基本機(jī)制(1)排隊(duì)器。事先將系統(tǒng)中所有的就緒進(jìn)程按照一定的方式排成一個(gè)或多個(gè)隊(duì)列,以便調(diào)度程序能最快地找到它。(2)分派器(分派程序)。分派器把由進(jìn)程調(diào)度程序所選定的進(jìn)程,從就緒隊(duì)列中取出該進(jìn)程,然后進(jìn)行上下文切換,將處理機(jī)分配給它。(3)上下文切換機(jī)制。當(dāng)對(duì)處理機(jī)進(jìn)行切換時(shí),會(huì)發(fā)生兩對(duì)上下文切換操作。低級(jí)(進(jìn)程)調(diào)度方式:1)非搶占方式(Non-preemptiveMode)在下面情況下發(fā)生:①正在執(zhí)
6、行的進(jìn)程執(zhí)行完畢,或因發(fā)生某事件而不能再繼續(xù)執(zhí)行;②執(zhí)行中的進(jìn)程因提出I/O請(qǐng)求而暫停執(zhí)行;③在進(jìn)程通信或同步過(guò)程中執(zhí)行了某種原語(yǔ)操作,顯然,在要求比較嚴(yán)格的實(shí)時(shí)系統(tǒng)中,不宜采用這種調(diào)度方式。2)搶占方式(PreemptiveMode)搶占的原則有:優(yōu)先權(quán)原則。(2)短作業(yè)(進(jìn)程)優(yōu)先原則。(3)時(shí)間片原則。大多數(shù)實(shí)時(shí)系統(tǒng)會(huì)采用這種調(diào)度方式。3.中級(jí)調(diào)度(Intermediate-LevelScheduling)中級(jí)調(diào)度又稱中程調(diào)度(Medium-TermScheduling)。主要目的:是為了提高內(nèi)存利用率和系
7、統(tǒng)吞吐量。涉及進(jìn)程在內(nèi)外存間的交換,從存儲(chǔ)器資源管理的角度來(lái)看,把進(jìn)程的部分或全部換出到外存上,可為當(dāng)前運(yùn)行進(jìn)程的執(zhí)行提供所需內(nèi)存空間,將當(dāng)前進(jìn)程所需部分換入到內(nèi)存。如果資源允許后,決定哪個(gè)外存被掛起的進(jìn)程被調(diào)度進(jìn)入。3.2調(diào)度隊(duì)列模型和調(diào)度準(zhǔn)則3.2.1調(diào)度隊(duì)列模型1.僅有進(jìn)程調(diào)度的調(diào)度隊(duì)列模型(1)在分時(shí)系統(tǒng)中,僅僅設(shè)有進(jìn)程調(diào)度。(2)用戶鍵入的命令和數(shù)據(jù)都直接送入內(nèi)存。對(duì)于命令,是由OS為之建立一個(gè)進(jìn)程。(3)系統(tǒng)可以把處于就緒狀態(tài)的進(jìn)程組織成棧、樹或一個(gè)無(wú)序鏈表。例如:就緒進(jìn)程組織成FIFO隊(duì)列形式。每當(dāng)O
8、S創(chuàng)建一個(gè)新進(jìn)程時(shí),便將它掛在就緒隊(duì)列的末尾,然后按時(shí)間片輪轉(zhuǎn)方式運(yùn)行。進(jìn)程執(zhí)行時(shí)現(xiàn)的三種情況:(1)任務(wù)在給定的時(shí)間片內(nèi)已經(jīng)完成,該進(jìn)程便在釋放處理機(jī)后進(jìn)入完成狀態(tài);(2)任務(wù)在本次分得的時(shí)間片內(nèi)尚未完成,OS便將該任務(wù)再放入就緒隊(duì)列的末尾;(3)在執(zhí)行期間,進(jìn)程因?yàn)槟呈录蛔枞?,被OS放入阻塞隊(duì)列。圖3-1示出了僅具有進(jìn)程調(diào)度的調(diào)度隊(duì)列模型。圖3-1