資源描述:
《《進(jìn)程描述與狀態(tài)》PPT課件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第五講進(jìn)程表示與進(jìn)行狀態(tài)變化目的與要求:理解進(jìn)程概念,掌握進(jìn)程在系統(tǒng)中的表示方法,理解進(jìn)程的創(chuàng)建及其狀態(tài)變化.重點(diǎn)與難點(diǎn):進(jìn)程表示與進(jìn)程創(chuàng)建,狀態(tài)轉(zhuǎn)換.習(xí)題:1,2,4,5第三章進(jìn)程與處理機(jī)管理3.1進(jìn)程描述進(jìn)程:是系統(tǒng)中占用處理機(jī)及爭(zhēng)奪其它系統(tǒng)資源的實(shí)體。用戶(hù)程序必須在進(jìn)程中運(yùn)行。進(jìn)程的引入:為了能在作業(yè)內(nèi)某作業(yè)步等I/O時(shí),另一邏輯上可并行作業(yè)步能使用CPU。引入進(jìn)程后,邏輯上可并行的作業(yè)步可在不同進(jìn)程中運(yùn)行。處理機(jī)能在進(jìn)程間切換。原多道程序設(shè)計(jì)系統(tǒng)中的作業(yè)可看成是只有一個(gè)進(jìn)程的作業(yè)。*并發(fā)
2、與共享的問(wèn)題:并行程序訪問(wèn)共享數(shù)據(jù)問(wèn)題舉例:(count為共享變量初值=300)ProgramA:…N=countN=N+100count=N…ProgramB:…M=countM=M+200count=M…如果按以下次序占處理機(jī)運(yùn)行:N=count,N=N+100;M=count,M=M+200,count=M;count=N.結(jié)果count=400(應(yīng)為600)*1.進(jìn)程定義進(jìn)程:是一個(gè)有獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次運(yùn)行活動(dòng)。特點(diǎn):動(dòng)態(tài)性:可動(dòng)態(tài)創(chuàng)建,結(jié)束,也可是精靈進(jìn)程并發(fā)性:可以
3、被獨(dú)立調(diào)度占用處理機(jī)運(yùn)行獨(dú)立性:盡量把并發(fā)事務(wù)安排到不同的進(jìn)程制約性:因訪問(wèn)共享數(shù)據(jù)或進(jìn)程間同步而產(chǎn)生制約.組成:操作系統(tǒng)表示/管理進(jìn)程的PCB表以及執(zhí)行程序及處理數(shù)據(jù);一片存放程序和數(shù)據(jù)的空間;一個(gè)棧區(qū)(一個(gè)用戶(hù)棧,一個(gè)核心棧);進(jìn)程使用的其他系統(tǒng)資源.*2.進(jìn)程控制結(jié)構(gòu)進(jìn)程映像:進(jìn)程執(zhí)行程序,數(shù)據(jù),棧。進(jìn)程映像如何存放在內(nèi)存取決于存儲(chǔ)管理機(jī)制.進(jìn)程控制塊PCB:系統(tǒng)管理控制進(jìn)程運(yùn)行用的信息集合(含核心棧).*用戶(hù)空間系統(tǒng)空間PCB含有以下三大類(lèi)信息:進(jìn)程標(biāo)識(shí)信息。如本進(jìn)程的標(biāo)識(shí);本進(jìn)程的產(chǎn)生
4、者標(biāo)識(shí)(父進(jìn)程標(biāo)識(shí));進(jìn)程所屬用戶(hù)標(biāo)識(shí)。處理機(jī)狀態(tài)信息保存區(qū)(進(jìn)程核心棧)。保存進(jìn)程的運(yùn)行現(xiàn)場(chǎng)信息:通用寄存器。這是指用戶(hù)程序可以使用的數(shù)據(jù)、地址寄存器。控制和狀態(tài)寄存器。如程序計(jì)數(shù)器(PC);處理機(jī)狀態(tài)字(PS)*進(jìn)程控制信息調(diào)度和狀態(tài)信息,用于操作系統(tǒng)調(diào)度進(jìn)程占用處理機(jī)。進(jìn)程間通訊信息,為支持進(jìn)程間的通訊相關(guān)的各種標(biāo)識(shí),信號(hào),信件等,這些信息存在接收方的進(jìn)程控制塊中。存儲(chǔ)管理信息。包含有指向本進(jìn)程映像存儲(chǔ)空間的數(shù)據(jù)結(jié)構(gòu)。進(jìn)程所用資源。說(shuō)明由進(jìn)程打開(kāi),使用的系統(tǒng)資源,如打開(kāi)的文件等。有關(guān)數(shù)據(jù)結(jié)
5、構(gòu)鏈接信息,進(jìn)程可以鏈接到一個(gè)進(jìn)程隊(duì)列中,或鏈接到相關(guān)的其它進(jìn)程PCB.*3.2進(jìn)程狀態(tài)3.2.1.進(jìn)程的創(chuàng)建與結(jié)束等系統(tǒng)調(diào)用一.進(jìn)程創(chuàng)建處理過(guò)程大致為:接收進(jìn)程運(yùn)行初始值,初始優(yōu)先級(jí),初始執(zhí)行程序名字,其它資源等參數(shù)。請(qǐng)求分配進(jìn)程描述塊PCB空間,得到一個(gè)內(nèi)部數(shù)字進(jìn)程標(biāo)識(shí)。用執(zhí)行“進(jìn)程創(chuàng)建”進(jìn)程傳來(lái)的參數(shù)初始化PCB表。產(chǎn)生描述進(jìn)程空間的數(shù)據(jù)結(jié)構(gòu),用初始執(zhí)行文件初始化進(jìn)程空間,建立程序段,數(shù)據(jù)段、棧段等。*5.用進(jìn)程運(yùn)行初始值設(shè)置處理機(jī)現(xiàn)場(chǎng)保護(hù)區(qū)(如設(shè)置用戶(hù)程序main()入口執(zhí)行的運(yùn)行現(xiàn)場(chǎng))
6、。造一個(gè)進(jìn)程運(yùn)行棧幀。6.置好父進(jìn)程等關(guān)系域。7.將PCB表掛入就緒隊(duì)列,等待時(shí)機(jī)被調(diào)度運(yùn)行。*二.進(jìn)程結(jié)束大致處理過(guò)程如下:1.將進(jìn)程狀態(tài)改到結(jié)束狀態(tài)2.關(guān)閉所有打開(kāi)數(shù)據(jù)文件、設(shè)備3.釋放對(duì)進(jìn)程程序文件的使用4.進(jìn)行相關(guān)信息統(tǒng)計(jì)5.清理其相關(guān)進(jìn)程的鏈接關(guān)系,如在UNIX中,將該結(jié)束進(jìn)程的所有子進(jìn)程鏈到1號(hào)進(jìn)程,作為1號(hào)進(jìn)程的子進(jìn)程,并通知父進(jìn)程自己已結(jié)束。6.釋放進(jìn)程映像空間(對(duì)于虛存來(lái)說(shuō)如:交換區(qū),所占物理頁(yè),將頁(yè)表所占空間返還系統(tǒng))7.釋放進(jìn)程控制塊(PCB)。8.調(diào)用進(jìn)程調(diào)度與切換程序。
7、*三、進(jìn)程等待系統(tǒng)調(diào)用如waitpid(pid,&statloc,opts)系統(tǒng)調(diào)用.進(jìn)程發(fā)出此系統(tǒng)調(diào)用阻塞于內(nèi)核等待pid所指進(jìn)程運(yùn)行結(jié)束.*3.2.2進(jìn)程狀態(tài)及變化運(yùn)行狀態(tài)(Running):當(dāng)一個(gè)進(jìn)程正在處理機(jī)上運(yùn)行時(shí)。就緒狀態(tài)(Ready):一個(gè)進(jìn)程獲得了除處理機(jī)之外的一切所需資源,一旦得到處理機(jī)即可運(yùn)行.阻塞狀態(tài)又稱(chēng)等待狀態(tài)(Blocked):一個(gè)進(jìn)程正在等待某一事件而暫停運(yùn)行時(shí),如等待某資源成為可用,等待輸入/輸出完成。創(chuàng)建狀態(tài)(New):一個(gè)進(jìn)程正在被創(chuàng)建,還沒(méi)到轉(zhuǎn)到就緒狀態(tài)之前的
8、狀態(tài)。結(jié)束狀態(tài)(Exit):一個(gè)進(jìn)程正在從系統(tǒng)中消失時(shí)的狀態(tài),這是因?yàn)檫M(jìn)程結(jié)束或其它原因流產(chǎn)所導(dǎo)致。*狀態(tài)變化圖NewRunningExitReadyBlocked被調(diào)度時(shí)間片完事件發(fā)生等待事件結(jié)束進(jìn)入就緒隊(duì)列可能的狀態(tài)變化如下:空→創(chuàng)建:一個(gè)新進(jìn)程被產(chǎn)生用來(lái)執(zhí)行一個(gè)程序,創(chuàng)建→就緒:當(dāng)進(jìn)程被創(chuàng)建完成,初始化后,一切就緒準(zhǔn)備運(yùn)行時(shí)變到就緒態(tài)。(為了限制系統(tǒng)資源不過(guò)份分散,也可以限制從New進(jìn)入Ready狀態(tài)的進(jìn)程數(shù),這樣做可以使系統(tǒng)內(nèi)存,內(nèi)核用戶(hù)頁(yè)表空間等系統(tǒng)資源集中給有限的進(jìn)程使用。因此可能進(jìn)