計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念_第1頁(yè)
計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念_第2頁(yè)
計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念_第3頁(yè)
計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念_第4頁(yè)
計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念_第5頁(yè)
已閱讀5頁(yè),還剩64頁(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、進(jìn)程(處理器)管理 1 進(jìn)程的基本概念2 進(jìn)程控制3 進(jìn)程同步4 經(jīng)典進(jìn)程的同步問題5 進(jìn)程通信6 線程 1計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念學(xué)習(xí)目標(biāo)在多道程序環(huán)境下,程序不能獨(dú)立運(yùn)行。作為資源分配和獨(dú)立運(yùn)行的基本單位是進(jìn)程。操作系統(tǒng)所有的特征都是基于進(jìn)程而體現(xiàn)的。所以,本章的主要問題是:進(jìn)程的概念:進(jìn)程的狀態(tài)、進(jìn)程的調(diào)度、進(jìn)程控制與協(xié)作、進(jìn)程的特征進(jìn)程的同步:同步的概念、同步的實(shí)現(xiàn)進(jìn)程通信2計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念引言處理機(jī)管理是操作系統(tǒng)的基本管理功能之一,它所關(guān)心的是處理機(jī)的分配問題。也就是說把CPU(中央處理機(jī))的使用權(quán)分給某個(gè)程序,通常把這個(gè)正準(zhǔn)備進(jìn)入內(nèi)存的程序稱

2、為作業(yè),當(dāng)這個(gè)作業(yè)進(jìn)入內(nèi)存后我們把它稱為進(jìn)程。處理機(jī)管理分為作業(yè)管理和進(jìn)程管理兩個(gè)階段去實(shí)現(xiàn)處理機(jī)的分配,常常又把直接實(shí)行處理機(jī)時(shí)間分配的進(jìn)程調(diào)度工作作為處理機(jī)管理的主要內(nèi)容。 進(jìn)程通常具有三種狀態(tài):運(yùn)行狀態(tài)(正在使用CPU)、阻塞狀態(tài)(等待輸入/輸出)和就緒狀態(tài)(等待分配CPU)。 3計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念1.程序的順序執(zhí)行 一個(gè)復(fù)雜的程序一般均含若干個(gè)程序段,并按一定先后順序執(zhí)行,每個(gè)操作必須在下一個(gè)操作開始之前結(jié)束。也即僅當(dāng)前一個(gè)操作結(jié)束之后,后繼操作才開始執(zhí)行,此即程序的順序執(zhí)行性。 例如一般程序包括輸入(I)、計(jì)算(C)、輸出(P)三部分,而計(jì)算須在輸入完成方可開始

3、。 進(jìn)程概念的引入-程序的順序執(zhí)行和并發(fā)執(zhí)行4計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念2.程序順序執(zhí)行時(shí)的特征 1) 順序性: 處理機(jī)的操作是嚴(yán)格按照程序所規(guī)定的順序執(zhí)行的,每一操作開始都不得先于前一操作的結(jié)束。 2) 封閉性:程序一旦開始執(zhí)行,其執(zhí)行結(jié)果不受外界因素影響。 3) 確定性、可再現(xiàn)性:程序重復(fù)執(zhí)行將獲得相同結(jié)果。程序的順序執(zhí)行:一個(gè)具有獨(dú)立功能的程序獨(dú)占處理機(jī)直至得到最終結(jié)果的過程稱為程序的順序執(zhí)行。S1: a:=x+y;S2: b:=a-5;/s2必須是s1執(zhí)行后再執(zhí)行S3: c:=b+1;/s3必須是s2執(zhí)行后再執(zhí)行S1 、S2、 S3必須按照順序依次執(zhí)行。優(yōu)點(diǎn):有利于程序的

4、編制和調(diào)試;缺點(diǎn):資源的獨(dú)占性,使得系統(tǒng)利用率很低。5計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念說明順序執(zhí)行是單道批處理系統(tǒng)的執(zhí)行方式在單道程序工作環(huán)境中,我們把一個(gè)“程序”理解為“一個(gè)在時(shí)間上按嚴(yán)格次序前后相繼的操作序列”由于各類軟件的出現(xiàn)及日益復(fù)雜化,使得程序設(shè)計(jì)的概念和方法有了很大的發(fā)展6計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念前趨圖前趨圖是一個(gè)有向無循環(huán)圖,記為DAG (Drected Acyclic Graph),前趨圖用來描述程序各部分間的依賴關(guān)系或一個(gè)大的計(jì)算各子部之間的因果關(guān)系。前趨圖中的元素: 結(jié) 點(diǎn):表示一個(gè)語(yǔ)句、程序段、進(jìn)程; 有向邊: 表示結(jié)點(diǎn)間的偏序關(guān)系(前趨關(guān)系) =

5、(Pi , Pj)|Pi must complete before Pj may start 若(Pi , Pj) ,可寫成 Pi Pj,稱 Pi是 Pj的直接前趨,而 Pj是Pi的直接后繼。7計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念前趨圖示例P2P3P1P6P7P4P5 7個(gè)結(jié)點(diǎn)的前趨圖前趨關(guān)系P1 P2, P1 P3P1 P4, P2 P5P3 P5, P4 P6P5 P7, P6 P7在前趨圖中,把沒有前趨的結(jié)點(diǎn)稱為初始結(jié)點(diǎn)(Initial Node),把沒有后繼的結(jié)點(diǎn)稱為終止結(jié)點(diǎn)(Final Node)。每個(gè)結(jié)點(diǎn)還具有一個(gè)重量(Weight),用于表示該結(jié)點(diǎn)所含有的程序量或結(jié)點(diǎn)的執(zhí)行時(shí)

6、間。 前趨圖中能否有循環(huán)存在?8計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念具有循環(huán)的圖S1S2S3S2 must complete before S3 may startS3S2S3 must complete before S2 may start9計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念例:下述四條語(yǔ)句的程序段畫出前趨圖S1: a:x+2S2: b:y4S3: c:abS4: d:c6S1S2S4S310計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念程序的并發(fā)執(zhí)行及其特征1.程序的并發(fā)執(zhí)行 一組邏輯上相互獨(dú)立的程序或程序段在執(zhí)行過程中,其執(zhí)行時(shí)間在客觀上相互重疊,即一個(gè)程序段的執(zhí)行,尚未結(jié)束,另一

7、個(gè)程序段的執(zhí)行已經(jīng)開始的這種執(zhí)行方式。 程序的并發(fā)執(zhí)行可分為兩種: (1) 在計(jì)算機(jī)系統(tǒng)支持并行操作時(shí),如采用多道程序設(shè)計(jì)技術(shù),則內(nèi)存中多道程序處于并發(fā)執(zhí)行狀態(tài)。11計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念程序間并發(fā)執(zhí)行I1P3輸入設(shè)備處理機(jī)打印機(jī)t1t2t3t4t5I2C1I3C2P1C3P2由于多道程序中Ii+1、Ci與Pi-1之間不存在前趨關(guān)系,程序之間可以并發(fā)執(zhí)行并發(fā)執(zhí)行后,系統(tǒng)效率提高并發(fā)執(zhí)行后,系統(tǒng)效率提高12計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念程序的并發(fā)執(zhí)行及其特征(2) 并發(fā)執(zhí)行是在某道程序的幾個(gè)程序段中包含著一部分可以同時(shí)執(zhí)行或順序顛倒執(zhí)行的代碼. 如: read(a);

8、 read(b); 可以同時(shí)執(zhí)行,也可顛倒次序執(zhí)行。對(duì)于這樣的語(yǔ)句,同時(shí)執(zhí)行不會(huì)改變順序程序所具有的邏輯性質(zhì).總結(jié):一組在邏輯上互相獨(dú)立的程序或程序段在執(zhí)行過程中其執(zhí)行時(shí)間在客觀上互相重疊,即一個(gè)程序的執(zhí)行尚未結(jié)束,另一個(gè)程序的執(zhí)行已經(jīng)開始的執(zhí)行方式. 13計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念2.程序并發(fā)執(zhí)行時(shí)的特征 1) 間斷性:程序在并發(fā)執(zhí)行時(shí),由于它們共享資源或?yàn)橥瓿赡骋豁?xiàng)任務(wù)而合作,致使在并發(fā)程序之間存在相互制約的關(guān)系。 2) 失去封閉性:程序在并發(fā)執(zhí)行時(shí),是多個(gè)程序共享系統(tǒng)中的各種資源,因而這些資源的狀態(tài)將由多個(gè)程序來改變,致使程序的運(yùn)行失去了封閉性。 3) 不可再現(xiàn)性: 程序在

9、并發(fā)執(zhí)行時(shí),由于失去了封閉性,也導(dǎo)致失去了可再現(xiàn)性。 14計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念 例如:有兩個(gè)循環(huán)程序A和B,它們共享一個(gè)變量N。程序A每執(zhí)行一次時(shí)都要做N:N1操作;程序B每執(zhí)行一次時(shí),都要做print(N)操作,然后再將N置成“0”,程序A和B以不同的速度運(yùn)行。(假定某時(shí)刻變量N的值為n)(1)N:N1在print(N)和N:0之前,此時(shí)得到的N值分別為: n1, n1, 0(2)N:N1在print(N)和N:0之后,此時(shí)得到的N值分別為: n, 0, 1(3)N:N1在 print(N)和N:0之間,此時(shí)得到的N值分別為: n, n1, 015計(jì)算機(jī)操作系統(tǒng)(第四版)

10、第二章進(jìn)程的概念例:觀察者/報(bào)告者觀察者: 報(bào)告者: begin begin repeat repeat wait a car go through delay a time N=N+1; Print N ; N=0 ; until until end end初始N=n時(shí)不同執(zhí)行序列: N=N+1; Print N; Print N ; Print N ; N=0 ; N=N+1 ; N=0 ; N=N+1 ; N=0 ;結(jié)果各不相同: 打印n+1,N=0; 打印n,N=1;打印n ,N=0;16計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念程序的并發(fā)執(zhí)行:人們?cè)谟布弦肓送ǖ篮椭袛嗉夹g(shù),使得處理

11、器和外部設(shè)備、外部設(shè)備和外部設(shè)備之間可以并行工作。從而使系統(tǒng)的多個(gè)程序同時(shí)活動(dòng),并由統(tǒng)一的操作系統(tǒng)來管理,這就是多道程序系統(tǒng)。在單道系統(tǒng)中可以用程序代表順序執(zhí)行過程,但在多道系統(tǒng)中,程序并行、制約等特征使程序這個(gè)靜態(tài)的概念已不能描述系統(tǒng)的運(yùn)行情況了,為此操作系統(tǒng)引入了一個(gè)新的概念進(jìn)程。17計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念進(jìn)程的特征與狀態(tài)1.進(jìn)程的定義和特征 進(jìn)程:是指在系統(tǒng)中能獨(dú)立運(yùn)行并作為資源分配的基本單位,是一個(gè)活動(dòng)實(shí)體。 簡(jiǎn)單的理解為,進(jìn)程是程序在數(shù)據(jù)集合上的一次運(yùn)行過程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位。 進(jìn)程是一個(gè)動(dòng)態(tài)的概念,是一個(gè)運(yùn)行過程。它不同于程序,但又依賴于程序。對(duì)

12、不同的數(shù)據(jù)集合,依照一定的程序運(yùn)行處理的每一個(gè)過程是不同的進(jìn)程。 18計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念進(jìn)程的特征1)結(jié)構(gòu)特征 從結(jié)構(gòu)上看,進(jìn)程是由程序段、數(shù)據(jù)段及進(jìn)程控制塊三部分組成。 2)動(dòng)態(tài)性 程序是指令的集合,進(jìn)程是指令的執(zhí)行過程。動(dòng)態(tài)性是進(jìn)程最基本的特征。 PCB程序段(正文段)數(shù)據(jù)段(數(shù)據(jù)集合)19計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念3)并發(fā)性 這是指多個(gè)進(jìn)程實(shí)體,同存于內(nèi)存中,能在一段時(shí)間內(nèi)同時(shí)運(yùn)行。并發(fā)性是進(jìn)程的重要特征,同時(shí)也成為OS的重要特征。引入進(jìn)程的目的也是為了使該進(jìn)程的程序能和其它進(jìn)程的程序并發(fā)執(zhí)行。4)獨(dú)立性 進(jìn)程實(shí)體是一個(gè)能獨(dú)立運(yùn)行的基本單位,同時(shí)也是系

13、統(tǒng)中獨(dú)立獲得資源和獨(dú)立調(diào)度的基本單位。沒有建立進(jìn)程的程序,不能作為一個(gè)獨(dú)立的單位參加運(yùn)行。5)異步性 各進(jìn)程按其各自獨(dú)立的,不可預(yù)知的速度向前推進(jìn)。 進(jìn)程的特征20計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念思考?進(jìn)程與程序的區(qū)別?1)進(jìn)程是程序的執(zhí)行過程,是一個(gè)動(dòng)態(tài)的概念;而程序是一組指令的有序集合,是一個(gè)靜態(tài)的概念;2)進(jìn)程有一個(gè)生命周期,而程序是永久的;3)通過多次執(zhí)行,一個(gè)程序可對(duì)應(yīng)多個(gè)進(jìn)程;4)通過調(diào)用關(guān)系,一個(gè)進(jìn)程可包括多個(gè)程序; 5)進(jìn)程由程序和數(shù)據(jù)組成。21計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念作業(yè)和進(jìn)程的關(guān)系作業(yè)是用戶需要計(jì)算機(jī)完成某項(xiàng)任務(wù)時(shí)要求計(jì)算機(jī)所做的工作的集合。一個(gè)作業(yè)

14、的完成要經(jīng)過作業(yè)提交、作業(yè)后備、作業(yè)執(zhí)行和作業(yè)完成四個(gè)階段。進(jìn)程是對(duì)已提交完畢程序的執(zhí)行過程的描述,是資源分配的基本單位。他們主要區(qū)別和關(guān)聯(lián)如下:(1)作業(yè)是用戶向計(jì)算機(jī)提交任務(wù)的實(shí)體,而進(jìn)程是完成用戶任務(wù)的實(shí)體;(2)一個(gè)作業(yè)可由多個(gè)進(jìn)程組成,且必須至少由一個(gè)進(jìn)程組成。(3)作業(yè)的概念主要用在批處理操作系統(tǒng)中,而進(jìn)程的概念則幾乎用在所有的多道程序操作系統(tǒng)中。22計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念2.進(jìn)程的三種基本狀態(tài)1)就緒(Ready)狀態(tài) 當(dāng)進(jìn)程已經(jīng)分配到除CPU以外的所有必要的資源后,只要能獲得處理機(jī),就可以立即執(zhí)行。這時(shí)的進(jìn)程的狀態(tài)稱為就緒狀態(tài)。2)執(zhí)行狀態(tài)(Running)(

15、運(yùn)行狀態(tài)) 指進(jìn)程已獲得處理機(jī),其程序正在執(zhí)行。在單處理機(jī)系統(tǒng)中,只能有一個(gè)進(jìn)程處于執(zhí)行狀態(tài)。(在多處理機(jī)中,可能有多個(gè)進(jìn)程處于執(zhí)行狀態(tài)。)23計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念3)阻塞狀態(tài)(Block) (等待狀態(tài)) 進(jìn)程因發(fā)生某個(gè)事件而暫停執(zhí)行時(shí)的狀態(tài)(如:請(qǐng)求I/O、申請(qǐng)緩沖空間等),也就是說,進(jìn)程受到阻塞,所以稱這種暫停狀態(tài)為阻塞狀態(tài),有時(shí)也稱“等待”狀態(tài)或“睡眠”狀態(tài)。 24計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念進(jìn)程的特征與狀態(tài) 處于就緒態(tài)進(jìn)程:一般處于就緒態(tài)的進(jìn)程按照一定的算法(如先來的進(jìn)程排在前面,或采用優(yōu)先權(quán)高的進(jìn)程排在前面)排成一個(gè)就緒隊(duì)列。 處于運(yùn)行態(tài)進(jìn)程:如系統(tǒng)有

16、一個(gè)處理機(jī),則在任何一時(shí)刻,最多只有一個(gè)進(jìn)程處于運(yùn)行態(tài)。 處于等待態(tài)進(jìn)程:處于等待態(tài)的進(jìn)程排在等待隊(duì)列中。由于等待事件原因不同,等待隊(duì)列也按事件原因可分成幾個(gè)隊(duì)列。 25計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念 進(jìn)程的基本狀態(tài)轉(zhuǎn)換注意的三點(diǎn):1)進(jìn)程從阻塞態(tài)到執(zhí)行態(tài),必須經(jīng)過就緒態(tài);2)進(jìn)程從執(zhí)行態(tài)到阻塞態(tài),一般由進(jìn)程自己主動(dòng)提出的;3)一個(gè)進(jìn)程由執(zhí)行到就緒態(tài)總是由外界事件引起的,而不是該進(jìn)程自己引起的。26計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念進(jìn)程狀態(tài)間的轉(zhuǎn)換 就緒執(zhí)行:調(diào)度 執(zhí)行等待:等待某個(gè)事件發(fā)生而睡眠 等待就緒:因等待的事件結(jié)束而喚醒 執(zhí)行就緒:時(shí)間片用完 練習(xí):1、如果系統(tǒng)中有n

17、個(gè)進(jìn)程,則就緒隊(duì)列中進(jìn)程的個(gè)數(shù)最多為( )。 A、n+1 B、 n C、 n-1 D、12、設(shè)系統(tǒng)中有關(guān)n(n2)個(gè)進(jìn)程,且當(dāng)前不在執(zhí)行進(jìn)程調(diào)度程序,試考慮下述四種情況:A、沒有運(yùn)行進(jìn)程,有2個(gè)就緒進(jìn)程,n個(gè)進(jìn)程處于等待狀態(tài)。B、有1個(gè)運(yùn)行進(jìn)程,沒有就緒進(jìn)程,n-1個(gè)進(jìn)程處于等待狀態(tài)。C、有1個(gè)運(yùn)行進(jìn)程,有1個(gè)就緒進(jìn)程,n-2個(gè)進(jìn)程處于等待狀態(tài)。D、有1個(gè)運(yùn)行進(jìn)程,n-1個(gè)就緒進(jìn)程,沒有進(jìn)程處于等待狀態(tài)。上述情況中,不可能發(fā)生的情況是( )。CA27計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念進(jìn)程的狀態(tài)3 創(chuàng)建狀態(tài)和終止?fàn)顟B(tài) 1.創(chuàng)建狀態(tài) 是一個(gè)進(jìn)程剛剛建立,但還沒有將它送入就緒隊(duì)列時(shí)的狀態(tài) 2.

18、終止?fàn)顟B(tài) 當(dāng)一個(gè)進(jìn)程已經(jīng)正常結(jié)束或異常結(jié)束,OS已經(jīng)將它從就緒隊(duì)列中移出,但還沒有將它撤消時(shí)的狀態(tài)。28計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念創(chuàng)建就緒執(zhí)行終止阻塞許可進(jìn)程調(diào)度中斷或時(shí)間片用完釋放I/O請(qǐng)求或等待某事件I/O完成或事件發(fā)生狀態(tài)轉(zhuǎn)換原因圖萬(wàn)事具備,只欠“東風(fēng)”CPU獲得CPU正在運(yùn)行欠缺某些條件29計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念創(chuàng)建就緒執(zhí)行終止阻塞進(jìn)入就緒隊(duì)列分配CPU使用權(quán)強(qiáng)制放棄CPU回到就緒隊(duì)列釋放所有資源進(jìn)程主動(dòng)放棄CPU進(jìn)入阻塞等待隊(duì)列進(jìn)程被釋放回到就緒隊(duì)列狀態(tài)轉(zhuǎn)換執(zhí)行圖30計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念創(chuàng) 建就緒事件動(dòng)作許可進(jìn)入就緒隊(duì)列就緒執(zhí)行進(jìn)程

19、調(diào)度分配CPU執(zhí)行終止釋放釋放資源執(zhí)行阻塞時(shí)間片到時(shí)高優(yōu)先中斷系統(tǒng)剝奪CPU執(zhí)行就緒I/O請(qǐng)求等待某事件進(jìn)程放棄CPU進(jìn)入阻塞等待隊(duì)列阻塞就緒阻塞事件釋放進(jìn)程進(jìn)入就緒隊(duì)列31計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念4.掛起狀態(tài)1.掛起狀態(tài)的引入 1)終端用戶的需要 當(dāng)終端用戶在自己的程序運(yùn)行期間,發(fā)現(xiàn)有可疑問題時(shí),往往希望暫時(shí)使自己的進(jìn)程靜止下來。也就是說,如果進(jìn)程處于執(zhí)行狀態(tài),則暫停執(zhí)行;如果進(jìn)程處于就緒狀態(tài),則暫時(shí)不接受調(diào)度,以便研究其執(zhí)行情況或?qū)Τ绦蜻M(jìn)行修改。我們把這種靜止?fàn)顟B(tài)稱為掛起狀態(tài)。 32計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念2)父進(jìn)程的需求 父進(jìn)程常常希望考察和修改子進(jìn)程,或

20、者當(dāng)要協(xié)調(diào)各子進(jìn)程間的活動(dòng)時(shí),要掛起自己的子進(jìn)程。3)負(fù)荷調(diào)節(jié)的需要 當(dāng)實(shí)時(shí)系統(tǒng)中的工作負(fù)荷較重,可能影響到對(duì)實(shí)時(shí)任務(wù)的控制時(shí),可由系統(tǒng)把一些不重要或不緊迫的進(jìn)程掛起,以保證系統(tǒng)仍然能正常運(yùn)行。 4)操作系統(tǒng)的需要 操作系統(tǒng)有時(shí)需要掛起某些進(jìn)程,檢查運(yùn)行中資源的使用情況及進(jìn)行記帳,以便改善系統(tǒng)的運(yùn)行性能。 33計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念 2.進(jìn)程狀態(tài)的轉(zhuǎn)換 在引入掛起狀態(tài)后,又將增加從掛起狀態(tài)(又稱靜止?fàn)顟B(tài))到非掛起狀態(tài)(又稱活動(dòng)狀態(tài))的轉(zhuǎn)換。或者相反,可以有以下幾種情況: 1) 活動(dòng)就緒 靜止就緒 當(dāng)進(jìn)程處于未被掛起的就緒狀態(tài)時(shí),稱此為活動(dòng)就緒狀態(tài),表示為Readya。當(dāng)用掛起

21、原語(yǔ)Suspend將該進(jìn)程掛起后,該進(jìn)程便轉(zhuǎn)變?yōu)殪o止就緒狀態(tài)。表示為Readys(處在Readys狀態(tài)的進(jìn)程,不再被調(diào)度執(zhí)行。)34計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念 2) 活動(dòng)阻塞 靜止阻塞 當(dāng)進(jìn)程處于未被掛起的阻塞狀態(tài)時(shí),稱為它處在活動(dòng)阻塞狀態(tài)(表示為Blockeda)。當(dāng)Suspend原語(yǔ)將它掛起后,進(jìn)程便轉(zhuǎn)變?yōu)殪o止阻塞狀態(tài)(表示為Blockeds)。處于該狀態(tài)的進(jìn)程,在其所期待的事件出現(xiàn)以后,他將從靜止阻塞變?yōu)殪o止就緒。35計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念 3) 靜止就緒 活動(dòng)就緒 處于Readys狀態(tài)的進(jìn)程,若用激活原語(yǔ)Active激活后,該進(jìn)程將轉(zhuǎn)變?yōu)镽eadya狀態(tài)

22、。4) 靜止阻塞 活動(dòng)阻塞 處于Blockeds狀態(tài)的進(jìn)程,若用激活原語(yǔ)Active激活后,進(jìn)程將轉(zhuǎn)變?yōu)锽lockeda狀態(tài)。36計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念掛起執(zhí)行活動(dòng)就緒活動(dòng)阻塞靜止就緒靜止阻塞等待事件激活事件發(fā)生掛起事件發(fā)生激活掛起具有掛起狀態(tài)的進(jìn)程狀態(tài)圖被調(diào)度時(shí)間片用完創(chuàng)建許可許可終止釋放37計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念 正在執(zhí)行的進(jìn)程由于時(shí)間片用完而被暫停執(zhí)行,此時(shí)進(jìn)程應(yīng)從執(zhí)行狀態(tài)變?yōu)開狀態(tài); 處于靜止阻塞狀態(tài)的進(jìn)程,在進(jìn)程等待事件出現(xiàn)后,應(yīng)轉(zhuǎn)變?yōu)開狀態(tài); 若進(jìn)程正處于執(zhí)行狀態(tài)時(shí),應(yīng)終端的請(qǐng)求而暫停下來以便研究其運(yùn)行情況,這時(shí)進(jìn)程應(yīng)轉(zhuǎn)變?yōu)開狀態(tài),若進(jìn)程已處于阻

23、塞狀態(tài),則此時(shí)應(yīng)轉(zhuǎn)變?yōu)開狀態(tài)。-:A.靜止阻塞 B.活動(dòng)阻塞 C.靜止就緒 D.活動(dòng)就緒 E.執(zhí)行 練習(xí):DCCA38計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念【思考題】1如果系統(tǒng)中有N個(gè)進(jìn)程,運(yùn)行的進(jìn)程最多幾個(gè),最少幾個(gè);就緒進(jìn)程最多幾個(gè)最少幾個(gè);等待進(jìn)程最多幾個(gè),最少幾個(gè)?2. 有沒有這樣的狀態(tài)轉(zhuǎn)換,為什么? 等待運(yùn)行; 就緒等待3. 一個(gè)狀態(tài)轉(zhuǎn)換的發(fā)生,是否一定導(dǎo)致另一個(gè)轉(zhuǎn)換發(fā)生,列出所有的可能39計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念 由三部分組成PCB、有關(guān)程序段和該程序段對(duì)其進(jìn)行操作的數(shù)據(jù)集合。1) 進(jìn)程控制塊:用于描述進(jìn)程情況及控制進(jìn)程運(yùn)行所需的全部信息。 2) 程序段:是進(jìn)程中

24、能被進(jìn)程調(diào)度程序在CPU上執(zhí)行的程序代碼段。3) 數(shù)據(jù)段:一個(gè)進(jìn)程的數(shù)據(jù)段,可以是進(jìn)程對(duì)應(yīng)的程序加工處理的原始數(shù)據(jù),也可以是程序執(zhí)行后產(chǎn)生的中間或最終數(shù)據(jù)。進(jìn)程的結(jié)構(gòu)40計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念1.進(jìn)程控制塊的作用 進(jìn)程控制塊是操作系統(tǒng)用于記錄和刻畫進(jìn)程狀態(tài)及有關(guān)信息的數(shù)據(jù)結(jié)構(gòu)。 進(jìn)程控制塊是進(jìn)程存在的唯一標(biāo)志,當(dāng)系統(tǒng)或父進(jìn)程創(chuàng)建一個(gè)進(jìn)程時(shí),實(shí)際上就是為其建立一個(gè)進(jìn)程控制塊。 進(jìn)程控制塊既能標(biāo)識(shí)進(jìn)程的存在,又能刻畫出進(jìn)程的動(dòng)態(tài)特征,它是一個(gè)進(jìn)程僅有的被系統(tǒng)真正感知的部分。對(duì)操作系統(tǒng)而言,所有PCB將構(gòu)成并發(fā)執(zhí)行控制和維護(hù)系統(tǒng)工作的依據(jù)。進(jìn)程控制塊41計(jì)算機(jī)操作系統(tǒng)(第四版)第二

25、章進(jìn)程的概念 PCB程序段(正文段)數(shù)據(jù)段(數(shù)據(jù)集合)處理機(jī)狀態(tài)進(jìn)程調(diào)度信息2.進(jìn)程控制塊中的信息內(nèi)/外部標(biāo)識(shí)符通用寄存器指令計(jì)數(shù)器程序狀態(tài)字PSW用戶棧指針進(jìn)程狀態(tài)進(jìn)程優(yōu)先級(jí)其它信息/事件程序和數(shù)據(jù)的地址進(jìn)程同步和通信機(jī)制PCB中的信息進(jìn)程標(biāo)識(shí)符進(jìn)程控制信息資源清單鏈接指針42計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念 為了方便管理,把處于相同狀態(tài)的進(jìn)程鏈接在一起,稱為“進(jìn)程隊(duì)列”。 常用的組織方式有兩種:鏈接方式(單/雙向)、索引方式。3. 進(jìn)程控制塊的組織方式1、鏈接方式 具有相同狀態(tài)的PCB,用其中的鏈接字,鏈接成一個(gè)隊(duì)列。這樣就可以形成就緒隊(duì)列、若干個(gè)阻塞隊(duì)列和空白隊(duì)列等。對(duì)其中的就緒

26、隊(duì)列常按照進(jìn)程優(yōu)先權(quán)的大小排列,把優(yōu)先權(quán)高的進(jìn)程的PCB排在隊(duì)列前面。 進(jìn)程隊(duì)列:不同狀態(tài)進(jìn)程分別組成就緒隊(duì)列、等待隊(duì)列、空白隊(duì)列。43計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念執(zhí)行指針就緒隊(duì)列指針阻塞隊(duì)列指針空閑隊(duì)列指針PCB1PCB2PCB3PCB4PCB5PCB6PCB7PCB8PCB94308 79010PCB鏈接隊(duì)列示意圖44計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念(a)等待隊(duì)列分開PCB5執(zhí)行隊(duì)列 就緒隊(duì)列 阻塞隊(duì)列1 阻塞隊(duì)列2 隊(duì)列表頭PCB8PCB1PCB4PCB3PCB2PCB745計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念(b)等待隊(duì)列不分開 就緒隊(duì)列 阻塞隊(duì)列 PCB1PC

27、B7PCB2PCB3 PCB8PCB446計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念隊(duì)首指針進(jìn)程A進(jìn)程B進(jìn)程E.0PCBAPCBBPCBE單向鏈接隊(duì)首指針00PCBAPCBBPCBE進(jìn)程A進(jìn)程B進(jìn)程E.雙向鏈接47計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念 2.索引方式 系統(tǒng)根據(jù)所有進(jìn)程的狀態(tài),建立幾張索引表。例如:就緒索引表、阻塞索引表。并把各索引表在內(nèi)存的首地址記錄在內(nèi)存中的一些專用單元中。每個(gè)索引表的表目中,記錄具有相同狀態(tài)的某個(gè)PCB在PCB表中的地址。48計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念執(zhí)行指針就緒索引表等待索引表PCB3PCB4PCB5PCB7PCB6PCB2PCB1按索引方式

28、組織PCB就緒索引表等待索引表49計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念當(dāng)事件n發(fā)生,對(duì)應(yīng)隊(duì)列移進(jìn)就緒隊(duì)列50計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念進(jìn)程控制塊是進(jìn)程存在的標(biāo)志,當(dāng)系統(tǒng)或父進(jìn)程創(chuàng)建一個(gè)進(jìn)程時(shí),實(shí)際上就是為其建立一個(gè)進(jìn)程控制塊。 進(jìn)程控制塊既能標(biāo)識(shí)進(jìn)程的存在,又能刻畫出進(jìn)程的動(dòng)態(tài)特征,它是一個(gè)進(jìn)程僅有的被系統(tǒng)真正感知的部分。對(duì)操作系統(tǒng)而言,所有進(jìn)程控制塊將構(gòu)成并發(fā)執(zhí)行控制和維護(hù)系統(tǒng)工作的依據(jù)。總結(jié)控制塊的作用:51計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念進(jìn)程控制 為了防止操作系統(tǒng)及關(guān)鍵數(shù)據(jù)受到破壞,通常將處理機(jī)的狀態(tài)分為管態(tài)(系統(tǒng)態(tài))和目態(tài)(用戶態(tài))。管態(tài):又叫特權(quán)態(tài)、系統(tǒng)態(tài)或

29、核心態(tài)。CPU在管態(tài)下可以執(zhí)行指令系統(tǒng)的全集。通常,操作系統(tǒng)在管態(tài)下運(yùn)行。目態(tài):又叫常態(tài)或用戶態(tài)。機(jī)器處于目態(tài)時(shí),程序只能執(zhí)行非特權(quán)指令。用戶程序只能在目態(tài)下運(yùn)行,如果用戶程序在目態(tài)下執(zhí)行特權(quán)指令,硬件將發(fā)生中斷,由操作系統(tǒng)獲得控制,特權(quán)指令執(zhí)行被禁止,這樣可以防止用戶程序有意或無意的破壞系統(tǒng)。從目態(tài)轉(zhuǎn)換為管態(tài)的唯一途徑是中斷。52計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念OS內(nèi)核:通常將一些與硬件緊密相關(guān)的模塊(中斷處理程序),各種常用設(shè)備的驅(qū)動(dòng)程序,以及運(yùn)行頻率較高的模塊(時(shí)鐘管理、進(jìn)程調(diào)度)都安排在緊靠硬件的軟件層次中,使它們常駐內(nèi)存,以便提高OS的運(yùn)行效率,并對(duì)它們加以特殊的保護(hù),把這一

30、部分稱為OS內(nèi)核。 OS內(nèi)核通常是運(yùn)行在系統(tǒng)態(tài)的,進(jìn)程控制是由OS內(nèi)核中的原語(yǔ)來實(shí)現(xiàn)的。進(jìn)程控制:進(jìn)程控制的任務(wù)就是為作業(yè)創(chuàng)建進(jìn)程,撤消已結(jié)束的進(jìn)程,以及控制進(jìn)程在運(yùn)行過程中的狀態(tài)轉(zhuǎn)換。53計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念 原語(yǔ) 在操作系統(tǒng)中,某些被進(jìn)程調(diào)用的操作,一旦開始執(zhí)行就不能被中斷,否則就會(huì)出現(xiàn)操作錯(cuò)誤,造成系統(tǒng)混亂。原語(yǔ)就是為實(shí)現(xiàn)這些操作而設(shè)置的。原語(yǔ):系統(tǒng)狀態(tài)下執(zhí)行的某些具有特定功能的程序段。(原語(yǔ)也是由若干條指令構(gòu)成的,用于完成一定功能的過程。原子操作在管態(tài)下執(zhí)行,常駐內(nèi)存。)原語(yǔ)操作:一個(gè)操作中的動(dòng)作要么全做,要么全不做。 在操作系統(tǒng)中,通常把進(jìn)程控制用程序段做成原語(yǔ)。

31、用于進(jìn)程控制的原語(yǔ)有:創(chuàng)建原語(yǔ)、撤銷原語(yǔ)、阻塞原語(yǔ)、喚醒原語(yǔ)等。54計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念進(jìn)程的創(chuàng)建1 進(jìn)程圖:進(jìn)程圖是用來描述進(jìn)程家族關(guān)系的有向樹。 系統(tǒng)初啟時(shí),首先創(chuàng)建一個(gè)系統(tǒng)總控進(jìn)程,再由該總控進(jìn)程創(chuàng)建其他系統(tǒng)進(jìn)程,這些系統(tǒng)進(jìn)程一旦創(chuàng)建便永無休止地參與并發(fā)運(yùn)行,為所有的用戶進(jìn)程提供服務(wù),直至系統(tǒng)終止。55計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念 子進(jìn)程可以繼承父進(jìn)程的所有資源,當(dāng)子進(jìn)程被撤消時(shí),應(yīng)將從父進(jìn)程那里獲得的資源歸還給父進(jìn)程。撤消父進(jìn)程時(shí)也必須同時(shí)撤消其所有的子進(jìn)程。ABCDMEIJHGFLK56計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念2 引起創(chuàng)建進(jìn)程的事件1)

32、 用戶登錄:在分時(shí)系統(tǒng)中,用戶在終端鍵入登錄命令后,若 是合法用戶,系統(tǒng)建立一個(gè)進(jìn)程,并插入就緒隊(duì)列。2) 作業(yè)調(diào)度:批處理系統(tǒng)中,作業(yè)調(diào)度程序調(diào)度到某個(gè)作業(yè)以 后,就把這個(gè)作業(yè)裝入內(nèi)存,并分配必要的資源,創(chuàng)建進(jìn)程,插入就緒隊(duì)列。3) 提供服務(wù):運(yùn)行中的用戶向系統(tǒng)提出請(qǐng)求后,系統(tǒng)專門建立一個(gè)進(jìn)程為用戶服務(wù)。(打印請(qǐng)求)由操作系統(tǒng)核心(系統(tǒng)程序模塊)創(chuàng)建4) 應(yīng)用請(qǐng)求:應(yīng)用進(jìn)程的需要,由它自己創(chuàng)建一個(gè)新進(jìn)程,使新進(jìn)程以并發(fā)運(yùn)行方式完成特定任務(wù)。(輸入數(shù)據(jù)并將處理結(jié)果輸出到表格上)由父進(jìn)程創(chuàng)建 57計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念1 申請(qǐng)空白的PCB為新進(jìn)程分配唯一的數(shù)字標(biāo)識(shí)符,并從PCB

33、集合中索取一個(gè)空白的PCB2 為新建立的進(jìn)程分配資源為新進(jìn)程的程序和數(shù)據(jù),以及用戶棧、分配必要的內(nèi)存空間。3 初始化進(jìn)程控制塊 初始化標(biāo)識(shí)符信息:將系統(tǒng)中分配的標(biāo)識(shí)符、父進(jìn)程標(biāo)識(shí)符填入新PCB中。初始化處理機(jī)狀態(tài)信息。使程序計(jì)數(shù)器指向程序的入口地址,棧指針指向棧頂。 初始化處理機(jī)控制信息:將進(jìn)程的狀態(tài)設(shè)置為就緒狀態(tài)或靜止就緒狀態(tài)。4 將新進(jìn)程插入就緒隊(duì)列3 進(jìn)程的創(chuàng)建過程(creat)58計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念入口查PCB鏈表有同名?將PCB入就緒隊(duì)列 將PCB入總鏈將入口信息填入PCB相應(yīng)項(xiàng)向系統(tǒng)申請(qǐng)一個(gè)空的PCB結(jié)構(gòu)返回出錯(cuò)有創(chuàng)建原語(yǔ)流程圖無有空PCB?出錯(cuò)無有59計(jì)算機(jī)

34、操作系統(tǒng)(第四版)第二章進(jìn)程的概念1 引起進(jìn)程終止的事件1) 正常結(jié)束:計(jì)算機(jī)系統(tǒng)中,都有一個(gè)表示進(jìn)程已經(jīng)運(yùn)行完成的指示。(批處理,Halt。分時(shí)系統(tǒng)中,Logs Off)2) 異常結(jié)束: 越界錯(cuò)誤、保護(hù)錯(cuò)、特權(quán)指令錯(cuò)、 非法指令錯(cuò)、 運(yùn)行超時(shí)、等待超時(shí)、算術(shù)運(yùn)算錯(cuò)、 I/O故障3) 外界干預(yù): 操作員或操作系統(tǒng)干預(yù)、父進(jìn)程請(qǐng)求、父進(jìn)程終止進(jìn)程的終止(撤銷進(jìn)程)60計(jì)算機(jī)操作系統(tǒng)(第四版)第二章進(jìn)程的概念2 進(jìn)程終止過程1 根據(jù)被終止進(jìn)程的標(biāo)識(shí)符,從PCB集合中檢索出該進(jìn)程的PCB,從中讀出該進(jìn)程的狀態(tài)2 若被終止進(jìn)程處于執(zhí)行態(tài),應(yīng)立即終止該進(jìn)程的執(zhí)行,并設(shè)置調(diào)度標(biāo)志為真(用于指示該進(jìn)程被終止時(shí)應(yīng)重新調(diào)度),然后再選擇一個(gè)進(jìn)程,分配處理機(jī)給它。3 如果該進(jìn)程還有子孫進(jìn)程,還應(yīng)將它的所有子孫進(jìn)程終止,以防它們成為不可控的。4 將該進(jìn)程所擁有的全部資源,或者歸還給它的父進(jìn)程,或者歸還給系統(tǒng)。5 將被終止進(jìn)程(PCB)從所在隊(duì)列(鏈表)中移出。61計(jì)算機(jī)操作系統(tǒng)(第

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論