第三章進(jìn)程管理(1)_第1頁(yè)
第三章進(jìn)程管理(1)_第2頁(yè)
第三章進(jìn)程管理(1)_第3頁(yè)
第三章進(jìn)程管理(1)_第4頁(yè)
第三章進(jìn)程管理(1)_第5頁(yè)
已閱讀5頁(yè),還剩58頁(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、1操作系統(tǒng)原理操作系統(tǒng)原理Principles of Operating System第三章第三章進(jìn)進(jìn) 程程 管管 理理2第三章第三章 進(jìn)程管理進(jìn)程管理n3.1 進(jìn)程的概念進(jìn)程的概念n3.2 進(jìn)程的描述進(jìn)程的描述n3.3 進(jìn)程狀態(tài)及其轉(zhuǎn)換進(jìn)程狀態(tài)及其轉(zhuǎn)換n3.4 進(jìn)程控制進(jìn)程控制n3.5 進(jìn)程互斥進(jìn)程互斥n3.6 進(jìn)程同步進(jìn)程同步n3.7 進(jìn)程通信進(jìn)程通信n3.8 死鎖問(wèn)題死鎖問(wèn)題n3.9 線程的概念線程的概念n3.10 線程分類(lèi)與執(zhí)行線程分類(lèi)與執(zhí)行 進(jìn)程是進(jìn)程是OS最基本最重要的概念,進(jìn)最基本最重要的概念,進(jìn)程管理是程管理是OS的重點(diǎn)和難點(diǎn)。的重點(diǎn)和難點(diǎn)。33.1 進(jìn)程的概念進(jìn)程的概念3.1

2、.1 程序的并發(fā)執(zhí)行程序的并發(fā)執(zhí)行3.1.2 進(jìn)程的定義進(jìn)程的定義43.1.1 程序的并發(fā)執(zhí)行程序的并發(fā)執(zhí)行n1. 程序程序(program)n2. 程序的順序執(zhí)行程序的順序執(zhí)行n3. 多道程序系統(tǒng)中程序執(zhí)行環(huán)境的變化多道程序系統(tǒng)中程序執(zhí)行環(huán)境的變化n4. 程序的并發(fā)程序的并發(fā)(concurrent)執(zhí)行執(zhí)行51. 程序程序(program)程序完成獨(dú)立的功能,是在時(shí)間上按嚴(yán)格次程序完成獨(dú)立的功能,是在時(shí)間上按嚴(yán)格次序前后相繼的操作序列的集合,是一個(gè)靜序前后相繼的操作序列的集合,是一個(gè)靜態(tài)的概念。態(tài)的概念。n程序的執(zhí)行分程序的執(zhí)行分:n順序執(zhí)行順序執(zhí)行n并發(fā)執(zhí)行并發(fā)執(zhí)行62. 程序的順序執(zhí)行程

3、序的順序執(zhí)行n程序的順序執(zhí)行:程序的順序執(zhí)行:一個(gè)具有獨(dú)立功能的程一個(gè)具有獨(dú)立功能的程序獨(dú)占處理機(jī)直至最終結(jié)束的過(guò)程稱為序獨(dú)占處理機(jī)直至最終結(jié)束的過(guò)程稱為程程序的順序執(zhí)行序的順序執(zhí)行。n順序執(zhí)行是順序執(zhí)行是單道批處理系統(tǒng)單道批處理系統(tǒng)的執(zhí)行方式,的執(zhí)行方式,也用于也用于簡(jiǎn)單的單片機(jī)簡(jiǎn)單的單片機(jī)系統(tǒng)。系統(tǒng)。72. 程序的順序執(zhí)行程序的順序執(zhí)行程序的順序執(zhí)行程序的順序執(zhí)行C1P1I1I2C2P2I為輸入操作;為輸入操作;C為計(jì)算操作;為計(jì)算操作;P為打印操作。為打印操作。 程序程序1 程序程序2 一個(gè)程序由若干程序段組成,這些程序段的執(zhí)行必一個(gè)程序由若干程序段組成,這些程序段的執(zhí)行必須是順序的;同

4、時(shí)程序與程序之間也必須順序執(zhí)行。須是順序的;同時(shí)程序與程序之間也必須順序執(zhí)行。82. 程序的順序執(zhí)行程序的順序執(zhí)行n計(jì)算機(jī)計(jì)算機(jī) CPU是通過(guò)時(shí)序脈沖來(lái)控制順序執(zhí)是通過(guò)時(shí)序脈沖來(lái)控制順序執(zhí)行指令的。其執(zhí)行過(guò)程可以描述為:行指令的。其執(zhí)行過(guò)程可以描述為: Repeat IR M pc pc pc+1 Execute (instruction in IR) Until CPU haltn程序的順序性和計(jì)算機(jī)硬件的順序性一程序的順序性和計(jì)算機(jī)硬件的順序性一致致92. 程序的順序執(zhí)行程序的順序執(zhí)行n程序程序順序執(zhí)行順序執(zhí)行的的特點(diǎn)特點(diǎn): n(1) 順序性順序性 :處理機(jī)的操作嚴(yán)格按照程序規(guī)定:處理機(jī)的

5、操作嚴(yán)格按照程序規(guī)定的順序(可能有分支或循環(huán))執(zhí)行,即只有前的順序(可能有分支或循環(huán))執(zhí)行,即只有前一操作結(jié)束后,才能啟動(dòng)后一操作的執(zhí)行;程一操作結(jié)束后,才能啟動(dòng)后一操作的執(zhí)行;程序和機(jī)器執(zhí)行程序的活動(dòng)嚴(yán)格一一對(duì)應(yīng),即序和機(jī)器執(zhí)行程序的活動(dòng)嚴(yán)格一一對(duì)應(yīng),即程程序的順序性和計(jì)算機(jī)硬件的順序性一致序的順序性和計(jì)算機(jī)硬件的順序性一致。 n(2) 封閉性封閉性:執(zhí)行的最終結(jié)果不受外界因素的:執(zhí)行的最終結(jié)果不受外界因素的影響。一個(gè)程序在機(jī)器中執(zhí)行時(shí),它獨(dú)占全機(jī)影響。一個(gè)程序在機(jī)器中執(zhí)行時(shí),它獨(dú)占全機(jī)資源,除了初始狀態(tài)外,只有程序本身規(guī)定的資源,除了初始狀態(tài)外,只有程序本身規(guī)定的動(dòng)作才能改變這些資源的狀態(tài)

6、。動(dòng)作才能改變這些資源的狀態(tài)。 n(3) 可再現(xiàn)性可再現(xiàn)性:初始條件相同則結(jié)果相同,結(jié):初始條件相同則結(jié)果相同,結(jié)果不受執(zhí)行速度的影響。果不受執(zhí)行速度的影響。103. 多道程序系統(tǒng)中多道程序系統(tǒng)中 程序執(zhí)行環(huán)境的變化程序執(zhí)行環(huán)境的變化n多道程序系統(tǒng)中,計(jì)算機(jī)能夠同時(shí)處理多個(gè)具有獨(dú)多道程序系統(tǒng)中,計(jì)算機(jī)能夠同時(shí)處理多個(gè)具有獨(dú)立功能的程序。立功能的程序。n多道程序系統(tǒng)的執(zhí)行環(huán)境的特點(diǎn):多道程序系統(tǒng)的執(zhí)行環(huán)境的特點(diǎn): n(1) 獨(dú)立性:獨(dú)立性:每道程序都是邏輯上獨(dú)立的,它們之間不每道程序都是邏輯上獨(dú)立的,它們之間不存在邏輯上的制約關(guān)系。存在邏輯上的制約關(guān)系。 n(2) 隨機(jī)性:隨機(jī)性:多用戶隨機(jī)使用

7、系統(tǒng),程序、數(shù)據(jù)的輸入多用戶隨機(jī)使用系統(tǒng),程序、數(shù)據(jù)的輸入隨機(jī),執(zhí)行開(kāi)始時(shí)間隨機(jī),客觀上要求操作系統(tǒng)能同時(shí)隨機(jī),執(zhí)行開(kāi)始時(shí)間隨機(jī),客觀上要求操作系統(tǒng)能同時(shí)處理多道程序。處理多道程序。 n(3) 資源共享:資源共享:系統(tǒng)中的軟硬件資源不再為單個(gè)用戶程系統(tǒng)中的軟硬件資源不再為單個(gè)用戶程序所獨(dú)占,序所獨(dú)占, 而由幾道用戶程序共同使用。于是,這些資而由幾道用戶程序共同使用。于是,這些資源的狀態(tài)不再取決于一道程序,而是由多道程序的活動(dòng)源的狀態(tài)不再取決于一道程序,而是由多道程序的活動(dòng)所決定。從根本上打破了一道程序封閉于一個(gè)系統(tǒng)中執(zhí)所決定。從根本上打破了一道程序封閉于一個(gè)系統(tǒng)中執(zhí)行的局面。行的局面。114.

8、 程序的并發(fā)執(zhí)行程序的并發(fā)執(zhí)行 n(1) 程序的并發(fā)執(zhí)行程序的并發(fā)執(zhí)行 并發(fā)執(zhí)行的目的并發(fā)執(zhí)行的目的:為了:為了增強(qiáng)計(jì)算機(jī)系統(tǒng)的增強(qiáng)計(jì)算機(jī)系統(tǒng)的處理能力處理能力和和提高資源利用率提高資源利用率。 124. 程序的并發(fā)執(zhí)行程序的并發(fā)執(zhí)行n程序的并發(fā)執(zhí)行分為兩種:程序的并發(fā)執(zhí)行分為兩種: na)多道程序系統(tǒng)的程序執(zhí)行環(huán)境變化所引起的多道程序系統(tǒng)的程序執(zhí)行環(huán)境變化所引起的多道程序的并發(fā)執(zhí)行;多道程序的并發(fā)執(zhí)行;nb)在某道程序的幾個(gè)程序段中,包含著一部分在某道程序的幾個(gè)程序段中,包含著一部分可以同時(shí)執(zhí)行或順序顛倒執(zhí)行的代碼??梢酝瑫r(shí)執(zhí)行或順序顛倒執(zhí)行的代碼。例:例: read (a) ; read

9、(b) ; 既可以同時(shí)執(zhí)行,也可顛倒次序執(zhí)行。既可以同時(shí)執(zhí)行,也可顛倒次序執(zhí)行。134. 程序的并發(fā)執(zhí)行程序的并發(fā)執(zhí)行n程序的并發(fā)執(zhí)行可總結(jié)為:程序的并發(fā)執(zhí)行可總結(jié)為: 一組在一組在邏輯上互相獨(dú)立的邏輯上互相獨(dú)立的程序段程序段在執(zhí)行過(guò)程中,在執(zhí)行過(guò)程中,其其執(zhí)行時(shí)間在客觀上互相重疊執(zhí)行時(shí)間在客觀上互相重疊,即一個(gè)程序段的,即一個(gè)程序段的執(zhí)行尚未結(jié)束,另一個(gè)程序段的執(zhí)行已經(jīng)開(kāi)始的執(zhí)行尚未結(jié)束,另一個(gè)程序段的執(zhí)行已經(jīng)開(kāi)始的這種執(zhí)行方式。這種執(zhí)行方式。 n程序的并行執(zhí)行程序的并行執(zhí)行是指是指一組程序按獨(dú)立的、異步的一組程序按獨(dú)立的、異步的速度執(zhí)行速度執(zhí)行。并行執(zhí)行不等于時(shí)間上的重疊。并行執(zhí)行不等于時(shí)

10、間上的重疊。14程序段并發(fā)執(zhí)行的有向圖程序段并發(fā)執(zhí)行的有向圖I1I2I3I4C1C2C3C4P1P2P3P4 例中:例中:I1先于先于C1和和I2; C1先于先于P1和和C2; P1先于先于P2;I2先于先于C2和和I3,說(shuō)明了某些程序段必須,說(shuō)明了某些程序段必須在其它程序段之前完成,在其它程序段之前完成, 此外從圖中可以看出:此外從圖中可以看出:I2和和C1;I3和和C2和和P1;I4和和C3和和P2是重疊的。是重疊的。154. 程序的并發(fā)執(zhí)行程序的并發(fā)執(zhí)行n程序的并發(fā)執(zhí)行過(guò)程可描述為:程序的并發(fā)執(zhí)行過(guò)程可描述為: S0 Cobegin P1;P2;. Pn Coend Sn S0,Sn分別

11、表示并發(fā)程序段分別表示并發(fā)程序段P1,P2,Pn開(kāi)始執(zhí)行開(kāi)始執(zhí)行前和并發(fā)執(zhí)行結(jié)束后的語(yǔ)句。前和并發(fā)執(zhí)行結(jié)束后的語(yǔ)句。P1,P2,Pn也可也可以由同一程序段中的不同語(yǔ)句組成。以由同一程序段中的不同語(yǔ)句組成。16相鄰語(yǔ)句可以并發(fā)執(zhí)行的條件(相鄰語(yǔ)句可以并發(fā)執(zhí)行的條件(1)nBernstein條件:條件: 將程序中任一語(yǔ)句將程序中任一語(yǔ)句Si劃分為兩個(gè)變量的集合劃分為兩個(gè)變量的集合:nR(Si) )=a1, a2, ,an,aj(j=1,m)是語(yǔ)句是語(yǔ)句Si在執(zhí)行期間必須對(duì)其進(jìn)行讀的變量;在執(zhí)行期間必須對(duì)其進(jìn)行讀的變量;nW(Si) )=b1, b2 , bn,bj(j=1,n)是語(yǔ)句是語(yǔ)句Si在執(zhí)

12、行期間必須對(duì)其進(jìn)行修改的變量。在執(zhí)行期間必須對(duì)其進(jìn)行修改的變量。17相鄰語(yǔ)句可以并發(fā)執(zhí)行的條件(相鄰語(yǔ)句可以并發(fā)執(zhí)行的條件(2)n對(duì)于語(yǔ)句對(duì)于語(yǔ)句S1和和S2,如果有,如果有n1)R(S1)W(S2)=n2) W(S1)R(S2)=n3) W(S1)W(S2)= 同時(shí)成立,則語(yǔ)句同時(shí)成立,則語(yǔ)句S1和和S2可以并發(fā)執(zhí)行可以并發(fā)執(zhí)行在兩個(gè)語(yǔ)句中不在兩個(gè)語(yǔ)句中不能對(duì)同一個(gè)變量能對(duì)同一個(gè)變量進(jìn)行讀、寫(xiě)操作進(jìn)行讀、寫(xiě)操作在兩個(gè)語(yǔ)句中不在兩個(gè)語(yǔ)句中不能對(duì)同一個(gè)變量能對(duì)同一個(gè)變量進(jìn)行寫(xiě)操作進(jìn)行寫(xiě)操作18例 子n在一個(gè)程序中語(yǔ)句在一個(gè)程序中語(yǔ)句S1要對(duì)變量要對(duì)變量m、n在執(zhí)在執(zhí)行期間進(jìn)行讀操作,對(duì)變量行期間

13、進(jìn)行讀操作,對(duì)變量a、b在執(zhí)行期在執(zhí)行期間進(jìn)行修改操作;語(yǔ)句間進(jìn)行修改操作;語(yǔ)句S2要對(duì)變量要對(duì)變量x、y在在執(zhí)行期間進(jìn)行讀操作,對(duì)變量執(zhí)行期間進(jìn)行讀操作,對(duì)變量i、j在執(zhí)行期在執(zhí)行期間進(jìn)行修改操作。判斷語(yǔ)句間進(jìn)行修改操作。判斷語(yǔ)句S1和和S2是否能是否能并發(fā)執(zhí)行?并發(fā)執(zhí)行?19例 子解:解: R(S1)=m、n W(S1)=a、b R(S2)=x、y W(S2)=i、j 利用利用Bernstein條件可得條件可得1)R(S1)W(S2)=m、n i、j=2)W(S1)R(S2)=a、b x、y = 3)W(S1)W(S2)=a、b i、j= 所以語(yǔ)句所以語(yǔ)句S1和和S2可以并發(fā)執(zhí)行??梢圆l(fā)

14、執(zhí)行。20例:S1: C=X+Y+Z S2:D=C+XR(S1)=X,Y,Z R(S2)=C,X W(S1)=C W(S2)=D S1:x=x1+x2 S2:y=x1*x2 S3:z=(x+y)/2S4:w=z+5S5:m=w+1S6:m=m+1不能并發(fā)! 214. 程序的并發(fā)執(zhí)行程序的并發(fā)執(zhí)行n(2) 程序的并發(fā)執(zhí)行所帶來(lái)的影響程序的并發(fā)執(zhí)行所帶來(lái)的影響 n程序的并發(fā)執(zhí)行充分地利用了系統(tǒng)資源,從而程序的并發(fā)執(zhí)行充分地利用了系統(tǒng)資源,從而提高了系統(tǒng)的處理能力;提高了系統(tǒng)的處理能力;n程序的并發(fā)執(zhí)行必然導(dǎo)致了資源共享和資源競(jìng)程序的并發(fā)執(zhí)行必然導(dǎo)致了資源共享和資源競(jìng)爭(zhēng),爭(zhēng), “走走停停走走停?!保?/p>

15、一個(gè)程序可能走到中途停,一個(gè)程序可能走到中途停下來(lái),失去原有的時(shí)序關(guān)系;下來(lái),失去原有的時(shí)序關(guān)系;從而改變程序的從而改變程序的執(zhí)行速度;執(zhí)行速度; 224. 程序的并發(fā)執(zhí)行程序的并發(fā)執(zhí)行n(2) 程序的并發(fā)執(zhí)行所帶來(lái)的影響程序的并發(fā)執(zhí)行所帶來(lái)的影響n如果并發(fā)執(zhí)行的各程序段中語(yǔ)句或指令滿足如果并發(fā)執(zhí)行的各程序段中語(yǔ)句或指令滿足Bernstein 的三個(gè)條件,則認(rèn)為并發(fā)執(zhí)行不會(huì)的三個(gè)條件,則認(rèn)為并發(fā)執(zhí)行不會(huì)對(duì)執(zhí)行結(jié)果的封閉性和可再現(xiàn)性產(chǎn)生影響。對(duì)執(zhí)行結(jié)果的封閉性和可再現(xiàn)性產(chǎn)生影響。n如果并發(fā)執(zhí)行的程序段不按照特定的規(guī)則和方如果并發(fā)執(zhí)行的程序段不按照特定的規(guī)則和方法進(jìn)行資源共享和競(jìng)爭(zhēng),則其執(zhí)行結(jié)果將

16、不可法進(jìn)行資源共享和競(jìng)爭(zhēng),則其執(zhí)行結(jié)果將不可避免地失去封閉性和可再現(xiàn)性。避免地失去封閉性和可再現(xiàn)性。23例例 子子n設(shè)有堆棧設(shè)有堆棧S,棧指針,棧指針top,棧中存放內(nèi)存中,棧中存放內(nèi)存中相應(yīng)數(shù)據(jù)塊地址,設(shè)有兩個(gè)程序段相應(yīng)數(shù)據(jù)塊地址,設(shè)有兩個(gè)程序段getaddr(top)和和reladdr(blk),其中,其中g(shù)etaddr(top)從給定的從給定的top所指棧中取出所指棧中取出相應(yīng)的內(nèi)存數(shù)據(jù)塊地址,而相應(yīng)的內(nèi)存數(shù)據(jù)塊地址,而reladdr(blk)則將內(nèi)存數(shù)據(jù)塊地址則將內(nèi)存數(shù)據(jù)塊地址blk放入堆棧放入堆棧S中。中。24例例 子子出棧:出棧:procedure getaddr(top)begi

17、nlocal rr (top)top top-1return(r)endr atop top-1top top 25例例 子子進(jìn)棧:進(jìn)棧:procedure reladdr(blk) begintop top+1(top) blk endcC=blk26圖圖3.1 堆棧的取數(shù)和存數(shù)過(guò)程堆棧的取數(shù)和存數(shù)過(guò)程274. 程序的并發(fā)執(zhí)行程序的并發(fā)執(zhí)行n程序的并發(fā)執(zhí)行,程序的并發(fā)執(zhí)行,由于資源的共享和競(jìng)爭(zhēng)由于資源的共享和競(jìng)爭(zhēng)使得:使得:使得其執(zhí)行結(jié)果不再具有封閉性和使得其執(zhí)行結(jié)果不再具有封閉性和可再現(xiàn)性,且可能造成程序出現(xiàn)錯(cuò)誤??稍佻F(xiàn)性,且可能造成程序出現(xiàn)錯(cuò)誤。n為了控制和協(xié)調(diào)各程序段執(zhí)行過(guò)程中的軟、為

18、了控制和協(xié)調(diào)各程序段執(zhí)行過(guò)程中的軟、硬件資源的共享和競(jìng)爭(zhēng),必須有一個(gè)描述硬件資源的共享和競(jìng)爭(zhēng),必須有一個(gè)描述各程序段執(zhí)行過(guò)程和共享資源的基本單位,各程序段執(zhí)行過(guò)程和共享資源的基本單位,這個(gè)基本單位被稱為進(jìn)程(或任務(wù))。這個(gè)基本單位被稱為進(jìn)程(或任務(wù))。283.1.2 進(jìn)程的定義n進(jìn)程的概念是進(jìn)程的概念是60年代初期,首先在年代初期,首先在MIT 的的 Multics系統(tǒng)和系統(tǒng)和IBM 的的 TSS/360系統(tǒng)中引用的。系統(tǒng)中引用的。 (1) 進(jìn)程是可以并行執(zhí)行的計(jì)算部分進(jìn)程是可以并行執(zhí)行的計(jì)算部分(S.E.Madnick,J.T.Donovan);); (2) 進(jìn)程是一個(gè)獨(dú)立的可以調(diào)度的活動(dòng)進(jìn)

19、程是一個(gè)獨(dú)立的可以調(diào)度的活動(dòng)(E.Cohen,D.Jofferson);); (3) 進(jìn)程是一抽象實(shí)體,當(dāng)它執(zhí)行某個(gè)任務(wù)時(shí),將進(jìn)程是一抽象實(shí)體,當(dāng)它執(zhí)行某個(gè)任務(wù)時(shí),將要分配和釋放各種資源(要分配和釋放各種資源(P.Denning););293.1.2 進(jìn)程的定義(4) 行為的規(guī)則叫程序,程序在處理機(jī)上執(zhí)行為的規(guī)則叫程序,程序在處理機(jī)上執(zhí)行時(shí)的活動(dòng)稱為進(jìn)程(行時(shí)的活動(dòng)稱為進(jìn)程(E.W.Dijkstra);); (5) 一個(gè)進(jìn)程是一系列逐一執(zhí)行的操作。一個(gè)進(jìn)程是一系列逐一執(zhí)行的操作。 進(jìn)程是一個(gè)動(dòng)態(tài)的執(zhí)行過(guò)程進(jìn)程是一個(gè)動(dòng)態(tài)的執(zhí)行過(guò)程 n進(jìn)程的定義:進(jìn)程的定義:并發(fā)執(zhí)行的程序在執(zhí)行過(guò)程并發(fā)執(zhí)行的程序

20、在執(zhí)行過(guò)程中分配和管理資源的基本單位。中分配和管理資源的基本單位。30進(jìn)程和程序的區(qū)別和關(guān)系 程序是構(gòu)成進(jìn)程的組成部分之一,一個(gè)進(jìn)程程序是構(gòu)成進(jìn)程的組成部分之一,一個(gè)進(jìn)程的運(yùn)行目標(biāo)是執(zhí)行它所對(duì)應(yīng)的程序,如果沒(méi)有的運(yùn)行目標(biāo)是執(zhí)行它所對(duì)應(yīng)的程序,如果沒(méi)有程序,進(jìn)程就失去了其實(shí)際存在的意義。從靜程序,進(jìn)程就失去了其實(shí)際存在的意義。從靜態(tài)的角度看,進(jìn)程是由程序、數(shù)據(jù)結(jié)構(gòu)集和進(jìn)態(tài)的角度看,進(jìn)程是由程序、數(shù)據(jù)結(jié)構(gòu)集和進(jìn)程控制塊三部分組成的。程控制塊三部分組成的。 31進(jìn)程和程序的區(qū)別和關(guān)系n(1) 進(jìn)程是一個(gè)動(dòng)態(tài)概念,而程序則是一個(gè)靜態(tài)概進(jìn)程是一個(gè)動(dòng)態(tài)概念,而程序則是一個(gè)靜態(tài)概念。程序是指令的有序集合,沒(méi)

21、有任何執(zhí)行的含義。念。程序是指令的有序集合,沒(méi)有任何執(zhí)行的含義。而進(jìn)程則強(qiáng)調(diào)執(zhí)行過(guò)程。而進(jìn)程則強(qiáng)調(diào)執(zhí)行過(guò)程。n(2) 進(jìn)程具有并發(fā)特征,而程序沒(méi)有。進(jìn)程具有并發(fā)特征,而程序沒(méi)有。獨(dú)立性:指獨(dú)立性:指進(jìn)程是一個(gè)能獨(dú)立運(yùn)行、獨(dú)立分配資源和獨(dú)立調(diào)度進(jìn)程是一個(gè)能獨(dú)立運(yùn)行、獨(dú)立分配資源和獨(dú)立調(diào)度的基本單位。只有進(jìn)程有資格向系統(tǒng)提出申請(qǐng)資源的基本單位。只有進(jìn)程有資格向系統(tǒng)提出申請(qǐng)資源并獲得系統(tǒng)提供的服務(wù)。異步性:進(jìn)程按各自獨(dú)立并獲得系統(tǒng)提供的服務(wù)。異步性:進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度向前推進(jìn),或說(shuō)進(jìn)程按異步方的、不可預(yù)知的速度向前推進(jìn),或說(shuō)進(jìn)程按異步方式運(yùn)行。式運(yùn)行。 32進(jìn)程和程序的區(qū)別和關(guān)系n(3

22、) 進(jìn)程是競(jìng)爭(zhēng)計(jì)算機(jī)系統(tǒng)資源的基本單進(jìn)程是競(jìng)爭(zhēng)計(jì)算機(jī)系統(tǒng)資源的基本單位,從而其并發(fā)性(獨(dú)立性、異步性)受位,從而其并發(fā)性(獨(dú)立性、異步性)受到系統(tǒng)自己的制約。到系統(tǒng)自己的制約。n(4) 不同的進(jìn)程可以包含同一程序,只要不同的進(jìn)程可以包含同一程序,只要該程序所對(duì)應(yīng)的數(shù)據(jù)集不同,即同一程序該程序所對(duì)應(yīng)的數(shù)據(jù)集不同,即同一程序在執(zhí)行中可以產(chǎn)生多個(gè)進(jìn)程。通過(guò)調(diào)用,在執(zhí)行中可以產(chǎn)生多個(gè)進(jìn)程。通過(guò)調(diào)用,同一進(jìn)程可包含多個(gè)程序。同一進(jìn)程可包含多個(gè)程序。33作業(yè)和進(jìn)程的區(qū)別n一個(gè)進(jìn)程是一個(gè)程序?qū)δ硞€(gè)數(shù)據(jù)集的執(zhí)行一個(gè)進(jìn)程是一個(gè)程序?qū)δ硞€(gè)數(shù)據(jù)集的執(zhí)行過(guò)程,是分配資源的基本單位。作業(yè)是用過(guò)程,是分配資源的基本單位。

23、作業(yè)是用戶需要計(jì)算機(jī)完成某項(xiàng)任務(wù)時(shí)要求計(jì)算機(jī)戶需要計(jì)算機(jī)完成某項(xiàng)任務(wù)時(shí)要求計(jì)算機(jī)所作工作的集合。一個(gè)作業(yè)的完成要經(jīng)過(guò)所作工作的集合。一個(gè)作業(yè)的完成要經(jīng)過(guò)作業(yè)提交、作業(yè)收容、作業(yè)執(zhí)行和作業(yè)完作業(yè)提交、作業(yè)收容、作業(yè)執(zhí)行和作業(yè)完成成4個(gè)階段。而進(jìn)程是已提交完畢的程序所個(gè)階段。而進(jìn)程是已提交完畢的程序所執(zhí)行過(guò)程的描述。其主要區(qū)別如下:執(zhí)行過(guò)程的描述。其主要區(qū)別如下:34進(jìn)程與作業(yè)的區(qū)別n作業(yè)是用戶向計(jì)算機(jī)提交任務(wù)的任務(wù)實(shí)體。在用戶作業(yè)是用戶向計(jì)算機(jī)提交任務(wù)的任務(wù)實(shí)體。在用戶向計(jì)算機(jī)提交作業(yè)之后,系統(tǒng)將它放入外存中的作向計(jì)算機(jī)提交作業(yè)之后,系統(tǒng)將它放入外存中的作業(yè)等待隊(duì)列中等待執(zhí)行。進(jìn)程則是完成用戶任

24、務(wù)的業(yè)等待隊(duì)列中等待執(zhí)行。進(jìn)程則是完成用戶任務(wù)的執(zhí)行實(shí)體,是向系統(tǒng)申請(qǐng)分配資源的基本單位。任執(zhí)行實(shí)體,是向系統(tǒng)申請(qǐng)分配資源的基本單位。任一進(jìn)程,只要它被創(chuàng)建,總有相應(yīng)的部分存在于內(nèi)一進(jìn)程,只要它被創(chuàng)建,總有相應(yīng)的部分存在于內(nèi)存中。存中。 n一個(gè)作業(yè)可由多個(gè)進(jìn)程組成。且必須至少由一個(gè)進(jìn)一個(gè)作業(yè)可由多個(gè)進(jìn)程組成。且必須至少由一個(gè)進(jìn)程組成,但反過(guò)來(lái)不成立。程組成,但反過(guò)來(lái)不成立。 n作業(yè)的概念主要用在批處理系統(tǒng)中。而進(jìn)程的概念作業(yè)的概念主要用在批處理系統(tǒng)中。而進(jìn)程的概念則用在幾乎所有的多道系統(tǒng)中。則用在幾乎所有的多道系統(tǒng)中。353.2 進(jìn)程的描述進(jìn)程的描述n系統(tǒng)中描述進(jìn)程存在和能夠反映其變化的物理實(shí)

25、體,系統(tǒng)中描述進(jìn)程存在和能夠反映其變化的物理實(shí)體,稱為稱為進(jìn)程的靜態(tài)描述進(jìn)程的靜態(tài)描述。 n進(jìn)程的靜態(tài)描述由三部分組成:進(jìn)程的靜態(tài)描述由三部分組成:n程序:程序:描述了進(jìn)程所要完成的功能,是進(jìn)程執(zhí)行時(shí)不可描述了進(jìn)程所要完成的功能,是進(jìn)程執(zhí)行時(shí)不可修改的部分。修改的部分。n數(shù)據(jù)結(jié)構(gòu)集合:數(shù)據(jù)結(jié)構(gòu)集合:程序執(zhí)行時(shí)所需要的數(shù)據(jù)和工作區(qū),為程序執(zhí)行時(shí)所需要的數(shù)據(jù)和工作區(qū),為一個(gè)進(jìn)程專用,可修改。一個(gè)進(jìn)程專用,可修改。n進(jìn)程控制塊進(jìn)程控制塊PCB(Process Control Block)PCB(Process Control Block):包含包含進(jìn)程的進(jìn)程的描述信息、控制信息、資源信息,是進(jìn)程動(dòng)態(tài)

26、特征的集描述信息、控制信息、資源信息,是進(jìn)程動(dòng)態(tài)特征的集中反映。中反映。一個(gè)進(jìn)程的一個(gè)進(jìn)程的PCB結(jié)構(gòu)都是全部或部分常駐內(nèi)存結(jié)構(gòu)都是全部或部分常駐內(nèi)存的的。363.2.1 進(jìn)程控制塊進(jìn)程控制塊n進(jìn)程控制塊進(jìn)程控制塊PCBPCB(Process Control Block)(Process Control Block): 為了對(duì)進(jìn)程進(jìn)行有效的控制和管理,系統(tǒng)為為了對(duì)進(jìn)程進(jìn)行有效的控制和管理,系統(tǒng)為每一進(jìn)程設(shè)置一個(gè)進(jìn)程控制塊,每一進(jìn)程設(shè)置一個(gè)進(jìn)程控制塊,PCBPCB其是進(jìn)程存其是進(jìn)程存在的唯一標(biāo)志,在的唯一標(biāo)志,PCBPCB紀(jì)錄了進(jìn)程的有關(guān)信息紀(jì)錄了進(jìn)程的有關(guān)信息。通通常常PCBPCB包含以下幾類(lèi)

27、信息:包含以下幾類(lèi)信息: 1.1.進(jìn)程描述信息:進(jìn)程描述信息:2.2.進(jìn)程控制信息:進(jìn)程控制信息:3.3.資源管理信息:資源管理信息:4.CPU4.CPU現(xiàn)場(chǎng)保護(hù)結(jié)構(gòu):現(xiàn)場(chǎng)保護(hù)結(jié)構(gòu):373.2.1 進(jìn)程控制塊進(jìn)程控制塊n1.1.描述信息描述信息n進(jìn)程名或進(jìn)程標(biāo)識(shí)號(hào)進(jìn)程名或進(jìn)程標(biāo)識(shí)號(hào):用來(lái)用來(lái)唯一標(biāo)識(shí)一個(gè)進(jìn)唯一標(biāo)識(shí)一個(gè)進(jìn)程程,進(jìn)程標(biāo)識(shí)號(hào)進(jìn)程標(biāo)識(shí)號(hào)通常是一個(gè)整數(shù)。通常是一個(gè)整數(shù)。n用戶名或用戶標(biāo)識(shí)號(hào)用戶名或用戶標(biāo)識(shí)號(hào):利于資源共享與保護(hù)。:利于資源共享與保護(hù)。n家族關(guān)系家族關(guān)系:383.2.1 進(jìn)程控制塊進(jìn)程控制塊n 2.控制信息控制信息n進(jìn)程當(dāng)前狀態(tài)進(jìn)程當(dāng)前狀態(tài):進(jìn)程在活動(dòng)期間可分為初始態(tài)、就緒

28、:進(jìn)程在活動(dòng)期間可分為初始態(tài)、就緒態(tài)、執(zhí)行態(tài)、等待狀態(tài)和終止?fàn)顟B(tài)。態(tài)、執(zhí)行態(tài)、等待狀態(tài)和終止?fàn)顟B(tài)。n進(jìn)程優(yōu)先級(jí):進(jìn)程優(yōu)先級(jí):進(jìn)程需要處理的緩急程度標(biāo)識(shí),是進(jìn)程需要處理的緩急程度標(biāo)識(shí),是選取選取進(jìn)程占有處理機(jī)的重要依據(jù)。進(jìn)程占有處理機(jī)的重要依據(jù)。n程序、數(shù)據(jù)開(kāi)始地址程序、數(shù)據(jù)開(kāi)始地址:程序、數(shù)據(jù)所在的內(nèi)存或外存程序、數(shù)據(jù)所在的內(nèi)存或外存地址。地址。n各種計(jì)時(shí)信息:各種計(jì)時(shí)信息:給出進(jìn)程占有和利用資源的有關(guān)情況。給出進(jìn)程占有和利用資源的有關(guān)情況。n通信信息:通信信息:用來(lái)說(shuō)明該進(jìn)程在執(zhí)行過(guò)程中與別的進(jìn)程用來(lái)說(shuō)明該進(jìn)程在執(zhí)行過(guò)程中與別的進(jìn)程所發(fā)生的信息交換情況。所發(fā)生的信息交換情況。393.2.1

29、進(jìn)程控制塊進(jìn)程控制塊n3.3.資源管理信息:資源管理信息: 包括有關(guān)存儲(chǔ)器的信息、使用輸入輸出設(shè)備的包括有關(guān)存儲(chǔ)器的信息、使用輸入輸出設(shè)備的信息、有關(guān)文件系統(tǒng)的信息等。這些信息有:信息、有關(guān)文件系統(tǒng)的信息等。這些信息有: 占用內(nèi)存大小及其管理用數(shù)據(jù)結(jié)構(gòu)指針,如內(nèi)存管理占用內(nèi)存大小及其管理用數(shù)據(jù)結(jié)構(gòu)指針,如內(nèi)存管理中所用到的進(jìn)程頁(yè)表指針等。中所用到的進(jìn)程頁(yè)表指針等。 在某些復(fù)雜系統(tǒng)中,還有對(duì)換或覆蓋用的有關(guān)信息,在某些復(fù)雜系統(tǒng)中,還有對(duì)換或覆蓋用的有關(guān)信息,如對(duì)換程序段長(zhǎng)度,對(duì)換外存地址等。在進(jìn)程申請(qǐng)、如對(duì)換程序段長(zhǎng)度,對(duì)換外存地址等。在進(jìn)程申請(qǐng)、釋放內(nèi)存中使用。釋放內(nèi)存中使用。403.2.1

30、進(jìn)程控制塊進(jìn)程控制塊n3.3.資源管理信息:資源管理信息: 共享程序段大小及起始地址。共享程序段大小及起始地址。 輸入輸出設(shè)備的設(shè)備號(hào),所要傳送的數(shù)據(jù)長(zhǎng)度、緩沖輸入輸出設(shè)備的設(shè)備號(hào),所要傳送的數(shù)據(jù)長(zhǎng)度、緩沖區(qū)地址、緩沖區(qū)長(zhǎng)度及所用設(shè)備的有關(guān)數(shù)據(jù)結(jié)構(gòu)指針區(qū)地址、緩沖區(qū)長(zhǎng)度及所用設(shè)備的有關(guān)數(shù)據(jù)結(jié)構(gòu)指針等。在進(jìn)程申請(qǐng)釋放設(shè)備進(jìn)行數(shù)據(jù)傳輸中使用。等。在進(jìn)程申請(qǐng)釋放設(shè)備進(jìn)行數(shù)據(jù)傳輸中使用。 指向文件系統(tǒng)的指針及有關(guān)標(biāo)識(shí)等。對(duì)文件系統(tǒng)進(jìn)行指向文件系統(tǒng)的指針及有關(guān)標(biāo)識(shí)等。對(duì)文件系統(tǒng)進(jìn)行操作。操作。413.2.1 進(jìn)程控制塊進(jìn)程控制塊n4.CPU4.CPU現(xiàn)場(chǎng)保護(hù)結(jié)構(gòu):現(xiàn)場(chǎng)保護(hù)結(jié)構(gòu):它由處理機(jī)各種寄存器(通用

31、寄存器、指令計(jì)數(shù)它由處理機(jī)各種寄存器(通用寄存器、指令計(jì)數(shù)器、程序狀態(tài)字器、程序狀態(tài)字PSWPSW、用戶棧指針等)的內(nèi)容、用戶棧指針等)的內(nèi)容所組成,該類(lèi)信息使進(jìn)程被中斷后重新執(zhí)行時(shí)所組成,該類(lèi)信息使進(jìn)程被中斷后重新執(zhí)行時(shí)能恢復(fù)現(xiàn)場(chǎng)從斷點(diǎn)處繼續(xù)運(yùn)行。能恢復(fù)現(xiàn)場(chǎng)從斷點(diǎn)處繼續(xù)運(yùn)行。423.2.1 進(jìn)程控制塊進(jìn)程控制塊nPCB的組織的組織 PCBPCB表:表: 系統(tǒng)把所有系統(tǒng)把所有PCBPCB組織在一起,并把它們放在內(nèi)存的固定區(qū)組織在一起,并把它們放在內(nèi)存的固定區(qū)域,就構(gòu)成了域,就構(gòu)成了PCBPCB表;表; PCBPCB表的大小決定了系統(tǒng)中最多可同時(shí)存在的進(jìn)程個(gè)數(shù),表的大小決定了系統(tǒng)中最多可同時(shí)存在

32、的進(jìn)程個(gè)數(shù),稱為稱為系統(tǒng)的并發(fā)度。系統(tǒng)的并發(fā)度。為了統(tǒng)一管理、控制和調(diào)度進(jìn)程,為了統(tǒng)一管理、控制和調(diào)度進(jìn)程,OS常將進(jìn)程控制塊集中常將進(jìn)程控制塊集中組織,組織,把所有的不同狀態(tài)的進(jìn)程的把所有的不同狀態(tài)的進(jìn)程的PCB組織在一起;組織在一起;或或把把有著相同狀態(tài)的進(jìn)程的有著相同狀態(tài)的進(jìn)程的PCB分別組織。分別組織。典型的有典型的有:n線性表線性表n鏈接表或隊(duì)列鏈接表或隊(duì)列433.2.2 進(jìn)程上下文進(jìn)程上下文n進(jìn)程上下文實(shí)際上是進(jìn)程執(zhí)行過(guò)程中順序關(guān)聯(lián)的進(jìn)程上下文實(shí)際上是進(jìn)程執(zhí)行過(guò)程中順序關(guān)聯(lián)的靜態(tài)描述(是進(jìn)程執(zhí)行活動(dòng)全過(guò)程的靜態(tài)描述)。靜態(tài)描述(是進(jìn)程執(zhí)行活動(dòng)全過(guò)程的靜態(tài)描述)。是一個(gè)與進(jìn)程切換和處

33、理機(jī)狀態(tài)發(fā)生轉(zhuǎn)換有關(guān)的是一個(gè)與進(jìn)程切換和處理機(jī)狀態(tài)發(fā)生轉(zhuǎn)換有關(guān)的概念。概念。n進(jìn)程上下文包含:進(jìn)程上下文包含:每個(gè)進(jìn)程執(zhí)行過(guò)的、執(zhí)行時(shí)的、每個(gè)進(jìn)程執(zhí)行過(guò)的、執(zhí)行時(shí)的、待執(zhí)行的指令和數(shù)據(jù)待執(zhí)行的指令和數(shù)據(jù),在指令寄存器、棧(存放在指令寄存器、棧(存放各調(diào)用子程序的返回點(diǎn)和參數(shù)等)、狀態(tài)字寄存各調(diào)用子程序的返回點(diǎn)和參數(shù)等)、狀態(tài)字寄存器等中的內(nèi)容。器等中的內(nèi)容。443.2.2 進(jìn)程上下文進(jìn)程上下文n上文:上文:已執(zhí)行過(guò)的進(jìn)程指令和數(shù)據(jù)在相關(guān)已執(zhí)行過(guò)的進(jìn)程指令和數(shù)據(jù)在相關(guān)寄存器與堆棧中的內(nèi)容;寄存器與堆棧中的內(nèi)容;n正文:正文:正在執(zhí)行的進(jìn)程指令和數(shù)據(jù)在相關(guān)正在執(zhí)行的進(jìn)程指令和數(shù)據(jù)在相關(guān)寄存器與堆棧

34、中的內(nèi)容;寄存器與堆棧中的內(nèi)容;n下文:下文:待執(zhí)行的進(jìn)程指令和數(shù)據(jù)在相關(guān)寄待執(zhí)行的進(jìn)程指令和數(shù)據(jù)在相關(guān)寄存器與堆棧中的內(nèi)容。存器與堆棧中的內(nèi)容。453.2.2 進(jìn)程上下文進(jìn)程上下文n不發(fā)生進(jìn)程調(diào)度時(shí),進(jìn)出上下文的改變都不發(fā)生進(jìn)程調(diào)度時(shí),進(jìn)出上下文的改變都是在同一進(jìn)程內(nèi)進(jìn)行的,這時(shí),每條指令是在同一進(jìn)程內(nèi)進(jìn)行的,這時(shí),每條指令的執(zhí)行對(duì)進(jìn)程上下文的改變較小,一般的執(zhí)行對(duì)進(jìn)程上下文的改變較小,一般反反映為指令寄存器映為指令寄存器IR、程序計(jì)數(shù)器、程序計(jì)數(shù)器PC、保存、保存調(diào)用子程序返回接口用的堆棧值等的變化調(diào)用子程序返回接口用的堆棧值等的變化。46進(jìn)程上下文n計(jì)算機(jī)系統(tǒng)中與執(zhí)行該進(jìn)程有關(guān)的各計(jì)算機(jī)

35、系統(tǒng)中與執(zhí)行該進(jìn)程有關(guān)的各種寄存器的值種寄存器的值n程序段在經(jīng)過(guò)編譯后形成的機(jī)器指令程序段在經(jīng)過(guò)編譯后形成的機(jī)器指令代碼集代碼集n數(shù)據(jù)集數(shù)據(jù)集n各種堆棧值各種堆棧值nPCBPCB結(jié)構(gòu)結(jié)構(gòu)47上下文的結(jié)構(gòu)上下文的結(jié)構(gòu)圖圖3.2 進(jìn)程上下文結(jié)構(gòu)進(jìn)程上下文結(jié)構(gòu)483.2.2 進(jìn)程上下文進(jìn)程上下文圖圖3.3 UNIX System 進(jìn)程上下文組成進(jìn)程上下文組成通通493.2.3 進(jìn)程上下文切換進(jìn)程上下文切換n進(jìn)程上下文的切換發(fā)生在不同的進(jìn)程之間,而進(jìn)程上下文的切換發(fā)生在不同的進(jìn)程之間,而不是同一個(gè)進(jìn)程內(nèi)。不是同一個(gè)進(jìn)程內(nèi)。n進(jìn)程上下文的切換過(guò)程進(jìn)程上下文的切換過(guò)程 :n保存被切換進(jìn)程的正文部分至有關(guān)存

36、儲(chǔ)區(qū);保存被切換進(jìn)程的正文部分至有關(guān)存儲(chǔ)區(qū);n操作系統(tǒng)進(jìn)程中有關(guān)調(diào)度、資源分配程序執(zhí)行,并操作系統(tǒng)進(jìn)程中有關(guān)調(diào)度、資源分配程序執(zhí)行,并選取新的進(jìn)程;選取新的進(jìn)程;1.將被選中的進(jìn)程的原來(lái)被保存的正文部分從有關(guān)存將被選中的進(jìn)程的原來(lái)被保存的正文部分從有關(guān)存儲(chǔ)區(qū)中取出,并送到有關(guān)寄存器、棧中,激活被選儲(chǔ)區(qū)中取出,并送到有關(guān)寄存器、棧中,激活被選中的進(jìn)程執(zhí)行。中的進(jìn)程執(zhí)行。503.2.3 進(jìn)程上下文切換進(jìn)程上下文切換圖圖3.4進(jìn)程上下文的切換過(guò)程進(jìn)程上下文的切換過(guò)程 513.2.3 進(jìn)程上下文切換進(jìn)程上下文切換n進(jìn)程上下文的切換過(guò)程涉及到進(jìn)程上下文的切換過(guò)程涉及到誰(shuí)來(lái)保護(hù)和獲取進(jìn)誰(shuí)來(lái)保護(hù)和獲取進(jìn)程正

37、文的問(wèn)題程正文的問(wèn)題,即如何使寄存器和棧等中的數(shù)據(jù),即如何使寄存器和棧等中的數(shù)據(jù)流入流出流入流出PCB的存儲(chǔ)區(qū)。的存儲(chǔ)區(qū)。n進(jìn)程上下文的切換還涉及到進(jìn)程上下文的切換還涉及到系統(tǒng)調(diào)度和分配程序系統(tǒng)調(diào)度和分配程序,比較耗費(fèi)比較耗費(fèi)CPU時(shí)間。時(shí)間。n為提高系統(tǒng)執(zhí)行效率,有的計(jì)算機(jī)采用了為提高系統(tǒng)執(zhí)行效率,有的計(jì)算機(jī)采用了多組寄多組寄存器技術(shù)存器技術(shù)來(lái)保存進(jìn)程上下文,以減少數(shù)據(jù)保存和來(lái)保存進(jìn)程上下文,以減少數(shù)據(jù)保存和獲取所消耗的時(shí)間。獲取所消耗的時(shí)間。523.2.4 進(jìn)程空間與大小進(jìn)程空間與大小n任一進(jìn)程,都有一個(gè)自己的地址空間,把該任一進(jìn)程,都有一個(gè)自己的地址空間,把該空間稱為空間稱為進(jìn)程空間進(jìn)程

38、空間或或虛空間虛空間。n進(jìn)程空間的大小只與處理機(jī)的位數(shù)有關(guān)。如,進(jìn)程空間的大小只與處理機(jī)的位數(shù)有關(guān)。如,一個(gè)一個(gè)16位長(zhǎng)處理機(jī)的進(jìn)程空間大小為位長(zhǎng)處理機(jī)的進(jìn)程空間大小為216,而而32位長(zhǎng)處理機(jī)的進(jìn)程空間大小為位長(zhǎng)處理機(jī)的進(jìn)程空間大小為232。533.2.4 進(jìn)程空間與大小進(jìn)程空間與大小n程序的執(zhí)行都在進(jìn)程空間內(nèi)進(jìn)行。用戶程程序的執(zhí)行都在進(jìn)程空間內(nèi)進(jìn)行。用戶程序、進(jìn)程的各種控制表格等都按一定的結(jié)序、進(jìn)程的各種控制表格等都按一定的結(jié)構(gòu)排列在進(jìn)程空間中。構(gòu)排列在進(jìn)程空間中。n在一些操作系統(tǒng)中進(jìn)程空間被劃分為在一些操作系統(tǒng)中進(jìn)程空間被劃分為用戶用戶空間空間和和系統(tǒng)空間系統(tǒng)空間兩個(gè)部分。用戶程序在用兩

39、個(gè)部分。用戶程序在用戶空間內(nèi)執(zhí)行;操作系統(tǒng)內(nèi)核程序在系統(tǒng)戶空間內(nèi)執(zhí)行;操作系統(tǒng)內(nèi)核程序在系統(tǒng)空間內(nèi)執(zhí)行。空間內(nèi)執(zhí)行。如,UNIX、Linux操作系統(tǒng)。操作系統(tǒng)。543.3 進(jìn)程狀態(tài)及其轉(zhuǎn)換進(jìn)程狀態(tài)及其轉(zhuǎn)換n3.3.1 進(jìn)程狀態(tài)進(jìn)程狀態(tài)n一個(gè)進(jìn)程的生命期可以劃分為一組狀態(tài),這些一個(gè)進(jìn)程的生命期可以劃分為一組狀態(tài),這些狀態(tài)刻劃了整個(gè)進(jìn)程。系統(tǒng)根據(jù)狀態(tài)刻劃了整個(gè)進(jìn)程。系統(tǒng)根據(jù)PCB 結(jié)構(gòu)中的結(jié)構(gòu)中的狀態(tài)值控制進(jìn)程。狀態(tài)值控制進(jìn)程。n在進(jìn)程的生命期內(nèi),一個(gè)進(jìn)程至少具有在進(jìn)程的生命期內(nèi),一個(gè)進(jìn)程至少具有5種基種基本狀態(tài),它們是:初始態(tài)、執(zhí)行狀態(tài)、等待狀本狀態(tài),它們是:初始態(tài)、執(zhí)行狀態(tài)、等待狀態(tài)、就緒狀態(tài)

40、和終止?fàn)顟B(tài)。態(tài)、就緒狀態(tài)和終止?fàn)顟B(tài)。553.3.1 進(jìn)程狀態(tài)進(jìn)程狀態(tài)n初始狀態(tài):初始狀態(tài):進(jìn)程剛被創(chuàng)建時(shí),因得不到處理機(jī)不能執(zhí)行,進(jìn)程剛被創(chuàng)建時(shí),因得不到處理機(jī)不能執(zhí)行,稱進(jìn)程處于初始狀態(tài)。稱進(jìn)程處于初始狀態(tài)。n執(zhí)行狀態(tài):執(zhí)行狀態(tài):當(dāng)一個(gè)進(jìn)程在處理機(jī)上運(yùn)行時(shí),則稱該進(jìn)程處當(dāng)一個(gè)進(jìn)程在處理機(jī)上運(yùn)行時(shí),則稱該進(jìn)程處于執(zhí)行狀態(tài)。于執(zhí)行狀態(tài)。n就緒狀態(tài):就緒狀態(tài):一個(gè)進(jìn)程獲得了除處理機(jī)外的一切所需資源,一個(gè)進(jìn)程獲得了除處理機(jī)外的一切所需資源,一旦得到處理機(jī)即可運(yùn)行,則稱此進(jìn)程處于就緒狀態(tài)。一旦得到處理機(jī)即可運(yùn)行,則稱此進(jìn)程處于就緒狀態(tài)。(內(nèi)存就緒狀態(tài)、外存就緒狀態(tài))(內(nèi)存就緒狀態(tài)、外存就緒狀態(tài))n等待

41、狀態(tài):等待狀態(tài):當(dāng)一個(gè)進(jìn)程正在等待某一事件發(fā)生(例如請(qǐng)求當(dāng)一個(gè)進(jìn)程正在等待某一事件發(fā)生(例如請(qǐng)求I IO O而等待而等待I IO O完成等)而暫時(shí)停止運(yùn)行,這時(shí)即使把處完成等)而暫時(shí)停止運(yùn)行,這時(shí)即使把處理機(jī)分配給進(jìn)程也無(wú)法運(yùn)行,故稱該進(jìn)程處于等待狀態(tài)。理機(jī)分配給進(jìn)程也無(wú)法運(yùn)行,故稱該進(jìn)程處于等待狀態(tài)。注意與就緒狀態(tài)的不同在于即使處理機(jī)處于空閑狀態(tài)也無(wú)注意與就緒狀態(tài)的不同在于即使處理機(jī)處于空閑狀態(tài)也無(wú)法運(yùn)行。法運(yùn)行。 n終止?fàn)顟B(tài):終止?fàn)顟B(tài):進(jìn)程在執(zhí)行結(jié)束后,將退出執(zhí)行而被終止,稱進(jìn)程在執(zhí)行結(jié)束后,將退出執(zhí)行而被終止,稱進(jìn)程處于終止?fàn)顟B(tài)。進(jìn)程處于終止?fàn)顟B(tài)。563.3.2進(jìn)程狀態(tài)轉(zhuǎn)換進(jìn)程狀態(tài)轉(zhuǎn)換圖

42、圖3.6進(jìn)程狀態(tài)轉(zhuǎn)換進(jìn)程狀態(tài)轉(zhuǎn)換57進(jìn)進(jìn) 程程 的的 類(lèi)類(lèi) 型型 n(1) 進(jìn)程的分類(lèi)進(jìn)程的分類(lèi) 系統(tǒng)中同時(shí)存在許多進(jìn)程,它們依性質(zhì)不同可系統(tǒng)中同時(shí)存在許多進(jìn)程,它們依性質(zhì)不同可分為各種不同的類(lèi)別。分為各種不同的類(lèi)別。 n系統(tǒng)進(jìn)程:系統(tǒng)進(jìn)程:用于對(duì)資源進(jìn)行管理和控制的進(jìn)程。用于對(duì)資源進(jìn)行管理和控制的進(jìn)程。 n用戶進(jìn)程:用戶進(jìn)程:對(duì)應(yīng)于用戶的應(yīng)用問(wèn)題對(duì)應(yīng)于用戶的應(yīng)用問(wèn)題(如算題任務(wù)如算題任務(wù))而建立的進(jìn)程。而建立的進(jìn)程。58進(jìn)進(jìn) 程程 的的 類(lèi)類(lèi) 型型 n(2) 兩者關(guān)系兩者關(guān)系na.系統(tǒng)進(jìn)程被分配一個(gè)初始的資源集合系統(tǒng)進(jìn)程被分配一個(gè)初始的資源集合, 這些這些資源可為它所獨(dú)占,也可以最高優(yōu)先權(quán)的資格資源可為它所獨(dú)占,也可以最高優(yōu)先權(quán)的資格優(yōu)先使用。而用戶進(jìn)程通過(guò)系統(tǒng)服務(wù)請(qǐng)求的手優(yōu)先使用。而用戶進(jìn)程通過(guò)系統(tǒng)服務(wù)請(qǐng)求的手段競(jìng)爭(zhēng)系統(tǒng)資源。段競(jìng)爭(zhēng)系統(tǒng)資源。nb.用戶進(jìn)程不能做直接用戶進(jìn)程不能做直接I/O操作操作,而系統(tǒng)進(jìn)程可而系統(tǒng)進(jìn)程可以做顯示的、直接的以做顯示的、直接的I/O 操作。操作。nc.系統(tǒng)進(jìn)程在管態(tài)(系統(tǒng)態(tài))下活動(dòng),而用戶系統(tǒng)進(jìn)程在管態(tài)(系統(tǒng)態(tài))下活動(dòng),而用戶進(jìn)程在目態(tài)(用戶態(tài))下活動(dòng)。進(jìn)程在目態(tài)(用戶態(tài))下活動(dòng)。59課堂練

溫馨提示

  • 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)論