版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1主要內(nèi)容:一、進(jìn)程的定義和屬性二、進(jìn)程的狀態(tài)和轉(zhuǎn)換三、進(jìn)程的描述四、進(jìn)程切換與模式切換五、進(jìn)程的控制六、Linux多進(jìn)程管道通信2.3 進(jìn)程及其實(shí)現(xiàn)2進(jìn)程概述進(jìn)程是操作系統(tǒng)中最基本、重要的概念,是多道程序系統(tǒng)出現(xiàn)后,為了刻畫系統(tǒng)內(nèi)部出現(xiàn)的動態(tài)情況,描述系統(tǒng)內(nèi)部各道程序的活動規(guī)律引進(jìn)的一個概念,所有多道程序設(shè)計(jì)操作系統(tǒng)都建立在進(jìn)程的基礎(chǔ)上。從理論角度看,進(jìn)程是對正在運(yùn)行的程序過程的抽象;從實(shí)現(xiàn)角度看,進(jìn)程是一種數(shù)據(jù)結(jié)構(gòu),目的在于清晰地刻劃動態(tài)系統(tǒng)的內(nèi)在規(guī)律,有效管理和調(diào)度進(jìn)入計(jì)算機(jī)系統(tǒng)主存儲器運(yùn)行的程序。進(jìn)程的提出將程序和程序的執(zhí)行區(qū)分開來。3進(jìn)程概述進(jìn)程和程序是兩個概念,程序是一種設(shè)計(jì)產(chǎn)品,進(jìn)程是一種實(shí)現(xiàn)和執(zhí)行產(chǎn)品,人們之所以容易將兩者混為一談,主要是因?yàn)樵谟?jì)算機(jī)環(huán)境下,程序和進(jìn)程存在的介質(zhì)幾乎完全相同,即外存或內(nèi)存。對于房屋設(shè)計(jì)與房屋建筑來說,人們?nèi)菀讓⒃O(shè)計(jì)與建造區(qū)別開來。因?yàn)樵O(shè)計(jì)存在于圖紙上,建筑不可能存在于圖紙上,只能存在于大地上,而且建造過程需要的主要不是圖紙,而是建材、工人等真材實(shí)料和加工技術(shù)。圖紙的設(shè)計(jì)需要的不是建材。4進(jìn)程概念提出的必要性(1)長期以來,人們將進(jìn)程和程序的概念混淆起來,習(xí)慣性地將進(jìn)程稱為程序,進(jìn)程真的與程序那么相似嗎?它們的區(qū)別真的可以忽略不計(jì)嗎?讓我們使用PowerPoint幻燈片程序先后打開兩個文檔:2.3節(jié)的課件和2.7節(jié)的課件,怎么稱呼打開兩個課件的運(yùn)行著的程序?是說兩個不同的“程序”運(yùn)行了同一個PowerPoint“程序”呢,還是說兩個相同的“程序”運(yùn)行了同一個PowerPoint“程序”呢?5進(jìn)程概念提出的必要性(1)造成這種矛盾情況的原因就在于將程序和程序的運(yùn)行這兩個并不相同的事情混淆了起來。顯然,打開兩個課件的是同一個程序,但是正在工作著的這兩個程序怎么稱呼?這兩個運(yùn)行著的程序分別稱為PowerPoint進(jìn)程1和PowerPoint進(jìn)程2。當(dāng)雙擊課件的時候,PowerPoint程序從外村被加載到內(nèi)存,創(chuàng)建PowerPoint進(jìn)程:6進(jìn)程概念提出的必要性(1)PCB1程序數(shù)據(jù)1PCB2程序數(shù)據(jù)2PowerPoint進(jìn)程實(shí)體1(進(jìn)程映像1)PowerPoint進(jìn)程實(shí)體2(進(jìn)程映像2)內(nèi)存外存PowerPoint程序PowerPoint程序裝入內(nèi)存后,要將其中的邏輯地址轉(zhuǎn)變?yōu)槲锢淼刂罚蜷_的課件即為PowerPoint進(jìn)程要處理的數(shù)據(jù)打開第一個課件時,操作系統(tǒng)到外存上尋找PowerPoint程序裝入內(nèi)存,打開第二個課件時,操作系統(tǒng)仍然到外存上尋找PowerPoint程序裝入內(nèi)存,而不是到內(nèi)存尋找進(jìn)程1中已加載到內(nèi)存的PowerPoint程序7進(jìn)程概念提出的必要性(1)對于單任務(wù)的操作系統(tǒng)而言,由于任何時候內(nèi)存中只有一道程序(計(jì)算活動),而不是兩道或兩道以上的程序(計(jì)算活動)在運(yùn)行,程序(計(jì)算)運(yùn)行的藍(lán)本(程序)只有一個,程序與計(jì)算之間具有一對一的關(guān)系,將依照藍(lán)本(程序)進(jìn)行的計(jì)算活動稱為程序(與藍(lán)本叫法相同)并無明顯不妥之處。8進(jìn)程概念提出的必要性(2)但是在多任務(wù)的操作系統(tǒng)環(huán)境下,內(nèi)存中可以同時存在兩道或兩道以上的程序(計(jì)算活動)在運(yùn)行,如果每道程序(計(jì)算)運(yùn)行的藍(lán)本(程序)互不相同,則仍以程序(藍(lán)本)的名字呼喚每個計(jì)算并無明顯不妥。但是,如果有某兩道程序(計(jì)算)運(yùn)行的藍(lán)本(程序、步驟)相同,只是加工處理的數(shù)據(jù)(原料)不同,則稱這兩個計(jì)算是一個程序或兩個程序均自相矛盾。因?yàn)閱栴}的實(shí)質(zhì)是一個程序(藍(lán)本)對應(yīng)了兩個或多個計(jì)算,程序與計(jì)算之間出現(xiàn)了一對多的關(guān)系。以“程序”稱呼“計(jì)算”產(chǎn)生了混淆,由此提出了“進(jìn)程”這個名詞來稱呼“計(jì)算”。9一、進(jìn)程的定義和屬性(1)1.操作系統(tǒng)為什么要引入進(jìn)程概念?一是刻畫系統(tǒng)的動態(tài)性,發(fā)揮系統(tǒng)的并發(fā)性,提高資源利用率。在多道程序設(shè)計(jì)環(huán)境下,程序可以并發(fā)執(zhí)行,一個程序的任意兩條指令之間都可能發(fā)生隨機(jī)事件而引發(fā)程序切換。因而,每個程序的執(zhí)行都可能不是連續(xù)的而是走走停停。二是它能解決系統(tǒng)的“共享性”,正確描述程序的執(zhí)行狀態(tài)。幾個概念:(1)“可再入”程序------是指能被多個程序同時調(diào)用的程序。(2)“可再用”程序------被調(diào)用過程中自身會被修改,在調(diào)用它的程序退出之前不允許其他程序來調(diào)用它。10一、進(jìn)程的定義和屬性(2)(3)“可再入”程序具有的性質(zhì):它是純代碼,即它在執(zhí)行中自身不被改變;調(diào)用它的各程序應(yīng)提供工作區(qū),因此,“可再入”程序可被多個程序同時調(diào)用。“可再入”程序舉例?編譯程序P編譯源程序甲,從A點(diǎn)開始工作,執(zhí)行到B點(diǎn)時需將信息記到磁盤上,且程序P在B點(diǎn)等待磁盤傳輸。?為提高系統(tǒng)效率,利用編譯程序的“可再入”性,讓編譯程序P再為源程序乙進(jìn)行編譯,仍從A點(diǎn)開始工作。?現(xiàn)在怎樣來描述編譯程序P的狀態(tài)呢??稱它為在B點(diǎn)等待磁盤傳輸狀態(tài),還是稱它為正在從A點(diǎn)開始執(zhí)行的狀態(tài)?11一、進(jìn)程的定義和屬性(3)?把編譯程序P,與服務(wù)對象聯(lián)系起來,P為甲服務(wù)就說構(gòu)成進(jìn)程P甲,P為乙服務(wù)則構(gòu)成進(jìn)程P乙。?兩個進(jìn)程雖共享程序P,但它們可同時執(zhí)行且彼此按各自的速度獨(dú)立執(zhí)行??梢姵绦蚺c計(jì)算(程序的執(zhí)行)不再一一對應(yīng),?進(jìn)程是一個既能用來共享資源,又能描述程序并發(fā)執(zhí)行過程的一個基本單位。12一、進(jìn)程的定義和屬性(3)2.進(jìn)程的概念
進(jìn)程是一個可并發(fā)執(zhí)行的具有獨(dú)立功能的程序關(guān)于某個數(shù)據(jù)集合的一次執(zhí)行過程,也是操作系統(tǒng)進(jìn)行資源分配和保護(hù)的基本單位。有些系統(tǒng)稱進(jìn)程為“任務(wù)”(task)或“活動”(active)。13一、進(jìn)程的定義和屬性(4)3.進(jìn)程的屬性(進(jìn)程與程序比較)(1)結(jié)構(gòu)性:進(jìn)程包含了數(shù)據(jù)集合和運(yùn)行于其上的程序。每個進(jìn)程至少包含三個組成要素:程序塊、數(shù)據(jù)塊和進(jìn)程控制塊。(2)共享性:同一程序運(yùn)行于不同數(shù)據(jù)集合上時,構(gòu)成不同的進(jìn)程。多個不同的進(jìn)程可以共享相同的程序,所以進(jìn)程和程序不是一一對應(yīng)的。(函數(shù)的遞歸調(diào)用也是不同數(shù)據(jù)共享相同函數(shù),在這一點(diǎn)上類似于進(jìn)程,但不相同,因?yàn)楹瘮?shù)不是進(jìn)程)14一、進(jìn)程的定義和屬性(5)(3)動態(tài)性:進(jìn)程由創(chuàng)建而產(chǎn)生,由調(diào)度而執(zhí)行,由撤銷而消亡。程序是一組有序指令序列,作為一種系統(tǒng)資源是永久存在的。(4)獨(dú)立性:進(jìn)程是系統(tǒng)中資源分配和保護(hù)的基本單位,也是系統(tǒng)調(diào)度的獨(dú)立單位(單線程進(jìn)程)。(5)制約性:并發(fā)進(jìn)程之間存在著制約關(guān)系,進(jìn)程在進(jìn)行的關(guān)鍵點(diǎn)上需要相互等待或互通消息,以保證程序執(zhí)行的可再現(xiàn)性和計(jì)算結(jié)果的唯一性。(6)并發(fā)性:在一個單處理器系統(tǒng)環(huán)境下,各個進(jìn)程輪流占用處理器。15二、進(jìn)程的狀態(tài)和轉(zhuǎn)換(1)
1.三態(tài)模型
(1)進(jìn)程的三種基本狀態(tài)
一個進(jìn)程從創(chuàng)建而產(chǎn)生至撤銷而消亡的整個生命周期,可用一組狀態(tài)加以刻劃,按進(jìn)程在執(zhí)行過程中的狀況至少定義三種不同的進(jìn)程狀態(tài):
?運(yùn)行態(tài)(running):進(jìn)程占有處理器正在運(yùn)行。?就緒態(tài)(ready):進(jìn)程具備運(yùn)行條件,等待系統(tǒng)分配處理器以便運(yùn)行。?等待態(tài)(wait):又稱為阻塞(blocked)態(tài)或睡眠(sleep)態(tài),進(jìn)程不具備運(yùn)行條件,正在等待某個事件的完成。
通常,當(dāng)一個進(jìn)程創(chuàng)建后,就處于就緒狀態(tài)。每個進(jìn)程在執(zhí)行過程中,任一時刻當(dāng)且僅當(dāng)處于上述三種狀態(tài)之一。在一個進(jìn)程執(zhí)行過程中,它的狀態(tài)將會發(fā)生變化。
16二、進(jìn)程的狀態(tài)和轉(zhuǎn)換(2)
(2)引起進(jìn)程狀態(tài)轉(zhuǎn)換的具體原因
?運(yùn)行態(tài)→等待態(tài):等待使用資源或某事件發(fā)生
;?等待態(tài)→就緒態(tài):資源得到滿足或事件發(fā)生
;?運(yùn)行態(tài)→就緒態(tài):運(yùn)行時間片到;出現(xiàn)有更高優(yōu)先權(quán)進(jìn)程。?就緒態(tài)→運(yùn)行態(tài):CPU空閑時選擇一個就緒進(jìn)程。17二、進(jìn)程的狀態(tài)和轉(zhuǎn)換(3)
運(yùn)行態(tài)就緒態(tài)等待態(tài)選中落選出現(xiàn)等待事件等待事件結(jié)束進(jìn)程三態(tài)模型及其狀態(tài)轉(zhuǎn)換18二、進(jìn)程的狀態(tài)和轉(zhuǎn)換(4)
2.五態(tài)模型五態(tài)模型在三態(tài)模型的基礎(chǔ)上,引進(jìn)了新建態(tài)和終止態(tài)。新建態(tài)------對應(yīng)進(jìn)程剛被創(chuàng)建的狀態(tài)。為一個新進(jìn)程創(chuàng)建必要的管理信息,它并沒有被提交執(zhí)行,而是在等待操作系統(tǒng)完成創(chuàng)建進(jìn)程的必要操作。終止態(tài)-------進(jìn)程的終止,首先,等待操作系統(tǒng)進(jìn)行善后,然后,退出主存。進(jìn)入終止態(tài)的進(jìn)程不再執(zhí)行,但依然臨時保留在系統(tǒng)中等待善后。一旦其他進(jìn)程完成了對終止態(tài)進(jìn)程的信息抽取之后,系統(tǒng)將刪除該進(jìn)程。19二、進(jìn)程的狀態(tài)和轉(zhuǎn)換(5)
運(yùn)行態(tài)就緒態(tài)等待態(tài)選中落選出現(xiàn)等待事件等待事件結(jié)束新建態(tài)終止態(tài)進(jìn)程五態(tài)模型及其轉(zhuǎn)換20二、進(jìn)程的狀態(tài)和轉(zhuǎn)換(6)
進(jìn)程狀態(tài)轉(zhuǎn)換的具體原因?NULL→新建態(tài):創(chuàng)建一個子進(jìn)程。?新建態(tài)→就緒態(tài):系統(tǒng)完成了進(jìn)程創(chuàng)建操作,且當(dāng)前系統(tǒng)的性能和內(nèi)存的容量均允許。?運(yùn)行態(tài)→終止態(tài):一個進(jìn)程到達(dá)自然結(jié)束點(diǎn),或出現(xiàn)了無法克服的錯誤,或被操作系統(tǒng)所終結(jié),或被其他有終止權(quán)的進(jìn)程所終結(jié)。?終止態(tài)→NULL:完成善后操作。?就緒態(tài)→終止態(tài):某些操作系統(tǒng)允許父進(jìn)程終結(jié)子進(jìn)程。?等待態(tài)→終止態(tài):某些操作系統(tǒng)允許父進(jìn)程終結(jié)子進(jìn)程。21二、進(jìn)程的狀態(tài)和轉(zhuǎn)換(7)
3.具有掛起功能系統(tǒng)的進(jìn)程狀態(tài)及其轉(zhuǎn)換
(1)為什么要有“掛起”狀態(tài)?
由于進(jìn)程的不斷創(chuàng)建,系統(tǒng)資源已不能滿足進(jìn)程運(yùn)行的要求,就必須把某些進(jìn)程掛起(suspend),對換到磁盤鏡像區(qū)中,暫時不參與進(jìn)程調(diào)度,起到平滑系統(tǒng)操作負(fù)荷的目的。22二、進(jìn)程的狀態(tài)和轉(zhuǎn)換(8)
(2)引起進(jìn)程掛起的主要原因
?系統(tǒng)中的進(jìn)程均處于等待狀態(tài),需要把一些阻塞進(jìn)程對換出去,騰出足夠內(nèi)存裝入就緒進(jìn)程運(yùn)行。?進(jìn)程競爭資源,導(dǎo)致系統(tǒng)資源不足,負(fù)荷過重,需要掛起部分進(jìn)程以調(diào)整系統(tǒng)負(fù)荷,保證系統(tǒng)的實(shí)時性或讓系統(tǒng)正常運(yùn)行。?定期執(zhí)行的進(jìn)程(如審計(jì)、監(jiān)控、記賬程序)對換出去,以減輕系統(tǒng)負(fù)荷。?用戶要求掛起自己的進(jìn)程,以便進(jìn)行某些調(diào)試、檢查和改正。?父進(jìn)程要求掛起后代進(jìn)程,以進(jìn)行某些檢查和改正。?操作系統(tǒng)需要掛起某些進(jìn)程,檢查運(yùn)行中資源使用情況,以改善系統(tǒng)性能;或當(dāng)系統(tǒng)出現(xiàn)故障或某些功能受到破壞時,需要掛起某些進(jìn)程以排除故障。23二、進(jìn)程的狀態(tài)和轉(zhuǎn)換(8)
(3)進(jìn)程增加的兩個新狀態(tài)
?掛起就緒態(tài)(readysuspend):表明進(jìn)程具備運(yùn)行條件但目前在輔助存儲器中,當(dāng)它被對換到主存才能被調(diào)度執(zhí)行。?掛起等待態(tài)(blockedsuspend):表明進(jìn)程正在等待某一個事件且在輔助存儲器中。24二、進(jìn)程的狀態(tài)和轉(zhuǎn)換(9)
掛起等待事件結(jié)束出現(xiàn)等待事件解除掛起掛起落選選中運(yùn)行態(tài)就緒態(tài)等待事件結(jié)束終止態(tài)新建態(tài)掛起就緒態(tài)解除掛起掛起掛起等待態(tài)等待態(tài)提交提交具有掛起功能的進(jìn)程狀態(tài)及其轉(zhuǎn)換25二、進(jìn)程的狀態(tài)和轉(zhuǎn)換(10)
(4)引起進(jìn)程狀態(tài)轉(zhuǎn)換的具體原因?等待態(tài)→掛起等待態(tài):當(dāng)前不存在就緒進(jìn)程,至少一個等待態(tài)進(jìn)程將被對換出去成為掛起等待態(tài);?掛起等待態(tài)→掛起就緒態(tài):引起進(jìn)程等待的事件發(fā)生之后,相應(yīng)的掛起等待態(tài)進(jìn)程將轉(zhuǎn)換為掛起就緒態(tài)。?掛起就緒態(tài)→就緒態(tài):內(nèi)存中沒有就緒態(tài)進(jìn)程,或掛起就緒態(tài)進(jìn)程具有比就緒態(tài)進(jìn)程更高的優(yōu)先級,將把掛起就緒態(tài)進(jìn)程轉(zhuǎn)換成就緒態(tài)。?就緒態(tài)→掛起就緒態(tài):系統(tǒng)根據(jù)當(dāng)前資源狀況和性能要求,決定把就緒態(tài)進(jìn)程對換出去成為掛起就緒態(tài)。?掛起等待態(tài)→等待態(tài):當(dāng)一個進(jìn)程等待一個事件時,原則上不需要把它調(diào)入內(nèi)存。但是,當(dāng)一個進(jìn)程退出后,主存已經(jīng)有了足夠的自由空間,而某個掛起等待態(tài)進(jìn)程具有較高的優(yōu)先級并且操作系統(tǒng)已經(jīng)得知導(dǎo)致它阻塞的事件即將結(jié)束,便可能發(fā)生這一狀態(tài)變化。26二、進(jìn)程的狀態(tài)和轉(zhuǎn)換(11)
?運(yùn)行態(tài)→掛起就緒態(tài):當(dāng)一個高優(yōu)先級掛起等待進(jìn)程的等待事件結(jié)束后,它將搶占CPU,而此時主存不夠,從而可能導(dǎo)致正在運(yùn)行的進(jìn)程轉(zhuǎn)化為掛起就緒態(tài)。運(yùn)行態(tài)的進(jìn)程也可以自己掛起自己。?新建態(tài)→掛起就緒態(tài):根據(jù)系統(tǒng)當(dāng)前資源狀況和性能要求,可以將新建進(jìn)程對換出去成為掛起就緒態(tài)。掛起的進(jìn)程將不參與低級調(diào)度直到它們被對換進(jìn)主存。27二、進(jìn)程的狀態(tài)和轉(zhuǎn)換(12)
(5)掛起進(jìn)程具有如下特征?該進(jìn)程不能立即被執(zhí)行。?掛起進(jìn)程可能會等待事件,但所等待事件是獨(dú)立于掛起條件的,事件結(jié)束并不能導(dǎo)致進(jìn)程具備執(zhí)行條件。?進(jìn)程進(jìn)入掛起狀態(tài)是由于操作系統(tǒng)、父進(jìn)程或進(jìn)程本身阻止它的運(yùn)行。?結(jié)束進(jìn)程掛起狀態(tài)的命令只能通過操作系統(tǒng)或父進(jìn)程發(fā)出。28三、進(jìn)程的描述(1)
1.操作系統(tǒng)的控制結(jié)構(gòu)
操作系統(tǒng)的本質(zhì)任務(wù)是自動控制程序的執(zhí)行,并滿足進(jìn)程執(zhí)行過程中提出的資源使用要求,因此,操作系統(tǒng)的核心控制結(jié)構(gòu)是進(jìn)程結(jié)構(gòu)。在操作系統(tǒng)的控制結(jié)構(gòu)中,通常構(gòu)造一些表來管理和維護(hù)進(jìn)程和每一類資源的信息。操作系統(tǒng)的控制表分為四類:?進(jìn)程控制表:管理進(jìn)程及其相關(guān)信息。?存儲控制表:管理主存和輔存,主要內(nèi)容包括:主存儲器的分配信息,輔助存儲器的分配信息,存儲保護(hù)和分區(qū)共享信息,虛擬存儲器管理信息。29三、進(jìn)程的描述(2)
?I/O控制表:管理計(jì)算機(jī)系統(tǒng)的I/O設(shè)備和通道,主要內(nèi)容包括:I/O設(shè)備和通道是否可用,I/O設(shè)備和通道的分配信息,I/O操作的狀態(tài)和進(jìn)展,I/O操作傳輸數(shù)據(jù)所在的主存區(qū)。?文件控制表:管理文件,主要內(nèi)容包括:被打開文件的信息,文件在主存儲器和輔助存儲器中的位置信息,被打開文件的狀態(tài)和其他屬性信息。30三、進(jìn)程的描述(3)
MemoryDevicesFilesProcessesMemoryTablesI/OTablesFileTablesPrimaryProcessTableProcess1……ProcessNProcess2ProcessImageProcess1Image……ProcessNImage操作系統(tǒng)控制表的通用結(jié)構(gòu)31三、進(jìn)程的描述(4)
2.進(jìn)程的描述和組成
描述進(jìn)程需要描述進(jìn)程的結(jié)構(gòu)組成和動態(tài)行為。進(jìn)程的結(jié)構(gòu)組成包括進(jìn)程控制塊、進(jìn)程程序塊、進(jìn)程核心棧和進(jìn)程數(shù)據(jù)塊,其中的內(nèi)容隨著進(jìn)程的執(zhí)行不斷發(fā)生變化,某時刻進(jìn)程的內(nèi)容及其狀態(tài)集合稱為進(jìn)程映像。主存儲器中的進(jìn)程是如何組成的?(1)進(jìn)程映像的組成
進(jìn)程映像即進(jìn)程實(shí)體,主要包括:?進(jìn)程控制塊:每一個進(jìn)程都將捆綁一個進(jìn)程控制塊,用來存儲進(jìn)程的標(biāo)志信息、現(xiàn)場信息和控制信息。進(jìn)程創(chuàng)建時建立進(jìn)程控制塊,進(jìn)程撤銷時回收進(jìn)程控制塊,進(jìn)程控制塊與進(jìn)程一一對應(yīng)。32三、進(jìn)程的描述(6)
?進(jìn)程程序塊:即被執(zhí)行的程序,規(guī)定了進(jìn)程一次運(yùn)行應(yīng)完成的功能。通常它是純代碼,可被多個進(jìn)程共享。?進(jìn)程核心棧:每一個進(jìn)程都將捆綁一個核心棧,進(jìn)程在核心態(tài)工作時使用,用來保存中斷/異常現(xiàn)場,保存函數(shù)調(diào)用的參數(shù)和返回地址。?進(jìn)程數(shù)據(jù)塊:是進(jìn)程的私有地址空間,是程序運(yùn)行時加工處理的對象,包括全局變量、局部變量和常量、用戶棧等的存放區(qū),常常為一個進(jìn)程專用。總結(jié):進(jìn)程有四個要素組成:進(jìn)程控制塊、進(jìn)程程序塊、進(jìn)程核心棧、進(jìn)程數(shù)據(jù)塊。33三、進(jìn)程的描述(4)
(2)進(jìn)程上下文的概念
進(jìn)程上下文(context)-----操作系統(tǒng)中把進(jìn)程物理實(shí)體和支持進(jìn)程運(yùn)行的環(huán)境合稱為進(jìn)程上下文(context)。當(dāng)系統(tǒng)調(diào)度新進(jìn)程占有處理器時,新老進(jìn)程隨之發(fā)生上下文切換。進(jìn)程的運(yùn)行被認(rèn)為是在上下文中執(zhí)行。
34三、進(jìn)程的描述(5)
(3)進(jìn)程上下文的三個組成部分
?用戶級上下文(user-level-context):由正文(用戶進(jìn)程的程序塊)、用戶數(shù)據(jù)塊、共享存儲區(qū)和用戶棧組成,它們占用進(jìn)程的虛擬地址空間。?寄存器上下文(register-level-context):由程序狀態(tài)字(PSW)寄存器、指令計(jì)數(shù)器、棧指針、控制寄存器、通用寄存器等組成。?系統(tǒng)級上下文(system-level-context):包括進(jìn)程控制塊、內(nèi)存管理信息、核心棧等組成。35PCB程序數(shù)據(jù)進(jìn)程實(shí)體(進(jìn)程映像)內(nèi)存外存PowerPoint程序從邏輯上看,進(jìn)程實(shí)體包括3個部分:進(jìn)程控制塊PCB、程序和數(shù)據(jù),從物理位置上看,三者是分開存放的,PCB位于操作系統(tǒng)空間,程序和數(shù)據(jù)位于進(jìn)程空間。用戶棧、核心棧以及寄存器上下文構(gòu)成進(jìn)程運(yùn)行的環(huán)境。進(jìn)程上下文程序數(shù)據(jù)用戶棧用戶進(jìn)程空間用戶級上下文PCB內(nèi)存管理信息核心棧操作系統(tǒng)(OS)空間系統(tǒng)級上下文執(zhí)行環(huán)境執(zhí)行環(huán)境寄存器上下文CPU寄存器36從邏輯上看,進(jìn)程實(shí)體包括3個部分:進(jìn)程控制塊PCB、程序和數(shù)據(jù),從物理位置上看,三者是分開存放的,PCB位于操作系統(tǒng)空間,程序和數(shù)據(jù)位于進(jìn)程空間。用戶棧、核心棧以及寄存器上下文構(gòu)成進(jìn)程運(yùn)行的環(huán)境。由于OS空間的程序及數(shù)據(jù)只有在中斷發(fā)生,OS被激活時才能被訪問或執(zhí)行,用戶進(jìn)程無法通過簡單的跳轉(zhuǎn)指令或地址引用指令訪問OS空間的程序或數(shù)據(jù),這也意味著只有操作系統(tǒng)才能訪問PCB,用戶進(jìn)程無法跨越特權(quán)限制由低特權(quán)身份訪問OS空間的高特權(quán)程序或數(shù)據(jù)。這樣就避免了用戶進(jìn)程隨意訪問、修改和破壞PCB管理信息的情況,保證了重要數(shù)據(jù)和系統(tǒng)的安全性。進(jìn)程上下文37三、進(jìn)程的描述(7)
3.進(jìn)程控制塊
每個進(jìn)程都有一個也只有一個進(jìn)程控制塊PCB(ProcessControlBlock),進(jìn)程控制塊PCB是操作系統(tǒng)用于記錄和刻劃進(jìn)程狀態(tài)及有關(guān)信息的數(shù)據(jù)結(jié)構(gòu),也是操作系統(tǒng)掌握進(jìn)程的唯一資料結(jié)構(gòu),是操作系統(tǒng)控制和管理進(jìn)程的主要依據(jù),是進(jìn)程存在的唯一標(biāo)識。它包括了進(jìn)程執(zhí)行時的情況,以及進(jìn)程讓出處理器后所處的狀態(tài)、斷點(diǎn)等信息。38三、進(jìn)程的描述(8)
進(jìn)程控制塊包含三類信息:標(biāo)識信息、現(xiàn)場信息、控制信息(1)標(biāo)識信息:用于唯一地標(biāo)識一個進(jìn)程,常常分為由用戶使用的外部標(biāo)識符和被系統(tǒng)使用的內(nèi)部標(biāo)識號。幾乎所有操作系統(tǒng)中進(jìn)程都被賦予一個唯一的、內(nèi)部使用的數(shù)值型的進(jìn)程號,操作系統(tǒng)的其他控制表可以通過進(jìn)程號來交叉引用進(jìn)程控制表。常用的標(biāo)識信息有進(jìn)程標(biāo)識符ID、進(jìn)程組標(biāo)識ID、用戶進(jìn)程名、用戶組名等。39三、進(jìn)程的描述(8)
(2)現(xiàn)場信息:用于保留進(jìn)程運(yùn)行時存放在處理器現(xiàn)場中的各種信息,進(jìn)程讓出處理器時必須把處理器現(xiàn)場信息保存到PCB中,當(dāng)該進(jìn)程重新恢復(fù)運(yùn)行時也應(yīng)恢復(fù)處理器現(xiàn)場?,F(xiàn)場信息包括:通用寄存器內(nèi)容、控制寄存器(如PSW寄存器的)內(nèi)容、棧指針等。40三、進(jìn)程的描述(9)
(3)控制信息:用于管理和調(diào)度進(jìn)程,常用的控制信息包括:1)進(jìn)程調(diào)度相關(guān)信息,如進(jìn)程狀態(tài)、等待事件和等待原因、進(jìn)程優(yōu)先級、隊(duì)列指引元等;2)進(jìn)程組成信息,如正文段指針、數(shù)據(jù)段指針;3)進(jìn)程間通信相關(guān)信息,如消息隊(duì)列指針、信號量等互斥和同步機(jī)制;4)進(jìn)程在二級(輔助)存儲器內(nèi)的地址信息:如段/頁表指針、進(jìn)程映像在輔存地址等;41三、進(jìn)程的描述(9)
5)CPU資源的占用和使用信息,如時間片余量、進(jìn)程己占用CPU的時間、進(jìn)程己執(zhí)行時間總和,記帳信息;6)進(jìn)程特權(quán)信息,如內(nèi)存訪問權(quán)限和處理器特權(quán);7)資源清單,包括進(jìn)程所需全部資源、已經(jīng)分得的資源,如主存資源、I/O設(shè)備、打開文件表等。
進(jìn)程控制塊的集合事實(shí)上定義了一個操作系統(tǒng)的當(dāng)前狀態(tài)。進(jìn)程控制塊的使用權(quán)或修改權(quán)均屬于操作系統(tǒng)程序,包括調(diào)度程序、資源分配程序、中斷處理程序、性能監(jiān)視和分析程序等。操作系統(tǒng)是根據(jù)PCB來對并發(fā)執(zhí)行的進(jìn)程進(jìn)行控制和管理的。42三、進(jìn)程的描述(10)
4.進(jìn)程隊(duì)列及其管理
?處于同一狀態(tài)的所有PCB鏈接在一起的數(shù)據(jù)結(jié)構(gòu)稱為進(jìn)程隊(duì)列(ProcessQueues)。?同一狀態(tài)進(jìn)程的PCB既可按先來先到的原則排成隊(duì)列;也可按優(yōu)先數(shù)或其它原則排成隊(duì)列。等待態(tài)進(jìn)程隊(duì)列可以進(jìn)一步細(xì)分,每一個進(jìn)程按等待原因進(jìn)入相應(yīng)的等待隊(duì)列。在一個隊(duì)列中,鏈接進(jìn)程控制塊的方法有:單向鏈接和雙向鏈接。系統(tǒng)為每個隊(duì)列設(shè)置一個隊(duì)列標(biāo)志(隊(duì)頭指針)?單向鏈接時,隊(duì)列標(biāo)志指引元指向隊(duì)列中第一個進(jìn)程的隊(duì)列指引元的位置;?雙向鏈接時,隊(duì)列標(biāo)志的后向指引元指向隊(duì)列中第一個進(jìn)程的后向隊(duì)列指引元的位置;隊(duì)列標(biāo)志的前向指引元指向隊(duì)列中最后一個進(jìn)程的前向隊(duì)列指引元的位置。43三、進(jìn)程的描述(11)
PCB表PCB10PCB25PCB30PCB40PCB50PCB64運(yùn)行隊(duì)列指針就緒隊(duì)列指針等待隊(duì)列1指針等待隊(duì)列2指針
…
PCBn7PCB70…
空閑進(jìn)程隊(duì)列指針鏈接方式運(yùn)行隊(duì)列指針就緒表指針等待表1指針
…
索引方式PCB表
PCB1PCB2PCB3PCB4PCB5PCB6…
…
PCBn空閑表指針…就緒索引表…等待索引表1等待表2指針44三、進(jìn)程的描述(12)
隊(duì)列管理:入隊(duì)、出隊(duì)、隊(duì)列管理模塊表格法組織PCB。所有進(jìn)程的PCB都組織在一個線性表中,進(jìn)程調(diào)度時需要查找整個PCB表;也可以把相同狀態(tài)進(jìn)程的PCB組織在一個線性表中,系統(tǒng)有多個線性表,這樣可縮短查表時間。處理器指派提交完成超時事件1等待隊(duì)列事件2等待隊(duì)列事件n等待隊(duì)列就緒隊(duì)列……等待事件1等待事件2等待事件n事件1出現(xiàn)事件2出現(xiàn)事件n出現(xiàn)隊(duì)列管理和狀態(tài)轉(zhuǎn)換示意圖45四、進(jìn)程切換與模式切換(1)
中斷是激活操作系統(tǒng)的唯一方法,它暫時中止當(dāng)前運(yùn)行進(jìn)程的執(zhí)行,把處理器切換到操作系統(tǒng)的控制之下。當(dāng)操作系統(tǒng)獲得了處理器的控制權(quán)之后,它就可以實(shí)現(xiàn)進(jìn)程切換,所以,進(jìn)程切換必定在核心態(tài)而不是用戶態(tài)下發(fā)生。進(jìn)程切換是讓處于運(yùn)行態(tài)的進(jìn)程中斷運(yùn)行,讓出處理器,這時要做一次進(jìn)程上下文切換、即保存老進(jìn)程狀態(tài)而裝入被保護(hù)了的新進(jìn)程的狀態(tài),以便新進(jìn)程運(yùn)行。
進(jìn)程切換時,一個進(jìn)程讓出處理器,其寄存器上下文將被保存到系統(tǒng)級上下文的相應(yīng)的現(xiàn)場信息位置,這時內(nèi)核就把這些信息壓入系統(tǒng)棧的一個上下文層。當(dāng)內(nèi)核處理中斷返回,或一個進(jìn)程完成其系統(tǒng)調(diào)用返回用戶態(tài),或內(nèi)核進(jìn)行上下文切換時,內(nèi)核就從系統(tǒng)棧彈出一個上下文層。因此,上下文的切換總會引起上下文的壓入和彈出堆棧。46四、進(jìn)程切換與模式切換(2)
1.允許發(fā)生進(jìn)程上下文切換的四種情況
(1)當(dāng)進(jìn)程進(jìn)入等待態(tài)時;(2)當(dāng)進(jìn)程完成其系統(tǒng)調(diào)用返回用戶態(tài),但不是最有資格獲得CPU時;(3)當(dāng)內(nèi)核完成中斷處理,進(jìn)程返回用戶態(tài)但不是最有資格獲得CPU時;(4)當(dāng)進(jìn)程執(zhí)行結(jié)束時。上述4種情況實(shí)際上可歸納為一種情況:就是中斷發(fā)生時才有可能發(fā)生進(jìn)程上下文切換。上述4種情況是對中斷的細(xì)分。只有中斷發(fā)生時,操作系統(tǒng)才能接管處理機(jī),才能把處理機(jī)由一個進(jìn)程轉(zhuǎn)交給另一個進(jìn)程,進(jìn)程切換才會發(fā)生。47四、進(jìn)程切換與模式切換(3)
2.進(jìn)程切換的步驟
?保存被中斷進(jìn)程的處理器現(xiàn)場信息。?修改被中斷進(jìn)程的進(jìn)程控制塊的有關(guān)信息,如進(jìn)程狀態(tài)等。?把被中斷進(jìn)程的進(jìn)程控制塊加入有關(guān)隊(duì)列。?選擇下一個占有處理器運(yùn)行的進(jìn)程。?修改被選中進(jìn)程的進(jìn)程控制塊的有關(guān)信息。?根據(jù)被選中進(jìn)程設(shè)置操作系統(tǒng)用到的地址轉(zhuǎn)換和存儲保護(hù)信息。?根據(jù)被選中進(jìn)程的信息恢復(fù)處理器現(xiàn)場。
用戶態(tài)到核心態(tài)或者核心態(tài)到用戶態(tài)的轉(zhuǎn)變是CPU模式的改變,而不是進(jìn)程上下文切換。48四、進(jìn)程切換與模式切換(4)
3.CPU模式切換當(dāng)中斷發(fā)生的時候,暫時中斷正在執(zhí)行的用戶進(jìn)程,把進(jìn)程從用戶狀態(tài)切換到內(nèi)核狀態(tài),去執(zhí)行操作系統(tǒng)例行程序以獲得服務(wù),這就是一次模式切換。此時,該進(jìn)程仍在自己的上下文中執(zhí)行,僅僅模式變了。內(nèi)核在被中斷了的進(jìn)程的上下文中對這個中斷事件作處理,即使該中斷事件可能不是此進(jìn)程引起的。被中斷的進(jìn)程可以是正在用戶態(tài)下執(zhí)行的,也可以是正在核心態(tài)下執(zhí)行的,內(nèi)核都要保留足夠信息以便在后來能恢復(fù)被中斷了的進(jìn)程執(zhí)行。49四、進(jìn)程切換與模式切換(5)4.模式切換的步驟?保存被中斷進(jìn)程的處理器現(xiàn)場信息。?把用戶狀態(tài)切換到內(nèi)核狀態(tài),以便執(zhí)行中斷處理程序。?根據(jù)中斷級別設(shè)置中斷屏蔽位。?根據(jù)系統(tǒng)調(diào)用號或中斷號,從系統(tǒng)調(diào)用表或中斷入口地址表中找到系統(tǒng)服務(wù)程序或中斷處理程序的地址。模式切換與進(jìn)程切換的區(qū)別在于:模式切換只說明進(jìn)程從用戶態(tài)切換到核心態(tài)的過程,進(jìn)程切換說明進(jìn)程從用戶態(tài)切換到核心態(tài),再從核心態(tài)切換到另一個進(jìn)程的核心態(tài)的過程。進(jìn)程切換包含模式切換。50四、進(jìn)程切換與模式切換(5)模式切換:進(jìn)程P1執(zhí)行訪管中斷,請求操作系統(tǒng)服務(wù),處理機(jī)陷入操作系統(tǒng),執(zhí)行中斷處理程序,工作狀態(tài)由用戶態(tài)變?yōu)楹诵膽B(tài),這是一個CPU工作模式的切換,不是進(jìn)程切換,也就是說OS不被看作進(jìn)程。OS(CPU)執(zhí)行完中斷處理程序,如果立即返回到了被中斷的進(jìn)程P1繼續(xù)執(zhí)行,則發(fā)生了一個從核心態(tài)到用戶態(tài)的逆向切換。INT21H中斷處理程序……進(jìn)程P1進(jìn)程P2用戶態(tài)用戶態(tài)操作系統(tǒng)核心態(tài)從用戶態(tài)切換到核心態(tài)從核心態(tài)切換到用戶態(tài)51四、進(jìn)程切換與模式切換(5)進(jìn)程切換:進(jìn)程P1執(zhí)行訪管中斷,請求操作系統(tǒng)服務(wù),處理機(jī)陷入操作系統(tǒng),執(zhí)行中斷處理程序,工作狀態(tài)由用戶態(tài)變?yōu)楹诵膽B(tài),這是一個CPU工作模式的切換,不是進(jìn)程切換,也就是說OS不被看作進(jìn)程。OS(CPU)執(zhí)行完中斷處理程序,如果沒有立即返回到被中斷的進(jìn)程P1,而是將處理機(jī)移交給了另一個進(jìn)程P2,則不僅發(fā)生了一個從核心態(tài)到用戶態(tài)的模式切換,也發(fā)生了從P1到P2的進(jìn)程切換。INT21H中斷處理程序……進(jìn)程P1進(jìn)程P2用戶態(tài)用戶態(tài)操作系統(tǒng)核心態(tài)從用戶態(tài)切換到核心態(tài)從核心態(tài)切換到用戶態(tài)52對核心態(tài)和用戶態(tài)的理解中斷是激活操作系統(tǒng)的唯一途徑.在核心態(tài)下,處理機(jī)執(zhí)行用戶程序指令,在核心態(tài)下,處理機(jī)執(zhí)行操作系統(tǒng)內(nèi)核代碼.在計(jì)算機(jī)中,有一些操作需要委托操作系統(tǒng)代為執(zhí)行,一些操作用戶程序可以自行完成.可以將操作系統(tǒng)比做國家行政機(jī)構(gòu)(如法庭等職能部門),用戶程序比做百姓、公民,有一些事情百姓可自己做主辦理,如衣食住行;另有一些事情必須通過國家行政機(jī)關(guān)辦理,如打官司、辦理身份證等.事情在國家行政機(jī)關(guān)辦理的過程相當(dāng)于處于核心態(tài),百姓自己辦理的部分相當(dāng)于處于用戶態(tài).53四、進(jìn)程切換與模式切換(6)
核心態(tài)運(yùn)行系統(tǒng)調(diào)用或中斷(隱含模式切換)模式切換用戶態(tài)運(yùn)行等待狀態(tài)就緒狀態(tài)發(fā)生事件喚醒調(diào)度進(jìn)程中斷、中斷返回允許的上下文切換進(jìn)程上下文切換和模式切換該圖說明核心態(tài)可由用戶態(tài)轉(zhuǎn)變而來,也可由核心態(tài)轉(zhuǎn)變到自身。54四、進(jìn)程切換與模式切換(6)
6.系統(tǒng)進(jìn)程和用戶進(jìn)程
大多數(shù)現(xiàn)代操作系統(tǒng)中存在兩種進(jìn)程:系統(tǒng)進(jìn)程和用戶進(jìn)程。它們并不是指兩個具體的進(jìn)程實(shí)體,而是指一個進(jìn)程的兩個側(cè)面,系統(tǒng)進(jìn)程是在核心態(tài)下執(zhí)行操作系統(tǒng)代碼的進(jìn)程,用戶進(jìn)程是在用戶態(tài)下執(zhí)行用戶程序的進(jìn)程。用戶進(jìn)程因中斷和系統(tǒng)調(diào)用進(jìn)入內(nèi)核態(tài),系統(tǒng)進(jìn)程就開始執(zhí)行,這兩個進(jìn)程(系統(tǒng)進(jìn)程和用戶進(jìn)程)使用同一個PCB,實(shí)質(zhì)上是一個進(jìn)程實(shí)體,但所執(zhí)行的程序不同,映射到不同物理地址空間、使用不同堆棧。55五、進(jìn)程的控制(1)
處理器管理的一個主要工作是對進(jìn)程的控制,包括:創(chuàng)建進(jìn)程、阻塞進(jìn)程、喚醒進(jìn)程、掛起進(jìn)程、激活進(jìn)程、終止進(jìn)程和撤銷進(jìn)程等。這些控制和管理功能是由操作系統(tǒng)中的原語來實(shí)現(xiàn)的。?原語(Primitive)是在管態(tài)下執(zhí)行、完成系統(tǒng)特定功能的不可分割的過程,具有原子操作性,其程序段不允許被中斷。原語的執(zhí)行是順序的而不可能是并發(fā)的。?一種原語的實(shí)現(xiàn)方法是以系統(tǒng)調(diào)用方式提供原語接口,且采用屏蔽中斷的方式來實(shí)現(xiàn)原語功能,以保證原語操作不被打斷的特性。56五、進(jìn)程的控制(2)
原語和系統(tǒng)調(diào)用都使用訪管指令實(shí)現(xiàn),具有相同的調(diào)用形式,但原語由內(nèi)核實(shí)現(xiàn),系統(tǒng)調(diào)用由系統(tǒng)進(jìn)程或系統(tǒng)服務(wù)器實(shí)現(xiàn);原語不可中斷,系統(tǒng)調(diào)用執(zhí)行時允許被中斷,甚至有些操作系統(tǒng)中系統(tǒng)進(jìn)程或系統(tǒng)服務(wù)器在用戶態(tài)運(yùn)行。通常情況下,原語提供給系統(tǒng)進(jìn)程或系統(tǒng)服務(wù)器使用(反之決不會形成調(diào)用關(guān)系),系統(tǒng)進(jìn)程或系統(tǒng)服務(wù)器提供系統(tǒng)調(diào)用給系統(tǒng)程序(和用戶)使用,系統(tǒng)程序提供高層功能給用戶使用。(原語相當(dāng)于機(jī)器指令,系統(tǒng)調(diào)用實(shí)現(xiàn)模塊是由原語和機(jī)器指令構(gòu)成的,在系統(tǒng)調(diào)用過程中,在兩條原語或機(jī)器指令之間可以響應(yīng)中斷.原語和系統(tǒng)調(diào)用的重要區(qū)別在于原語相當(dāng)于一條指令,而系統(tǒng)調(diào)用相當(dāng)于多條指令,作為一條指令的原語不會被打斷,而作為多條指令的程序段—系統(tǒng)調(diào)用可以在兩條指令之間被打斷.)57五、進(jìn)程的控制(3)
部分進(jìn)程控制原語:1.進(jìn)程的創(chuàng)建
(1)進(jìn)程創(chuàng)建的事件來源
?提交一個批處理作業(yè)。?在終端上一個交互式作業(yè)登錄。?操作系統(tǒng)創(chuàng)建一個服務(wù)進(jìn)程。?存在的進(jìn)程創(chuàng)建(孵化(spawn))新的進(jìn)程。?生成其它進(jìn)程的進(jìn)程稱父進(jìn)程(ParentProcess),被生成進(jìn)程稱子進(jìn)程(ChildProcess)、即一個父進(jìn)程可以創(chuàng)建子進(jìn)程,從而形成樹形結(jié)構(gòu)。58五、進(jìn)程的控制(4)
(2)進(jìn)程的創(chuàng)建過程
?
在主進(jìn)程表中增加一項(xiàng),并從PCB池中取一個空白PCB,為新進(jìn)程分配唯一的進(jìn)程標(biāo)識符。?
為新進(jìn)程的進(jìn)程映像分配地址空間,裝入程序和數(shù)據(jù)。?
為新進(jìn)程分配內(nèi)存空間外的其它資源。?
初始化進(jìn)程控制塊,如進(jìn)程標(biāo)識符、處理器初始狀態(tài)、進(jìn)程優(yōu)先級等。?
把進(jìn)程狀態(tài)置為就緒態(tài)并加入就緒進(jìn)程隊(duì)列。?
通知操作系統(tǒng)的某些模塊,如記賬程序、性能監(jiān)控程序。59五、進(jìn)程的控制(5)
實(shí)例?Linuxfork()創(chuàng)建子進(jìn)程但父子進(jìn)程不共享內(nèi)容
?Linuxclone()允許定義父子進(jìn)程共享的內(nèi)容
?Linux中認(rèn)為線程就是共享上下文的進(jìn)程
?操作系統(tǒng)最多進(jìn)程數(shù)的限制。?UNIX(早期)最多創(chuàng)建幾十個進(jìn)程。?Solaris可在啟動時根據(jù)內(nèi)存容量自動調(diào)整創(chuàng)建數(shù)。?Linux2.4中,最多進(jìn)程數(shù)是運(yùn)行時可調(diào)參數(shù),缺省設(shè)置為:size-of-memory-in-the-system/kernel-stack-size/2。?假如機(jī)器有512MB內(nèi)存,缺省可創(chuàng)建進(jìn)程的上限為:512×1024×1024/8192/2=32768。60五、進(jìn)程的控制(6)
2.進(jìn)程的阻塞和喚醒
進(jìn)程的阻塞是指一個進(jìn)程讓出處理器,去等待一個事件。通常,進(jìn)程自己調(diào)用阻塞原語阻塞自己,所以,阻塞是自主行為,是一個同步事件。當(dāng)一個等待事件結(jié)束時會產(chǎn)生一個中斷,從而激活操作系統(tǒng),在系統(tǒng)的控制之下被阻塞的進(jìn)程喚醒。進(jìn)程的阻塞和喚醒是由進(jìn)程切換來完成的。(1)進(jìn)程阻塞的步驟
?停止進(jìn)程執(zhí)行,保存現(xiàn)場信息到PCB
。?修改PCB的有關(guān)內(nèi)容,如進(jìn)程狀態(tài)由運(yùn)行改為等待等,并把修改狀態(tài)后的PCB加入相應(yīng)等待進(jìn)程隊(duì)列。?轉(zhuǎn)入進(jìn)程調(diào)度程序調(diào)度其他進(jìn)程運(yùn)行。61五、進(jìn)程的控制(7)
(2)進(jìn)程喚醒的步驟
?從相應(yīng)等待進(jìn)程隊(duì)列中移出進(jìn)程。?修改進(jìn)程PCB有關(guān)信息,如進(jìn)程狀態(tài)改為就緒并把修改PCB后的進(jìn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學(xué)建筑歷史與理論(建筑歷史)試題及答案
- 2025年中職測繪工程技術(shù)(地形測量基礎(chǔ))試題及答案
- 2025年高職第一學(xué)年(大數(shù)據(jù)技術(shù))數(shù)據(jù)采集與預(yù)處理階段測試題及答案
- 2025年大學(xué)本科(服裝與服飾設(shè)計(jì))服裝色彩設(shè)計(jì)試題及答案
- 2025年大學(xué)水產(chǎn)養(yǎng)殖學(xué)(水產(chǎn)動物育種)試題及答案
- 2025年大學(xué)哲學(xué)(倫理學(xué)原理)試題及答案
- 2026年禮品銷售(包裝服務(wù))試題及答案
- 2025年高職(經(jīng)濟(jì)林培育與利用)果樹種植階段測試題及答案
- 2025年高職視覺傳播設(shè)計(jì)與制作(視覺傳播設(shè)計(jì))試題及答案
- 2025年大學(xué)工程造價(造價核算)試題及答案
- 2025年黨建知識競賽題及答案
- 《光伏發(fā)電技術(shù)》課件(共七章)
- 2025年國家開放大學(xué)《電子政務(wù)概論》期末考試備考題庫及答案解析
- 醫(yī)療器械使用與維護(hù)常見問題匯編
- 中遠(yuǎn)海運(yùn)集團(tuán)筆試題庫2025
- 企業(yè)員工培訓(xùn)效果評估報(bào)告模板
- 醫(yī)療器械胰島素泵市場可行性分析報(bào)告
- 地鐵施工現(xiàn)場防臺風(fēng)措施
- 種植業(yè)合作社賬務(wù)處理
- 【麗江玉龍旅游薪酬制度的創(chuàng)新研究6100字】
- 公司兩權(quán)分離管理制度
評論
0/150
提交評論