第二章進(jìn)程管理_第1頁(yè)
第二章進(jìn)程管理_第2頁(yè)
第二章進(jìn)程管理_第3頁(yè)
第二章進(jìn)程管理_第4頁(yè)
第二章進(jìn)程管理_第5頁(yè)
已閱讀5頁(yè),還剩129頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第二章進(jìn)程管理(1) 第二章第二章進(jìn)程管理進(jìn)程管理 2.1前驅(qū)圖和程序執(zhí)行前驅(qū)圖和程序執(zhí)行 為了更好地描述程序的順序執(zhí)行和 并發(fā)執(zhí)行情況,引入前驅(qū)圖的概念。 前趨圖前趨圖是一個(gè)有向無(wú)循環(huán)圖,用于描述進(jìn)程間執(zhí)行的是一個(gè)有向無(wú)循環(huán)圖,用于描述進(jìn)程間執(zhí)行的 先后關(guān)系。先后關(guān)系。圖中的每個(gè)結(jié)點(diǎn)圖中的每個(gè)結(jié)點(diǎn)可以表示一條語(yǔ)句、一個(gè)可以表示一條語(yǔ)句、一個(gè) 程序段或進(jìn)程,程序段或進(jìn)程,結(jié)點(diǎn)間的有向邊結(jié)點(diǎn)間的有向邊或前趨關(guān)系或前趨關(guān)系 (Precedence_Relation)“”(Precedence_Relation)“”。 (|(|在在PjPj開(kāi)始前開(kāi)始前PiPi必須完成必須完成 如果如果 ,可寫成,可

2、寫成PiPjPiPj,PiPi是是PjPj的直接前趨,的直接前趨,PjPj 是是PiPi的直接后繼。前趨圖中的直接后繼。前趨圖中必須不存在循環(huán)必須不存在循環(huán)。 2.1.1 前驅(qū)圖 P1P2,P1P3,P1P4,P2P5,P3P5,P4P6, P4P7,P5P8,P6P8,P7P9,P8P9 P=P1,P2,P3,P4,P5,P6,P7,P8,P9 =, 2.1.2 程序的順序執(zhí)行及特征 1.1.程序的順序執(zhí)行(只適用于單道程序)程序的順序執(zhí)行(只適用于單道程序) 程序段之間的順序執(zhí)行程序段之間的順序執(zhí)行 例如:進(jìn)行計(jì)算。例如:進(jìn)行計(jì)算。I:I:輸入操作輸入操作C:C:計(jì)算操作計(jì)算操作P:P:打

3、打 印操作。印操作。 程序語(yǔ)句的順序執(zhí)行程序語(yǔ)句的順序執(zhí)行 S S1 1:a:=x+ya:=x+y; S S2 2:b:=a-5b:=a-5; S S3 3:c:=b+1c:=b+1; 2.程序的順序執(zhí)行時(shí)的特征 順序性順序性:一個(gè)程序的各個(gè)部分的執(zhí)行,嚴(yán)格地:一個(gè)程序的各個(gè)部分的執(zhí)行,嚴(yán)格地 按照某種先后次序執(zhí)行;按照某種先后次序執(zhí)行; 封閉性封閉性:程序在封閉的環(huán)境下運(yùn)行,即程序運(yùn):程序在封閉的環(huán)境下運(yùn)行,即程序運(yùn) 行時(shí)獨(dú)占全部系統(tǒng)資源;行時(shí)獨(dú)占全部系統(tǒng)資源; 可再現(xiàn)性可再現(xiàn)性:只要程序執(zhí)行時(shí)的環(huán)境和初始條件:只要程序執(zhí)行時(shí)的環(huán)境和初始條件 相同,當(dāng)程序重復(fù)執(zhí)行時(shí),不論它是從頭到尾相同,當(dāng)

4、程序重復(fù)執(zhí)行時(shí),不論它是從頭到尾 不停頓地執(zhí)行,還是不停頓地執(zhí)行,還是“停停走走停停走走”地執(zhí)行,都地執(zhí)行,都 將獲得相同的結(jié)果。將獲得相同的結(jié)果。 2.1.3 程序并發(fā)執(zhí)行及特征 1.1.并發(fā)環(huán)境并發(fā)環(huán)境 在一定時(shí)間內(nèi)物理機(jī)器上有在一定時(shí)間內(nèi)物理機(jī)器上有 兩個(gè)或兩個(gè)以上的程序同處于開(kāi)兩個(gè)或兩個(gè)以上的程序同處于開(kāi) 始運(yùn)行但尚未結(jié)束的狀態(tài),并且始運(yùn)行但尚未結(jié)束的狀態(tài),并且 次序不是事先確定的次序不是事先確定的 2. 程序的并發(fā)執(zhí)行 在對(duì)在對(duì)一批程序一批程序進(jìn)行處理時(shí),可以并發(fā)執(zhí)行。進(jìn)行處理時(shí),可以并發(fā)執(zhí)行。 例例 如:輸入、計(jì)算、打印三個(gè)程序?qū)σ粋€(gè)作業(yè)進(jìn)行處理如:輸入、計(jì)算、打印三個(gè)程序?qū)σ粋€(gè)作

5、業(yè)進(jìn)行處理 時(shí)執(zhí)行順序?yàn)椋簳r(shí)執(zhí)行順序?yàn)椋篒i Ci Pi.Ii Ci Pi.對(duì)一批作業(yè)進(jìn)行處理對(duì)一批作業(yè)進(jìn)行處理 時(shí),存在以下的前趨關(guān)系:時(shí),存在以下的前趨關(guān)系: IiCi IiCi,IiIi+1IiIi+1, CiPiCiPi,CiCi+1CiCi+1,PiPi+1 PiPi+1 例如:下述四條語(yǔ)句的程序段,其前趨關(guān)系圖如下:例如:下述四條語(yǔ)句的程序段,其前趨關(guān)系圖如下: S1:a =x+2 S2:b =y+4 S3:c =a+b S4:d =c+b 3.程序的并發(fā)執(zhí)行的特征 間斷性間斷性: :由于它們共享資源或程序之間相由于它們共享資源或程序之間相 互合作完成一項(xiàng)共同任務(wù),因而使程序互合作

6、完成一項(xiàng)共同任務(wù),因而使程序 之間相互制約。之間相互制約。 失去封閉性失去封閉性:程序并發(fā)執(zhí)行時(shí)共享資源:程序并發(fā)執(zhí)行時(shí)共享資源 相互間有影響。相互間有影響。 不可再現(xiàn)性不可再現(xiàn)性:由于程序的并發(fā)執(zhí)行,打:由于程序的并發(fā)執(zhí)行,打 破了由另一程序獨(dú)占系統(tǒng)資源的封閉性,破了由另一程序獨(dú)占系統(tǒng)資源的封閉性, 因而破壞了可再現(xiàn)性。因而破壞了可再現(xiàn)性。( (例例P35)P35) 例子一 進(jìn)程A、B共享變量 N,初始值為5; 進(jìn)程A N=N+1; 進(jìn)程B Print(N) N=0; 按照?qǐng)?zhí)行 N的值nn+10 按照?qǐng)?zhí)行 N的值n01 按照?qǐng)?zhí)行 N的值nn+10 例子二 2.2 進(jìn)程的描述 2.2.2.2.

7、1.1.進(jìn)程的定義和特征進(jìn)程的定義和特征 1.1.定義定義 為了能使程序并發(fā)執(zhí)行,并且可以對(duì)并發(fā)執(zhí)行的為了能使程序并發(fā)執(zhí)行,并且可以對(duì)并發(fā)執(zhí)行的 程序加以描述和控制,人們引入了程序加以描述和控制,人們引入了“進(jìn)程進(jìn)程”的概念。的概念。 為了使參與并發(fā)的每一個(gè)程序都能獨(dú)立運(yùn)行,為為了使參與并發(fā)的每一個(gè)程序都能獨(dú)立運(yùn)行,為 之配置了一個(gè)專門的數(shù)據(jù)結(jié)構(gòu)之配置了一個(gè)專門的數(shù)據(jù)結(jié)構(gòu)進(jìn)程控制塊進(jìn)程控制塊 (Process Control Block,PCB)Process Control Block,PCB) 進(jìn)程實(shí)體進(jìn)程實(shí)體:PCBPCB、程序段、數(shù)據(jù)段、程序段、數(shù)據(jù)段 對(duì)于進(jìn)程的定義,從不同的角度可以

8、有不同的對(duì)于進(jìn)程的定義,從不同的角度可以有不同的 定義,其中較典型的定義有:定義,其中較典型的定義有: (1)進(jìn)程是程序的一次執(zhí)行。進(jìn)程是程序的一次執(zhí)行。 (2)進(jìn)程是一個(gè)程序及其數(shù)據(jù)在處理機(jī)上進(jìn)程是一個(gè)程序及其數(shù)據(jù)在處理機(jī)上 順序執(zhí)行時(shí)所發(fā)生的活動(dòng)。順序執(zhí)行時(shí)所發(fā)生的活動(dòng)。 (3)進(jìn)程是具有獨(dú)立功能的程序在一個(gè)數(shù)進(jìn)程是具有獨(dú)立功能的程序在一個(gè)數(shù) 據(jù)集合上運(yùn)行的過(guò)程,它是系統(tǒng)進(jìn)行資源分配據(jù)集合上運(yùn)行的過(guò)程,它是系統(tǒng)進(jìn)行資源分配 和調(diào)度的一個(gè)獨(dú)立單位。和調(diào)度的一個(gè)獨(dú)立單位。 2.2.進(jìn)程的特征進(jìn)程的特征 結(jié)構(gòu)特征:結(jié)構(gòu)特征:為了控制和管理進(jìn)程,系統(tǒng)為每個(gè)進(jìn)程為了控制和管理進(jìn)程,系統(tǒng)為每個(gè)進(jìn)程 設(shè)

9、立一個(gè)進(jìn)程控制塊設(shè)立一個(gè)進(jìn)程控制塊PCBPCB。 動(dòng)態(tài)性:動(dòng)態(tài)性:進(jìn)程的實(shí)質(zhì)是程序的一次執(zhí)行過(guò)程,進(jìn)程的實(shí)質(zhì)是程序的一次執(zhí)行過(guò)程, 并發(fā)性:并發(fā)性:任何進(jìn)程都可以同其他進(jìn)程一起向前推進(jìn)任何進(jìn)程都可以同其他進(jìn)程一起向前推進(jìn) 獨(dú)立性:獨(dú)立性:進(jìn)程是一個(gè)能獨(dú)立運(yùn)行的基本單位,同時(shí)進(jìn)程是一個(gè)能獨(dú)立運(yùn)行的基本單位,同時(shí) 也是系統(tǒng)分配資源和調(diào)度的獨(dú)立單位;也是系統(tǒng)分配資源和調(diào)度的獨(dú)立單位; 異步性:異步性:由于進(jìn)程間的相互制約,使進(jìn)程具有執(zhí)行由于進(jìn)程間的相互制約,使進(jìn)程具有執(zhí)行 的間斷性,即進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度的間斷性,即進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度 向前推進(jìn)向前推進(jìn) 3. 進(jìn)程與程序的區(qū)

10、別 程序可作為軟件資源長(zhǎng)期保存,進(jìn)程只是一次執(zhí)行過(guò)程,是暫程序可作為軟件資源長(zhǎng)期保存,進(jìn)程只是一次執(zhí)行過(guò)程,是暫 時(shí)的;時(shí)的; 進(jìn)程是系統(tǒng)分配調(diào)度的獨(dú)立單位,能與其他進(jìn)程并發(fā)執(zhí)行進(jìn)程是系統(tǒng)分配調(diào)度的獨(dú)立單位,能與其他進(jìn)程并發(fā)執(zhí)行; ; 2.2.2進(jìn)程的基本狀態(tài)及轉(zhuǎn)換進(jìn)程的基本狀態(tài)及轉(zhuǎn)換 1.進(jìn)程的三種基本狀態(tài)進(jìn)程的三種基本狀態(tài) 就緒狀態(tài)就緒狀態(tài):進(jìn)程已獲得除:進(jìn)程已獲得除CPU以外的所有必以外的所有必 要資源。要資源。 執(zhí)行狀態(tài)執(zhí)行狀態(tài):進(jìn)程正在:進(jìn)程正在CPU上運(yùn)行。上運(yùn)行。 阻塞狀態(tài)阻塞狀態(tài):正在執(zhí)行的進(jìn)程因某種事件而暫:正在執(zhí)行的進(jìn)程因某種事件而暫 時(shí)無(wú)法繼續(xù)執(zhí)行。時(shí)無(wú)法繼續(xù)執(zhí)行。 2.

11、三種基本狀態(tài)的轉(zhuǎn)換 運(yùn)行運(yùn)行 就緒就緒 阻塞阻塞 時(shí)間片用完時(shí)間片用完/ 高優(yōu)先級(jí)搶占高優(yōu)先級(jí)搶占 進(jìn)程調(diào)度進(jìn)程調(diào)度 等待等待I/O或其它事件或其它事件 I/O或其它事件完成或其它事件完成 創(chuàng)建狀態(tài)創(chuàng)建狀態(tài) 已為進(jìn)程分配了已為進(jìn)程分配了PCB,但所需的資源,但所需的資源 尚不能得到滿足,比如系統(tǒng)尚無(wú)足夠尚不能得到滿足,比如系統(tǒng)尚無(wú)足夠 的內(nèi)存使進(jìn)程無(wú)法裝入其中,此時(shí)創(chuàng)的內(nèi)存使進(jìn)程無(wú)法裝入其中,此時(shí)創(chuàng) 建工作尚未完成,進(jìn)程不能被調(diào)度運(yùn)建工作尚未完成,進(jìn)程不能被調(diào)度運(yùn) 行,于是把此時(shí)進(jìn)程所處的狀態(tài)稱為行,于是把此時(shí)進(jìn)程所處的狀態(tài)稱為 創(chuàng)建狀態(tài)。創(chuàng)建狀態(tài)。 終止?fàn)顟B(tài)終止?fàn)顟B(tài) 進(jìn)程結(jié)束(自然結(jié)束或異常

12、結(jié)束)時(shí)進(jìn)程結(jié)束(自然結(jié)束或異常結(jié)束)時(shí) 要進(jìn)入終止?fàn)顟B(tài)。不可調(diào)用執(zhí)行,但要進(jìn)入終止?fàn)顟B(tài)。不可調(diào)用執(zhí)行,但 在操作系統(tǒng)中保留一份記錄。在操作系統(tǒng)中保留一份記錄。 3. 進(jìn)程五態(tài)模型及其轉(zhuǎn)換進(jìn)程五態(tài)模型及其轉(zhuǎn)換 事件發(fā)生 運(yùn)行 態(tài) 就緒 態(tài) 等待 態(tài) 調(diào) 度 時(shí) 間 片 到 等 待 事 件 創(chuàng)建 態(tài) 終止 態(tài) 2.2.3.掛起操作和進(jìn)程狀態(tài)的轉(zhuǎn)換掛起操作和進(jìn)程狀態(tài)的轉(zhuǎn)換 進(jìn)程掛起的原因:進(jìn)程掛起的原因: 1 1終端用戶的請(qǐng)求終端用戶的請(qǐng)求 2 2父進(jìn)程的請(qǐng)求父進(jìn)程的請(qǐng)求 3 3負(fù)荷調(diào)節(jié)的需要負(fù)荷調(diào)節(jié)的需要 4 4操作系統(tǒng)的需要操作系統(tǒng)的需要 具有掛起操作的進(jìn)程狀態(tài)轉(zhuǎn)換圖 圖圖2 25 5 具有掛

13、起狀態(tài)的進(jìn)程狀態(tài)演變圖具有掛起狀態(tài)的進(jìn)程狀態(tài)演變圖 具有創(chuàng)建、終止、掛起的進(jìn)程狀 態(tài)圖 2.2.4.進(jìn)程管理中的數(shù)據(jù)結(jié)構(gòu) 進(jìn)程控制塊(PCB) 1 1、進(jìn)程控制塊的作用、進(jìn)程控制塊的作用 系統(tǒng)利用系統(tǒng)利用PCBPCB來(lái)控制和管理進(jìn)程,所來(lái)控制和管理進(jìn)程,所 以以PCBPCB是系統(tǒng)感知進(jìn)程存在的唯一標(biāo)志。是系統(tǒng)感知進(jìn)程存在的唯一標(biāo)志。 進(jìn)程與進(jìn)程與PCBPCB是一一對(duì)應(yīng)的。是一一對(duì)應(yīng)的。 進(jìn)程控制塊的作用(續(xù)) (1)作為獨(dú)立運(yùn)行基本單位的標(biāo)志。作為獨(dú)立運(yùn)行基本單位的標(biāo)志。 (2)能實(shí)現(xiàn)間斷性運(yùn)行方式。能實(shí)現(xiàn)間斷性運(yùn)行方式。 (3)提供進(jìn)程管理所需要的信息。提供進(jìn)程管理所需要的信息。 (4)提供

14、進(jìn)程調(diào)度所需要的信息。提供進(jìn)程調(diào)度所需要的信息。 (5)實(shí)現(xiàn)與其它進(jìn)程的同步與通信。實(shí)現(xiàn)與其它進(jìn)程的同步與通信。 2、進(jìn)程控制塊中的信息 11進(jìn)程標(biāo)識(shí)符進(jìn)程標(biāo)識(shí)符 內(nèi)部標(biāo)識(shí)內(nèi)部標(biāo)識(shí) 外部標(biāo)識(shí)外部標(biāo)識(shí) 22處理機(jī)狀態(tài)處理機(jī)狀態(tài) 通用寄存器通用寄存器 指令計(jì)數(shù)器指令計(jì)數(shù)器 程序狀態(tài)字程序狀態(tài)字 用戶堆棧用戶堆棧 33進(jìn)程調(diào)度信息進(jìn)程調(diào)度信息 進(jìn)程控制塊中的信息(續(xù)) 進(jìn)程的狀態(tài)進(jìn)程的狀態(tài) 進(jìn)程優(yōu)先級(jí)進(jìn)程優(yōu)先級(jí) 調(diào)度算法調(diào)度算法 調(diào)度事件調(diào)度事件 44進(jìn)程控制信息進(jìn)程控制信息 程序和數(shù)據(jù)地址程序和數(shù)據(jù)地址 進(jìn)程同步和通信進(jìn)程同步和通信 資源清單資源清單 連接指針連接指針 (加)(加)55家族聯(lián)系:家

15、族聯(lián)系:用于說(shuō)明本進(jìn)程與其它家族成員間的關(guān)系。用于說(shuō)明本進(jìn)程與其它家族成員間的關(guān)系。 3、進(jìn)程控制塊的組織方式 線性方式、鏈接方式組織線性方式、鏈接方式組織PCB (PCB (隊(duì)列隊(duì)列) )、索引方式。、索引方式。 1 1)線性方式)線性方式 2)鏈接方式組織PCB 3 3)索引方式)索引方式 2.3 進(jìn)程控制 2.3.1 操作系統(tǒng)內(nèi)核 進(jìn)程控制是對(duì)系統(tǒng)中所有進(jìn)程從產(chǎn)生、 存在到消亡的全過(guò)程實(shí)行有效的管理和 控制。進(jìn)程控制一般是由操作系統(tǒng)的內(nèi) 核來(lái)實(shí)現(xiàn),內(nèi)核在執(zhí)行操作時(shí),往往是 通過(guò)執(zhí)行各種原語(yǔ)操作來(lái)實(shí)現(xiàn)的。 內(nèi)核與原語(yǔ) 原語(yǔ)原語(yǔ) 是由若干條機(jī)器指令構(gòu)成的完成某種特定功能的一段程是由若干條機(jī)器

16、指令構(gòu)成的完成某種特定功能的一段程 序,具有不可分割性。即原語(yǔ)的執(zhí)行必須是連續(xù)的,在序,具有不可分割性。即原語(yǔ)的執(zhí)行必須是連續(xù)的,在 執(zhí)行過(guò)程中不允許被中斷執(zhí)行過(guò)程中不允許被中斷. 內(nèi)核的基本功能內(nèi)核的基本功能 支撐功能:中斷處理、時(shí)鐘管理、原語(yǔ)操作支撐功能:中斷處理、時(shí)鐘管理、原語(yǔ)操作 資源管理功能:進(jìn)程管理、存儲(chǔ)器管理、設(shè)備管理資源管理功能:進(jìn)程管理、存儲(chǔ)器管理、設(shè)備管理 進(jìn)程控制 創(chuàng)建、撤消以及完成進(jìn)程各狀態(tài)之間的轉(zhuǎn)換。創(chuàng)建、撤消以及完成進(jìn)程各狀態(tài)之間的轉(zhuǎn)換。 由具有特定功能的原語(yǔ)完成。由具有特定功能的原語(yǔ)完成。 進(jìn)程創(chuàng)建原語(yǔ):進(jìn)程創(chuàng)建原語(yǔ):createcreate 進(jìn)程撤消原語(yǔ)進(jìn)程撤消

17、原語(yǔ):exit/terminate:exit/terminate 阻塞原語(yǔ)阻塞原語(yǔ):block:block 喚醒原語(yǔ)喚醒原語(yǔ):wakeup:wakeup 掛起原語(yǔ)掛起原語(yǔ):suspend:suspend 激活原語(yǔ)激活原語(yǔ):active:active 2.3.2進(jìn)程的創(chuàng)建 1 1、進(jìn)程的層次結(jié)構(gòu)、進(jìn)程的層次結(jié)構(gòu) 在在OSOS中,允許一個(gè)進(jìn)程創(chuàng)建另一個(gè)進(jìn)程,通中,允許一個(gè)進(jìn)程創(chuàng)建另一個(gè)進(jìn)程,通 常把創(chuàng)建進(jìn)程的進(jìn)程稱為常把創(chuàng)建進(jìn)程的進(jìn)程稱為父進(jìn)程父進(jìn)程,而把被創(chuàng)建,而把被創(chuàng)建 的進(jìn)程稱為的進(jìn)程稱為子進(jìn)程子進(jìn)程。 2 2、進(jìn)程圖、進(jìn)程圖 進(jìn)程圖是一棵有向樹(shù)進(jìn)程圖是一棵有向樹(shù)( (如下圖如下圖) ),用

18、于描述進(jìn),用于描述進(jìn) 程間的關(guān)系,結(jié)點(diǎn)代表程間的關(guān)系,結(jié)點(diǎn)代表進(jìn)程進(jìn)程。一棵樹(shù)表示一個(gè)。一棵樹(shù)表示一個(gè) 家族,根結(jié)點(diǎn)為該家族的家族,根結(jié)點(diǎn)為該家族的祖先祖先(Ancestor)(Ancestor)。 進(jìn)程圖 3、引起創(chuàng)建進(jìn)程的事件、引起創(chuàng)建進(jìn)程的事件 1用戶登錄用戶登錄 2作業(yè)調(diào)度作業(yè)調(diào)度 3請(qǐng)求服務(wù)請(qǐng)求服務(wù) 4應(yīng)用請(qǐng)求應(yīng)用請(qǐng)求 4、進(jìn)程創(chuàng)建 使用使用進(jìn)程創(chuàng)建原語(yǔ)進(jìn)程創(chuàng)建原語(yǔ)創(chuàng)建一個(gè)具有指定標(biāo)識(shí)符的創(chuàng)建一個(gè)具有指定標(biāo)識(shí)符的 進(jìn)程,主要是創(chuàng)建進(jìn)程,主要是創(chuàng)建進(jìn)程控制塊進(jìn)程控制塊PCBPCB。步驟如下:。步驟如下: 申請(qǐng)空白申請(qǐng)空白PCBPCB,并賦予一個(gè)統(tǒng)一進(jìn)程標(biāo)識(shí)符,并賦予一個(gè)統(tǒng)一進(jìn)程標(biāo)識(shí)符

19、分配資源分配資源:為進(jìn)程映象分配空間:為進(jìn)程映象分配空間 初始化進(jìn)程控制塊初始化進(jìn)程控制塊:初始化標(biāo)識(shí)信息、:初始化標(biāo)識(shí)信息、CPUCPU狀態(tài)信息、狀態(tài)信息、 進(jìn)程狀態(tài)信息等。進(jìn)程狀態(tài)信息等。 將進(jìn)程插入就緒隊(duì)列將進(jìn)程插入就緒隊(duì)列:設(shè)置相應(yīng)的鏈接,把新進(jìn)程:設(shè)置相應(yīng)的鏈接,把新進(jìn)程 加到就緒隊(duì)列的鏈表中。加到就緒隊(duì)列的鏈表中。 創(chuàng)建原語(yǔ)的實(shí)現(xiàn)過(guò)程 2.3.3進(jìn)程的終止 當(dāng)一個(gè)進(jìn)程需要結(jié)束時(shí),用進(jìn)程當(dāng)一個(gè)進(jìn)程需要結(jié)束時(shí),用進(jìn)程 終止原語(yǔ)撤消一個(gè)指定的進(jìn)程,收回終止原語(yǔ)撤消一個(gè)指定的進(jìn)程,收回 進(jìn)程所占有的資源,撤消該進(jìn)程的進(jìn)程所占有的資源,撤消該進(jìn)程的 PCBPCB。入口信息是被撤消的進(jìn)程名。入

20、口信息是被撤消的進(jìn)程名。 1、引起進(jìn)程終止的事件(原因) 1正常結(jié)束正常結(jié)束 2異常結(jié)束異常結(jié)束(越界錯(cuò)、保護(hù)錯(cuò)、非法指(越界錯(cuò)、保護(hù)錯(cuò)、非法指 令、特權(quán)指令錯(cuò)、運(yùn)行超時(shí)、等待超時(shí)、令、特權(quán)指令錯(cuò)、運(yùn)行超時(shí)、等待超時(shí)、 算術(shù)錯(cuò)、算術(shù)錯(cuò)、I/OI/O故障等)故障等) 33外界干預(yù)外界干預(yù)(操作員或操作系統(tǒng)干預(yù)、(操作員或操作系統(tǒng)干預(yù)、 父進(jìn)程請(qǐng)求、父進(jìn)程終止)父進(jìn)程請(qǐng)求、父進(jìn)程終止) 2、進(jìn)程的終止過(guò)程、進(jìn)程的終止過(guò)程 1找到要終止進(jìn)程的找到要終止進(jìn)程的PCB,讀取進(jìn)程的狀態(tài),讀取進(jìn)程的狀態(tài) 2立即終止立即終止 3終止其所有子進(jìn)程終止其所有子進(jìn)程 4釋放資源釋放資源 5將將PCB移出隊(duì)列、等待其

21、他進(jìn)程來(lái)搜集信移出隊(duì)列、等待其他進(jìn)程來(lái)搜集信 息。息。 2.3.4 進(jìn)程阻塞與喚醒 處于運(yùn)行狀態(tài)的進(jìn)程,在其處于運(yùn)行狀態(tài)的進(jìn)程,在其運(yùn)行過(guò)運(yùn)行過(guò) 程中期待某一事件發(fā)生程中期待某一事件發(fā)生,如等待鍵盤輸,如等待鍵盤輸 入、等待磁盤數(shù)據(jù)傳輸完成、等待其它入、等待磁盤數(shù)據(jù)傳輸完成、等待其它 進(jìn)程發(fā)送消息,當(dāng)被等待的事件未發(fā)生進(jìn)程發(fā)送消息,當(dāng)被等待的事件未發(fā)生 時(shí),由時(shí),由進(jìn)程自己執(zhí)行阻塞原語(yǔ)進(jìn)程自己執(zhí)行阻塞原語(yǔ),使自己,使自己 由運(yùn)行態(tài)變?yōu)樽枞麘B(tài)。由運(yùn)行態(tài)變?yōu)樽枞麘B(tài)。 1 1、引起進(jìn)程阻塞和喚醒的事件、引起進(jìn)程阻塞和喚醒的事件 (1)向系統(tǒng)請(qǐng)求共享資源失敗。向系統(tǒng)請(qǐng)求共享資源失敗。 (2)等待某種操

22、作的完成。等待某種操作的完成。 (3)新數(shù)據(jù)尚未到達(dá)。新數(shù)據(jù)尚未到達(dá)。 (4)等待新任務(wù)的到達(dá)。等待新任務(wù)的到達(dá)。 2、進(jìn)程阻塞過(guò)程、進(jìn)程阻塞過(guò)程 1進(jìn)程停止執(zhí)行、保存進(jìn)程停止執(zhí)行、保存CPU現(xiàn)場(chǎng)現(xiàn)場(chǎng) 2改變狀態(tài)改變狀態(tài) 3插入相應(yīng)阻塞隊(duì)列插入相應(yīng)阻塞隊(duì)列 4調(diào)度進(jìn)程重新調(diào)度調(diào)度進(jìn)程重新調(diào)度 進(jìn)程的阻塞原語(yǔ) 阻塞原語(yǔ)的實(shí)現(xiàn)過(guò)程阻塞原語(yǔ)的實(shí)現(xiàn)過(guò)程 3、進(jìn)程喚醒過(guò)程、進(jìn)程喚醒過(guò)程 1從阻塞隊(duì)列中移出該進(jìn)程從阻塞隊(duì)列中移出該進(jìn)程 2改變狀態(tài)改變狀態(tài) 3插入到就緒隊(duì)列插入到就緒隊(duì)列 2.3.5 進(jìn)程的掛起與激活 1 1、進(jìn)程的掛起、進(jìn)程的掛起 掛起原語(yǔ)的功能掛起原語(yǔ)的功能 可將自身掛起、或掛起具有指定

23、標(biāo)識(shí)符的進(jìn)程、可將自身掛起、或掛起具有指定標(biāo)識(shí)符的進(jìn)程、 或?qū)⑵淙炕虿糠只驅(qū)⑵淙炕虿糠帧白訉O子孫”掛起。掛起。 進(jìn)程掛起的過(guò)程進(jìn)程掛起的過(guò)程 11查進(jìn)程當(dāng)前狀態(tài)查進(jìn)程當(dāng)前狀態(tài) 22修改狀態(tài)修改狀態(tài) 33對(duì)換進(jìn)程映像的非常駐部分到外存,將其對(duì)換進(jìn)程映像的非常駐部分到外存,將其 PCBPCB復(fù)制到指定內(nèi)存區(qū)域。復(fù)制到指定內(nèi)存區(qū)域。 44若被掛起的進(jìn)程正在執(zhí)行,則調(diào)度程序重新調(diào)度若被掛起的進(jìn)程正在執(zhí)行,則調(diào)度程序重新調(diào)度 2 2、進(jìn)程的激活、進(jìn)程的激活 激活原語(yǔ)功能激活原語(yǔ)功能 激活指定進(jìn)程或子進(jìn)程,使處于靜止?fàn)顟B(tài)激活指定進(jìn)程或子進(jìn)程,使處于靜止?fàn)顟B(tài) 的進(jìn)程變?yōu)榛顒?dòng)。的進(jìn)程變?yōu)榛顒?dòng)。 進(jìn)程激活的

24、過(guò)程進(jìn)程激活的過(guò)程 1 1 將進(jìn)程映像非常駐部分調(diào)入內(nèi)存,并檢查進(jìn)程當(dāng)前將進(jìn)程映像非常駐部分調(diào)入內(nèi)存,并檢查進(jìn)程當(dāng)前 狀態(tài)狀態(tài) 22修改狀態(tài)修改狀態(tài) 33插入相應(yīng)的隊(duì)列插入相應(yīng)的隊(duì)列 44若采用搶占調(diào)度策略,要檢查是否需要重新調(diào)度。若采用搶占調(diào)度策略,要檢查是否需要重新調(diào)度。 2.4 進(jìn)程的同步 問(wèn)題的引入問(wèn)題的引入 在多道程序系統(tǒng)中,由于資源共享或進(jìn)程合作,使進(jìn)在多道程序系統(tǒng)中,由于資源共享或進(jìn)程合作,使進(jìn) 程間形成間接相互制約和直接相互制約關(guān)系,這需要用進(jìn)程間形成間接相互制約和直接相互制約關(guān)系,這需要用進(jìn) 程互斥與同步機(jī)制來(lái)協(xié)調(diào)兩種制約關(guān)系。程互斥與同步機(jī)制來(lái)協(xié)調(diào)兩種制約關(guān)系。 進(jìn)程同步的

25、主要任務(wù)進(jìn)程同步的主要任務(wù) 是使并發(fā)執(zhí)行的進(jìn)程間有效的共享資源和相互合作。是使并發(fā)執(zhí)行的進(jìn)程間有效的共享資源和相互合作。 程 序 段1程 序 段2程 序 段n 共 享 變 量 售票系統(tǒng)(數(shù)據(jù)庫(kù)中的票數(shù)售票系統(tǒng)(數(shù)據(jù)庫(kù)中的票數(shù)x,x,另另x=5x=5) r=xr=x r=r-1r=r-1 x=rx=r 如果不加以控制,會(huì)導(dǎo)致錯(cuò)誤。如果不加以控制,會(huì)導(dǎo)致錯(cuò)誤。 對(duì)臨界資源的訪問(wèn)要對(duì)臨界資源的訪問(wèn)要互斥互斥 各進(jìn)程各進(jìn)程互斥互斥進(jìn)入臨界區(qū)進(jìn)入臨界區(qū)訪問(wèn)訪問(wèn)臨界資源臨界資源 4.4.同步機(jī)制應(yīng)遵循的規(guī)則(使用臨界區(qū)的原則)同步機(jī)制應(yīng)遵循的規(guī)則(使用臨界區(qū)的原則) 1)1)空閑讓進(jìn)空閑讓進(jìn) 2)2)忙則

26、等待忙則等待 3)3)有限等待有限等待 4)4)讓權(quán)等待讓權(quán)等待 2.4.52.4.5管程機(jī)制管程機(jī)制 1 1管程的定義管程的定義 系統(tǒng)中的各種硬件資源和軟件資源均可用數(shù)據(jù)結(jié)構(gòu)抽象系統(tǒng)中的各種硬件資源和軟件資源均可用數(shù)據(jù)結(jié)構(gòu)抽象 地描述其資源特性。地描述其資源特性。 代表共享資源的數(shù)據(jù)結(jié)構(gòu)以及由對(duì)該共享數(shù)據(jù)結(jié)構(gòu)實(shí)施代表共享資源的數(shù)據(jù)結(jié)構(gòu)以及由對(duì)該共享數(shù)據(jù)結(jié)構(gòu)實(shí)施 操作的一組過(guò)程所組成的管理程序共同構(gòu)成一個(gè)操作系統(tǒng)的操作的一組過(guò)程所組成的管理程序共同構(gòu)成一個(gè)操作系統(tǒng)的 資源管理模塊,稱之為管程。資源管理模塊,稱之為管程。 管程由四部分組成:管程由四部分組成:管程的名稱;管程的名稱;局部于管程的共

27、局部于管程的共 享數(shù)據(jù)結(jié)構(gòu)說(shuō)明;享數(shù)據(jù)結(jié)構(gòu)說(shuō)明;對(duì)該數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作的一組過(guò)程;對(duì)該數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作的一組過(guò)程; 對(duì)局部于管程的共享數(shù)據(jù)設(shè)置初始值的語(yǔ)句。對(duì)局部于管程的共享數(shù)據(jù)設(shè)置初始值的語(yǔ)句。 生產(chǎn)者生產(chǎn)者- -消費(fèi)者問(wèn)題消費(fèi)者問(wèn)題 條件:條件: 1 1)多個(gè)讀者可以同時(shí)進(jìn)行讀)多個(gè)讀者可以同時(shí)進(jìn)行讀 2 2)寫者必須互斥(只允許一個(gè)寫者寫,也不能讓讀者)寫者必須互斥(只允許一個(gè)寫者寫,也不能讓讀者 與寫者同時(shí)進(jìn)行,任一寫者執(zhí)行寫操作前應(yīng)讓已有的與寫者同時(shí)進(jìn)行,任一寫者執(zhí)行寫操作前應(yīng)讓已有的 寫者或讀者全部退出。)寫者或讀者全部退出。) 3 3)讀者優(yōu)先于寫者(一旦有讀者,則后續(xù)讀者都將被)

28、讀者優(yōu)先于寫者(一旦有讀者,則后續(xù)讀者都將被 允許訪問(wèn)文件。)允許訪問(wèn)文件。) 讀者讀者- -寫者問(wèn)題:寫者優(yōu)先寫者問(wèn)題:寫者優(yōu)先 條件:條件: 1 1)多個(gè)讀者可以同時(shí)進(jìn)行讀。)多個(gè)讀者可以同時(shí)進(jìn)行讀。 2 2)寫者必須互斥(只允許一個(gè)寫者寫,也不能)寫者必須互斥(只允許一個(gè)寫者寫,也不能 讀者寫者同時(shí)進(jìn)行)。讀者寫者同時(shí)進(jìn)行)。 3 3)寫者優(yōu)先于讀者(一旦有寫者,則后續(xù)讀者)寫者優(yōu)先于讀者(一旦有寫者,則后續(xù)讀者 必須等待,喚醒時(shí)優(yōu)先考慮寫者)。必須等待,喚醒時(shí)優(yōu)先考慮寫者)。 寫者優(yōu)先 main() Semaphores=1,sn=n; Cobegin readeri()(i=1,2,

29、.,n) while(1) wait(s); wait(sn); signal(s); . 讀文件; signal(sn) 同步問(wèn)題示例一 有4個(gè)進(jìn)程A,B,C,D共享一個(gè)緩沖區(qū),進(jìn)程A負(fù)責(zé) 循環(huán)地從文件讀一個(gè)整數(shù)放入緩沖區(qū),進(jìn)程B從 緩沖區(qū)取出MOD3為0的整數(shù)并累計(jì)求和;進(jìn)程C 從緩沖區(qū)取出MOD3為1的整數(shù)并累計(jì)求和;進(jìn) 程D從緩沖區(qū)取出MOD3為2的整數(shù)并累計(jì)求和. 請(qǐng)用PV操作寫出能夠正確執(zhí)行的程序。 同步問(wèn)題示例二 桌子上有一個(gè)空盤子,允許存放一只水果, 爸爸可以向盤中放蘋果,媽媽向盤子中放橘 子,女兒專門吃盤子中的蘋果,兒子專門吃 盤子中的橘子。規(guī)定當(dāng)盤子空的時(shí)候一次只 能放一只

30、水果,請(qǐng)用信號(hào)量實(shí)現(xiàn)他們之間的 同步與互斥。 練習(xí)練習(xí) 1 1、司機(jī)進(jìn)程正常行車,到站時(shí)停車,停車后司機(jī)通知售、司機(jī)進(jìn)程正常行車,到站時(shí)停車,停車后司機(jī)通知售 票員,然后售票員打開(kāi)車門,讓乘客下車票員,然后售票員打開(kāi)車門,讓乘客下車/ /上車,完后上車,完后 售票員關(guān)車門并通知司機(jī),然后司機(jī)正常行車同時(shí)售售票員關(guān)車門并通知司機(jī),然后司機(jī)正常行車同時(shí)售 票員售票。票員售票。 2 2、桌上有一只盤子,最多可容納兩個(gè)水果,每次僅能放、桌上有一只盤子,最多可容納兩個(gè)水果,每次僅能放 入或取出一個(gè)水果。爸爸向盤子中放蘋果,媽媽向盤入或取出一個(gè)水果。爸爸向盤子中放蘋果,媽媽向盤 子中放桔子。兩個(gè)兒子專等吃盤子中的桔子,兩個(gè)女子中放桔子。兩個(gè)兒子專等吃盤子中的桔子,兩個(gè)女 兒專等吃盤子中的蘋果。試用信號(hào)量和兒專等吃盤子中的蘋果。試用信號(hào)量和P P、V V操作來(lái)實(shí)操作來(lái)實(shí) 現(xiàn)爸爸、媽媽、兒子和女兒間的同步與互斥關(guān)系?,F(xiàn)爸爸、媽媽、兒子

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論