資源描述:
《處理機(jī)調(diào)度與死鎖(1-2)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第三章處理機(jī)調(diào)度與死鎖3.1處理機(jī)調(diào)度的基本概念3.2調(diào)度算法3.3實(shí)時(shí)調(diào)度3.4多處理機(jī)系統(tǒng)中的調(diào)度3.5產(chǎn)生死鎖的原因和必要條件3.6預(yù)防死鎖的方法3.7死鎖的檢測(cè)與解除淮海工學(xué)院計(jì)算機(jī)科學(xué)系作業(yè)的狀態(tài)及其轉(zhuǎn)換批處理系統(tǒng)才有作業(yè)的概念,分時(shí)系統(tǒng)沒有作業(yè)的概念;作業(yè)的狀態(tài)分為:提交、后備、運(yùn)行和完成;提交狀態(tài):作業(yè)再輸入設(shè)備上并準(zhǔn)備進(jìn)入外存輸入井前的狀態(tài)。用戶作業(yè)通常包括:程序、數(shù)據(jù)和作業(yè)說明書后備狀態(tài):由SPOOLing輸入程序輸入到外存輸入井中,為其建立作業(yè)控制塊(JCB),并將JCB插入到后
2、備作業(yè)隊(duì)列中的狀態(tài)運(yùn)行狀態(tài):作業(yè)被作業(yè)調(diào)度程序選中,由外存輸入井調(diào)入到內(nèi)存,為其分配了所需的資源并建立了進(jìn)程,此時(shí)作業(yè)就進(jìn)入到運(yùn)行狀態(tài)。完成狀態(tài):當(dāng)作業(yè)正常結(jié)束或異常終止時(shí),就進(jìn)入完成狀態(tài)。由作業(yè)調(diào)度程序做收尾工作:撤銷JCB、回收分給該作業(yè)的系統(tǒng)資源等。3.1處理機(jī)調(diào)度的基本概念淮海工學(xué)院計(jì)算機(jī)科學(xué)系作業(yè)的狀態(tài)及其轉(zhuǎn)換提交后備運(yùn)行就緒阻塞就緒阻塞完成SPOOLing程序作業(yè)調(diào)度程序進(jìn)程調(diào)度程序中級(jí)調(diào)度外存外存輸入井輸入設(shè)備內(nèi)存淮海工學(xué)院計(jì)算機(jī)科學(xué)系在多道批處理系統(tǒng)中,一個(gè)作業(yè)從提交到后備作業(yè)隊(duì)列,
3、再調(diào)入內(nèi)從經(jīng)運(yùn)行到完成,可能需要經(jīng)歷三級(jí)調(diào)度:1.高級(jí)調(diào)度(HighScheduling)高級(jí)調(diào)度又稱為作業(yè)調(diào)度或宏觀調(diào)度或長(zhǎng)程調(diào)度,其主要功能是根據(jù)一定的算法,從后備作業(yè)隊(duì)列(一批作業(yè))中選出若干個(gè)作業(yè)調(diào)入內(nèi)存,并為它們創(chuàng)建進(jìn)程和分配必要的資源,然后將創(chuàng)建的新進(jìn)程放入進(jìn)程就緒隊(duì)列中,使其處于就緒狀態(tài)。當(dāng)作業(yè)運(yùn)行結(jié)束時(shí),還要做一些善后工作(資源回收)3.1.1處理機(jī)調(diào)度的層次淮海工學(xué)院計(jì)算機(jī)科學(xué)系高級(jí)調(diào)度特點(diǎn):1)多道批處理系統(tǒng)需要作業(yè)調(diào)度;分時(shí)系統(tǒng)和實(shí)時(shí)系統(tǒng)一般不需要高級(jí)調(diào)度。2)每次調(diào)度多少作業(yè)
4、(程序)?需由系統(tǒng)規(guī)定的多道程序度而定;3)調(diào)度那些作業(yè)?由調(diào)度算法(策略)而定,如先來先服務(wù),短作業(yè)優(yōu)先調(diào)度,優(yōu)先權(quán)調(diào)度算法等?;春9W(xué)院計(jì)算機(jī)科學(xué)系2.中級(jí)調(diào)度(Intermediate-LevelScheduling)中級(jí)調(diào)度又稱之為中程調(diào)度(Medium-TermScheduling),中級(jí)調(diào)度主要任務(wù)是實(shí)施進(jìn)程在內(nèi)、外存間的交換;中級(jí)調(diào)度的主要功能是在內(nèi)存使用緊張時(shí),將一些暫時(shí)不能運(yùn)行的進(jìn)程從內(nèi)存對(duì)換到外存上等待(此時(shí)的進(jìn)程狀態(tài)稱為掛起狀態(tài)或駐留外存狀態(tài))。以后,當(dāng)外存有足夠的空閑空間時(shí),
5、再將合適的進(jìn)程重新?lián)Q入內(nèi)存,等待進(jìn)程調(diào)度。引入中級(jí)調(diào)度的主要目的是為了提高內(nèi)存的利用率和系統(tǒng)吞吐量?;春9W(xué)院計(jì)算機(jī)科學(xué)系3.低級(jí)調(diào)度(LowLevelScheduling)低級(jí)調(diào)度又稱進(jìn)程調(diào)度或微觀調(diào)度或短程調(diào)度,其主要功能是根據(jù)一定的算法,將CPU分派給就緒進(jìn)程隊(duì)列中的某一進(jìn)程。執(zhí)行低級(jí)調(diào)度功能的程序稱為進(jìn)程調(diào)度程序,由它實(shí)現(xiàn)CPU在進(jìn)程間的切換。進(jìn)程調(diào)度是操作系統(tǒng)中最基本的一種調(diào)度,在一般操作系統(tǒng)(包括:多道批處理系統(tǒng)、分時(shí)系統(tǒng)和實(shí)時(shí)系統(tǒng))中都必須有進(jìn)程調(diào)度,而且它的策略的優(yōu)劣直接影響整個(gè)系統(tǒng)
6、的性能?;春9W(xué)院計(jì)算機(jī)科學(xué)系4、進(jìn)程調(diào)度方式非搶占方式(Nonpreemptive):在這種調(diào)度方式下,一旦一個(gè)進(jìn)程被選中運(yùn)行,它就一直運(yùn)行下去,直到它運(yùn)行結(jié)束并自愿放棄CPU,或者因等待某一事件而被阻塞或終止時(shí)為止,才把CPU出讓給其他進(jìn)程,即得到CPU的進(jìn)程不管運(yùn)行多長(zhǎng)時(shí)間,都一直運(yùn)行下去,不會(huì)因?yàn)楫?dāng)前進(jìn)程以外的原因而被迫讓出CPU。引起調(diào)度的原因:1)當(dāng)前進(jìn)程運(yùn)行結(jié)束或發(fā)生某事件而終止;2)當(dāng)前進(jìn)程因提出I/O請(qǐng)求而阻塞;3)進(jìn)程之間通信或同步而由于執(zhí)行原語而等待?;春9W(xué)院計(jì)算機(jī)科學(xué)系搶占
7、方式(Preemptive):搶占方式允許調(diào)度程序根據(jù)某種策略中止當(dāng)前進(jìn)程的執(zhí)行,將其移入就緒隊(duì)列,并將處理機(jī)分派給另一個(gè)進(jìn)程使之投入運(yùn)行。搶占原則:1)優(yōu)先權(quán)原則:允許高優(yōu)先權(quán)進(jìn)程搶占低優(yōu)先權(quán)的CPU;2)短作業(yè)原則:允許短進(jìn)程搶占長(zhǎng)進(jìn)程的處理機(jī);3)時(shí)間片原則:分時(shí)系統(tǒng)中的當(dāng)前進(jìn)程,若時(shí)間片規(guī)定的時(shí)間用完,不管是否運(yùn)行結(jié)束,都要立即中止放到就緒隊(duì)列中,再將CPU分派給其它進(jìn)程?;春9W(xué)院計(jì)算機(jī)科學(xué)系3.1.2調(diào)度隊(duì)列模型不同OS對(duì)高級(jí)、中級(jí)和低級(jí)調(diào)度的選取形成了不同的調(diào)度隊(duì)列模型,共有3種類型。
8、1、僅有進(jìn)程調(diào)度的調(diào)度隊(duì)列模型常在分時(shí)系統(tǒng)中設(shè)置僅有進(jìn)程調(diào)度的調(diào)度隊(duì)列模型。終端用戶的登錄注冊(cè)以及交互命令的輸入執(zhí)行,系統(tǒng)都將為其建立進(jìn)程,并放在FIFO就緒隊(duì)列中,按照時(shí)間片輪轉(zhuǎn)調(diào)度執(zhí)行。進(jìn)程的調(diào)度和變化過程如下圖所示。淮海工學(xué)院計(jì)算機(jī)科學(xué)系圖3-1僅具有進(jìn)程調(diào)度的調(diào)度隊(duì)列模型P1P2P4淮海工學(xué)院計(jì)算機(jī)科學(xué)系2.具有高級(jí)和低級(jí)調(diào)度的調(diào)度隊(duì)列模型在批處理系統(tǒng)中,不僅需要進(jìn)程調(diào)度,而且還需要作業(yè)調(diào)度。若OS中僅包含高級(jí)調(diào)度和低級(jí)調(diào)度就形成了具有高級(jí)和低級(jí)調(diào)度的隊(duì)列模型