資源描述:
《操作系統(tǒng)第2章進(jìn)程管理》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第二章進(jìn)程§2.1進(jìn)程概念§2.2進(jìn)程的狀態(tài)§2.3進(jìn)程控制塊§2.4進(jìn)程控制原語(yǔ)*§2.5進(jìn)程同步§2.6經(jīng)典進(jìn)程同步問(wèn)題§2.1進(jìn)程概念一、順序程序設(shè)計(jì)順序程序(馮諾伊曼)Vonnevman匈牙利數(shù)學(xué)家1946年程序是算法的形式化描述,一個(gè)程序的執(zhí)行過(guò)程即一個(gè)“計(jì)算”,即算法的實(shí)現(xiàn)。(1)計(jì)算:對(duì)某一有限數(shù)據(jù)的集合所施行的,目的在于解決某一問(wèn)題的一組有限操作的集合?!?.1進(jìn)程概念(2)順序執(zhí)行:I1C1O1I2C2O2job1job2順序處理模式計(jì)算中的各個(gè)操作有一定順序,否則無(wú)法正確執(zhí)行?!?.1進(jìn)程概念
2、2.順序程序的特點(diǎn):(1).順序性處理機(jī)嚴(yán)格按照程序所規(guī)定的順序執(zhí)行,即每個(gè)操作必須在下一個(gè)操作開(kāi)始之前結(jié)束。(2).封閉性程序在封閉環(huán)境下運(yùn)行,獨(dú)占全機(jī)資源。封閉性指的是程序一旦開(kāi)始運(yùn)行,其計(jì)算結(jié)果就只取決于程序本身,除了人為地改變機(jī)器的運(yùn)行狀態(tài)或機(jī)器故障以外,沒(méi)有其它因素能夠?qū)Τ绦虻倪\(yùn)行過(guò)程施加影響(3).可再現(xiàn)性程序執(zhí)行的結(jié)果與初始條件有關(guān),而與執(zhí)行時(shí)間無(wú)關(guān)。即只要程序的初始條件相同,它的執(zhí)行結(jié)果是相同的,不論它在什么時(shí)間執(zhí)行,也不管計(jì)算機(jī)的運(yùn)行速度?!?.1進(jìn)程概念例:(a+b)?(c+d)?(e/f)t
3、1=a+bt2=c+dt3=e/ft4=t1?t2t5=t4–t3–/?++abcdSt1t2t3t4t5F二、前趨圖§2.1進(jìn)程概念前趨圖是一個(gè)有向無(wú)循環(huán)圖,用于描述進(jìn)程之間的前后關(guān)系。圖中的每個(gè)結(jié)點(diǎn)可用于描述一個(gè)程序段或進(jìn)程,乃至一條語(yǔ)句;結(jié)點(diǎn)間的有向邊則用于表示兩個(gè)結(jié)點(diǎn)之間存在的偏序或前趨關(guān)系?!?.1進(jìn)程概念每個(gè)結(jié)點(diǎn)還具有一個(gè)重量(Weight),用于表示該結(jié)點(diǎn)所含有的程序量或結(jié)點(diǎn)的執(zhí)行時(shí)間。Ii→Ci→Pi和S1→S2→S3圖2-2前趨圖§2.1進(jìn)程概念三、并行程序設(shè)計(jì)為了提高系統(tǒng)的利用率和處理能力:采
4、用:(1)硬件–––并行操作(2)軟件–––程序段在執(zhí)行時(shí)間上有重疊(不一定全部重疊)。并行性:是指在同一時(shí)間間隔內(nèi)或同一時(shí)刻完成兩種或兩種以上性質(zhì)相同或不同的工作,只要時(shí)間上互相重迭,都存在并行性。并發(fā)環(huán)境:在一定時(shí)間內(nèi)物理機(jī)器上有兩個(gè)或兩個(gè)以上的程序同處于開(kāi)始運(yùn)行但尚未結(jié)束的狀態(tài),并且次序不是事先確定的?!?.1進(jìn)程概念特征:(1)不可再現(xiàn)性同一程序的多次執(zhí)行,雖然執(zhí)行環(huán)境和初始條件相同,但得到的結(jié)果各不相同。并發(fā)程序執(zhí)行的結(jié)果與其執(zhí)行的相對(duì)速度有關(guān),是不確定的(2)間斷性并發(fā)程序之間存在相互制約關(guān)系,導(dǎo)致它
5、們都具有“執(zhí)行-暫停-執(zhí)行”活動(dòng)規(guī)律?!?.1進(jìn)程概念(3)資源共享系統(tǒng)中資源被多個(gè)進(jìn)程使用(4)獨(dú)立性和制約性獨(dú)立的相對(duì)速度、起始時(shí)間進(jìn)程之間可相互作用(相互制約)可分為直接作用和間接作用(5)程序和計(jì)算不再對(duì)應(yīng)(計(jì)算:一個(gè)程序的執(zhí)行)§2.1進(jìn)程概念例:2個(gè)循環(huán)程序A和B,共享變量N。A:while(1)B:while(1){{N=N+1;print(N);}N=0;}A和B并發(fā)執(zhí)行,其計(jì)算結(jié)果與執(zhí)行速度有關(guān),不唯一,有三種情況(假設(shè)某時(shí)刻N(yùn)值為n)。§2.1進(jìn)程概念(1)N=N+1在print(N)和N
6、=0之前即:N=N+1;print(N);N=0;則N值分別是:n+1,n+1,0(2)N=N+1在print(N)和N=0之后即:print(N);N=0;N=N+1;N值分別是:n,0,1(3)N=N+1在print(N)和N=0之間即:print(N);N=N+1;N=0;N值分別是:n,n+1,0§2.1進(jìn)程概念程序并發(fā)執(zhí)行,失去了封閉性,雖然執(zhí)行環(huán)境和初始條件相同,但其計(jì)算結(jié)果與并發(fā)程序的執(zhí)行速度有關(guān),從而失去了可再現(xiàn)性,有可能發(fā)生“與時(shí)間有關(guān)的錯(cuò)誤”。因而,必須采取某種措施,使得并發(fā)程序能夠保持其“可
7、再現(xiàn)性”?!?.1進(jìn)程概念例:在系統(tǒng)中有n個(gè)作業(yè),每個(gè)作業(yè)都有三個(gè)處理步驟,輸入數(shù)據(jù)、處理、輸出,即Ii,Ci,Oi(i=1,2,3,...,n)。這些作業(yè)系統(tǒng)中執(zhí)行時(shí)是對(duì)時(shí)間的偏序,有些操作必須在其它操作之前執(zhí)行,這是有序的,但有些操作是可以同時(shí)執(zhí)行的。如:I1、C1、O1的執(zhí)行必須嚴(yán)格按照I1,C1,O1的順序,而O1與I2,C1與I2,I3與O1是可以同時(shí)執(zhí)行的?!?.1進(jìn)程概念I(lǐng)1、C1、O1的執(zhí)行必須嚴(yán)格按照I1,C1,O1的順序,而O1與I2,C1與I2,I3與O1是可以同時(shí)執(zhí)行的。I1I2I3C1C
8、2C3O1O2O3t并行的四、進(jìn)程的引入§2.1進(jìn)程概念進(jìn)程的概念是操作系統(tǒng)中最基本、最重要的概念。它是在多道程序系統(tǒng)出現(xiàn)后,為了刻劃系統(tǒng)內(nèi)部出現(xiàn)的情況,描述系統(tǒng)內(nèi)部各作業(yè)的活動(dòng)規(guī)律而引進(jìn)的一個(gè)新的概念?!?.1進(jìn)程概念為什么要引入“進(jìn)程”的概念關(guān)鍵是“共享資源”引起的,從資源觀點(diǎn)看,有效管理共享資源(同步操作、異步操作、通信)是操作系統(tǒng)的重要內(nèi)容。在多道程序設(shè)計(jì)的環(huán)境下