操作系統(tǒng)第3章_1_第1頁(yè)
操作系統(tǒng)第3章_1_第2頁(yè)
操作系統(tǒng)第3章_1_第3頁(yè)
操作系統(tǒng)第3章_1_第4頁(yè)
操作系統(tǒng)第3章_1_第5頁(yè)
已閱讀5頁(yè),還剩44頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1 第三章、進(jìn)程管理第三章、進(jìn)程管理 3.1進(jìn)程的概念進(jìn)程的概念3.2進(jìn)程的描述進(jìn)程的描述3.3進(jìn)程狀態(tài)及其轉(zhuǎn)換進(jìn)程狀態(tài)及其轉(zhuǎn)換3.4進(jìn)程控制進(jìn)程控制3.5進(jìn)程互斥進(jìn)程互斥3.6進(jìn)程同步進(jìn)程同步3.7進(jìn)程通信進(jìn)程通信3.8死鎖問題死鎖問題3.9線程線程3.1 進(jìn)程的概念進(jìn)程的概念一、程序的并發(fā)執(zhí)行一、程序的并發(fā)執(zhí)行1、程序的、程序的順序順序執(zhí)行:執(zhí)行:具獨(dú)立功能的程序獨(dú)占具獨(dú)立功能的程序獨(dú)占CPU及其它資源,直至得到結(jié)果。及其它資源,直至得到結(jié)果。特點(diǎn):特點(diǎn):1)順序性)順序性2)封閉性)封閉性3)可再現(xiàn)性)可再現(xiàn)性作業(yè)作業(yè)1作業(yè)作業(yè)223 2、程序的、程序的并發(fā)并發(fā)執(zhí)行:執(zhí)行:一組邏輯上獨(dú)立

2、的程序在執(zhí)行過程中,其執(zhí)行時(shí)間一組邏輯上獨(dú)立的程序在執(zhí)行過程中,其執(zhí)行時(shí)間在客觀上重疊,一個(gè)程序執(zhí)行尚未結(jié)束,另一段程序即在客觀上重疊,一個(gè)程序執(zhí)行尚未結(jié)束,另一段程序即開始執(zhí)行。(多道程序之間、一道程序的持續(xù)段之間)開始執(zhí)行。(多道程序之間、一道程序的持續(xù)段之間)特點(diǎn):特點(diǎn):1)失去封閉性)失去封閉性2)不可再現(xiàn)性)不可再現(xiàn)性3)間斷性)間斷性41)并發(fā)執(zhí)行的特點(diǎn))并發(fā)執(zhí)行的特點(diǎn) 失去封閉性失去封閉性由于多個(gè)程序共享資源,資源的狀態(tài)可由多個(gè)程序改由于多個(gè)程序共享資源,資源的狀態(tài)可由多個(gè)程序改變,一個(gè)程序的運(yùn)行會(huì)受到其它程序的影響。變,一個(gè)程序的運(yùn)行會(huì)受到其它程序的影響。例例2:Procedu

3、re getaddr(top) begin local r r = (top) top = top 1 return(r) endProcedure reladdr(top) begin top = top + 1 (top) = blk end52)并發(fā)執(zhí)行的特點(diǎn))并發(fā)執(zhí)行的特點(diǎn) 不可再現(xiàn)性不可再現(xiàn)性begin integer N = 0; cobeginprogramA:begin。 N = N + 1; goto programA endprogramB:begin。 print(N); N = 0; goto programB end coendendN = n 打印結(jié)果打印結(jié)果N值值

4、 n+1 0 n 0 n 1結(jié)論:結(jié)論: 程序的執(zhí)行結(jié)果與并發(fā)程序程序的執(zhí)行結(jié)果與并發(fā)程序的執(zhí)行速度和順序有關(guān),即便的執(zhí)行速度和順序有關(guān),即便初始條件相同,也可能得到不初始條件相同,也可能得到不同的結(jié)果。同的結(jié)果。例例3:63)并發(fā)執(zhí)行的特點(diǎn))并發(fā)執(zhí)行的特點(diǎn) 間斷性間斷性由于多個(gè)程序共享資源,或?yàn)橥瓿梢豁?xiàng)任務(wù)相互合作,使并發(fā)程由于多個(gè)程序共享資源,或?yàn)橥瓿梢豁?xiàng)任務(wù)相互合作,使并發(fā)程序之間形成相互制約關(guān)系,導(dǎo)致其序之間形成相互制約關(guān)系,導(dǎo)致其“執(zhí)行執(zhí)行暫停暫停執(zhí)行執(zhí)行”這種間斷這種間斷性活動(dòng)規(guī)律。性活動(dòng)規(guī)律。相鄰語(yǔ)句可并發(fā)執(zhí)行的相鄰語(yǔ)句可并發(fā)執(zhí)行的Bernstein條件:條件: (P39) 例例

5、1:以下三個(gè)賦值語(yǔ)句哪兩個(gè)之間可以并發(fā)執(zhí)行:以下三個(gè)賦值語(yǔ)句哪兩個(gè)之間可以并發(fā)執(zhí)行:S1: a = x + yR(S1) = x , y W(S1) = aS2: b = z + 1R(S2) = z W(S2) = bS3: c = a + bR(S3) = a , b W(S3) = cS1與與S2可并發(fā)執(zhí)行:可并發(fā)執(zhí)行:R(S1)W(S2) W(S1)R(S2) WR(S1)W(S2) = S1與與S3不能并發(fā)執(zhí)行:不能并發(fā)執(zhí)行:W(S1)R(S3) = aS2與與S3不能并發(fā)執(zhí)行:不能并發(fā)執(zhí)行:W(S2)R(S3) = b38總總 結(jié)結(jié) 多道程序環(huán)境下程序的特征:多道程序環(huán)境下程序的特

6、征:并發(fā)性:外設(shè)并發(fā)性:外設(shè)-主機(jī),外設(shè)主機(jī),外設(shè)-外設(shè),程序外設(shè),程序-程序;程序;制約性:共享資源、相互合作,相互牽制;制約性:共享資源、相互合作,相互牽制;動(dòng)態(tài)性:走走停停、異步運(yùn)行。動(dòng)態(tài)性:走走停停、異步運(yùn)行。“程序程序”概念的局限:概念的局限:程序是完成某個(gè)功能的指令的集合,靜態(tài)的程序是完成某個(gè)功能的指令的集合,靜態(tài)的概念,無(wú)法反映程序運(yùn)行的動(dòng)態(tài)性概念,無(wú)法反映程序運(yùn)行的動(dòng)態(tài)性運(yùn)行在運(yùn)行在CPU上只有一個(gè)程序,對(duì)于多任務(wù)則上只有一個(gè)程序,對(duì)于多任務(wù)則無(wú)法反映并發(fā)性無(wú)法反映并發(fā)性思考:今天借書和明天借書有何不同?今天借書和明天借書有何不同?上午踢球和下午踢球有何不同?上午踢球和下午踢球

7、有何不同?張師傅和李師傅炒的回鍋肉是否一樣美味?張師傅和李師傅炒的回鍋肉是否一樣美味?9借書的程序:借書的程序:11你的一天你的一天1、早餐、早餐2、上午上課、上午上課3、午餐吃小炒、午餐吃小炒4、圖書館借書、圖書館借書5、打網(wǎng)球、打網(wǎng)球6、晚自習(xí)、晚自習(xí)7、洗澡、洗澡8、睡覺、睡覺教務(wù)處安排時(shí)段和教室教務(wù)處安排時(shí)段和教室候時(shí)長(zhǎng)短取決于時(shí)機(jī)候時(shí)長(zhǎng)短取決于時(shí)機(jī)書是否被借走?書是否被借走?有場(chǎng)地?有場(chǎng)地?有搭檔?有搭檔?沖突時(shí)安排順序沖突時(shí)安排順序四年內(nèi)的獨(dú)占資源四年內(nèi)的獨(dú)占資源教室?圖書館?宿舍?教室?圖書館?宿舍?食堂早上開門時(shí)段食堂早上開門時(shí)段12宏觀角度:學(xué)校各部門有序管理和分配資源宏觀角

8、度:學(xué)校各部門有序管理和分配資源共享共享 爭(zhēng)奪資源:爭(zhēng)奪資源:目標(biāo):公平、安全、高效目標(biāo):公平、安全、高效實(shí)施:資源的實(shí)施:資源的分配策略分配策略 管理機(jī)制管理機(jī)制(登記、時(shí)限、歸還)(登記、時(shí)限、歸還)前提:以個(gè)體或班級(jí)為管理對(duì)象前提:以個(gè)體或班級(jí)為管理對(duì)象 實(shí)施實(shí)施動(dòng)態(tài)動(dòng)態(tài)的分配和管理的分配和管理用一個(gè)概念來(lái)描述:用一個(gè)概念來(lái)描述:學(xué)生或班級(jí)進(jìn)行某項(xiàng)活動(dòng)的動(dòng)態(tài)過程學(xué)生或班級(jí)進(jìn)行某項(xiàng)活動(dòng)的動(dòng)態(tài)過程 13進(jìn)進(jìn) 程程14微觀角度:學(xué)生按需申請(qǐng)使用資源微觀角度:學(xué)生按需申請(qǐng)使用資源1、注冊(cè)登記,分配基本資源;注冊(cè)登記,分配基本資源;2、活動(dòng)狀態(tài)的記錄和轉(zhuǎn)換;、活動(dòng)狀態(tài)的記錄和轉(zhuǎn)換;3、進(jìn)行一項(xiàng)活動(dòng)

9、之前:、進(jìn)行一項(xiàng)活動(dòng)之前:A、是否具備參加的資格?、是否具備參加的資格?(前提:別人的配合?自己的準(zhǔn)備?)(前提:別人的配合?自己的準(zhǔn)備?)B、能否獲得需要資源?、能否獲得需要資源?(申請(qǐng)(申請(qǐng)等待等待分配分配使用使用歸還)歸還)4、活動(dòng)的開展;、活動(dòng)的開展;5、結(jié)束后歸還資源。、結(jié)束后歸還資源。進(jìn)程的描述進(jìn)程的描述進(jìn)程狀態(tài)及管理進(jìn)程狀態(tài)及管理進(jìn)程同步進(jìn)程同步進(jìn)程互斥進(jìn)程互斥進(jìn)程的執(zhí)行進(jìn)程的執(zhí)行進(jìn)程的撤銷進(jìn)程的撤銷15二、進(jìn)程:二、進(jìn)程:1、定義:、定義:進(jìn)程進(jìn)程 是一個(gè)具有獨(dú)立功能的是一個(gè)具有獨(dú)立功能的程序程序?qū)δ硞€(gè)數(shù)據(jù)對(duì)某個(gè)數(shù)據(jù)集在處理機(jī)上的集在處理機(jī)上的執(zhí)行過程執(zhí)行過程,是系統(tǒng)進(jìn)行資源分

10、配,是系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位。和調(diào)度的基本單位。進(jìn)程是可并發(fā)執(zhí)行的程序在一個(gè)數(shù)據(jù)集合上的進(jìn)程是可并發(fā)執(zhí)行的程序在一個(gè)數(shù)據(jù)集合上的運(yùn)行過程運(yùn)行過程。162、進(jìn)程與程序的區(qū)別:、進(jìn)程與程序的區(qū)別:進(jìn)程進(jìn)程程序程序動(dòng)態(tài)特征動(dòng)態(tài)特征執(zhí)行過程,執(zhí)行過程,有生命期,創(chuàng)有生命期,創(chuàng)建建調(diào)度調(diào)度撤消撤消有序指令的集合,不反映執(zhí)行有序指令的集合,不反映執(zhí)行過程,靜態(tài)過程,靜態(tài)并發(fā)特征并發(fā)特征多個(gè)進(jìn)程在同一時(shí)間內(nèi)同時(shí)多個(gè)進(jìn)程在同一時(shí)間內(nèi)同時(shí)運(yùn)行運(yùn)行沒有為之建立進(jìn)程的程序不能沒有為之建立進(jìn)程的程序不能并發(fā)執(zhí)行并發(fā)執(zhí)行獨(dú)立特征獨(dú)立特征獨(dú)立運(yùn)行、分配資源、調(diào)度獨(dú)立運(yùn)行、分配資源、調(diào)度的基本單位的基本單位未建進(jìn)

11、程的程序,不能作為獨(dú)未建進(jìn)程的程序,不能作為獨(dú)立單位運(yùn)行立單位運(yùn)行異步特征異步特征按各自獨(dú)立、不可預(yù)知的速按各自獨(dú)立、不可預(yù)知的速度向前推進(jìn),相互協(xié)調(diào)度向前推進(jìn),相互協(xié)調(diào)獨(dú)占全機(jī)運(yùn)行,結(jié)果確定,不獨(dú)占全機(jī)運(yùn)行,結(jié)果確定,不需協(xié)調(diào)需協(xié)調(diào)結(jié)構(gòu)特征結(jié)構(gòu)特征程序段程序段+數(shù)據(jù)段數(shù)據(jù)段+進(jìn)程控制塊進(jìn)程控制塊PCB不同的進(jìn)程可對(duì)應(yīng)同一程序,不同的進(jìn)程可對(duì)應(yīng)同一程序,只要對(duì)應(yīng)的數(shù)據(jù)集不同只要對(duì)應(yīng)的數(shù)據(jù)集不同173、進(jìn)程與作業(yè)的區(qū)別:、進(jìn)程與作業(yè)的區(qū)別:1)作業(yè)是用戶向計(jì)算機(jī)提交的)作業(yè)是用戶向計(jì)算機(jī)提交的任務(wù)實(shí)體任務(wù)實(shí)體,提交后放在,提交后放在外存等待隊(duì)列中;外存等待隊(duì)列中;進(jìn)程是完成用戶任務(wù)的進(jìn)程是完成用

12、戶任務(wù)的執(zhí)行實(shí)體執(zhí)行實(shí)體,是分配資源的基本,是分配資源的基本單位,創(chuàng)建后部分存于內(nèi)存。單位,創(chuàng)建后部分存于內(nèi)存。2)作業(yè)由一個(gè)或多個(gè)進(jìn)程組成。)作業(yè)由一個(gè)或多個(gè)進(jìn)程組成。3)作業(yè)的概念主要用于批處理系統(tǒng)中;)作業(yè)的概念主要用于批處理系統(tǒng)中; 進(jìn)程的概念主要用于多道程序系統(tǒng)中。進(jìn)程的概念主要用于多道程序系統(tǒng)中。183.2 進(jìn)程的描述進(jìn)程的描述程序部分程序部分:描述進(jìn)程的功能:描述進(jìn)程的功能數(shù)據(jù)結(jié)構(gòu)集:執(zhí)行時(shí)的工作區(qū)和操作對(duì)象數(shù)據(jù)結(jié)構(gòu)集:執(zhí)行時(shí)的工作區(qū)和操作對(duì)象進(jìn)程控制塊:描述進(jìn)程的情況和控制其運(yùn)行所需的信息進(jìn)程控制塊:描述進(jìn)程的情況和控制其運(yùn)行所需的信息一、進(jìn)程控制塊一、進(jìn)程控制塊PCB1、基本

13、內(nèi)容:、基本內(nèi)容:描述信息、控制信息、資源信息、描述信息、控制信息、資源信息、CPU現(xiàn)場(chǎng)保護(hù)區(qū)現(xiàn)場(chǎng)保護(hù)區(qū)2、系統(tǒng)根據(jù)系統(tǒng)根據(jù)PCB感知進(jìn)程的存在感知進(jìn)程的存在,是進(jìn)程存在的唯一標(biāo)志,是進(jìn),是進(jìn)程存在的唯一標(biāo)志,是進(jìn)程動(dòng)態(tài)特征的集中反映,常駐內(nèi)存程動(dòng)態(tài)特征的集中反映,常駐內(nèi)存PCB區(qū)。區(qū)。3、組織方式:、組織方式: 1)鏈接隊(duì)列)鏈接隊(duì)列 2)索引表)索引表19進(jìn)程控制塊進(jìn)程控制塊PCB主要內(nèi)容主要內(nèi)容進(jìn)程標(biāo)識(shí)符進(jìn)程標(biāo)識(shí)符家族關(guān)系家族關(guān)系現(xiàn)行狀態(tài)現(xiàn)行狀態(tài)互斥和同步機(jī)構(gòu)互斥和同步機(jī)構(gòu)進(jìn)程通信機(jī)構(gòu)進(jìn)程通信機(jī)構(gòu)進(jìn)程優(yōu)先數(shù)進(jìn)程優(yōu)先數(shù)鏈接字鏈接字程序與數(shù)據(jù)地址程序與數(shù)據(jù)地址資源清單資源清單CPU現(xiàn)場(chǎng)保護(hù)區(qū)

14、現(xiàn)場(chǎng)保護(hù)區(qū)二、進(jìn)程上下文二、進(jìn)程上下文 進(jìn)程執(zhí)行活動(dòng)過程的靜態(tài)描述,是進(jìn)程執(zhí)行所依賴的環(huán)境。進(jìn)程執(zhí)行活動(dòng)過程的靜態(tài)描述,是進(jìn)程執(zhí)行所依賴的環(huán)境。 當(dāng)系統(tǒng)調(diào)度新進(jìn)程占有處理機(jī)時(shí),新老進(jìn)程的發(fā)生當(dāng)系統(tǒng)調(diào)度新進(jìn)程占有處理機(jī)時(shí),新老進(jìn)程的發(fā)生上下文切換上下文切換。11CPU現(xiàn)場(chǎng) 四道程序并發(fā)執(zhí)行:四道程序并發(fā)執(zhí)行:上下文切換上下文切換列車的運(yùn)行列車的運(yùn)行:22列車行進(jìn)列車行進(jìn)進(jìn)站上下旅客進(jìn)站上下旅客 補(bǔ)給、換班補(bǔ)給、換班等待調(diào)度發(fā)車等待調(diào)度發(fā)車233.3 進(jìn)程狀態(tài)及其轉(zhuǎn)換進(jìn)程狀態(tài)及其轉(zhuǎn)換1、就緒狀態(tài)就緒狀態(tài)ready:已獲得除已獲得除CPU之外的所有必要資源。之外的所有必要資源。2、執(zhí)行狀態(tài)執(zhí)行狀態(tài)e

15、xcute:占有占有CPU正在執(zhí)行。正在執(zhí)行。3、等待(阻塞)狀態(tài)等待(阻塞)狀態(tài)blocked:因某事件(請(qǐng)求因某事件(請(qǐng)求I/O)而暫停執(zhí)行,處于等)而暫停執(zhí)行,處于等待執(zhí)行的狀態(tài)。待執(zhí)行的狀態(tài)。24發(fā)生阻塞的原因:發(fā)生阻塞的原因:1 1、等待外設(shè)操作完成;、等待外設(shè)操作完成;2 2、對(duì)某一資源(系統(tǒng)調(diào)用、文件、內(nèi)存、外設(shè))的訪、對(duì)某一資源(系統(tǒng)調(diào)用、文件、內(nèi)存、外設(shè))的訪問尚不能進(jìn)行;問尚不能進(jìn)行;3 3、等待具有合作關(guān)系的某一進(jìn)程執(zhí)行完畢;、等待具有合作關(guān)系的某一進(jìn)程執(zhí)行完畢;注意區(qū)分:注意區(qū)分:1 1、等待外設(shè)進(jìn)行輸入或輸出操作這一過程的結(jié)束、等待外設(shè)進(jìn)行輸入或輸出操作這一過程的結(jié)束

16、 2 2、等待外設(shè)準(zhǔn)備進(jìn)行輸入或輸出操作、等待外設(shè)準(zhǔn)備進(jìn)行輸入或輸出操作三個(gè)進(jìn)程狀態(tài)轉(zhuǎn)換三個(gè)進(jìn)程狀態(tài)轉(zhuǎn)換執(zhí)行執(zhí)行 就緒就緒 阻塞阻塞進(jìn)程進(jìn)程B進(jìn)程進(jìn)程A進(jìn)程進(jìn)程C分派程序分派程序執(zhí)行執(zhí)行 就緒就緒 阻塞阻塞26PCB隊(duì)列結(jié)構(gòu)隊(duì)列結(jié)構(gòu):27PCB索引結(jié)構(gòu)索引結(jié)構(gòu):索引表索引表就緒隊(duì)列就緒隊(duì)列等待隊(duì)列等待隊(duì)列 1等待隊(duì)列等待隊(duì)列 2PCB 1PCB 2PCB 3PCB 4PCB 5PCB 6PCB 7PCB n PCB表表28多道程序并發(fā)執(zhí)行的實(shí)例多道程序并發(fā)執(zhí)行的實(shí)例30作業(yè)調(diào)度與進(jìn)程調(diào)度作業(yè)調(diào)度與進(jìn)程調(diào)度3.4 進(jìn)程控制進(jìn)程控制進(jìn)程控制:進(jìn)程控制:系統(tǒng)使用一些具有特定功能的程序段來(lái)創(chuàng)建、撤消進(jìn)

17、程,以及完成系統(tǒng)使用一些具有特定功能的程序段來(lái)創(chuàng)建、撤消進(jìn)程,以及完成進(jìn)程各狀態(tài)間的轉(zhuǎn)換,從而達(dá)到多進(jìn)程高效率并發(fā)執(zhí)行和協(xié)調(diào)、實(shí)現(xiàn)資進(jìn)程各狀態(tài)間的轉(zhuǎn)換,從而達(dá)到多進(jìn)程高效率并發(fā)執(zhí)行和協(xié)調(diào)、實(shí)現(xiàn)資源共享的目的。源共享的目的。由操作系統(tǒng)的內(nèi)核實(shí)現(xiàn),通過執(zhí)行原語(yǔ)操作進(jìn)行控制。由操作系統(tǒng)的內(nèi)核實(shí)現(xiàn),通過執(zhí)行原語(yǔ)操作進(jìn)行控制。操作系統(tǒng)的內(nèi)核:操作系統(tǒng)的內(nèi)核:包括與硬件緊密相關(guān)的模塊、運(yùn)行頻率高的公用模塊;包括與硬件緊密相關(guān)的模塊、運(yùn)行頻率高的公用模塊;安排在靠近硬件的層次中,基于硬件的第一次軟件擴(kuò)充,常駐內(nèi)存;安排在靠近硬件的層次中,基于硬件的第一次軟件擴(kuò)充,常駐內(nèi)存;功能多為中斷處理、進(jìn)程管理、對(duì)外設(shè)

18、的基本操作。功能多為中斷處理、進(jìn)程管理、對(duì)外設(shè)的基本操作。原語(yǔ)原語(yǔ):在系統(tǒng)態(tài)下執(zhí)行某些特定功能的程序段,是機(jī)器指令的延伸,由若在系統(tǒng)態(tài)下執(zhí)行某些特定功能的程序段,是機(jī)器指令的延伸,由若干指令組成,在執(zhí)行期間不可分割、中斷,具有原子性。干指令組成,在執(zhí)行期間不可分割、中斷,具有原子性。15一、進(jìn)程創(chuàng)建一、進(jìn)程創(chuàng)建create( )形成進(jìn)程控制塊形成進(jìn)程控制塊PCB創(chuàng)建方式:創(chuàng)建方式:1、系統(tǒng)程序模塊統(tǒng)一創(chuàng)建、系統(tǒng)程序模塊統(tǒng)一創(chuàng)建2、父進(jìn)程創(chuàng)建、父進(jìn)程創(chuàng)建創(chuàng)建事件:創(chuàng)建事件:1、用戶登錄、用戶登錄2、作業(yè)調(diào)度、作業(yè)調(diào)度3、提供服務(wù)、提供服務(wù)4、應(yīng)用請(qǐng)求、應(yīng)用請(qǐng)求33Procedure Create

19、(n,S0,k0,M0,R0)begini:= Get Internal Name(n); * 進(jìn)程外部名進(jìn)程外部名Id(i) := n; * PCB內(nèi)部標(biāo)示號(hào)內(nèi)部標(biāo)示號(hào)Priority(i) := k0; *進(jìn)程優(yōu)先數(shù)進(jìn)程優(yōu)先數(shù)Cpustate(i) := S0; *CPU初始狀態(tài)初始狀態(tài)Main Store(i) := M0; *內(nèi)存初始占有情況內(nèi)存初始占有情況Resources(i) := R0; *其它資源初始占有情況其它資源初始占有情況Status(i) := Readys; *進(jìn)程初始狀態(tài)置為就緒進(jìn)程初始狀態(tài)置為就緒Parent(i) := CALLER; *父進(jìn)程名父進(jìn)程名Ins

20、ert(RL,i); *把把i插入就緒隊(duì)列插入就緒隊(duì)列end34相關(guān)系統(tǒng)調(diào)用相關(guān)系統(tǒng)調(diào)用 1、fork( ):創(chuàng)建子進(jìn)程,子進(jìn)程復(fù)制父進(jìn)程程序數(shù)據(jù)資源:創(chuàng)建子進(jìn)程,子進(jìn)程復(fù)制父進(jìn)程程序數(shù)據(jù)資源對(duì)對(duì)父進(jìn)程返回正整數(shù)父進(jìn)程返回正整數(shù)(子進(jìn)程的進(jìn)程標(biāo)識(shí)號(hào)(子進(jìn)程的進(jìn)程標(biāo)識(shí)號(hào)pid)對(duì)對(duì)子進(jìn)程返回子進(jìn)程返回0創(chuàng)建失敗返回創(chuàng)建失敗返回-1。2、getpid( ):獲得當(dāng)前進(jìn)程的進(jìn)程標(biāo)識(shí)號(hào):獲得當(dāng)前進(jìn)程的進(jìn)程標(biāo)識(shí)號(hào)pid3、getppid( ):獲得父進(jìn)程的進(jìn)程標(biāo)識(shí)號(hào):獲得父進(jìn)程的進(jìn)程標(biāo)識(shí)號(hào)pid35例例1:父進(jìn)程創(chuàng)建一個(gè)子進(jìn)程,在父子進(jìn)程中分父進(jìn)程創(chuàng)建一個(gè)子進(jìn)程,在父子進(jìn)程中分別輸出各自的進(jìn)程標(biāo)識(shí)號(hào)。別

21、輸出各自的進(jìn)程標(biāo)識(shí)號(hào)。 main()int x,p; if(p= fork() = 0) printf(this is child processn); printf( My PID (child) is %dn,getpid(); printf( My parent PID is %dn,getppid(); else printf(This is parent processn); printf(My PID(parent) is %dn,getpid(); printf(My child PID is %dn,p); 父進(jìn)程CPU 子進(jìn)程返回返回0返回子返回子pid例例2:父進(jìn)程創(chuàng)建兩個(gè)

22、子進(jìn)程,各自輸出一個(gè)字符。父進(jìn)程創(chuàng)建兩個(gè)子進(jìn)程,各自輸出一個(gè)字符。 通過多次運(yùn)行的結(jié)果分析進(jìn)程并發(fā)運(yùn)行的特點(diǎn)。通過多次運(yùn)行的結(jié)果分析進(jìn)程并發(fā)運(yùn)行的特點(diǎn)。#include main() int p1,p2; while (p1=fork()=-1) ; if (p1 = 0) putchar(b); /第一個(gè)子進(jìn)程執(zhí)行第一個(gè)子進(jìn)程執(zhí)行 else while (p2=fork()=-1) ; if(p2 = 0) putchar(c); /第二個(gè)子進(jìn)程執(zhí)行第二個(gè)子進(jìn)程執(zhí)行 else putchar(a); /父進(jìn)程執(zhí)行父進(jìn)程執(zhí)行 【執(zhí)行結(jié)果執(zhí)行結(jié)果】studentlocalhost $ ./1bc

23、astudentlocalhost $ ./1bcastudentlocalhost $ ./1bcastudentlocalhost $ ./1bastudentlocalhost $ c./1bcastudentlocalhost $ ./1bcastudentlocalhost $ ./1bcastudentlocalhost $ ./1bcastudentlocalhost $ ./1bcastudentlocalhost $ ./1bcastudentlocalhost $ ./1castudentlocalhost $ b父子進(jìn)程父子進(jìn)程PCB關(guān)系:關(guān)系:38程序;if ( p2

24、0 )輸出a;;父進(jìn)程PCB復(fù)制復(fù)制程序;if ( p1 = 0 )輸出b;;子進(jìn)程P1 PCB程序;if ( p2 = 0 )輸出c;;子進(jìn)程P2 PCB二、進(jìn)程撤消二、進(jìn)程撤消destroy( )釋放各種資源釋放各種資源撤消原因:撤消原因: 1、正常結(jié)束、正常結(jié)束 2、異常結(jié)束、異常結(jié)束 3、外界干預(yù)、外界干預(yù)40Destroy(n):撤消指定標(biāo)識(shí)符的進(jìn)程及其所有子進(jìn)程撤消指定標(biāo)識(shí)符的進(jìn)程及其所有子進(jìn)程 由父進(jìn)程或祖先進(jìn)程發(fā)出,不會(huì)自己撤消自己,由父進(jìn)程或祖先進(jìn)程發(fā)出,不會(huì)自己撤消自己,被撤消進(jìn)程的全部系統(tǒng)資源全部釋放出來(lái)歸還給系統(tǒng)。被撤消進(jìn)程的全部系統(tǒng)資源全部釋放出來(lái)歸還給系統(tǒng)。若其正在

25、運(yùn)行則調(diào)用處理機(jī)調(diào)度程序。若其正在運(yùn)行則調(diào)用處理機(jī)調(diào)度程序。Procedure Destroy(n)beginSched := false;i:= Search Internal Name(n);KILL(i);if Sched = true then Scheduler; end Sched:標(biāo)志是否需要調(diào)用處理機(jī)調(diào)度程序標(biāo)志是否需要調(diào)用處理機(jī)調(diào)度程序。41KILL(i):殺死所有屬于殺死所有屬于i的子進(jìn)程并釋放所有資源的子進(jìn)程并釋放所有資源Procedure KILL(i)beginif Status(i) = Running thenbegin STOP(i); Sched := tru

26、e endREMOVE(Queue(i),i);/從進(jìn)程i所在隊(duì)列移走進(jìn)程ifor all Pprogeny(i) do KILL(P);/殺死所有屬于i的子進(jìn)程for all r progeny(i) do RELEASE(r);/釋放進(jìn)程i占用的所有資源 RELEASE(PCB(i);end三、進(jìn)程等待三、進(jìn)程等待block( )和喚醒和喚醒wakeup( )原因:原因:1、請(qǐng)求操作系統(tǒng)服務(wù)、請(qǐng)求操作系統(tǒng)服務(wù) 2、啟動(dòng)某種操作、啟動(dòng)某種操作 3、新數(shù)據(jù)未到、新數(shù)據(jù)未到 4、無(wú)新工作可做、無(wú)新工作可做Procedure blockbegini:= EP; / EP-執(zhí)行進(jìn)程的指針stop(i)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論