![進(jìn)程管理課件精講_第1頁](http://file4.renrendoc.com/view/09f5633fd620b3cfc0b9d0b306942db2/09f5633fd620b3cfc0b9d0b306942db21.gif)
![進(jìn)程管理課件精講_第2頁](http://file4.renrendoc.com/view/09f5633fd620b3cfc0b9d0b306942db2/09f5633fd620b3cfc0b9d0b306942db22.gif)
![進(jìn)程管理課件精講_第3頁](http://file4.renrendoc.com/view/09f5633fd620b3cfc0b9d0b306942db2/09f5633fd620b3cfc0b9d0b306942db23.gif)
![進(jìn)程管理課件精講_第4頁](http://file4.renrendoc.com/view/09f5633fd620b3cfc0b9d0b306942db2/09f5633fd620b3cfc0b9d0b306942db24.gif)
![進(jìn)程管理課件精講_第5頁](http://file4.renrendoc.com/view/09f5633fd620b3cfc0b9d0b306942db2/09f5633fd620b3cfc0b9d0b306942db25.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三章進(jìn)程管理3.1進(jìn)程的概念(PROCESS)3.2進(jìn)程的描述3.3進(jìn)程的狀態(tài)及其轉(zhuǎn)換3.4進(jìn)程控制3.5進(jìn)程互斥3.6進(jìn)程同步3.7進(jìn)程間通信(IPC,INTER-PROCESSCOMMUNICATION)3.8
線程(THREAD)
3.9死鎖問題(DEADLOCK)為了描述程序在并發(fā)執(zhí)行時(shí)對(duì)系統(tǒng)資源的共享,需要描述程序執(zhí)行時(shí)動(dòng)態(tài)特征的概念,這就是進(jìn)程。在本章中,將討論進(jìn)程概念、進(jìn)程控制和進(jìn)程間關(guān)系。第三章進(jìn)程管理3.1進(jìn)程的概念(PROCESS)13.1進(jìn)程(PROCESS)3.1.1程序的順序執(zhí)行和并發(fā)執(zhí)行3.1.2進(jìn)程的定義和描述返回3.1進(jìn)程(PROCESS)3.1.1程序的順序執(zhí)行和并23.1.1程序的順序執(zhí)行和并發(fā)執(zhí)行程序的執(zhí)行有兩種方式:順序執(zhí)行和并發(fā)執(zhí)行。順序執(zhí)行是單道批處理系統(tǒng)的執(zhí)行方式,也用于簡(jiǎn)單的單片機(jī)系統(tǒng);現(xiàn)在的操作系統(tǒng)多為并發(fā)執(zhí)行,具有許多新的特征。引入并發(fā)執(zhí)行的目的是為了提高資源利用率。3.1.1程序的順序執(zhí)行和并發(fā)執(zhí)行程序的執(zhí)行有兩種方式:順3IlClPlIiCiPiInCnPn作業(yè)l作業(yè)i作業(yè)n作業(yè)執(zhí)行順序早期的作業(yè)執(zhí)行順序,是按照每個(gè)作業(yè)ICP的順序執(zhí)行,前一個(gè)作業(yè)執(zhí)行完,再執(zhí)行下一個(gè)作業(yè)。順序執(zhí)行情況:前趨圖IlClPlIiCiPiInCnPn作業(yè)l作業(yè)i作業(yè)n作業(yè)執(zhí)4前趨圖(precedencegraph)P={p1,p2,p3,p4,p5,p6,p7,p8,p9}→={(p1,p2),(p1,p3),(p1,p4),(p2,p5),(p3,p5),(p4,p6),(p4,p7),(p5,p8),(p6,p8),(p7,p9),(p8,p9)}123546789前趨圖(precedencegraph)P={p1,p2,5順序執(zhí)行的特征順序性:按照程序結(jié)構(gòu)所指定的次序(可能有分支或循環(huán))封閉性:獨(dú)占全部資源,計(jì)算機(jī)的狀態(tài)只由于該程序的控制邏輯所決定可再現(xiàn)性:初始條件相同則結(jié)果相同。如:可通過空指令控制時(shí)間關(guān)系。順序執(zhí)行的特征6程序的并發(fā)執(zhí)行I1I2C3C1C2P1P2P3I3I4C4P4在該例中:I1先于C1和I2,C1先于P1和C2。P1先于P2,I2先于C2和I3。I2和C1I3和C2和P1I4,C3,P2是重疊的。程序的并發(fā)執(zhí)行I1I2C3C1C2P1P2P3I3I4C4P7并發(fā)執(zhí)行的特征間斷(異步)性:"走走停停",一個(gè)程序可能走到中途停下來,失去原有的時(shí)序關(guān)系;失去封閉性:共享資源,受其他程序的控制邏輯的影響。如:一個(gè)程序?qū)懙酱鎯?chǔ)器中的數(shù)據(jù)可能被另一個(gè)程序修改,失去原有的不變特征。失去可再現(xiàn)性:失去封閉性->失去可再現(xiàn)性;外界環(huán)境在程序的兩次執(zhí)行期間發(fā)生變化,失去原有的可重復(fù)特征。進(jìn)程管理課件精講8并發(fā)執(zhí)行的條件:達(dá)到封閉性和可再現(xiàn)性程序P(i)針對(duì)共享變量的讀集和寫集R(i)和W(i)條件:任意兩個(gè)程序P(i)和P(j),有:R(i)∩W(j)=;W(i)∩R(j)=;W(i)∩W(j)=;同時(shí)成立,P(i)和P(j)可并發(fā)執(zhí)行。并發(fā)執(zhí)行失去封閉性的原因是共享資源的影響,去掉這種影響就行了。1966年,由Bernstein給出并發(fā)執(zhí)行的條件。(這里沒有考慮執(zhí)行速度的影響。)前兩條保證一個(gè)程序的兩次讀之間數(shù)據(jù)不變化;最后一條保證寫的結(jié)果不丟掉?;?qū)懗蒖(i)∩W(j)∪W(i)∩R(j)∪W(i)∩W(j)={}并發(fā)執(zhí)行的條件:達(dá)到封閉性和可再現(xiàn)性程序P(i)針對(duì)共享9例如,有四條語句:S1:a:=x+yS2:b:=z+1S3:c:=a-bS4:w:=c+1現(xiàn)在的問題是實(shí)際中這個(gè)條件不好檢查。它們的讀集和寫集分別為r(s1)={x,y}r(s2)={z}r(s3)={a,b}r(s4)={c}W(r1)={a}W(r2)=W(r3)={c}W(r4)={w}可見,s1和s2兩條語句可以并發(fā)執(zhí)行,滿足Bernstein,s1和s3不能,其它請(qǐng)同學(xué)自己觀察驗(yàn)證。例如,有四條語句:現(xiàn)在的問題是實(shí)際中這個(gè)條件不好檢查。它們的103.1.2進(jìn)程的定義和描述程序在處理機(jī)上執(zhí)行時(shí)所發(fā)生的活動(dòng)稱為進(jìn)程;進(jìn)程可以與其它進(jìn)程并發(fā)執(zhí)行;一個(gè)進(jìn)程是虛擬機(jī)執(zhí)行的一個(gè)程序;1.進(jìn)程的定義一個(gè)具有一定獨(dú)立功能的程序在一個(gè)數(shù)據(jù)集合上的一次動(dòng)態(tài)執(zhí)行過程。3.1.2進(jìn)程的定義和描述程序在處理機(jī)上執(zhí)行時(shí)所發(fā)生的活動(dòng)112.進(jìn)程的特征動(dòng)態(tài)性:進(jìn)程具有動(dòng)態(tài)的地址空間(數(shù)量和內(nèi)容),地址空間上包括:代碼(指令執(zhí)行和CPU狀態(tài)的改變)數(shù)據(jù)(變量的生成和賦值)系統(tǒng)控制信息(進(jìn)程控制塊的生成和刪除)獨(dú)立性:各進(jìn)程的地址空間相互獨(dú)立,除非采用進(jìn)程間通信手段;并發(fā)性、異步性:"虛擬"結(jié)構(gòu)化:代碼段、數(shù)據(jù)段和核心段(在地址空間中);程序文件中通常也劃分了代碼段和數(shù)據(jù)段,而核心段通常就是OS核心(由各個(gè)進(jìn)程共享,包括各進(jìn)程的PCB)2.進(jìn)程的特征動(dòng)態(tài)性:進(jìn)程具有動(dòng)態(tài)的地址空間(數(shù)量和內(nèi)容)123.進(jìn)程與程序的區(qū)別進(jìn)程是動(dòng)態(tài)的,程序是靜態(tài)的:程序是有序代碼的集合;進(jìn)程是程序的執(zhí)行。通常進(jìn)程不可在計(jì)算機(jī)之間遷移;而程序通常對(duì)應(yīng)著文件、靜態(tài)和可以復(fù)制。進(jìn)程是暫時(shí)的,程序是永久的:進(jìn)程是一個(gè)狀態(tài)變化的過程,程序可長久保存。進(jìn)程與程序的組成不同:進(jìn)程的組成包括程序、數(shù)據(jù)和進(jìn)程控制塊(即進(jìn)程狀態(tài)信息)。進(jìn)程與程序的對(duì)應(yīng)關(guān)系:通過多次執(zhí)行,一個(gè)程序可對(duì)應(yīng)多個(gè)進(jìn)程;通過調(diào)用關(guān)系,一個(gè)進(jìn)程可包括多個(gè)程序。3.進(jìn)程與程序的區(qū)別進(jìn)程是動(dòng)態(tài)的,程序是靜態(tài)的:程序是有序134.作業(yè)和進(jìn)程的關(guān)系一個(gè)作業(yè)要進(jìn)行提交、收容、執(zhí)行、完成四個(gè)步驟。進(jìn)程是作業(yè)執(zhí)行過程的描述。作業(yè)是用戶向計(jì)算機(jī)提交的任務(wù)實(shí)體,進(jìn)程則是完成用戶任務(wù)的執(zhí)行實(shí)體,是向系統(tǒng)申請(qǐng)分配資源的基本單位。一個(gè)作業(yè)由多個(gè)進(jìn)程組成4.作業(yè)和進(jìn)程的關(guān)系一個(gè)作業(yè)要進(jìn)行提交、收容、執(zhí)行、完成四個(gè)143.2進(jìn)程的描述3.2.1進(jìn)程控制塊PCB3.2.2進(jìn)程的上下文3.2.3進(jìn)程空間返回3.2進(jìn)程的描述3.2.1進(jìn)程控制塊PCB返回153.2.1進(jìn)程控制塊
(PCB,processcontrolblock)每個(gè)進(jìn)程在OS中的登記表項(xiàng)(可能有總數(shù)目限制),OS據(jù)此對(duì)進(jìn)程進(jìn)行控制和管理(PCB中的內(nèi)容會(huì)動(dòng)態(tài)改變),不同OS則不同處于核心段,通常不能由應(yīng)用程序自身的代碼來直接訪問,而要通過系統(tǒng)調(diào)用,或通過UNIX中的進(jìn)程文件系統(tǒng)(/proc)直接訪問進(jìn)程映象(image)。文件名為進(jìn)程標(biāo)識(shí)(如:00316),權(quán)限為創(chuàng)建者可讀寫。進(jìn)程控制塊是由OS維護(hù)的用來記錄進(jìn)程相關(guān)信息的一塊內(nèi)存。3.2.1進(jìn)程控制塊
(PCB,processcont16進(jìn)程控制塊的內(nèi)容進(jìn)程描述信息:進(jìn)程標(biāo)識(shí)符(processID),唯一,通常是一個(gè)整數(shù);進(jìn)程名,通?;诳蓤?zhí)行文件名(不唯一);用戶標(biāo)識(shí)符(userID);進(jìn)程組關(guān)系(processgroup)進(jìn)程控制信息:當(dāng)前狀態(tài);優(yōu)先級(jí)(priority);代碼執(zhí)行入口地址;程序的外存地址;運(yùn)行統(tǒng)計(jì)信息(執(zhí)行時(shí)間、頁面調(diào)度);進(jìn)程間同步和通信;阻塞原因資源占用信息:虛擬地址空間的現(xiàn)狀、打開文件列表CPU現(xiàn)場(chǎng)保護(hù)結(jié)構(gòu):寄存器值(通用、程序計(jì)數(shù)器PC、狀態(tài)PSW,地址包括棧指針)進(jìn)程控制塊的內(nèi)容進(jìn)程描述信息:17
PCB的組織方式鏈表:同一狀態(tài)的進(jìn)程其PCB成一鏈表,多個(gè)狀態(tài)對(duì)應(yīng)多個(gè)不同的鏈表各狀態(tài)的進(jìn)程形成不同的鏈表:就緒鏈表、阻塞鏈表索引表:同一狀態(tài)的進(jìn)程歸入一個(gè)index表(由index指向PCB),多個(gè)狀態(tài)對(duì)應(yīng)多個(gè)不同的index表各狀態(tài)的進(jìn)行形成不同的索引表:就緒索引表、阻塞索引表PCB的組織方式鏈表:同一狀態(tài)的進(jìn)程其PCB成一鏈表,多個(gè)183.2.2進(jìn)程上下文用戶級(jí)上下文:進(jìn)程的用戶地址空間(包括用戶棧各層次),包括用戶正文段、用戶數(shù)據(jù)段和用戶棧;寄存器級(jí)上下文:程序寄存器、處理機(jī)狀態(tài)寄存器、棧指針、通用寄存器的值;系統(tǒng)級(jí)上下文:靜態(tài)部分(PCB和資源表格)動(dòng)態(tài)部分:核心棧(核心過程的棧結(jié)構(gòu),不同進(jìn)程在調(diào)用相同核心過程時(shí)有不同核心棧)進(jìn)程上下文是對(duì)進(jìn)程執(zhí)行活動(dòng)全過程的靜態(tài)描述。進(jìn)程上下文由進(jìn)程的用戶地址空間內(nèi)容、硬件寄存器內(nèi)容及與該進(jìn)程相關(guān)的核心數(shù)據(jù)結(jié)構(gòu)組成。3.2.2進(jìn)程上下文用戶級(jí)上下文:進(jìn)程的用戶地址空間(包括193.2.3進(jìn)程空間進(jìn)程空間被劃分成兩大部分:用戶空間:用戶執(zhí)行的程序空間系統(tǒng)空間:操作系統(tǒng)內(nèi)核執(zhí)行的空間為了防止用戶訪問錯(cuò)誤,由程序狀態(tài)字寄存器設(shè)置不同的執(zhí)行模式,用戶執(zhí)行模式:用戶態(tài)系統(tǒng)執(zhí)行模式:系統(tǒng)態(tài)3.2.3進(jìn)程空間進(jìn)程空間被劃分成兩大部分:203.3進(jìn)程的狀態(tài)轉(zhuǎn)換3.3.1進(jìn)程狀態(tài)3.3.2進(jìn)程狀態(tài)轉(zhuǎn)換3.3進(jìn)程的狀態(tài)轉(zhuǎn)換3.3.1進(jìn)程狀態(tài)213.3.1狀態(tài)運(yùn)行狀態(tài)(Running):占用處理機(jī)資源;處于此狀態(tài)的進(jìn)程的數(shù)目小于等于CPU的數(shù)目。在沒有其他進(jìn)程可以執(zhí)行時(shí)(如所有進(jìn)程都在阻塞狀態(tài)),通常會(huì)自動(dòng)執(zhí)行系統(tǒng)的idle進(jìn)程(相當(dāng)于空操作)。就緒狀態(tài)(Ready):進(jìn)程已獲得除處理機(jī)外的所需資源,等待分配處理機(jī)資源;只要分配CPU就可執(zhí)行。可以按多個(gè)優(yōu)先級(jí)來劃分隊(duì)列,如:時(shí)間片用完->低優(yōu),I/O完成->中優(yōu),頁面調(diào)入完成->高優(yōu)阻塞狀態(tài)(Blocked):由于進(jìn)程等待某種條件(如I/O操作或進(jìn)程同步),在條件滿足之前無法繼續(xù)執(zhí)行。該事件發(fā)生前即使把處理機(jī)分配給該進(jìn)程,也無法運(yùn)行。如:等待I/O操作的完成。3.3.1狀態(tài)運(yùn)行狀態(tài)(Running):占用處理機(jī)資源;22進(jìn)程狀態(tài)轉(zhuǎn)換圖RunningReadyBlockedDispatchEventWaitEventOccursPCB閑逛PCBTimeout睡眠掛起喚醒恢復(fù)進(jìn)程狀態(tài)轉(zhuǎn)換圖RunningReadyBlockedDisp233.3.2.轉(zhuǎn)換進(jìn)程創(chuàng)建(Enter):系統(tǒng)創(chuàng)建進(jìn)程,形成PCB,分配所需資源,排入暫停進(jìn)程表(可為一個(gè)隊(duì)列);調(diào)度運(yùn)行(Dispatch):從暫停進(jìn)程表中選擇一個(gè)進(jìn)程(要求已完成I/O操作),進(jìn)入運(yùn)行狀態(tài);暫停運(yùn)行(Pause):用完時(shí)間片或啟動(dòng)I/O操作后,放棄處理機(jī),進(jìn)入暫停進(jìn)程表;進(jìn)程結(jié)束(Exit):進(jìn)程運(yùn)行中止;3.3.2.轉(zhuǎn)換進(jìn)程創(chuàng)建(Enter):系統(tǒng)創(chuàng)建進(jìn)程,形成243.4進(jìn)程控制3.4.1進(jìn)程控制的功能3.4.2進(jìn)程的創(chuàng)建和退出返回3.4進(jìn)程控制3.4.1進(jìn)程控制的功能返回253.4.1進(jìn)程控制的功能完成進(jìn)程狀態(tài)的轉(zhuǎn)換。原語(primitive):由若干條指令構(gòu)成的“原子操作(atomicoperation)”過程,作為一個(gè)整體而不可分割--要么全都完成,要么全都不做。許多系統(tǒng)調(diào)用就是原語。注意:系統(tǒng)調(diào)用并不都是原語。進(jìn)程A調(diào)用read(),因無數(shù)據(jù)而阻塞,在read()里未返回。然后進(jìn)程B調(diào)用read(),此時(shí)read()被重入。系統(tǒng)調(diào)用不一定一次執(zhí)行完并返回該進(jìn)程,有可能在特定的點(diǎn)暫停,而轉(zhuǎn)入到其他進(jìn)程。3.4.1進(jìn)程控制的功能完成進(jìn)程狀態(tài)的轉(zhuǎn)換。原語(prim263.4.1進(jìn)程創(chuàng)建和撤消創(chuàng)建狀態(tài)(New):進(jìn)程剛創(chuàng)建,但還不能運(yùn)行(一種可能的原因是OS對(duì)并發(fā)進(jìn)程數(shù)的限制);如:分配和建立PCB表項(xiàng)(可能有數(shù)目限制)、建立資源表格(如打開文件表)并分配資源,加載程序并建立地址空間表。3.4.1進(jìn)程創(chuàng)建和撤消273.4.2進(jìn)程的阻塞和喚醒阻塞:暫停一段時(shí)間(sleep);暫停并等待信號(hào)(pause);等待子進(jìn)程暫?;蚪K止(wait);喚醒:發(fā)送信號(hào)到某個(gè)或一組進(jìn)程(kill)3.4.2進(jìn)程的阻塞和喚醒阻塞:28第三章進(jìn)程管理3.1進(jìn)程的概念(PROCESS)3.2進(jìn)程的描述3.3進(jìn)程的狀態(tài)及其轉(zhuǎn)換3.4進(jìn)程控制3.5進(jìn)程互斥3.6進(jìn)程同步3.7進(jìn)程間通信(IPC,INTER-PROCESSCOMMUNICATION)3.8
線程(THREAD)
3.9死鎖問題(DEADLOCK)為了描述程序在并發(fā)執(zhí)行時(shí)對(duì)系統(tǒng)資源的共享,需要描述程序執(zhí)行時(shí)動(dòng)態(tài)特征的概念,這就是進(jìn)程。在本章中,將討論進(jìn)程概念、進(jìn)程控制和進(jìn)程間關(guān)系。第三章進(jìn)程管理3.1進(jìn)程的概念(PROCESS)293.1進(jìn)程(PROCESS)3.1.1程序的順序執(zhí)行和并發(fā)執(zhí)行3.1.2進(jìn)程的定義和描述返回3.1進(jìn)程(PROCESS)3.1.1程序的順序執(zhí)行和并303.1.1程序的順序執(zhí)行和并發(fā)執(zhí)行程序的執(zhí)行有兩種方式:順序執(zhí)行和并發(fā)執(zhí)行。順序執(zhí)行是單道批處理系統(tǒng)的執(zhí)行方式,也用于簡(jiǎn)單的單片機(jī)系統(tǒng);現(xiàn)在的操作系統(tǒng)多為并發(fā)執(zhí)行,具有許多新的特征。引入并發(fā)執(zhí)行的目的是為了提高資源利用率。3.1.1程序的順序執(zhí)行和并發(fā)執(zhí)行程序的執(zhí)行有兩種方式:順31IlClPlIiCiPiInCnPn作業(yè)l作業(yè)i作業(yè)n作業(yè)執(zhí)行順序早期的作業(yè)執(zhí)行順序,是按照每個(gè)作業(yè)ICP的順序執(zhí)行,前一個(gè)作業(yè)執(zhí)行完,再執(zhí)行下一個(gè)作業(yè)。順序執(zhí)行情況:前趨圖IlClPlIiCiPiInCnPn作業(yè)l作業(yè)i作業(yè)n作業(yè)執(zhí)32前趨圖(precedencegraph)P={p1,p2,p3,p4,p5,p6,p7,p8,p9}→={(p1,p2),(p1,p3),(p1,p4),(p2,p5),(p3,p5),(p4,p6),(p4,p7),(p5,p8),(p6,p8),(p7,p9),(p8,p9)}123546789前趨圖(precedencegraph)P={p1,p2,33順序執(zhí)行的特征順序性:按照程序結(jié)構(gòu)所指定的次序(可能有分支或循環(huán))封閉性:獨(dú)占全部資源,計(jì)算機(jī)的狀態(tài)只由于該程序的控制邏輯所決定可再現(xiàn)性:初始條件相同則結(jié)果相同。如:可通過空指令控制時(shí)間關(guān)系。順序執(zhí)行的特征34程序的并發(fā)執(zhí)行I1I2C3C1C2P1P2P3I3I4C4P4在該例中:I1先于C1和I2,C1先于P1和C2。P1先于P2,I2先于C2和I3。I2和C1I3和C2和P1I4,C3,P2是重疊的。程序的并發(fā)執(zhí)行I1I2C3C1C2P1P2P3I3I4C4P35并發(fā)執(zhí)行的特征間斷(異步)性:"走走停停",一個(gè)程序可能走到中途停下來,失去原有的時(shí)序關(guān)系;失去封閉性:共享資源,受其他程序的控制邏輯的影響。如:一個(gè)程序?qū)懙酱鎯?chǔ)器中的數(shù)據(jù)可能被另一個(gè)程序修改,失去原有的不變特征。失去可再現(xiàn)性:失去封閉性->失去可再現(xiàn)性;外界環(huán)境在程序的兩次執(zhí)行期間發(fā)生變化,失去原有的可重復(fù)特征。進(jìn)程管理課件精講36并發(fā)執(zhí)行的條件:達(dá)到封閉性和可再現(xiàn)性程序P(i)針對(duì)共享變量的讀集和寫集R(i)和W(i)條件:任意兩個(gè)程序P(i)和P(j),有:R(i)∩W(j)=;W(i)∩R(j)=;W(i)∩W(j)=;同時(shí)成立,P(i)和P(j)可并發(fā)執(zhí)行。并發(fā)執(zhí)行失去封閉性的原因是共享資源的影響,去掉這種影響就行了。1966年,由Bernstein給出并發(fā)執(zhí)行的條件。(這里沒有考慮執(zhí)行速度的影響。)前兩條保證一個(gè)程序的兩次讀之間數(shù)據(jù)不變化;最后一條保證寫的結(jié)果不丟掉?;?qū)懗蒖(i)∩W(j)∪W(i)∩R(j)∪W(i)∩W(j)={}并發(fā)執(zhí)行的條件:達(dá)到封閉性和可再現(xiàn)性程序P(i)針對(duì)共享37例如,有四條語句:S1:a:=x+yS2:b:=z+1S3:c:=a-bS4:w:=c+1現(xiàn)在的問題是實(shí)際中這個(gè)條件不好檢查。它們的讀集和寫集分別為r(s1)={x,y}r(s2)={z}r(s3)={a,b}r(s4)={c}W(r1)={a}W(r2)=W(r3)={c}W(r4)={w}可見,s1和s2兩條語句可以并發(fā)執(zhí)行,滿足Bernstein,s1和s3不能,其它請(qǐng)同學(xué)自己觀察驗(yàn)證。例如,有四條語句:現(xiàn)在的問題是實(shí)際中這個(gè)條件不好檢查。它們的383.1.2進(jìn)程的定義和描述程序在處理機(jī)上執(zhí)行時(shí)所發(fā)生的活動(dòng)稱為進(jìn)程;進(jìn)程可以與其它進(jìn)程并發(fā)執(zhí)行;一個(gè)進(jìn)程是虛擬機(jī)執(zhí)行的一個(gè)程序;1.進(jìn)程的定義一個(gè)具有一定獨(dú)立功能的程序在一個(gè)數(shù)據(jù)集合上的一次動(dòng)態(tài)執(zhí)行過程。3.1.2進(jìn)程的定義和描述程序在處理機(jī)上執(zhí)行時(shí)所發(fā)生的活動(dòng)392.進(jìn)程的特征動(dòng)態(tài)性:進(jìn)程具有動(dòng)態(tài)的地址空間(數(shù)量和內(nèi)容),地址空間上包括:代碼(指令執(zhí)行和CPU狀態(tài)的改變)數(shù)據(jù)(變量的生成和賦值)系統(tǒng)控制信息(進(jìn)程控制塊的生成和刪除)獨(dú)立性:各進(jìn)程的地址空間相互獨(dú)立,除非采用進(jìn)程間通信手段;并發(fā)性、異步性:"虛擬"結(jié)構(gòu)化:代碼段、數(shù)據(jù)段和核心段(在地址空間中);程序文件中通常也劃分了代碼段和數(shù)據(jù)段,而核心段通常就是OS核心(由各個(gè)進(jìn)程共享,包括各進(jìn)程的PCB)2.進(jìn)程的特征動(dòng)態(tài)性:進(jìn)程具有動(dòng)態(tài)的地址空間(數(shù)量和內(nèi)容)403.進(jìn)程與程序的區(qū)別進(jìn)程是動(dòng)態(tài)的,程序是靜態(tài)的:程序是有序代碼的集合;進(jìn)程是程序的執(zhí)行。通常進(jìn)程不可在計(jì)算機(jī)之間遷移;而程序通常對(duì)應(yīng)著文件、靜態(tài)和可以復(fù)制。進(jìn)程是暫時(shí)的,程序是永久的:進(jìn)程是一個(gè)狀態(tài)變化的過程,程序可長久保存。進(jìn)程與程序的組成不同:進(jìn)程的組成包括程序、數(shù)據(jù)和進(jìn)程控制塊(即進(jìn)程狀態(tài)信息)。進(jìn)程與程序的對(duì)應(yīng)關(guān)系:通過多次執(zhí)行,一個(gè)程序可對(duì)應(yīng)多個(gè)進(jìn)程;通過調(diào)用關(guān)系,一個(gè)進(jìn)程可包括多個(gè)程序。3.進(jìn)程與程序的區(qū)別進(jìn)程是動(dòng)態(tài)的,程序是靜態(tài)的:程序是有序414.作業(yè)和進(jìn)程的關(guān)系一個(gè)作業(yè)要進(jìn)行提交、收容、執(zhí)行、完成四個(gè)步驟。進(jìn)程是作業(yè)執(zhí)行過程的描述。作業(yè)是用戶向計(jì)算機(jī)提交的任務(wù)實(shí)體,進(jìn)程則是完成用戶任務(wù)的執(zhí)行實(shí)體,是向系統(tǒng)申請(qǐng)分配資源的基本單位。一個(gè)作業(yè)由多個(gè)進(jìn)程組成4.作業(yè)和進(jìn)程的關(guān)系一個(gè)作業(yè)要進(jìn)行提交、收容、執(zhí)行、完成四個(gè)423.2進(jìn)程的描述3.2.1進(jìn)程控制塊PCB3.2.2進(jìn)程的上下文3.2.3進(jìn)程空間返回3.2進(jìn)程的描述3.2.1進(jìn)程控制塊PCB返回433.2.1進(jìn)程控制塊
(PCB,processcontrolblock)每個(gè)進(jìn)程在OS中的登記表項(xiàng)(可能有總數(shù)目限制),OS據(jù)此對(duì)進(jìn)程進(jìn)行控制和管理(PCB中的內(nèi)容會(huì)動(dòng)態(tài)改變),不同OS則不同處于核心段,通常不能由應(yīng)用程序自身的代碼來直接訪問,而要通過系統(tǒng)調(diào)用,或通過UNIX中的進(jìn)程文件系統(tǒng)(/proc)直接訪問進(jìn)程映象(image)。文件名為進(jìn)程標(biāo)識(shí)(如:00316),權(quán)限為創(chuàng)建者可讀寫。進(jìn)程控制塊是由OS維護(hù)的用來記錄進(jìn)程相關(guān)信息的一塊內(nèi)存。3.2.1進(jìn)程控制塊
(PCB,processcont44進(jìn)程控制塊的內(nèi)容進(jìn)程描述信息:進(jìn)程標(biāo)識(shí)符(processID),唯一,通常是一個(gè)整數(shù);進(jìn)程名,通?;诳蓤?zhí)行文件名(不唯一);用戶標(biāo)識(shí)符(userID);進(jìn)程組關(guān)系(processgroup)進(jìn)程控制信息:當(dāng)前狀態(tài);優(yōu)先級(jí)(priority);代碼執(zhí)行入口地址;程序的外存地址;運(yùn)行統(tǒng)計(jì)信息(執(zhí)行時(shí)間、頁面調(diào)度);進(jìn)程間同步和通信;阻塞原因資源占用信息:虛擬地址空間的現(xiàn)狀、打開文件列表CPU現(xiàn)場(chǎng)保護(hù)結(jié)構(gòu):寄存器值(通用、程序計(jì)數(shù)器PC、狀態(tài)PSW,地址包括棧指針)進(jìn)程控制塊的內(nèi)容進(jìn)程描述信息:45
PCB的組織方式鏈表:同一狀態(tài)的進(jìn)程其PCB成一鏈表,多個(gè)狀態(tài)對(duì)應(yīng)多個(gè)不同的鏈表各狀態(tài)的進(jìn)程形成不同的鏈表:就緒鏈表、阻塞鏈表索引表:同一狀態(tài)的進(jìn)程歸入一個(gè)index表(由index指向PCB),多個(gè)狀態(tài)對(duì)應(yīng)多個(gè)不同的index表各狀態(tài)的進(jìn)行形成不同的索引表:就緒索引表、阻塞索引表PCB的組織方式鏈表:同一狀態(tài)的進(jìn)程其PCB成一鏈表,多個(gè)463.2.2進(jìn)程上下文用戶級(jí)上下文:進(jìn)程的用戶地址空間(包括用戶棧各層次),包括用戶正文段、用戶數(shù)據(jù)段和用戶棧;寄存器級(jí)上下文:程序寄存器、處理機(jī)狀態(tài)寄存器、棧指針、通用寄存器的值;系統(tǒng)級(jí)上下文:靜態(tài)部分(PCB和資源表格)動(dòng)態(tài)部分:核心棧(核心過程的棧結(jié)構(gòu),不同進(jìn)程在調(diào)用相同核心過程時(shí)有不同核心棧)進(jìn)程上下文是對(duì)進(jìn)程執(zhí)行活動(dòng)全過程的靜態(tài)描述。進(jìn)程上下文由進(jìn)程的用戶地址空間內(nèi)容、硬件寄存器內(nèi)容及與該進(jìn)程相關(guān)的核心數(shù)據(jù)結(jié)構(gòu)組成。3.2.2進(jìn)程上下文用戶級(jí)上下文:進(jìn)程的用戶地址空間(包括473.2.3進(jìn)程空間進(jìn)程空間被劃分成兩大部分:用戶空間:用戶執(zhí)行的程序空間系統(tǒng)空間:操作系統(tǒng)內(nèi)核執(zhí)行的空間為了防止用戶訪問錯(cuò)誤,由程序狀態(tài)字寄存器設(shè)置不同的執(zhí)行模式,用戶執(zhí)行模式:用戶態(tài)系統(tǒng)執(zhí)行模式:系統(tǒng)態(tài)3.2.3進(jìn)程空間進(jìn)程空間被劃分成兩大部分:483.3進(jìn)程的狀態(tài)轉(zhuǎn)換3.3.1進(jìn)程狀態(tài)3.3.2進(jìn)程狀態(tài)轉(zhuǎn)換3.3進(jìn)程的狀態(tài)轉(zhuǎn)換3.3.1進(jìn)程狀態(tài)493.3.1狀態(tài)運(yùn)行狀態(tài)(Running):占用處理機(jī)資源;處于此狀態(tài)的進(jìn)程的數(shù)目小于等于CPU的數(shù)目。在沒有其他進(jìn)程可以執(zhí)行時(shí)(如所有進(jìn)程都在阻塞狀態(tài)),通常會(huì)自動(dòng)執(zhí)行系統(tǒng)的idle進(jìn)程(相當(dāng)于空操作)。就緒狀態(tài)(Ready):進(jìn)程已獲得除處理機(jī)外的所需資源,等待分配處理機(jī)資源;只要分配CPU就可執(zhí)行??梢园炊鄠€(gè)優(yōu)先級(jí)來劃分隊(duì)列,如:時(shí)間片用完->低
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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年贛州貨運(yùn)從業(yè)資格證模擬考試題
- 2025年荊門駕??荚囏涍\(yùn)從業(yè)資格證考試題庫
- 2025年內(nèi)蒙古貨運(yùn)從業(yè)資格證模擬考試0題及答案解析
- 2025年安徽考貨運(yùn)資格證考試內(nèi)容
- 2024-2025學(xué)年高中物理第一章運(yùn)動(dòng)的描述第2節(jié)位置變化的描述-位移課時(shí)作業(yè)含解析教科版必修1
- 2024-2025學(xué)年高中物理第二章力第1節(jié)第2節(jié)重力課時(shí)作業(yè)含解析教科版必修1
- 公司部門年度工作計(jì)劃范文
- 幼兒園中班下學(xué)期德育工作計(jì)劃范文
- 招標(biāo)方案之施工、監(jiān)理個(gè)人招標(biāo)方案
- 園林景觀設(shè)計(jì)項(xiàng)目合作協(xié)議書范本
- 同等學(xué)力英語申碩考試詞匯(第六版大綱)電子版
- 旅游文本的翻譯課件
- 最全新能源材料-鋰離子電池材料189張課件
- 公共區(qū)管理部班組建設(shè)進(jìn)度推進(jìn)表
- 申論詳解(PPT課件)
- 立式加工中心說明書
- 作文紙格子信紙
- 第八版神經(jīng)病學(xué)配套課件-12-中樞神經(jīng)系統(tǒng)感染性疾病
- 15MW風(fēng)力發(fā)電機(jī)
- 正面管教 讀書分享(課堂PPT)
- 肌肉注射流程
評(píng)論
0/150
提交評(píng)論