版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
處理器管理
本章考核知識(shí)點(diǎn):1.多道程序設(shè)計(jì)2.進(jìn)程3.進(jìn)程狀態(tài)4.進(jìn)程控制塊5.進(jìn)程隊(duì)列6.可再入程序7.中斷及中斷響應(yīng)8.中斷優(yōu)先級(jí)9.進(jìn)程調(diào)度自學(xué)要求:通過(guò)本章學(xué)習(xí)應(yīng)該掌握多道程序設(shè)計(jì)是如何提高計(jì)算機(jī)系統(tǒng)效率的;進(jìn)程與程序有什么區(qū)別;進(jìn)程的基本狀態(tài)以及狀態(tài)變化;進(jìn)程隊(duì)列及進(jìn)程調(diào)度策略;中斷的作用。重點(diǎn)是:多道程序設(shè)計(jì);進(jìn)程的定義和屬性;進(jìn)程調(diào)度策略。處理器管理本章考核知識(shí)點(diǎn):1.多道程序設(shè)計(jì)2.進(jìn)程3.13.1、多道程序設(shè)計(jì)(領(lǐng)會(huì))3.1.1什么是多道程序設(shè)計(jì)讓多個(gè)計(jì)算問(wèn)題同時(shí)裝入一個(gè)計(jì)算機(jī)系統(tǒng)的主存儲(chǔ)器并行執(zhí)行,這種設(shè)計(jì)技術(shù)稱(chēng)“多道程序設(shè)計(jì)”,這種計(jì)算機(jī)系統(tǒng)稱(chēng)“多道程序設(shè)計(jì)系統(tǒng)”或簡(jiǎn)稱(chēng)“多道系統(tǒng)”。3.1、多道程序設(shè)計(jì)(領(lǐng)會(huì))2在多道程序設(shè)計(jì)的系統(tǒng)中,有三點(diǎn)基本要求:用"存儲(chǔ)保護(hù)"的方法保證各道程序互不侵犯;用"程序浮動(dòng)"技術(shù)讓程序能靈活地改變存放區(qū)域且能正確執(zhí)行;必須對(duì)資源按一定的策略分配和調(diào)度。程序浮動(dòng):在多道程序設(shè)計(jì)系統(tǒng)中,對(duì)程序有一些特殊要求,也就是說(shuō),程序可以隨機(jī)地從主存的一個(gè)區(qū)域移動(dòng)到另一個(gè)區(qū)域,程序被移動(dòng)后仍絲毫不影響它的執(zhí)行,這種技術(shù)稱(chēng)為“程序浮動(dòng)“在多道程序設(shè)計(jì)的系統(tǒng)中,有三點(diǎn)基本要求:33.1.2為什么采用多道程序設(shè)計(jì)程序的順序執(zhí)行程序的并行執(zhí)行P363.1.2為什么采用多道程序設(shè)計(jì)程序的順序執(zhí)行4多道程序設(shè)計(jì)利用了系統(tǒng)與外圍設(shè)備的并行工作能力,從而提高工作效率。具體表現(xiàn)為:提高了處理器的利用率;充分利用外圍設(shè)備資源:發(fā)揮了處理器與外圍設(shè)備以及外圍設(shè)備之間的并行工作能力;從總體上說(shuō),采用多道程序設(shè)計(jì)技術(shù)后,可以有效地提高系統(tǒng)中資源的利用率,增加單位時(shí)間內(nèi)的算題量,從而提高了吞吐率。多道程序設(shè)計(jì)利用了系統(tǒng)與外圍設(shè)備的并行工作能力,從而提高工作53.1.3采用多道程序設(shè)計(jì)注意的問(wèn)題
可能延長(zhǎng)程序的執(zhí)行時(shí)間;
并行工作道數(shù)與系統(tǒng)效率不成正比從表面上看,增加并行工作道數(shù)就可提高系統(tǒng)效率,但實(shí)際上并行工作道數(shù)與系統(tǒng)效率是不成正比,因?yàn)椴⑿械牡罃?shù)要根據(jù)系統(tǒng)配置的資源和用戶對(duì)資源的要求而定:(1)主存儲(chǔ)器的大小限制了可同時(shí)裝入的程序數(shù)量;
(2)外圍設(shè)備的數(shù)量也是一個(gè)制約條件;
(3)多個(gè)程序同時(shí)要求使用同一資源的情況也會(huì)經(jīng)常發(fā)生。3.1.3采用多道程序設(shè)計(jì)注意的問(wèn)題6
總之,多道程序設(shè)計(jì)能提高系統(tǒng)資源的使用效率,增加單位時(shí)間的算題量;但是對(duì)每個(gè)計(jì)算問(wèn)題來(lái)說(shuō),從算題開(kāi)始到全部完成所需要的時(shí)間可能延長(zhǎng),另外在確定并行工作道數(shù)時(shí)應(yīng)綜合系統(tǒng)的資源配置和用戶對(duì)資源的要求。
7思考多道程序設(shè)計(jì)環(huán)境中,內(nèi)存中有多個(gè)程序,但是某時(shí)刻只有一個(gè)程序占用CPU運(yùn)行,其他程序在做什么?思考多道程序設(shè)計(jì)環(huán)境中,內(nèi)存中有多個(gè)程序,但是某時(shí)刻只有一個(gè)8S1:a:=x+y;S2:b:=a-5;S3:c:=b+1;S4:w=3+a
S5:x=c+w程序的順序執(zhí)行及其特征1.程序的順序執(zhí)行S1S2S3例如對(duì)一個(gè)程序的多條語(yǔ)句:三條語(yǔ)句的順序執(zhí)行
3.2進(jìn)程S4S5S1:a:=x+y;程序的順序執(zhí)行及其特征1.程序的順序9
2.程序順序執(zhí)行時(shí)的特征
(1)順序性:處理機(jī)的操作嚴(yán)格按照程序所規(guī)定的順序執(zhí)行,即每一操作必須在上一個(gè)操作結(jié)束之后開(kāi)始。
(2)封閉性:程序是在封閉的環(huán)境下執(zhí)行的,即程序運(yùn)行時(shí)獨(dú)占全機(jī)資源,資源的狀態(tài)(除初始狀態(tài)外)只有本程序才能改變它。程序一旦開(kāi)始執(zhí)行,其執(zhí)行結(jié)果不受外界因素影響。
(3)可再現(xiàn)性:只要程序執(zhí)行時(shí)的環(huán)境和初始條件相同,當(dāng)程序重復(fù)執(zhí)行時(shí),都將獲得相同的結(jié)果。優(yōu)點(diǎn):程序的編制、調(diào)試方便,缺點(diǎn):計(jì)算機(jī)系統(tǒng)效率不高。
程序的順序執(zhí)行及其特征2.程序順序執(zhí)行時(shí)的特征程序的順序執(zhí)行及其特征10程序的并發(fā)執(zhí)行及其特征
1.程序的并發(fā)執(zhí)行
若干個(gè)程序段同時(shí)在系統(tǒng)中運(yùn)行,這些程序段的執(zhí)行在時(shí)間上是重疊的,一個(gè)程序段的執(zhí)行尚未結(jié)束,另一個(gè)程序段的執(zhí)行已經(jīng)開(kāi)始,即使這種重疊是很小的一部分,也稱(chēng)這幾個(gè)程序段是并發(fā)執(zhí)行的。PQR例:三個(gè)并發(fā)執(zhí)行的程序段。程序的并發(fā)執(zhí)行及其特征PQR例:三個(gè)并發(fā)執(zhí)行的程序段。11程序的并發(fā)執(zhí)行及其特征
1.程序的并發(fā)執(zhí)行在圖中存在Ii→Ci→Pi前趨關(guān)系,以至對(duì)一個(gè)作業(yè)的輸入、計(jì)算和打印三個(gè)操作,必須順序執(zhí)行,但并不存在Pi→Ii+1的關(guān)系,因而在對(duì)一批程序進(jìn)行處理時(shí),可使它們并發(fā)執(zhí)行。i1p1icpo1i2p2o2i3p3o3t1t2t3進(jìn)程時(shí)間程序的并發(fā)執(zhí)行及其特征i1p1icpo1i2p2o2i3p12在該例中存在下述關(guān)系:
Ii→Ci,Ii→Ii+1,Ci→Pi,Ci→Ci+1,Pi→Pi+1
而Ii+1和Ci及Pi-1是重迭的,亦即在Pi-1和Ci以及Ii+1之間,可以并發(fā)執(zhí)行。對(duì)于具有下述四條語(yǔ)句的程序段:S1:a:=x+2S2:b:=y+4S3:c:=a+bS4:d:=c+b在該例中存在下述關(guān)系:Ii→Ci,Ii→Ii+1,Ci→P13練習(xí):已知一個(gè)求值公式(A×A+3B)/(B+5A)若A和B已經(jīng)賦值,試畫(huà)出該公式求解的前趨圖S1:W=A×AS2:V=3×B……練習(xí):已知一個(gè)求值公式14
2.程序并發(fā)執(zhí)行時(shí)的特征
1)間斷性:走走停停
2)失去封閉性:資源狀態(tài)有多個(gè)程序改變3)不可再現(xiàn)性:計(jì)算結(jié)果和執(zhí)行速度有關(guān)例如,有兩個(gè)循環(huán)程序A和B,它們共享一個(gè)變量N。程序A每執(zhí)行一次時(shí),都要做N:=N+1操作;程序B每執(zhí)行一次時(shí),都要執(zhí)行print(N)操作,然后再將N置成“0”。A:while(1)B:while(1)N:=N+1;{print(N);N:=0;}程序A和B以不同的速度運(yùn)行。這樣,可能出現(xiàn)下述三種情況(假定某時(shí)刻變量N的值為n)。2.程序并發(fā)執(zhí)行時(shí)的特征15(1)N:=N+1;print(N);N:=0;N值分別為n+1,n+1,0。(2)print(N);N:=0;N:=N+1;值分別為n,0,1。(3)print(N);N:=N+1;N:=0;N值分別為n,n+1,0。上述情況說(shuō)明,程序在并發(fā)執(zhí)行時(shí),由于失去了封閉性,其計(jì)算結(jié)果已與并發(fā)程序的執(zhí)行速度有關(guān),從而使程序的執(zhí)行失去了可再現(xiàn)性。不可再現(xiàn)性:程序經(jīng)過(guò)多次執(zhí)行后,雖然它們執(zhí)行時(shí)的環(huán)境和初始條件相同,但得到的結(jié)果卻各不相同。(1)N:=N+1;print(N);N:=0;N值分別為n16進(jìn)程的定義較典型的進(jìn)程定義有:(1)進(jìn)程是程序的一次執(zhí)行。(2)進(jìn)程是一個(gè)程序及其數(shù)據(jù)在處理機(jī)上順序執(zhí)行時(shí)所發(fā)生的活動(dòng)。(3)進(jìn)程是程序在一個(gè)數(shù)據(jù)集合上運(yùn)行的過(guò)程,它是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。我們給出的進(jìn)程的定義:
進(jìn)程是進(jìn)程實(shí)體的運(yùn)行過(guò)程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。3.2進(jìn)程3.2.1進(jìn)程的定義進(jìn)程的定義3.2進(jìn)程173.2進(jìn)程進(jìn)程三要素:程序、數(shù)據(jù)、CPU進(jìn)程與程序的區(qū)別及關(guān)系。程序是靜止的,進(jìn)程是動(dòng)態(tài)的。進(jìn)程包括程序和程序處理的對(duì)象(數(shù)據(jù)集),進(jìn)程能得到程序處理的結(jié)果。進(jìn)程是一個(gè)獨(dú)立的運(yùn)行單位,能與其它進(jìn)程并行(并發(fā))活動(dòng)。而程序則不是。進(jìn)程是競(jìng)爭(zhēng)計(jì)算機(jī)系統(tǒng)有限資源的基本單位,也是進(jìn)行處理機(jī)調(diào)度的基本單位。進(jìn)程和程序并非一一對(duì)應(yīng)的,一個(gè)程序運(yùn)行在不同的數(shù)據(jù)集上就構(gòu)成了不同的進(jìn)程。一個(gè)程序可以作為多個(gè)進(jìn)程的運(yùn)行程序,一個(gè)進(jìn)程也可以運(yùn)行多個(gè)程序。3.2進(jìn)程18進(jìn)程與程序的區(qū)別簡(jiǎn)單例子《操作系統(tǒng)課程》--程序教師--CPU學(xué)生學(xué)習(xí)過(guò)程--進(jìn)程同一個(gè)教師教的A和B班學(xué)習(xí)進(jìn)度不一樣,所以可以比喻為一個(gè)程序擁有2個(gè)進(jìn)程思考:還有類(lèi)似的例子嗎?進(jìn)程與程序的區(qū)別簡(jiǎn)單例子19
我們舉一個(gè)例子,比如在有一個(gè)用戶程序notepad.exe(記事本),當(dāng)它存放在磁盤(pán)上時(shí),就是一個(gè)程序,在windows操作系統(tǒng)下運(yùn)行它時(shí),就會(huì)在內(nèi)存中建立一個(gè)記事本程序的進(jìn)程,而我們?cè)谟浭卤局芯庉嫷漠?dāng)前文字就是這個(gè)進(jìn)程的數(shù)據(jù)集,操作系統(tǒng)會(huì)為當(dāng)前的進(jìn)程設(shè)置一個(gè)進(jìn)程控制塊。如果我們?cè)俅蜷_(kāi)一個(gè)記事本程序的窗口,就會(huì)建立另一個(gè)進(jìn)程,此時(shí)運(yùn)行的是同一個(gè)程序,但存在兩個(gè)進(jìn)程,第二個(gè)窗口中的編輯內(nèi)容就是第二個(gè)進(jìn)程的數(shù)據(jù)集。
203.2.2為什么引入進(jìn)程提高資源利用率正確描述程序的執(zhí)行情況3.2.2為什么引入進(jìn)程提高資源利用率21
進(jìn)程的類(lèi)型在系統(tǒng)中同時(shí)有多個(gè)進(jìn)程存在,但歸納起來(lái)有兩大類(lèi):(1)系統(tǒng)進(jìn)程系統(tǒng)進(jìn)程起著資源管理和控制的作用。
或者:執(zhí)行操作系統(tǒng)核心代碼的進(jìn)程。(2)用戶進(jìn)程執(zhí)行用戶程序的進(jìn)程。進(jìn)程的類(lèi)型22系統(tǒng)進(jìn)程與用戶進(jìn)程的區(qū)別系統(tǒng)進(jìn)程被分配一個(gè)初始的資源集合,這些資源可以為它獨(dú)占,也能以最高優(yōu)先權(quán)的資格使用。用戶進(jìn)程通過(guò)系統(tǒng)服務(wù)請(qǐng)求的手段競(jìng)爭(zhēng)使用系統(tǒng)資源;用戶進(jìn)程不能直接做I/O操作,而系統(tǒng)進(jìn)程可以做顯式的、直接的I/O操作。系統(tǒng)進(jìn)程在管態(tài)下活動(dòng),而用戶進(jìn)程則在用戶態(tài)(目態(tài))下活動(dòng)。另一種分類(lèi):計(jì)算進(jìn)程,I/O進(jìn)程等注意:在UNIX系統(tǒng)中沒(méi)有這樣對(duì)進(jìn)程進(jìn)行分類(lèi)。系統(tǒng)進(jìn)程與用戶進(jìn)程的區(qū)別233.2.3進(jìn)程狀態(tài)(領(lǐng)會(huì))
進(jìn)程的三種基本狀態(tài):等待態(tài):等待某個(gè)事件的完成;就緒態(tài):等待系統(tǒng)分配處理器以便運(yùn)行;運(yùn)行態(tài):占有處理器正在運(yùn)行。3.2.3進(jìn)程狀態(tài)(領(lǐng)會(huì))24
1)就緒狀態(tài)(Ready)當(dāng)進(jìn)程已分配到除CPU以外的所有必要資源后,只要再獲得CPU,便可立即執(zhí)行,進(jìn)程這時(shí)的狀態(tài)稱(chēng)為就緒狀態(tài)。在一個(gè)系統(tǒng)中處于就緒狀態(tài)的進(jìn)程可能有多個(gè),通常將它們排成一個(gè)隊(duì)列,稱(chēng)為就緒隊(duì)列。
2)執(zhí)行狀態(tài)(Running)進(jìn)程已獲得CPU,其程序正在執(zhí)行。在單處理機(jī)系統(tǒng)中,只有一個(gè)進(jìn)程處于執(zhí)行狀態(tài);在多處理機(jī)系統(tǒng)中,則有多個(gè)進(jìn)程處于執(zhí)行狀態(tài)。3.2.3進(jìn)程狀態(tài)(領(lǐng)會(huì))1)就緒狀態(tài)(Ready)2)執(zhí)行狀態(tài)(Runni25
3)等待狀態(tài)(Wait/Block)正在執(zhí)行的進(jìn)程由于發(fā)生某事件而暫時(shí)無(wú)法繼續(xù)執(zhí)行時(shí),便放棄處理機(jī)而處于暫停狀態(tài),這種暫停狀態(tài)稱(chēng)為等待狀態(tài)(阻塞狀態(tài)或封鎖狀態(tài))。
3)等待狀態(tài)(Wait/Block)26進(jìn)程的狀態(tài)變化進(jìn)程在執(zhí)行中狀態(tài)會(huì)不斷地改變,每個(gè)進(jìn)程在任何時(shí)刻總是處于上述三種基本狀態(tài)的某一種基本狀態(tài),進(jìn)程狀態(tài)之間轉(zhuǎn)換關(guān)系如下圖所示:進(jìn)程的狀態(tài)變化27進(jìn)程的三種基本狀態(tài)及其轉(zhuǎn)換
進(jìn)程的三種基本狀態(tài)及其轉(zhuǎn)換28
運(yùn)行態(tài)→等待態(tài)往往是由于等待外設(shè),等待主存等資源分配或等待人工干預(yù)而引起的。
等待態(tài)→就緒態(tài)則是等待的條件已滿足,只需分配到處理器后就能運(yùn)行。
運(yùn)行態(tài)→就緒態(tài)不是由于自身原因,而是由外界原因使運(yùn)行狀態(tài)的進(jìn)程讓出處理器,這時(shí)候就變成就緒態(tài)。例如時(shí)間片用完,或有更高優(yōu)先級(jí)的進(jìn)程來(lái)?yè)屨继幚砥鞯取?/p>
就緒態(tài)→運(yùn)行態(tài)系統(tǒng)按某種策略選中就緒隊(duì)列中的一個(gè)進(jìn)程占用處理器,此時(shí)就變成了運(yùn)行態(tài)。運(yùn)行態(tài)→等待態(tài)往往是由于等待外設(shè),等待主存等資源分配29進(jìn)程及狀態(tài)的例子醫(yī)院體檢體檢表——程序體檢過(guò)程——進(jìn)程體檢中等待、就緒、運(yùn)行對(duì)應(yīng)進(jìn)程的三種狀態(tài)進(jìn)程及狀態(tài)的例子醫(yī)院體檢30問(wèn)題:?jiǎn)蜟PU系統(tǒng)中,如果系統(tǒng)中有N個(gè)進(jìn)程,運(yùn)行進(jìn)程最多幾個(gè),最少幾個(gè)?就緒進(jìn)程最多幾個(gè),最少幾個(gè)?等待進(jìn)程最多幾個(gè),最少幾個(gè)?解答:運(yùn)行進(jìn)程最多1個(gè),最少0個(gè); 就緒進(jìn)程最多N-1個(gè),最少0個(gè); 等待進(jìn)程最多N個(gè),最少0個(gè);問(wèn)題:?jiǎn)蜟PU系統(tǒng)中,如果系統(tǒng)中有N個(gè)進(jìn)程,解答:運(yùn)行進(jìn)程最31
小問(wèn)題
下列進(jìn)程狀態(tài)變化中,______變化是不可能產(chǎn)生的?A運(yùn)行->就緒B運(yùn)行->阻塞C阻塞->運(yùn)行D阻塞->就緒小問(wèn)題下列進(jìn)程狀態(tài)變化中,_32其他教材給出的進(jìn)程的狀態(tài)變圖
運(yùn)行
等待就緒服務(wù)請(qǐng)求(請(qǐng)求I/O等)服務(wù)完成/事件來(lái)到進(jìn)程調(diào)度時(shí)間片到運(yùn)行等待就緒服務(wù)請(qǐng)求服務(wù)完33
討論進(jìn)程狀態(tài)變遷
運(yùn)行
等待
就緒變遷1變遷4變遷3變遷2變遷1——>變遷3?變遷4——>變遷3?討論進(jìn)程狀態(tài)變遷運(yùn)行34問(wèn)題:如果操作系統(tǒng)里面存在多個(gè)進(jìn)程,找出所有的可能狀態(tài)轉(zhuǎn)換。解答:
就緒—運(yùn)行:不一定(系統(tǒng)中僅一個(gè)進(jìn)程) 轉(zhuǎn)換條件:被調(diào)度程序選中
運(yùn)行—就緒:一定(討論就緒隊(duì)列的長(zhǎng)度) 轉(zhuǎn)換條件:時(shí)間片到時(shí),或有更高優(yōu)先級(jí) 的進(jìn)程出現(xiàn)
運(yùn)行—等待:不一定(考慮死鎖) 轉(zhuǎn)換條件:等待某事件發(fā)生
等待—就緒:不一定 轉(zhuǎn)換條件:考慮就緒隊(duì)列的長(zhǎng)度問(wèn)題:如果操作系統(tǒng)里面存在多個(gè)進(jìn)程,找出所有的可能狀態(tài)轉(zhuǎn)換。35例1:設(shè)有3個(gè)排序程序。程序A:采用冒泡排序算法,在屏幕的左1/3處開(kāi)設(shè)一個(gè)窗口顯示其排序過(guò)程。程序B:采用堆排序算法,在屏幕的中1/3處開(kāi)設(shè)一個(gè)窗口顯示其排序過(guò)程。程序C:采用快速排序算法,在屏幕的右1/3處開(kāi)設(shè)一個(gè)窗口顯示其排序過(guò)程。(1)在不支持進(jìn)程運(yùn)行環(huán)境的操作系統(tǒng)下運(yùn)行(2)在支持進(jìn)程運(yùn)行環(huán)境的操作系統(tǒng)下運(yùn)行
例1:設(shè)有3個(gè)排序程序。36
例2:設(shè)有2個(gè)程序,程序C是打印工資報(bào)表的程序,程序D是計(jì)算1000以?xún)?nèi)所有素?cái)?shù)并顯示最后結(jié)果程序。(1)在不支持進(jìn)程運(yùn)行環(huán)境的操作系統(tǒng)下運(yùn)行。(2)在支持進(jìn)程運(yùn)行環(huán)境的操作系統(tǒng)下運(yùn)行。例2:解答(1)在不支持進(jìn)程運(yùn)行環(huán)境的操作系統(tǒng)下,依次執(zhí)行程序C、程序D,可以看到,先是打印機(jī)不停地打印工資報(bào)表,打完后,接著運(yùn)行程序C,不停地計(jì)算,最后顯示所計(jì)算的結(jié)果。
(2)在支撐進(jìn)程運(yùn)行環(huán)境的操作系統(tǒng)下,創(chuàng)建進(jìn)程C和進(jìn)程D。由于進(jìn)程C是I/O量較大的進(jìn)程,而進(jìn)程D是計(jì)算量較大的進(jìn)程,故在系統(tǒng)進(jìn)程調(diào)度的控制下,兩個(gè)進(jìn)程并發(fā)執(zhí)行??梢钥吹酱蛴C(jī)不斷打印工資報(bào)表,而處理機(jī)不停地計(jì)算,最后屏幕顯示計(jì)算的結(jié)果。例2:設(shè)有2個(gè)程序,程序C是打印工37進(jìn)程屬性:動(dòng)態(tài)性
多個(gè)不同的進(jìn)程可以包含相同的程序并發(fā)執(zhí)行并發(fā)執(zhí)行的進(jìn)程輪流占用處理器
進(jìn)程有三種基本狀態(tài)[計(jì)算機(jī)軟件及應(yīng)用]處理器管理課件38可再入程序(識(shí)記)(1)什么是可再入程序。一個(gè)能被多個(gè)用戶同時(shí)調(diào)用的程序稱(chēng)做"可再入"的程序。(2)可再入程序的性質(zhì)??稍偃氤绦虮仨毷羌兇a,在執(zhí)行時(shí)自身不改變;一個(gè)可再入程序要求調(diào)用者提供工作區(qū),以保證程序以同樣方式為各用戶服務(wù)。編譯程序和操作系統(tǒng)程序通常都是"可再入"程序,能同時(shí)被不同用戶調(diào)用而構(gòu)成不同的進(jìn)程??稍偃氤绦颍ㄗR(shí)記)39進(jìn)程三個(gè)特性:動(dòng)態(tài)性從誕生、運(yùn)行,直至消滅。并發(fā)性并發(fā)執(zhí)行的進(jìn)程輪流占用處理器
異步性不可預(yù)知的速度向前推進(jìn)[計(jì)算機(jī)軟件及應(yīng)用]處理器管理課件40進(jìn)程控制塊的作用
進(jìn)程控制塊(ProcessControlBlock,簡(jiǎn)稱(chēng)PCB),是操作系統(tǒng)為進(jìn)程分配的用于標(biāo)志進(jìn)程,記錄各進(jìn)程執(zhí)行情況的。進(jìn)程控制塊是進(jìn)程存在的標(biāo)志,它記錄了進(jìn)程從創(chuàng)建到消亡動(dòng)態(tài)變化的狀況,進(jìn)程隊(duì)列實(shí)際也是進(jìn)程控制塊的鏈接。操作系統(tǒng)利用進(jìn)程控制塊對(duì)進(jìn)程進(jìn)行控制和管理。作用:(1)記錄進(jìn)程的有關(guān)信息,以便操作系統(tǒng)的進(jìn)程調(diào)度程序?qū)M(jìn)程進(jìn)行調(diào)度。這些信息包括標(biāo)志信息、說(shuō)明信息、現(xiàn)場(chǎng)信息和管理信息等;(2)標(biāo)志進(jìn)程的存在,進(jìn)程控制塊是進(jìn)程存在的唯一標(biāo)志
進(jìn)程的組成:程序+數(shù)據(jù)+PCB3.3進(jìn)程隊(duì)列3.3.1進(jìn)程控制塊(領(lǐng)會(huì))進(jìn)程控制塊的作用3.3進(jìn)程隊(duì)列413.3進(jìn)程隊(duì)列3.3.1進(jìn)程控制塊(領(lǐng)會(huì))進(jìn)程控制塊的基本內(nèi)容。標(biāo)志信息含唯一的進(jìn)程名說(shuō)明信息有進(jìn)程狀態(tài)、等待原因、進(jìn)程程序存放位置和進(jìn)程數(shù)據(jù)存放位置現(xiàn)場(chǎng)信息包括通用、控制和程序狀態(tài)字寄存器的內(nèi)容管理信息存放程序優(yōu)先數(shù)和隊(duì)列指針3.3進(jìn)程隊(duì)列42PCB的主要內(nèi)容
PCB的主要內(nèi)容433.3進(jìn)程隊(duì)列3.3.2進(jìn)程的創(chuàng)建和撤銷(xiāo)3.3進(jìn)程隊(duì)列441.進(jìn)程圖(ProcessGraph)一個(gè)進(jìn)程可以創(chuàng)建另一個(gè)進(jìn)程,進(jìn)程圖是用于描述一個(gè)進(jìn)程的家族關(guān)系的有向樹(shù),結(jié)點(diǎn)(圓圈)代表進(jìn)程。進(jìn)程樹(shù)
父進(jìn)程祖先子進(jìn)程1.進(jìn)程圖(ProcessGraph)進(jìn)程樹(shù)父進(jìn)程祖45
2.引起創(chuàng)建進(jìn)程的事件用戶登錄->分時(shí)OS作業(yè)調(diào)度->批處理OS提供服務(wù)應(yīng)用請(qǐng)求系統(tǒng)內(nèi)核創(chuàng)建應(yīng)用程序自己創(chuàng)建2.引起創(chuàng)建進(jìn)程的事件系統(tǒng)內(nèi)核創(chuàng)建應(yīng)用程序自己創(chuàng)建46
3.進(jìn)程的創(chuàng)建(CreationofProcess)調(diào)用進(jìn)程創(chuàng)建原語(yǔ)Creat()按下述步驟創(chuàng)建一個(gè)新進(jìn)程。申請(qǐng)空白PCB。為新進(jìn)程分配資源。初始化進(jìn)程控制塊將新進(jìn)程插入就緒隊(duì)列
代碼是什么樣的?
3.進(jìn)程的創(chuàng)建(CreationofProcess)47創(chuàng)建原語(yǔ)流圖創(chuàng)建原語(yǔ)流圖48進(jìn)程的撤銷(xiāo)1.引起進(jìn)程撤銷(xiāo)的事件1)正常結(jié)束例如,批處理系統(tǒng)中,Holt分時(shí)系統(tǒng)中,Logsoff2)異常結(jié)束越界﹑保護(hù)錯(cuò)﹑特權(quán)指令錯(cuò)﹑非法指令錯(cuò)﹑運(yùn)行超時(shí)﹑等待超時(shí)﹑算術(shù)運(yùn)算錯(cuò)﹑I/O故障3)外界干預(yù)操作員或操作系統(tǒng)﹑父進(jìn)程請(qǐng)求﹑父進(jìn)程終止進(jìn)程的撤銷(xiāo)492.進(jìn)程的撤銷(xiāo)過(guò)程如果系統(tǒng)中發(fā)生了上述要求終止進(jìn)程的某事件,OS便調(diào)用進(jìn)程終止原語(yǔ)destroy
.(1)根據(jù)被終止進(jìn)程的標(biāo)識(shí)符,從PCB集合中檢索出該進(jìn)程的PCB,從中讀出該進(jìn)程的狀態(tài)。(2)若被終止進(jìn)程正處于執(zhí)行狀態(tài),應(yīng)立即終止該進(jìn)程的執(zhí)行,并置調(diào)度標(biāo)志為真,用于指示該進(jìn)程被終止后應(yīng)重新進(jìn)行調(diào)度。2.進(jìn)程的撤銷(xiāo)過(guò)程50
(3)若該進(jìn)程還有子孫進(jìn)程,還應(yīng)將其所有子孫進(jìn)程予以終止,以防它們成為不可控的進(jìn)程。?(4)將被終止進(jìn)程所擁有的全部資源,或者歸還給其父進(jìn)程,或者歸還給系統(tǒng)。(5)將被終止進(jìn)程(PCB)從所在隊(duì)列(或鏈表)中移出,等待其他程序來(lái)搜集信息。(3)若該進(jìn)程還有子孫進(jìn)程,還應(yīng)將其所有子孫進(jìn)程予以終51撤消原語(yǔ)流圖撤消原語(yǔ)流圖52進(jìn)程的阻塞與喚醒
1.引起進(jìn)程阻塞和喚醒的事件有下述幾類(lèi)事件會(huì)引起進(jìn)程阻塞或被喚醒。1)請(qǐng)求系統(tǒng)服務(wù):打印機(jī)2)啟動(dòng)某種操作:I/O3)新數(shù)據(jù)尚未到達(dá):合作4)無(wú)新工作可做:發(fā)送數(shù)據(jù)
進(jìn)程的阻塞與喚醒532.進(jìn)程阻塞過(guò)程正在執(zhí)行的進(jìn)程,當(dāng)發(fā)現(xiàn)上述某事件時(shí),由于無(wú)法繼續(xù)執(zhí)行,于是進(jìn)程便通過(guò)調(diào)用阻塞原語(yǔ)block把自己阻塞。過(guò)程:停止執(zhí)行,把進(jìn)程控制塊中的現(xiàn)行狀態(tài)由“執(zhí)行”改為“阻塞”,并將PCB插入阻塞隊(duì)列;將本進(jìn)程插入到具有相同事件的阻塞(等待)隊(duì)列;轉(zhuǎn)調(diào)度程序進(jìn)行重新調(diào)度,將處理機(jī)分配給另一就緒進(jìn)程并進(jìn)行切換,2.進(jìn)程阻塞過(guò)程54入口將現(xiàn)行進(jìn)程的pcb現(xiàn)場(chǎng)送該進(jìn)程的pcb現(xiàn)場(chǎng)保護(hù)區(qū)置該進(jìn)程狀態(tài)為阻塞把該進(jìn)程插入相應(yīng)的等待隊(duì)列轉(zhuǎn)進(jìn)程調(diào)度程序進(jìn)程阻塞原語(yǔ)的實(shí)現(xiàn),這里,轉(zhuǎn)進(jìn)程調(diào)度程序是很重要的,否則,處理機(jī)將會(huì)出現(xiàn)空轉(zhuǎn)而浪費(fèi)資源。入口將現(xiàn)行進(jìn)程的pcb現(xiàn)場(chǎng)送該進(jìn)程的pcb現(xiàn)場(chǎng)保護(hù)55
3.進(jìn)程喚醒過(guò)程當(dāng)被阻塞進(jìn)程所期待的事件出現(xiàn)時(shí),則由有關(guān)進(jìn)程調(diào)用喚醒原語(yǔ)wakeup(),將等待該事件的進(jìn)程喚醒。執(zhí)行過(guò)程:把被阻塞的進(jìn)程從等待該事件的阻塞隊(duì)列中移出,將其PCB中的現(xiàn)行狀態(tài)由阻塞改為就緒;再將該P(yáng)CB插入到就緒隊(duì)列中。
3.進(jìn)程喚醒過(guò)程56圖喚醒原語(yǔ)[計(jì)算機(jī)軟件及應(yīng)用]處理器管理課件57小結(jié)
操作系統(tǒng)的順序程序和并發(fā)進(jìn)程執(zhí)行的各自特點(diǎn)(1)順序性1)間斷性
(2)封閉性2)失去封閉性(3)可再現(xiàn)性3)不可再現(xiàn)性
進(jìn)程基本概念進(jìn)程是進(jìn)程實(shí)體的運(yùn)行過(guò)程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位進(jìn)程的三個(gè)基本狀態(tài)及轉(zhuǎn)換1)就緒(Ready)狀態(tài)2)執(zhí)行狀態(tài)3)阻塞狀態(tài)進(jìn)程控制小結(jié)
操作系統(tǒng)的順序程序和并發(fā)進(jìn)程執(zhí)行的各自特點(diǎn)583.3.3進(jìn)程隊(duì)列的鏈接在多道程序設(shè)計(jì)的系統(tǒng)中往往會(huì)同時(shí)創(chuàng)建多個(gè)進(jìn)程。在單處理器的情況下,每次只能讓一個(gè)進(jìn)程運(yùn)行,其他的進(jìn)程處于就緒狀態(tài)或等待狀態(tài)。為了便于管理,經(jīng)常把處于相同狀態(tài)的進(jìn)程鏈接在一起,稱(chēng)“進(jìn)程隊(duì)列”,由于進(jìn)程控制塊能標(biāo)志進(jìn)程的存在和動(dòng)態(tài)刻畫(huà)進(jìn)程的特性,因此,進(jìn)程隊(duì)列可以用進(jìn)程控制塊的連接來(lái)形成。鏈接的方式有兩種:?jiǎn)蜗蜴溄雍碗p向鏈接。
3.3.3進(jìn)程隊(duì)列的鏈接59基本隊(duì)列就緒隊(duì)列:由若干就緒進(jìn)程按一定次序鏈接起來(lái)的隊(duì)列。
等待隊(duì)列:把等待資源或等待某些事件的進(jìn)程排列的隊(duì)列進(jìn)程的入隊(duì)和出隊(duì)。出隊(duì)和入隊(duì):當(dāng)發(fā)生的某個(gè)事件使一個(gè)進(jìn)程的狀態(tài)發(fā)生變化時(shí),這個(gè)進(jìn)程就要退出所在的某個(gè)隊(duì)列而排入到另一個(gè)隊(duì)列中去。
出隊(duì):一個(gè)進(jìn)程從所在的隊(duì)列退出的操作稱(chēng)為出隊(duì)
入隊(duì):一個(gè)進(jìn)程排入到一個(gè)指定的隊(duì)列的操作稱(chēng)為入隊(duì)?;娟?duì)列60
系統(tǒng)中負(fù)責(zé)進(jìn)程入隊(duì)和出隊(duì)的工作稱(chēng)為隊(duì)列管理。無(wú)論單向鏈接還是雙向鏈接,解決入,出隊(duì)問(wèn)題,都是首先找到該隊(duì)列的隊(duì)首指針,沿鏈找出要入隊(duì)的進(jìn)程以及它要插入的位置,或找出要出隊(duì)的進(jìn)程,然后修改本進(jìn)程指針(入隊(duì)情況)和相鄰進(jìn)程的有關(guān)指針值即可。系統(tǒng)中負(fù)責(zé)進(jìn)程入隊(duì)和出隊(duì)的工作稱(chēng)為隊(duì)列管理。61[計(jì)算機(jī)軟件及應(yīng)用]處理器管理課件623.4UNIX系統(tǒng)中的進(jìn)程3.4.1UNIX進(jìn)程的特點(diǎn)UNIX中分為用戶進(jìn)程和系統(tǒng)進(jìn)程,用戶進(jìn)程工作在用戶態(tài)執(zhí)行,系統(tǒng)進(jìn)程工作在核心態(tài)執(zhí)行。如果在用戶態(tài)的進(jìn)程要請(qǐng)求系統(tǒng)功能調(diào)用的話,需要使用訪管指令。3.4UNIX系統(tǒng)中的進(jìn)程3.4.1UNIX進(jìn)程的特點(diǎn)633.4UNIX系統(tǒng)中的進(jìn)程3.4.2UNIX進(jìn)程的組成進(jìn)程控制塊(包括進(jìn)程基本控制塊和進(jìn)程擴(kuò)充控制塊)、正文段、數(shù)據(jù)段(1)進(jìn)程基本控制塊(proc)中包含的內(nèi)容PS:進(jìn)程基本控制塊的內(nèi)容是常駐主存的。A,標(biāo)識(shí)信息:包括用戶標(biāo)識(shí)和進(jìn)程標(biāo)識(shí)。B,有關(guān)進(jìn)程非常駐主存的信息。C,進(jìn)程調(diào)度的一些信息。D,其他信息(2)進(jìn)程擴(kuò)充控制塊(user)隨用戶程序一起裝入主存和調(diào)出主存,包括:標(biāo)識(shí),現(xiàn)場(chǎng)保護(hù),主存管理,文件讀寫(xiě),系統(tǒng)調(diào)用,進(jìn)程控制與管理等。進(jìn)程控制塊并不全部在內(nèi)存。P46-48正文段:可供多個(gè)進(jìn)程共享的程序。數(shù)據(jù)段:進(jìn)程執(zhí)行費(fèi)共享的程序和程序執(zhí)行時(shí)所用到的數(shù)據(jù)。3.4UNIX系統(tǒng)中的進(jìn)程3.4.2UNIX進(jìn)程的組成643.4UNIX系統(tǒng)中的進(jìn)程3.4.3UNIX進(jìn)程的狀態(tài)(1)運(yùn)行狀態(tài)(2)就緒狀態(tài)(3)睡眠狀態(tài)(4)創(chuàng)建狀態(tài)(5)僵死狀態(tài)3.4UNIX系統(tǒng)中的進(jìn)程3.4.3UNIX進(jìn)程的狀態(tài)65
在UNIX系統(tǒng)中進(jìn)程控制的系統(tǒng)調(diào)用有:fork()創(chuàng)建子進(jìn)程sleep()進(jìn)程睡眠exit()進(jìn)程自已終止(自殺)wait()(父)等待子進(jìn)程終止wakeup()進(jìn)程喚醒
在UNIX系統(tǒng)中進(jìn)程控制的系統(tǒng)調(diào)用有:663.4UNIX系統(tǒng)中的進(jìn)程3.4.4UNIX進(jìn)程的創(chuàng)建和終止(1)unix進(jìn)程樹(shù)unix系統(tǒng)被啟動(dòng)后,首先執(zhí)行0號(hào)進(jìn)程,0號(hào)進(jìn)程是運(yùn)行持續(xù)工作在核心態(tài)的進(jìn)程,它的功能是執(zhí)行進(jìn)程調(diào)度和讓進(jìn)程在主存和磁盤(pán)上進(jìn)行交換。0號(hào)進(jìn)程又稱(chēng)為交換進(jìn)程。0號(hào)進(jìn)程又創(chuàng)建一個(gè)1號(hào)進(jìn)程,1號(hào)進(jìn)程又稱(chēng)為初始化進(jìn)程。1號(hào)進(jìn)程在用戶態(tài)運(yùn)行,每當(dāng)有終端有用戶請(qǐng)求注冊(cè)時(shí),1號(hào)進(jìn)程就為該用戶創(chuàng)建1個(gè)login進(jìn)程。如果有多個(gè)用戶注冊(cè),那么就創(chuàng)建多個(gè)login進(jìn)程。如果用戶登陸成功login進(jìn)程就創(chuàng)建1個(gè)shell進(jìn)程。------------------------這樣的創(chuàng)建過(guò)程像一棵樹(shù)(2)unix進(jìn)程的創(chuàng)建在unix中除了1號(hào)進(jìn)程和0號(hào)進(jìn)程外其他進(jìn)程都是用fork()系統(tǒng)調(diào)用創(chuàng)建的,形成父子關(guān)系。由fork()創(chuàng)建的新進(jìn)程實(shí)際上是父進(jìn)程的一個(gè)映像。3.4UNIX系統(tǒng)中的進(jìn)程3.4.4UNIX進(jìn)程的創(chuàng)建和67fork主要工作如下:a,在進(jìn)程proc[]中找出一個(gè)空閑的表項(xiàng),用來(lái)存放proc結(jié)構(gòu)b,為子進(jìn)程分配一個(gè)唯一的標(biāo)識(shí)號(hào)c,把父進(jìn)程的proc[]中的字段復(fù)制到子進(jìn)程的proc中,但把分配到得標(biāo)識(shí)號(hào)置于p_pid中,把p_ppid置為父進(jìn)程的的標(biāo)識(shí)號(hào),把p_stat置為創(chuàng)建狀態(tài)。d,按父進(jìn)程中p_size所示的長(zhǎng)度為子進(jìn)程申請(qǐng)分配內(nèi)存。(3)unix進(jìn)程的終止fork主要工作如下:68過(guò)程:以shell進(jìn)程為例,shell進(jìn)程通過(guò)接收用戶的命令,然后通過(guò)fork()創(chuàng)建子進(jìn)程處理命令exec,父進(jìn)程通過(guò)wait等待子進(jìn)程的結(jié)束,子進(jìn)程是通過(guò)系統(tǒng)調(diào)用exit請(qǐng)求終止自己,并釋放父進(jìn)程。系統(tǒng)調(diào)用exit的主要任務(wù)是把終止進(jìn)程自被創(chuàng)建以來(lái)所占用的系統(tǒng)資源退還給系統(tǒng)。關(guān)閉該進(jìn)程的打開(kāi)文件,釋放它對(duì)正文段的使用權(quán)。把user結(jié)構(gòu)換出到磁盤(pán)兌換區(qū)并收回?cái)?shù)據(jù)段占用的主存空間。然后把子進(jìn)程改為僵死狀態(tài),像父進(jìn)程發(fā)出信號(hào),由父進(jìn)程作善后處理。
系統(tǒng)調(diào)用wait對(duì)exit終止信號(hào)作善后處理。wait的任務(wù)是先查找僵死狀態(tài)的子進(jìn)程,若子進(jìn)程未僵死,則讓該進(jìn)程等待,直到子進(jìn)程成為僵死狀態(tài)后釋放。當(dāng)父進(jìn)程釋放后,wait繼續(xù)執(zhí)行,再?gòu)拇疟P(pán)對(duì)換區(qū)中把子進(jìn)程的user結(jié)構(gòu)讀入主存,釋放user在對(duì)換區(qū)中所占的空間,然后把user存放的時(shí)間信息加在本進(jìn)程的user結(jié)構(gòu)中,再釋放主緩沖去,把子進(jìn)程子proc中的表項(xiàng)刪除。
綜上所述:一個(gè)子進(jìn)程終止后,其父進(jìn)程的善后處理工作主要是釋放子進(jìn)程的proc和user,并把user存放的時(shí)間信息累加到父進(jìn)程中。過(guò)程:以shell進(jìn)程為例,shell進(jìn)程通過(guò)接收用戶的命令69fork調(diào)用的一個(gè)奇妙之處就是它僅僅被調(diào)用一次,卻能夠返回兩次,它可能有三種不同的返回值:在父進(jìn)程中,fork返回新創(chuàng)建子進(jìn)程的進(jìn)程ID;在子進(jìn)程中,fork返回0;如果出現(xiàn)錯(cuò)誤,fork返回一個(gè)負(fù)值P54實(shí)驗(yàn)二進(jìn)程管理fork調(diào)用的一個(gè)奇妙之處就是它僅僅被調(diào)用一次,卻能夠返回兩70/*fork_test.c*/
#include<sys/types.h>
#inlcude<unistd.h>
main()
{
pid_tpid;
/*此時(shí)僅有一個(gè)進(jìn)程*/
pid=fork();
/*此時(shí)已經(jīng)有兩個(gè)進(jìn)程在同時(shí)運(yùn)行*/
if(pid<0)
printf("errorinfork!");
elseif(pid==0)
printf("Iamthechildprocess,myprocessIDis%d\n",getpid());
else
printf("Iamtheparentprocess,myprocessIDis%d\n",getpid());
}
編譯并運(yùn)行:$gccfork_test.c-ofork_test
$./fork_test
Iamtheparentprocess,myprocessIDis1991
Iamthechildprocess,myprocessIDis1992
/*fork_test.c*/
#include<sys713.4.5unix進(jìn)程的換進(jìn)換出概念:動(dòng)態(tài)的對(duì)內(nèi)存中把就緒進(jìn)程從磁盤(pán)交換區(qū)移入,把等待進(jìn)程移到磁盤(pán)交換區(qū),稱(chēng)這種行為叫做進(jìn)程的換進(jìn)換出。意義:使系統(tǒng)運(yùn)行效率提高。3.4.6unix進(jìn)程的睡眠與喚醒3.4.5unix進(jìn)程的換進(jìn)換出概念:動(dòng)態(tài)的對(duì)內(nèi)存中把就緒723.5中斷技術(shù)3.5.1、中斷和中斷的類(lèi)型中斷一個(gè)進(jìn)程占有處理器運(yùn)行時(shí),由于自身或者外界的原因(出現(xiàn)了事件)使運(yùn)行被打斷,讓操作系統(tǒng)處理所出現(xiàn)的事件,到適當(dāng)?shù)臅r(shí)候再讓被打斷的進(jìn)程繼續(xù)運(yùn)行,這個(gè)過(guò)程稱(chēng)為"中斷"。3.5中斷技術(shù)73從中斷事件的性質(zhì)出發(fā),中斷可以分為兩大類(lèi):強(qiáng)迫性中斷事件包括硬件故障中斷,程序性中斷,外部中斷和輸入輸出中斷等自愿性中斷事件是由正在運(yùn)行的進(jìn)程執(zhí)行一條訪管指令用以請(qǐng)求系統(tǒng)調(diào)用而引起的中斷,這種中斷也稱(chēng)為"訪管中斷"。自愿中斷的斷點(diǎn)是確定的,而強(qiáng)迫性中斷的斷點(diǎn)可能發(fā)生在任何位置。從中斷事件的性質(zhì)出發(fā),中斷可以分為兩大類(lèi):743.5.2中斷的響應(yīng)中斷響應(yīng)(硬件即中斷裝置操作)處理器每執(zhí)行一條指令后,硬件的中斷位置立即檢查有無(wú)中斷事件發(fā)生,若有中斷事件發(fā)生,則暫?,F(xiàn)行進(jìn)程的執(zhí)行,而讓操作系統(tǒng)的中斷處理程序占用處理器,這一過(guò)程稱(chēng)為"中斷響應(yīng)"。3.5.2中斷的響應(yīng)中斷響應(yīng)(硬件即中斷裝置操作)75中斷響應(yīng)過(guò)程中,中斷裝置要做以下三項(xiàng)工作:是否有中斷事件發(fā)生
判別自愿性中斷,只要檢查操作碼是否為訪管指令。
判別強(qiáng)迫性中斷,則要檢查中斷寄存器內(nèi)容。若為0,則無(wú)中斷;若非0,則表示有中斷事件發(fā)生。若有中斷發(fā)生,保護(hù)斷點(diǎn)信息
每個(gè)程序都有一個(gè)程序狀態(tài)字(PSW)來(lái)反映本狀態(tài)的執(zhí)行狀態(tài),如基本狀態(tài)、中斷碼和中斷屏蔽位等內(nèi)容。處理器設(shè)有一個(gè)"程序狀態(tài)字寄存器"用來(lái)存放當(dāng)前運(yùn)行程序的PSW。程序狀態(tài)字可分為當(dāng)前PSW、舊PSW和新PSW。
當(dāng)出現(xiàn)中斷事件后,把被中斷進(jìn)程的PSW保存為舊PSW,即完成斷點(diǎn)信息保護(hù)。啟動(dòng)操作系統(tǒng)的中斷處理程序工作
中斷裝置通過(guò)"交換PSW"過(guò)程完成此項(xiàng)任務(wù),即把出現(xiàn)的中斷事件存放到當(dāng)前PSW中斷碼位置,然后把該當(dāng)前PSW保存為舊PSW,再把操作系統(tǒng)中斷處理程序的新PSW送到程序狀態(tài)字寄存器中,成為當(dāng)前的PSW。中斷響應(yīng)過(guò)程中,中斷裝置要做以下三項(xiàng)工作:763.5.4中斷處理(軟件即操作系統(tǒng)操作)操作系統(tǒng)的中斷處理程序?qū)χ袛嗍录M(jìn)行處理時(shí),大致要做三方面的工作:保護(hù)被中斷進(jìn)程的現(xiàn)場(chǎng)信息
把中斷時(shí)的通用寄存器,控制寄存器內(nèi)容及舊PSW保存到被中斷進(jìn)程的進(jìn)程控制塊中。分析中斷原因
根據(jù)舊PSW的中斷碼可知發(fā)生該中斷的具體原因。處理發(fā)生的中斷事件
一般只做一些簡(jiǎn)單處理,在多數(shù)情況下把具體的處理交給其他程序模塊去做。3.5.4中斷處理(軟件即操作系統(tǒng)操作)773.5.4中斷優(yōu)先級(jí)和中斷屏蔽(識(shí)記)1、中斷優(yōu)先級(jí)是硬件設(shè)計(jì)時(shí)確定的。中斷裝置按預(yù)定的順序來(lái)響應(yīng)同時(shí)出現(xiàn)的中斷事件,這個(gè)預(yù)定的順序稱(chēng)為"中斷優(yōu)先級(jí)"。中斷優(yōu)先級(jí)是按中斷事件的重要性和緊迫程度來(lái)確定的,是由硬件設(shè)計(jì)時(shí)固定下來(lái)的。一般情況下,優(yōu)先級(jí)的高低順序依次為:硬件故障中斷、自愿中斷、程序性中斷,外部中斷和輸入輸出中斷。3.5.4中斷優(yōu)先級(jí)和中斷屏蔽(識(shí)記)782、中斷的嵌套處理3、中斷屏蔽的作用。中斷優(yōu)先級(jí)只是規(guī)定了中斷裝置響應(yīng)同時(shí)出現(xiàn)的中斷的次序,當(dāng)中斷裝置響應(yīng)了某個(gè)中斷后中斷處理程序在進(jìn)行處理時(shí),中斷裝置也可能去響應(yīng)另一個(gè)中斷事件。因此會(huì)出現(xiàn)優(yōu)先級(jí)低的中斷事件的處理打斷優(yōu)先級(jí)高的中斷事件的處理,使得中斷事件的處理順序與響應(yīng)順序不一致,而且會(huì)形成多重嵌套處理,使多現(xiàn)場(chǎng)保護(hù)、程序返回等工作變的復(fù)雜。2、中斷的嵌套處理79中斷屏蔽技術(shù)就是為了解決上述問(wèn)題而提出的在一個(gè)中斷處理沒(méi)有結(jié)束之前不響應(yīng)其他中斷事件,或者只響應(yīng)比當(dāng)前級(jí)別高的中斷事件。于是,當(dāng)中斷裝置檢查到有中斷事件后,便去查看PSW中中斷屏蔽標(biāo)志,如果沒(méi)有屏蔽就響應(yīng)該中斷;否則,暫時(shí)不響應(yīng)該中斷,待屏蔽標(biāo)志消除后再響應(yīng)。自愿中斷是不能屏蔽的。中斷屏蔽技術(shù)就是為了解決上述問(wèn)題而提出的在一個(gè)中斷處理沒(méi)有結(jié)803.6UNIX系統(tǒng)的中斷技術(shù)3.6UNIX系統(tǒng)的中斷技術(shù)813.7處理器調(diào)度(領(lǐng)會(huì))1、進(jìn)程調(diào)度的職責(zé)。按選定的進(jìn)程調(diào)度算法從就緒隊(duì)列中選擇一個(gè)進(jìn)程,讓它占用處理器。2、選擇進(jìn)程調(diào)度算法的幾個(gè)準(zhǔn)則:·提高處理器利用率
·增大吞吐量
·減少等待時(shí)間
·縮短響應(yīng)時(shí)間3.7處理器調(diào)度(領(lǐng)會(huì))82處理機(jī)是計(jì)算機(jī)系統(tǒng)中的重要資源處理機(jī)調(diào)度算法對(duì)整個(gè)計(jì)算機(jī)系統(tǒng)的綜合性能指標(biāo)有重要影響不同的OS,處理機(jī)管理的策略不同可把處理機(jī)調(diào)度分成三個(gè)層次:高級(jí)調(diào)度中級(jí)調(diào)度低級(jí)調(diào)度處理機(jī)調(diào)度的層次
3.7處理器調(diào)度(領(lǐng)會(huì))處理機(jī)是計(jì)算機(jī)系統(tǒng)中的重要資源處理機(jī)調(diào)度的層次3.783處理機(jī)調(diào)度的層次
高級(jí)調(diào)度(宏觀調(diào)度、作業(yè)調(diào)度、長(zhǎng)程調(diào)度)主要功能:根據(jù)作業(yè)控制塊中的信息,審查系統(tǒng)能否滿足用戶作業(yè)的資源需求,以及按照一定的算法,從外存的后備隊(duì)列中選取某些作業(yè)調(diào)入內(nèi)存,并為它們創(chuàng)建進(jìn)程、分配必要的資源。然后再將新創(chuàng)建的進(jìn)程插入就緒隊(duì)列,準(zhǔn)備執(zhí)行。因此,有時(shí)也把作業(yè)調(diào)度稱(chēng)為接納調(diào)度(AdmissionScheduling)。
處理機(jī)調(diào)度的層次高級(jí)調(diào)度(宏觀調(diào)度、作業(yè)調(diào)度、長(zhǎng)程調(diào)度)84低級(jí)調(diào)度(微觀調(diào)度、進(jìn)程調(diào)度、短程調(diào)度)功能:決定就緒隊(duì)列中的哪個(gè)進(jìn)程(或內(nèi)核級(jí)線程)應(yīng)獲得處理機(jī),然后再由分派程序執(zhí)行把處理機(jī)分配給該進(jìn)程的具體操作.中級(jí)調(diào)度(中程調(diào)度、交換調(diào)度)按照給定的原則和策略,將處于外存交換區(qū)中的就緒狀態(tài)或等待狀態(tài)的進(jìn)程調(diào)入內(nèi)存,或把處于內(nèi)存就緒狀態(tài)或內(nèi)存等待狀態(tài)的進(jìn)程交換到外存交換區(qū)中。目的:提高內(nèi)存的利用率和系統(tǒng)吞吐量。處理機(jī)調(diào)度的層次
低級(jí)調(diào)度(微觀調(diào)度、進(jìn)程調(diào)度、短程調(diào)度)處理機(jī)調(diào)度的層次85處理機(jī)調(diào)度的層次
1高級(jí)調(diào)度(只針對(duì)批處理系統(tǒng))1.作業(yè)和作業(yè)步(1)作業(yè)(Job)=程序+數(shù)據(jù)+作業(yè)說(shuō)明書(shū)系統(tǒng)根據(jù)說(shuō)明書(shū)來(lái)對(duì)程序的運(yùn)行進(jìn)行控制。在批處理系統(tǒng)中,以作業(yè)為基本單位從外存調(diào)入內(nèi)存的。輸入井:磁盤(pán)上用來(lái)存放作業(yè)信息的專(zhuān)用區(qū)域后備作業(yè):在輸入井中等待處理的作業(yè)。
處理機(jī)調(diào)度的層次1高級(jí)調(diào)度(只針對(duì)批處理系統(tǒng))86(2)作業(yè)步(JobStep)。通常,在作業(yè)運(yùn)行期間,每個(gè)作業(yè)都必須經(jīng)過(guò)若干個(gè)相對(duì)獨(dú)立,又相互關(guān)聯(lián)的順序加工步驟才能得到結(jié)果,我們把其中的每一個(gè)加工步驟稱(chēng)為一個(gè)作業(yè)步,各作業(yè)步之間存在著相互聯(lián)系,往往是把上一個(gè)作業(yè)步的輸出作為下一個(gè)作業(yè)步的輸入。①編譯②連結(jié)裝配③運(yùn)行
(3)作業(yè)流。若干個(gè)作業(yè)進(jìn)入系統(tǒng)后,被依次存放在外存上,形成輸入的作業(yè)流;在操作系統(tǒng)的控制下,逐個(gè)作業(yè)進(jìn)行處理,形成處理作業(yè)流。
(2)作業(yè)步(JobStep)。通常,在作業(yè)運(yùn)行期間87
2.作業(yè)控制塊JCB(JobControlBlock)是作業(yè)在系統(tǒng)中存在的標(biāo)志保存了系統(tǒng)對(duì)作業(yè)進(jìn)行管理和調(diào)度所需的全部信息。通常應(yīng)包含的內(nèi)容有:作業(yè)標(biāo)識(shí)、用戶名稱(chēng)、用戶帳戶、作業(yè)類(lèi)型(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è)備的類(lèi)型和數(shù)量等)、進(jìn)入系統(tǒng)時(shí)間、開(kāi)始處理時(shí)間、作業(yè)完成時(shí)間、作業(yè)退出時(shí)間、資源使用情況等。作業(yè)的狀態(tài)作業(yè)從輸入到完成要經(jīng)歷提交,收容,執(zhí)行,完成四個(gè)階段。2.作業(yè)控制塊JCB(JobControlBlock88JCB主要信息JCB主要信息89作業(yè)的狀態(tài)及其轉(zhuǎn)換①提交狀態(tài):一個(gè)作業(yè)被提交給機(jī)房后或用戶通過(guò)終端設(shè)備向計(jì)算機(jī)中輸入其作業(yè)時(shí)所處的狀況。②后備狀態(tài):作業(yè)的全部信息都已輸入,并存放在磁盤(pán)中等待運(yùn)行。③運(yùn)行狀態(tài):作業(yè)被調(diào)度程序選中而被送入主存中投入運(yùn)行。④完成狀態(tài):作業(yè)完成其全部運(yùn)行,釋放其所占用的全部資源,準(zhǔn)備退出系統(tǒng)。作業(yè)的狀態(tài)及其轉(zhuǎn)換90提交后備運(yùn)行就緒等待完成作業(yè)調(diào)度作業(yè)調(diào)度作業(yè)錄入作業(yè)的狀態(tài)及轉(zhuǎn)換提交后備運(yùn)行就緒等待完成作業(yè)調(diào)度作業(yè)調(diào)度作業(yè)錄入作業(yè)的狀態(tài)及91
3.作業(yè)調(diào)度算法的選擇用戶:周轉(zhuǎn)時(shí)間少最好系統(tǒng):作業(yè)的平均周轉(zhuǎn)時(shí)間盡可能少,有利于提高CPU的利用率和系統(tǒng)的吞吐量。既應(yīng)考慮用戶的要求,又能確保系統(tǒng)具有較高的效率。在每次執(zhí)行作業(yè)調(diào)度時(shí),都須做出以下兩個(gè)決定。1)決定接納多少個(gè)作業(yè):多道程序度的確定應(yīng)根據(jù)系統(tǒng)的規(guī)模和運(yùn)行速度等情況做適當(dāng)?shù)恼壑?)決定接納哪些作業(yè):作業(yè)調(diào)度算法
3.作業(yè)調(diào)度算法的選擇922低級(jí)調(diào)度調(diào)度的對(duì)象是進(jìn)程(或內(nèi)核級(jí)線程)。進(jìn)程調(diào)度是最基本的一種調(diào)度,在多道批處理、分時(shí)和實(shí)時(shí)三種類(lèi)型的OS中,都必須配置這級(jí)調(diào)度。1.低級(jí)調(diào)度的功能低級(jí)調(diào)度用于決定就緒隊(duì)列中的哪個(gè)進(jìn)程(或內(nèi)核級(jí)線程)應(yīng)獲得處理機(jī),然后再由分派程序執(zhí)行把處理機(jī)分配給該進(jìn)程的具體操作。2低級(jí)調(diào)度93
低級(jí)調(diào)度的主要功能如下:(1)保存處理機(jī)的現(xiàn)場(chǎng)信息。(2)按某種算法選取進(jìn)程。(3)把處理器分配給進(jìn)程。低級(jí)調(diào)度的主要功能如下:942.進(jìn)程調(diào)度中的三個(gè)基本機(jī)制為了實(shí)現(xiàn)進(jìn)程調(diào)度,應(yīng)具有如下三個(gè)基本機(jī)制:(1)排隊(duì)器。就緒進(jìn)程按照一定的方式排成一個(gè)或多個(gè)隊(duì)列(2)分派器(分派程序)。從就緒隊(duì)列中取出選中進(jìn)程,然后進(jìn)行上下文切換,分配處理機(jī)。(3)上下文切換機(jī)制。當(dāng)對(duì)處理機(jī)進(jìn)行切換時(shí),會(huì)發(fā)生兩對(duì)上下文切換操作。在第一對(duì)上下文切換時(shí),操作系統(tǒng)將保存當(dāng)前進(jìn)程的上下文,而裝入分派程序的上下文,以便分派程序運(yùn)行;在第二對(duì)上下文切換時(shí),將移出分派程序,而把新選進(jìn)程的CPU現(xiàn)場(chǎng)信息裝入到處理機(jī)的各個(gè)相應(yīng)寄存器中。耗時(shí)?怎么辦?P862.進(jìn)程調(diào)度中的三個(gè)基本機(jī)制95進(jìn)程調(diào)度時(shí)機(jī)正在執(zhí)行的進(jìn)程執(zhí)行完畢。運(yùn)行中的進(jìn)程提出I/O請(qǐng)求。執(zhí)行某原語(yǔ)操作。在可剝奪調(diào)度方式中,一個(gè)具有更高優(yōu)先數(shù)的進(jìn)程進(jìn)入就緒隊(duì)列。在分時(shí)系統(tǒng)中,分配給該進(jìn)程的時(shí)間片已用完
進(jìn)程調(diào)度時(shí)機(jī)963.進(jìn)程調(diào)度方式(兩種)
1)非搶占方式(NonpreemptiveMode)分派程序一旦把處理機(jī)分配給某進(jìn)程后便讓它一直運(yùn)行下去,直到進(jìn)程完成或發(fā)生某事件而阻塞時(shí),才把處理機(jī)分配給另一個(gè)進(jìn)程。優(yōu)點(diǎn):實(shí)現(xiàn)簡(jiǎn)單,開(kāi)銷(xiāo)小,適用于大多數(shù)的批處理系統(tǒng)環(huán)境。缺點(diǎn):難以滿足緊急任務(wù)的要求——立即執(zhí)行3.進(jìn)程調(diào)度方式(兩種)972)搶占方式(PreemptiveMode)當(dāng)一個(gè)進(jìn)程正在運(yùn)行時(shí),系統(tǒng)可以基于某種原則,剝奪已分配給它的處理機(jī),將之分配給其它進(jìn)程。
優(yōu)點(diǎn):公平,能滿足對(duì)響應(yīng)時(shí)間有著較嚴(yán)格要求的實(shí)時(shí)任務(wù)的需求。缺點(diǎn):開(kāi)銷(xiāo)較大。原則:(1)優(yōu)先權(quán)(2)短作業(yè)(進(jìn)程)優(yōu)先(3)時(shí)間片選擇性剝奪調(diào)度2)搶占方式(PreemptiveMode)98
在上述三種調(diào)度中,進(jìn)程調(diào)度的運(yùn)行頻率最高,在分時(shí)系統(tǒng)中通常是10~100ms便進(jìn)行一次進(jìn)程調(diào)度,因此把它稱(chēng)為短程調(diào)度。為避免進(jìn)程調(diào)度占用太多的CPU時(shí)間,進(jìn)程調(diào)度算法不宜太復(fù)雜。作業(yè)調(diào)度往往是發(fā)生在一個(gè)(批)作業(yè)運(yùn)行完畢,退出系統(tǒng),而需要重新調(diào)入一個(gè)(批)作業(yè)進(jìn)入內(nèi)存時(shí),故作業(yè)調(diào)度的周期較長(zhǎng),大約幾分鐘(幾小時(shí))一次,因此把它稱(chēng)為長(zhǎng)程調(diào)度。由于其運(yùn)行頻率較低,故允許作業(yè)調(diào)度算法花費(fèi)較多的時(shí)間。中級(jí)調(diào)度的運(yùn)行頻率基本上介于上述兩種調(diào)度之間,因此把它稱(chēng)為中程調(diào)度。
在上述三種調(diào)度中,進(jìn)程調(diào)度的運(yùn)行頻率最高,在分時(shí)系統(tǒng)中通993.7.2批處理作業(yè)的調(diào)度算法設(shè)計(jì)調(diào)度算法的原則公平性平衡資源利用極大的流量3.7.2批處理作業(yè)的調(diào)度算法設(shè)計(jì)調(diào)度算法的原則100周轉(zhuǎn)時(shí)間:從作業(yè)被提交給系統(tǒng)Si(進(jìn)入輸入井)開(kāi)始,到作業(yè)完成為止Ei的這段時(shí)間間隔。Ti=Ei-Si平均周轉(zhuǎn)時(shí)間帶權(quán)周轉(zhuǎn)時(shí)間:作業(yè)的周轉(zhuǎn)時(shí)間T與系統(tǒng)為它提供服務(wù)的時(shí)間Ts之比,即W=T/Ts3.7.2批處理作業(yè)的調(diào)度算法周轉(zhuǎn)時(shí)間:從作業(yè)被提交給系統(tǒng)Si(進(jìn)入輸入井)開(kāi)始,到作業(yè)完101平均帶權(quán)周轉(zhuǎn)時(shí)間:一般,總是T或W小的作業(yè)被選中,因?yàn)檫@樣資源利用率較高,用戶也滿意。平均帶權(quán)周轉(zhuǎn)時(shí)間:一般,總是T或W小的作業(yè)被選中,因?yàn)?02作業(yè)調(diào)
度
算
法
1.先來(lái)先服務(wù)調(diào)度算法
先來(lái)先服務(wù)(FCFSFirstcomefirstserved
)調(diào)度算法是一種最簡(jiǎn)單的調(diào)度算法,該算法既可用于作業(yè)調(diào)度,也可用于進(jìn)程調(diào)度。當(dāng)在作業(yè)調(diào)度中采用該算法時(shí),每次調(diào)度都是從后備作業(yè)隊(duì)列中選擇一個(gè)或多個(gè)最先進(jìn)入該隊(duì)列的作業(yè),將它們調(diào)入內(nèi)存,為它們分配資源、創(chuàng)建進(jìn)程,然后放入就緒隊(duì)列。作業(yè)調(diào)度算法1.先來(lái)先服務(wù)調(diào)度算法103FCFS算法比較有利于長(zhǎng)作業(yè),而不利于短作業(yè)。下表列出了A、B、C、D四個(gè)作業(yè)分別到達(dá)系統(tǒng)的時(shí)間、要求服務(wù)的時(shí)間、開(kāi)始執(zhí)行的時(shí)間及各自的完成時(shí)間,并計(jì)算出各自的周轉(zhuǎn)時(shí)間和帶權(quán)周轉(zhuǎn)時(shí)間。FCFS算法比較有利于長(zhǎng)作業(yè),而不利于短作業(yè)。下表列出了104從表上可以看出,其中短作業(yè)C的帶權(quán)周轉(zhuǎn)時(shí)間競(jìng)高達(dá)100,這是不能容忍的;而長(zhǎng)作業(yè)D的帶權(quán)周轉(zhuǎn)時(shí)間僅為1.99。據(jù)此可知,F(xiàn)CFS調(diào)度算法有利于CPU繁忙型的作業(yè),而不利于I/O繁忙型的作業(yè)。從表上可以看出,其中短作業(yè)C的帶權(quán)周轉(zhuǎn)時(shí)間競(jìng)高達(dá)100105在此,我們通過(guò)一個(gè)例子來(lái)說(shuō)明采用FCFS調(diào)度算法時(shí)的調(diào)度性能。圖3-4(a)示出有五個(gè)進(jìn)程A、B、C、D、E,它們到達(dá)的時(shí)間分別是0、1、2、3和4,所要求的服務(wù)時(shí)間分別是4、3、5、2和4,其完成時(shí)間分別是4、7、12、14和18。從每個(gè)進(jìn)程的完成時(shí)間中減去其到達(dá)時(shí)間,即得到其周轉(zhuǎn)時(shí)間,進(jìn)而可以算出每個(gè)進(jìn)程的帶權(quán)周轉(zhuǎn)時(shí)間。在此,我們通過(guò)一個(gè)例子來(lái)說(shuō)明采用FCFS調(diào)度算法時(shí)的調(diào)度106圖3-4
FCFS和SJF調(diào)度算法的性能
開(kāi)始時(shí)間開(kāi)始時(shí)間圖3-4FCFS和SJF調(diào)度算法的性能開(kāi)始時(shí)間開(kāi)始時(shí)間1072.短作業(yè)優(yōu)先調(diào)度算法短作業(yè)優(yōu)先調(diào)度算法SJF(Shortestjobfirst),是指對(duì)短作業(yè)優(yōu)先調(diào)度的算法。短作業(yè)優(yōu)先(SJF)的調(diào)度算法是從后備隊(duì)列中選擇一個(gè)或若干個(gè)估計(jì)運(yùn)行時(shí)間最短的作業(yè),將它們調(diào)入內(nèi)存運(yùn)行。
和FCFS調(diào)度算法進(jìn)行比較2.短作業(yè)優(yōu)先調(diào)度算法和FCFS調(diào)度算法進(jìn)行比較108
SJF調(diào)度算法缺點(diǎn):(1)該算法對(duì)長(zhǎng)作業(yè)不利,可能出現(xiàn)饑餓現(xiàn)象(2)因而不能保證緊迫性作業(yè)會(huì)被及時(shí)處理。(3)不一定能真正做到短作業(yè)優(yōu)先調(diào)度。
SJF調(diào)度算法缺點(diǎn):109作業(yè)提交時(shí)間執(zhí)行時(shí)間開(kāi)始時(shí)間完成時(shí)間周轉(zhuǎn)時(shí)間帶權(quán)周轉(zhuǎn)時(shí)間18.002.0028.500.5039.000.1049.500.20平均周轉(zhuǎn)時(shí)間t=平均帶權(quán)周轉(zhuǎn)時(shí)間w=FCFS、SJF算法填表(以十進(jìn)制計(jì))
作業(yè)提交時(shí)間執(zhí)行時(shí)間開(kāi)始時(shí)間完成時(shí)間周轉(zhuǎn)時(shí)間帶權(quán)周轉(zhuǎn)時(shí)間181103.高響應(yīng)比優(yōu)先調(diào)度算法(HRN)
先來(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í)間。HRN(HighestResponse-ratioNext)是對(duì)FCFS和SJF方式的一種綜合平衡。3.高響應(yīng)比優(yōu)先調(diào)度算法(HRN)111由于等待時(shí)間與服務(wù)時(shí)間之和就是系統(tǒng)對(duì)該作業(yè)的響應(yīng)時(shí)間,故響應(yīng)比RP=優(yōu)先權(quán)。據(jù)此,又可表示為:
每當(dāng)要進(jìn)行調(diào)度時(shí),系統(tǒng)計(jì)算每個(gè)作業(yè)的響應(yīng)比,選擇其中RP最大者投入執(zhí)行。作業(yè)A執(zhí)行時(shí)間是1小時(shí),在上午8點(diǎn)到達(dá),10開(kāi)始調(diào)度,則A的響應(yīng)比是多少?由于等待時(shí)間與服務(wù)時(shí)間之和就是系統(tǒng)對(duì)該作業(yè)的響應(yīng)時(shí)間,故112由上式可以看出:(1)如果作業(yè)的等待時(shí)間相同,則要求服務(wù)的時(shí)間愈短,其優(yōu)先權(quán)愈高,因而該算法有利于短作業(yè)。(2)當(dāng)要求服務(wù)的時(shí)間相同時(shí),作業(yè)的優(yōu)先權(quán)決定于其等待時(shí)間,等待時(shí)間愈長(zhǎng),其優(yōu)先權(quán)愈高,因而它實(shí)現(xiàn)的是先來(lái)先服務(wù)。
(3)對(duì)于長(zhǎng)作業(yè),作業(yè)的優(yōu)先級(jí)可以隨等待時(shí)間的增加而提高,當(dāng)其等待時(shí)間足夠長(zhǎng)時(shí),其優(yōu)先級(jí)便可升到很高,從而也可獲得處理機(jī)。長(zhǎng)短作業(yè)都得到照顧,但是增加系統(tǒng)開(kāi)銷(xiāo)。
由上式可以看出:(3)對(duì)于長(zhǎng)作業(yè),作業(yè)的優(yōu)先級(jí)可以113這樣算法從理論上講是比較完備的,但作業(yè)調(diào)度程序要統(tǒng)計(jì)作業(yè)的等待時(shí)間,使用用戶的估計(jì)的運(yùn)行時(shí)間,并要作浮點(diǎn)運(yùn)算(這是系統(tǒng)程序最忌諱的)浪費(fèi)大量的計(jì)算時(shí)間,這是系統(tǒng)程序所不允許的。這樣算法從理論上講是比較完備的,但作業(yè)調(diào)度程序要統(tǒng)計(jì)作業(yè)的等1144優(yōu)先調(diào)度算法(1)優(yōu)先權(quán)調(diào)度算法的類(lèi)型為了照顧緊迫型作業(yè)/進(jìn)程,使之在進(jìn)入系統(tǒng)后便獲得優(yōu)先處理,系統(tǒng)將從后備隊(duì)列中選擇若干個(gè)優(yōu)先權(quán)最高的作業(yè)裝入內(nèi)存。
對(duì)每個(gè)進(jìn)程確定一個(gè)優(yōu)先數(shù),該算法總是讓優(yōu)先數(shù)最高的進(jìn)程先使用處理器。對(duì)具有相同優(yōu)先數(shù)的進(jìn)程,再采用先來(lái)先服務(wù)的次序分配處理器。系統(tǒng)常以任務(wù)的緊迫性和系統(tǒng)效率等因素確定進(jìn)程的優(yōu)先數(shù)。進(jìn)程的優(yōu)先數(shù)可以固定的,也可隨進(jìn)程執(zhí)行過(guò)程動(dòng)態(tài)變化。一個(gè)高優(yōu)先數(shù)的進(jìn)程占用處理器后,系統(tǒng)處理該進(jìn)程時(shí)有兩種方法,一是"非搶占式",另一種是"可搶占式"。前者是此進(jìn)程占用處理器后一直運(yùn)行到結(jié)束,除非本身主動(dòng)讓出處理器,后者則是嚴(yán)格保證任何時(shí)刻總是讓優(yōu)先數(shù)最高的進(jìn)程在處理器上運(yùn)行。
4優(yōu)先調(diào)度算法115(2)優(yōu)先權(quán)的類(lèi)型
如何確定?1)靜態(tài)優(yōu)先權(quán)
作業(yè)的優(yōu)先級(jí)確定原則 作業(yè)的緊急程度 作業(yè)類(lèi)型 作業(yè)要求資源情況(2)優(yōu)先權(quán)的類(lèi)型1162)動(dòng)態(tài)優(yōu)先權(quán)動(dòng)態(tài)優(yōu)先權(quán)是指在創(chuàng)建進(jìn)程時(shí)所賦予的優(yōu)先權(quán),是可以隨進(jìn)程的推進(jìn)或隨其等待時(shí)間的增加而改變的,以便獲得更好的調(diào)度性能。改變進(jìn)程優(yōu)先級(jí)的方式:線形優(yōu)先級(jí)調(diào)度策略新創(chuàng)建的進(jìn)程按FCFS方式排成就緒隊(duì)列,優(yōu)先級(jí)以a的速率增加,正在執(zhí)行的進(jìn)程優(yōu)先級(jí)以b的速率下降。非線形改變優(yōu)先級(jí)規(guī)則2)動(dòng)態(tài)優(yōu)先權(quán)1175均衡調(diào)度算法根據(jù)作業(yè)對(duì)資源的要求進(jìn)行分類(lèi),作業(yè)調(diào)度從各類(lèi)作業(yè)中挑選,盡可能使不同資源的作業(yè)同時(shí)執(zhí)行。提高資源利用率,減少作業(yè)等待時(shí)間,加快作業(yè)執(zhí)行。5均衡調(diào)度算法1183.7.3進(jìn)程調(diào)度算法常用算法:先來(lái)先服務(wù)、優(yōu)先數(shù)法、輪轉(zhuǎn)法、分級(jí)調(diào)度。先來(lái)先服務(wù)調(diào)度算法該算法按進(jìn)程進(jìn)入就緒隊(duì)列的先后次序選擇可以占用處理器的進(jìn)程。優(yōu)先數(shù)調(diào)度算法對(duì)每個(gè)進(jìn)程確定一個(gè)優(yōu)先數(shù),該算法總是讓優(yōu)先數(shù)最高的進(jìn)程先使用處理器。對(duì)具有相同優(yōu)先數(shù)的進(jìn)程,再采用先來(lái)先服務(wù)的次序分配處理器。系統(tǒng)常以任務(wù)的緊迫性和系統(tǒng)效率等因素確定進(jìn)程的優(yōu)先數(shù)。進(jìn)程的優(yōu)先數(shù)可以固定的,也可隨進(jìn)程執(zhí)行過(guò)程動(dòng)態(tài)變化。一個(gè)高優(yōu)先數(shù)的進(jìn)程占用處理器后,系統(tǒng)處理該進(jìn)程時(shí)有兩種方法,一是"非搶占式",另一種是"可搶占式"。前者是此進(jìn)程占用處理器后一直運(yùn)行到結(jié)束,除非本身主動(dòng)讓出處理器,后者則是嚴(yán)格保證任何時(shí)刻總是讓優(yōu)先數(shù)最高的進(jìn)程在處理器上運(yùn)行。
3.7.3進(jìn)程調(diào)度算法119進(jìn)程的切換進(jìn)程調(diào)度將從就緒隊(duì)列中另選一個(gè)進(jìn)程占用處理器,使一個(gè)進(jìn)程讓出處理器,由另一個(gè)進(jìn)程占用處理器的過(guò)程稱(chēng)"進(jìn)程切換"。若有一個(gè)進(jìn)程從運(yùn)行態(tài)變成等待態(tài),或完成工作后就撤消,則必定會(huì)發(fā)生進(jìn)程切換。若一個(gè)進(jìn)程從運(yùn)行態(tài)或等待態(tài)變成就緒態(tài),則不一定發(fā)生進(jìn)程切換。進(jìn)程的切換進(jìn)程調(diào)度將從就緒隊(duì)列中另選一個(gè)進(jìn)程占用處理器,使120進(jìn)程的優(yōu)先級(jí)確定原則按進(jìn)程的類(lèi)型賦予不同的優(yōu)先級(jí)用戶進(jìn)程類(lèi)型:I/O忙,CPU忙,I/O與CPU均衡小系統(tǒng)進(jìn)程類(lèi)型:調(diào)度進(jìn)程,I/O進(jìn)程,中斷處理,存儲(chǔ)各類(lèi)等大進(jìn)程對(duì)資源的要求少的大用戶要求緊急大,付費(fèi)多的大將作業(yè)的靜態(tài)優(yōu)先級(jí)作為它所屬進(jìn)程的優(yōu)先級(jí)。靜態(tài)優(yōu)先權(quán)特點(diǎn):簡(jiǎn)單易行,系統(tǒng)開(kāi)銷(xiāo)?。徊粔蚓_,可能出現(xiàn)優(yōu)先級(jí)低的作業(yè)或進(jìn)程,長(zhǎng)期得不到調(diào)度。進(jìn)程的優(yōu)先級(jí)確定原則121時(shí)間片輪轉(zhuǎn)法
1)基本原理將CPU的處理時(shí)間分成固定大小的時(shí)間片,系統(tǒng)將所有就緒進(jìn)程按先來(lái)先服務(wù)的原則排成隊(duì)列。每次調(diào)度時(shí),把CPU分配給隊(duì)首進(jìn)程,令其執(zhí)行一個(gè)時(shí)間片,時(shí)間片用完后,若進(jìn)程未結(jié)束,則重新排入就緒隊(duì)列尾部。2)時(shí)間片的劃分簡(jiǎn)單循環(huán)輪轉(zhuǎn)調(diào)度時(shí)間片Q=R/NmaxR:響應(yīng)時(shí)間Nmax:最大進(jìn)程數(shù)
可變時(shí)間片輪轉(zhuǎn)調(diào)度時(shí)間片Q=R/NR:響應(yīng)時(shí)間N:實(shí)際進(jìn)程數(shù)[計(jì)算機(jī)軟件及應(yīng)用]處理器管理課件1222)時(shí)間片大小的確定
時(shí)間片很?。簩⒂欣诙套鳂I(yè),會(huì)頻繁地發(fā)生中斷、進(jìn)程上下文的切換,從而增加系統(tǒng)的開(kāi)銷(xiāo);
時(shí)間片太長(zhǎng),使得每個(gè)進(jìn)程都能在一個(gè)時(shí)間片內(nèi)完成,時(shí)間片輪轉(zhuǎn)算法便退化為FCFS算法,無(wú)法滿足交互式用戶的需求。若取時(shí)間片略大于一次典型的交互所需要的時(shí)間,這樣可使大多數(shù)進(jìn)程在一個(gè)時(shí)間片內(nèi)完成。
2)時(shí)間片大小的確定123下圖1時(shí)間片分別為q=1和q=4時(shí),A、B、C、D、E五個(gè)進(jìn)程的運(yùn)行情況,而圖2為q=1和q=4時(shí)各進(jìn)程的平均周轉(zhuǎn)時(shí)間和帶權(quán)平均周轉(zhuǎn)時(shí)間。圖中的RR(RoundRobin)表示輪轉(zhuǎn)調(diào)度算法。A、B、C、D、E分別在0、1、2、3、4時(shí)刻到達(dá),分別需要4、3、4、2、4個(gè)單位時(shí)間。下圖1時(shí)間片分別為q=1和q=4時(shí),A、B、C、D、E五個(gè)進(jìn)124圖1q=1和q=4時(shí)的進(jìn)程運(yùn)行情況
A、B、C、D、E?A:4B:3C:4D:2E:4ABCDE圖1q=1和q=4時(shí)的進(jìn)程運(yùn)行情況A、B、C、D、E?125圖2q=1和q=4時(shí)進(jìn)程的周轉(zhuǎn)時(shí)間
圖2q=1和q=4時(shí)進(jìn)程的周轉(zhuǎn)時(shí)間126時(shí)間片輪轉(zhuǎn)調(diào)度法把規(guī)定進(jìn)程一次使用處理器的最長(zhǎng)時(shí)間稱(chēng)為"時(shí)間片"。時(shí)間片輪轉(zhuǎn)調(diào)度算法讓就緒進(jìn)程按就緒的先后次序排成隊(duì)列,每次總選擇該隊(duì)列中第一個(gè)進(jìn)程占用處理器,但規(guī)定只能使用一個(gè)時(shí)間片,如該進(jìn)程尚未完成,則排入隊(duì)尾,等待下一個(gè)供它使用的時(shí)間片。各個(gè)進(jìn)程就這樣輪轉(zhuǎn)運(yùn)行。時(shí)間片輪轉(zhuǎn)算法經(jīng)常用于分時(shí)操作系統(tǒng)中。
時(shí)間片輪轉(zhuǎn)調(diào)度法把規(guī)定進(jìn)程一次使用處理器的最長(zhǎng)時(shí)間稱(chēng)為"時(shí)127分級(jí)調(diào)度(多級(jí)反饋隊(duì)列調(diào)度)算法
(1)設(shè)置多個(gè)就緒隊(duì)列,并為各個(gè)隊(duì)列賦予不同的優(yōu)先級(jí)。第一個(gè)隊(duì)列的優(yōu)先級(jí)最高,第二個(gè)隊(duì)列次之,其余各隊(duì)列的優(yōu)先權(quán)逐個(gè)降低。該算法賦予各個(gè)隊(duì)列中進(jìn)程執(zhí)行時(shí)間片的大小也各不相同,在優(yōu)先權(quán)愈高的隊(duì)列中,為每個(gè)進(jìn)程所規(guī)定的執(zhí)行時(shí)間片就愈小。例如,第二個(gè)隊(duì)列的時(shí)間片要比第一個(gè)隊(duì)列的時(shí)間片長(zhǎng)一倍,……,第i+1個(gè)隊(duì)列的時(shí)間片要比第i個(gè)隊(duì)列的時(shí)間片長(zhǎng)一倍。圖3是多級(jí)反饋隊(duì)列算法的示意。分級(jí)調(diào)度(多級(jí)反饋隊(duì)列調(diào)度)算法128圖
多級(jí)反饋隊(duì)列調(diào)度算法
優(yōu)先級(jí):隊(duì)列1>隊(duì)列2>隊(duì)列3>…>隊(duì)列nSi=2Si-1時(shí)間片到時(shí)間片到時(shí)間片到時(shí)間片到圖多級(jí)反饋隊(duì)列調(diào)度算法優(yōu)先級(jí):隊(duì)列1>隊(duì)列2>隊(duì)列3>129多級(jí)反饋輪轉(zhuǎn)法設(shè)置多個(gè)就緒隊(duì)列,每個(gè)隊(duì)列賦予不同地優(yōu)先級(jí)。隊(duì)列按FCFS原則排列。各隊(duì)列時(shí)間片不同。當(dāng)一個(gè)新進(jìn)程進(jìn)入內(nèi)存后,首先放在第一隊(duì)列尾,按FCFS原則調(diào)度;如果該時(shí)間片內(nèi)未結(jié)束,轉(zhuǎn)入第二隊(duì)列尾;直到最后的第N隊(duì)列,在第N隊(duì)列中便采取按時(shí)間片輪轉(zhuǎn)的方式執(zhí)行(不在轉(zhuǎn)下一個(gè)隊(duì)列了,因?yàn)樵诖岁?duì)列都執(zhí)行完了)。僅當(dāng)?shù)趇隊(duì)列空閑時(shí),才調(diào)度第i+1隊(duì)列。如有新進(jìn)程進(jìn)入優(yōu)先級(jí)較高的隊(duì)列,則剝奪CPU執(zhí)行新進(jìn)程,舊進(jìn)程放入原隊(duì)列尾多級(jí)反饋輪轉(zhuǎn)法130多級(jí)反饋隊(duì)列調(diào)度算法性能終端型用戶:在第一隊(duì)列中完成,作業(yè)短,交互型。短批處理用戶:周轉(zhuǎn)時(shí)間較短,通常三個(gè)隊(duì)列即可完成。長(zhǎng)批處理作業(yè)用戶:依次在前N-1個(gè)隊(duì)列中執(zhí)行,在第N個(gè)隊(duì)列中按輪轉(zhuǎn)方式運(yùn)行。多級(jí)反饋隊(duì)列調(diào)度算法性能131思考:如下調(diào)度用的進(jìn)程狀態(tài)變遷圖,有幾個(gè)隊(duì)列?調(diào)度算法和調(diào)度效果如何?
運(yùn)行低優(yōu)先就緒高優(yōu)先就緒等待首先選擇100ms其次選擇500ms請(qǐng)求I/OI/O完成超時(shí)間片思考:如下調(diào)度用的進(jìn)程狀態(tài)變遷圖,有幾個(gè)隊(duì)列?調(diào)度算法和調(diào)度132隊(duì)列結(jié)構(gòu)
I/O等待隊(duì)列——
一個(gè)進(jìn)程如果請(qǐng)求I/O,則進(jìn)入I/O等待隊(duì)列。低優(yōu)先就緒隊(duì)——一個(gè)進(jìn)程如果在運(yùn)行中超過(guò)了它的時(shí)間量就進(jìn)入低優(yōu)先就緒隊(duì)列。高優(yōu)先就緒隊(duì)列——當(dāng)進(jìn)程從等待狀態(tài)變?yōu)榫途w狀態(tài)時(shí)則進(jìn)入高優(yōu)先就緒隊(duì)列。
隊(duì)列結(jié)構(gòu)133進(jìn)程調(diào)度算法優(yōu)先調(diào)度與時(shí)間片調(diào)度相結(jié)合的調(diào)度策略:(1)當(dāng)CPU空閑時(shí),若高優(yōu)先就緒隊(duì)列非空,則從高優(yōu)先就緒隊(duì)列中選擇一個(gè)進(jìn)程運(yùn)行,分配時(shí)間片為100ms。(2)當(dāng)CPU空閑時(shí),若高優(yōu)先就緒隊(duì)列為空,則從低優(yōu)先就緒隊(duì)列中選擇一個(gè)進(jìn)程運(yùn)行,分配時(shí)間片為500ms。調(diào)度效果優(yōu)先照顧了I∕O量大的進(jìn)程;適當(dāng)照顧了計(jì)算量大的進(jìn)程。進(jìn)程調(diào)度算法1343.7.4UNIX系統(tǒng)的進(jìn)程調(diào)度算法動(dòng)態(tài)優(yōu)先數(shù)調(diào)度算法設(shè)置法計(jì)算法進(jìn)程調(diào)度程序Switch3.7.4UNIX系統(tǒng)的進(jìn)程調(diào)度算法動(dòng)態(tài)優(yōu)先數(shù)調(diào)度算法135思考若在操作系統(tǒng)的就緒進(jìn)程隊(duì)列中等待運(yùn)行的共有三個(gè)進(jìn)程P1、P2、P3,已知它們各自的運(yùn)行時(shí)間為a、b、c,且滿足關(guān)系a<b<c。請(qǐng)證明采用最短作業(yè)優(yōu)先調(diào)度算法能夠獲得最小平均周轉(zhuǎn)時(shí)間。思考若在操作系統(tǒng)的就緒進(jìn)程隊(duì)列中等待運(yùn)行的共有三個(gè)進(jìn)程P1、136證明:短作業(yè)優(yōu)先調(diào)度,調(diào)度順序?yàn)?,2,3,三個(gè)作業(yè)的總周轉(zhuǎn)時(shí)間為:T1=a+(a+b)+(a+b+c)若不按短作業(yè)優(yōu)先調(diào)度,采用非時(shí)間片輪轉(zhuǎn)法,不失一般性,假設(shè)調(diào)度順序?yàn)?,1,3,則總周轉(zhuǎn)時(shí)間為T(mén)2=由此可見(jiàn),非時(shí)間片輪轉(zhuǎn)法中短作業(yè)優(yōu)先調(diào)度算法可獲得最小平均周轉(zhuǎn)時(shí)間。證明:137證明:
假設(shè)進(jìn)程被調(diào)度運(yùn)行的順序?yàn)镻1、P2、P3,每個(gè)進(jìn)程的運(yùn)行時(shí)間為T(mén)1、T2、T3。若采用非時(shí)間片輪轉(zhuǎn)算法,則平均周轉(zhuǎn)時(shí)間的計(jì)算公式為:平均周轉(zhuǎn)時(shí)間=(3T1+2T2+T3)/3=T1+2T2/3+T3/3; 若采用時(shí)間片輪轉(zhuǎn)算法,設(shè)每個(gè)進(jìn)程需要N1,N2,N3個(gè)時(shí)間片可以運(yùn)行完,則周轉(zhuǎn)時(shí)間為:
其中Ts為時(shí)間片大小平均周轉(zhuǎn)時(shí)間=顯然可見(jiàn),采用非時(shí)間片輪轉(zhuǎn)的平均周轉(zhuǎn)時(shí)間小于采用時(shí)間片輪轉(zhuǎn)算法,在各種非時(shí)間片輪轉(zhuǎn)的線程調(diào)度算法中,保證平均周轉(zhuǎn)時(shí)間最小的條件為T(mén)1<T2<T3,即遵循最短作業(yè)優(yōu)先的思想調(diào)度進(jìn)程運(yùn)行。T=【(N1+N1-1+N1-1)+(N2+N1+N2-1)+(N3+N2+N1)】Ts=5T1+3T2+T3-3Ts證明:T=【(N1+N1-1+N1-1)+(N2+N1+N2138復(fù)習(xí)題1、實(shí)現(xiàn)多道設(shè)程序設(shè)計(jì)的前提條件是()。A、成批處理作業(yè)B、分時(shí)多用戶C、設(shè)置管、目態(tài)D、處理機(jī)與外設(shè)并行操作2、進(jìn)程有多個(gè)狀態(tài),不會(huì)發(fā)生的狀態(tài)轉(zhuǎn)換是()A、就緒態(tài)轉(zhuǎn)換為運(yùn)行態(tài)B、運(yùn)行態(tài)轉(zhuǎn)換為就緒態(tài)C、就緒態(tài)轉(zhuǎn)換為等待態(tài)D、等待態(tài)轉(zhuǎn)換為就緒態(tài)3、進(jìn)程調(diào)度算法有多種,不是進(jìn)程調(diào)度算法的算法是()。A、先來(lái)先服務(wù)調(diào)度算法B、最高響應(yīng)比優(yōu)先調(diào)度算法C、優(yōu)先數(shù)調(diào)度算法D、時(shí)間片輪轉(zhuǎn)調(diào)度算法復(fù)習(xí)題1、實(shí)現(xiàn)多道設(shè)程序設(shè)計(jì)的前提條件是()。1394、多項(xiàng)選擇:進(jìn)程由()組成。A、程序狀態(tài)字B、程序模塊C、就緒隊(duì)列D、數(shù)據(jù)集合E、進(jìn)程控制塊5、進(jìn)程所請(qǐng)求的一次打印輸出結(jié)束后,將使進(jìn)程狀態(tài)從()。A、運(yùn)行態(tài)變?yōu)榫途w態(tài)B、運(yùn)行態(tài)變?yōu)榈却龖B(tài)C、就緒態(tài)變?yōu)檫\(yùn)行態(tài)D、等待態(tài)變?yōu)榫途w態(tài)多項(xiàng)選擇:引入多道程序設(shè)計(jì)的主要目的在于()A、提高實(shí)時(shí)響應(yīng)速度B、充分利用處理機(jī)、減少處理機(jī)的空閑時(shí)間。C、有利于代碼共享D、充分利用外圍設(shè)備E、減少存儲(chǔ)器碎片4、多項(xiàng)選擇:進(jìn)程由()組成。1407、進(jìn)程存在的標(biāo)志是__________,從操作系統(tǒng)的角度來(lái)看,可將進(jìn)程分為_(kāi)_____________、_____________兩大類(lèi)。8、進(jìn)程在用完一個(gè)器時(shí)間片后被強(qiáng)迫進(jìn)入的等待狀態(tài)屬于_________。9、簡(jiǎn)答題:進(jìn)程調(diào)度中“可搶占”和“非搶占”兩種方式,哪一種系統(tǒng)的開(kāi)銷(xiāo)更大?為什么?10、簡(jiǎn)答題:簡(jiǎn)述進(jìn)程調(diào)度的功能。11、簡(jiǎn)答題:引起進(jìn)程調(diào)度的原因很多,試指出這些原因。7、進(jìn)程存在的標(biāo)志是__________,從操作系統(tǒng)的角度來(lái)1411、D2、C3、B4、BD5、D6、BD7、進(jìn)程控制塊系統(tǒng)進(jìn)程用戶進(jìn)程8、就緒態(tài)9、這兩種方式下,“可搶占”方式的系統(tǒng)開(kāi)銷(xiāo)更大。因?yàn)榇藭r(shí)系統(tǒng)必須監(jiān)視每一個(gè)進(jìn)入就緒態(tài)進(jìn)程的優(yōu)先數(shù),當(dāng)優(yōu)先數(shù)高于當(dāng)前運(yùn)行態(tài)進(jìn)程時(shí)就產(chǎn)生中斷把更高優(yōu)先數(shù)的進(jìn)程調(diào)入運(yùn)行,這種情況勢(shì)必增加進(jìn)程調(diào)度的次數(shù)和保護(hù)現(xiàn)場(chǎng)的開(kāi)銷(xiāo)。10、在多道程序設(shè)計(jì)系統(tǒng)中,同時(shí)有多個(gè)進(jìn)程處于就緒狀態(tài),它們都要求占用處理器運(yùn)行。進(jìn)程調(diào)度的功能就是們競(jìng)爭(zhēng)處理器問(wèn)題的,它按照某種調(diào)度算法從就緒隊(duì)列中選擇一個(gè)進(jìn)程,讓它占用處理器。11、引起進(jìn)程調(diào)度的原因包括:(1)一個(gè)進(jìn)程從運(yùn)行狀態(tài)變成了等待狀態(tài)。(2)一個(gè)進(jìn)程從運(yùn)行狀態(tài)變成了就緒狀態(tài)。(3)一個(gè)進(jìn)程從等待狀態(tài)變成了就緒狀態(tài)(4)一個(gè)進(jìn)程完成工作后被撤消。1、D2、C3、B4、BD5、D6、BD142處理器管理
本章考核知識(shí)點(diǎn):1.多道程序設(shè)計(jì)2.進(jìn)程3.進(jìn)程狀態(tài)4.進(jìn)程控制塊5.進(jìn)程隊(duì)列6.可再入程序7.中斷及中斷響應(yīng)8.中斷優(yōu)先級(jí)9.進(jìn)程調(diào)度自學(xué)要求:通過(guò)本章學(xué)習(xí)應(yīng)該掌握多道程序設(shè)計(jì)是如何提高計(jì)算機(jī)系統(tǒng)效率的;進(jìn)程與程序有什么區(qū)別;進(jìn)程的基本狀態(tài)以及狀態(tài)變化;進(jìn)程隊(duì)列及進(jìn)程調(diào)度策略;中斷的作用。重點(diǎn)是:多道程序設(shè)計(jì);進(jìn)程的定義和屬性;進(jìn)程調(diào)度策略。處理器管理本章考核知識(shí)點(diǎn):1.多道程序設(shè)計(jì)2.進(jìn)程3.1433.1、多道程序設(shè)計(jì)(領(lǐng)會(huì))3.1.1什么是多道程序設(shè)計(jì)讓多個(gè)計(jì)算問(wèn)題同時(shí)裝入一個(gè)計(jì)算機(jī)系統(tǒng)的主存儲(chǔ)器并行執(zhí)行,這種設(shè)計(jì)技術(shù)稱(chēng)“多道程序設(shè)計(jì)”,這種計(jì)算機(jī)系統(tǒng)稱(chēng)“多道程序設(shè)計(jì)系統(tǒng)”或簡(jiǎn)稱(chēng)“多道系統(tǒng)”。3.1、多道程序設(shè)計(jì)(領(lǐng)會(huì))144在多道程序設(shè)計(jì)的系統(tǒng)中,有三點(diǎn)基本要求:用"存儲(chǔ)保護(hù)"的方法保證各道程序互不侵犯;用"程序浮動(dòng)"技術(shù)讓程序能靈活地改變存放區(qū)域且能正確執(zhí)行;必須對(duì)資源按一定的策略分配和調(diào)度。程序浮動(dòng):在多道程序設(shè)計(jì)系統(tǒng)中,對(duì)程序有一些特殊要求,也就是說(shuō),程序可以隨機(jī)地從主存的一個(gè)區(qū)域移動(dòng)到另一個(gè)區(qū)域,程序被移動(dòng)后仍絲毫不影響它的執(zhí)行,這種技術(shù)稱(chēng)為“程序浮動(dòng)“在多道程序設(shè)計(jì)的系統(tǒng)中,有三點(diǎn)基本要求:1453.1.2為什么采用多道程序設(shè)計(jì)程序的順序執(zhí)行程序的并行執(zhí)行P363.1.2為什么采用多道程序設(shè)計(jì)程序的順序執(zhí)行146多道程序設(shè)計(jì)利用了系統(tǒng)與外圍設(shè)備的并行工作能力,從而提高工作效率。具體表現(xiàn)為:提高了處理器的利用率;充分利用外圍設(shè)備資源:發(fā)揮了處理器與外圍設(shè)備以及外圍設(shè)備之間的并行工作能力;從總體上說(shuō),采用多道程序設(shè)計(jì)技術(shù)后,可以有效地提高系統(tǒng)中資源的利用率,增加單位時(shí)間內(nèi)的算題量,從而提高了吞吐率。多道程序設(shè)計(jì)利用了系統(tǒng)與外圍設(shè)備的并行工作能力,從而提高工作1473.1.3采用多道程序設(shè)計(jì)注意的問(wèn)題
可能延長(zhǎng)程序的執(zhí)行時(shí)間;
并行工作道數(shù)與系統(tǒng)效率不成正比從表面上看,增加并行工作道數(shù)就可提高系統(tǒng)效率,但實(shí)際上并行工作道數(shù)與系統(tǒng)效率是不成正比,因?yàn)椴⑿械牡罃?shù)要根據(jù)系統(tǒng)配置的資源和用戶對(duì)資源的要求而定:(1)主存儲(chǔ)器的大小限制了可同時(shí)裝入的程序數(shù)量;
(2)外圍設(shè)備的數(shù)量也是一個(gè)制約條件;
(3)多個(gè)程序同時(shí)要求使用同一資源的情況也會(huì)經(jīng)常發(fā)生。3.1.3采用多道程序設(shè)計(jì)注意的問(wèn)題148
總之,多道程序設(shè)計(jì)能提高系統(tǒng)資源的使用效率,增加單位時(shí)間的算題量;但是對(duì)每個(gè)計(jì)算問(wèn)題來(lái)說(shuō),從算題開(kāi)始到全部完成所需要的時(shí)間可能延長(zhǎng),另外在確定并行工作道數(shù)時(shí)應(yīng)綜合系統(tǒng)的資源配置和用戶對(duì)資源的要求。
149思考多道程序設(shè)計(jì)環(huán)境中,內(nèi)存中有多個(gè)程序,但
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度農(nóng)副食品國(guó)際貿(mào)易代理服務(wù)合同
- 2025年度內(nèi)墻粉刷與智能化管理系統(tǒng)分包合同
- 二零二五年度商業(yè)門(mén)面租賃爭(zhēng)議解決合同
- 二零二五年度庭院房產(chǎn)租賃合同解除與違約金合同
- 2025年度體育場(chǎng)館運(yùn)營(yíng)管理公司健身教練合同
- 2025年度門(mén)面房租賃合同物聯(lián)網(wǎng)技術(shù)應(yīng)用協(xié)議4篇
- 課題申報(bào)參考:明代文人“引經(jīng)入戲”研究
- 認(rèn)識(shí)腧穴38課件講解
- 2025年度個(gè)人住宅室內(nèi)外綠化設(shè)計(jì)與施工合同2篇
- 2025版大型數(shù)據(jù)中心機(jī)房建設(shè)與運(yùn)維合同4篇
- 2025水利云播五大員考試題庫(kù)(含答案)
- 老年髖部骨折患者圍術(shù)期下肢深靜脈血栓基礎(chǔ)預(yù)防專(zhuān)家共識(shí)(2024版)解讀
- 中藥飲片驗(yàn)收培訓(xùn)
- 手術(shù)室專(zhuān)科護(hù)士工作總結(jié)匯報(bào)
- DB34T 1831-2013 油菜收獲與秸稈粉碎機(jī)械化聯(lián)合作業(yè)技術(shù)規(guī)范
- 蘇州市2025屆高三期初陽(yáng)光調(diào)研(零模)政治試卷(含答案)
- 創(chuàng)傷處理理論知識(shí)考核試題及答案
- (正式版)HG∕T 21633-2024 玻璃鋼管和管件選用規(guī)定
- 《義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)(2022年版)》測(cè)試題+答案
- 殘疾軍人新退休政策
- 白酒代理合同范本
評(píng)論
0/150
提交評(píng)論