資源描述:
《計算機操作系統(tǒng)課件第2章.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第二章進程管理2.1進程的基本概念2.2進程控制2.3進程同步2.4經(jīng)典進程的同步問題2.5管程機制2.6進程通信2.7線程2.1.2前趨圖1、前趨圖:是一個有向無循環(huán)圖,用于描述進程之間執(zhí)行的前后關(guān)系。應(yīng)當注意,前趨圖中必須不存在循環(huán)。圖中的每個結(jié)點可用于描述一個程序段或進程,乃至一條語句;結(jié)點間的有向邊則用于表示兩個結(jié)點之間存在的偏序(PartialOrder)或前趨關(guān)系(PrecedenceRelation)“→”。例如:→={(Pi,Pj)
2、PimustcompletebeforePj
3、maystart},如果(Pi,Pj)∈→,可寫成Pi→Pj,稱Pi是Pj的直接前趨,而稱Pj是Pi的直接后繼。在前趨圖中,把沒有前趨的結(jié)點稱為初始結(jié)點(InitialNode),把沒有后繼的結(jié)點稱為終止結(jié)點(FinalNode)。例如:下面兩個圖的區(qū)別圖2-2前趨圖P1P3P8P9P4P2P5P6P7S1S2S3(a)具有九個結(jié)點的前趨圖(b)具有循環(huán)的圖對于圖2-2(a)所示的前趨圖,存在下述前趨關(guān)系:P1→P2,P1→P3,P1→P4,P2→P5,P3→P5,P4→P6,P4→P7,P5→
4、P8,P6→P8,P7→P9,P8→P9或表示為: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)}應(yīng)當注意,前趨圖中必須不存在循環(huán),但在圖2-2(b)中卻有著下述的前趨關(guān)系:S2→S3,S3→S22.1進程的基本概念2.1.1程序的順序執(zhí)行及其特征1.程序的順序執(zhí)行(1)僅當前一操作(程序段)執(zhí)行
5、完后,才能執(zhí)行后繼操作。例如,在進行計算時,總須先輸入用戶的程序和數(shù)據(jù),然后進行計算,最后才能打印計算結(jié)果。S1:a∶=x+y;S2:b∶=a-5;S3:c∶=b+1;圖2-1程序的順序執(zhí)行(2)同一程序段中的多個語句,也是按先后順序執(zhí)行的2.程序順序執(zhí)行時的特征順序性:(2)封閉性:(3)可再現(xiàn)性:2.1.3程序的并發(fā)執(zhí)行及其特征1.程序的并發(fā)執(zhí)行圖2-3并發(fā)執(zhí)行時的前趨圖在該例中存在下述前趨關(guān)系:Ii→Ci,Ii→Ii+1,Ci→Pi,Ci→Ci+1,Pi→Pi+1而Ii+1和C
6、i及Pi-1是重迭的,亦即在Pi-1和Ci以及Ii+1之間,可以并發(fā)執(zhí)行。對于具有下述四條語句的程序段:S1:a∶=x+2S2:b∶=y+4S3:c∶=a+bS4:d∶=c+b圖2-4四條語句的前趨關(guān)系2.程序并發(fā)執(zhí)行時的特征間斷性2)失去封閉性3)不可再現(xiàn)性例如:有兩個循環(huán)程序A和B,它們共享一個變量N(并假設(shè)N的初始值是n)。程序A每執(zhí)行一次時,都要做N∶=N+1操作;程序B每執(zhí)行一次時,都要執(zhí)行Print(N)操作,然后再將N置成“0”。程序A和B以不同的速度運行(并發(fā)執(zhí)行)。(1
7、)N∶=N+1在Print(N)和N∶=0之前,此時得到的N值分別為n+1,n+1,0。(2)N∶=N+1在Print(N)和N∶=0之后,此時得到的N值分別為n,0,1。(3)N∶=N+1在Print(N)和N∶=0之間,此時得到的N值分別為n,n+1,0。2.1.4進程的特征與狀態(tài)一、進程的特征和定義1、進程的定義較典型的進程定義有:(1)進程是程序的一次執(zhí)行過程。(2)進程是一個程序及其數(shù)據(jù)在處理機上順序執(zhí)行時所發(fā)生的活動。(3)進程是程序在一個數(shù)據(jù)集合上運行的過程,它是系統(tǒng)進行
8、資源分配和調(diào)度的一個獨立單位。在引入了進程實體的概念后,我們可以把傳統(tǒng)OS中的進程定義為:進程是進程實體的運行過程,是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。2.進程的特征(與程序相區(qū)別)1)結(jié)構(gòu)特征:程序段、數(shù)據(jù)、PCB2)動態(tài)性:最基本的特征3)并發(fā)性:多個進程可并發(fā)執(zhí)行4)獨立性:獨立調(diào)度、分配資源、執(zhí)行5)異步性:推進速度不可預知二、進程的三種基本狀態(tài)就緒(Ready)狀態(tài)2)執(zhí)行狀態(tài)3)阻塞狀態(tài)圖2-5進程的三種基本狀態(tài)及其轉(zhuǎn)換三、掛起狀態(tài)(靜止狀態(tài))1、引入掛起狀態(tài)的原因終端用戶
9、的請求。(2)父進程請求。(3)負荷調(diào)節(jié)的需要。(4)操作系統(tǒng)的需要。2、進程狀態(tài)的轉(zhuǎn)換活動就緒→靜止就緒。(2)活動阻塞→靜止阻塞。(3)靜止就緒→活動就緒。(4)靜止阻塞→活動阻塞。圖2-6具有掛起狀態(tài)的進程狀態(tài)圖2.1.5進程控制塊PCB一、進程控制塊的作用1、PCB使一個在多道程序環(huán)境下不能獨立運行的程序(含數(shù)據(jù)),成為一個能獨立運行的基本單位,一個能與其它進程并發(fā)執(zhí)行的進程?;蛘哒f,OS是根據(jù)PCB來對并發(fā)執(zhí)行的進程進行控制和管理的。2、說明:1)當創(chuàng)建一個新的進程時,系統(tǒng)為它分配一個