第2章進程的描述與控制_第1頁
第2章進程的描述與控制_第2頁
第2章進程的描述與控制_第3頁
第2章進程的描述與控制_第4頁
第2章進程的描述與控制_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 操作系統(tǒng) 第二章 進程的描述與控制1第二章第二章 進程的描述與控制進程的描述與控制進程通信進程通信 進程同步進程同步線程線程進程互進程互斥斥程序的執(zhí)行及其特征程序的執(zhí)行及其特征進程的描述進程的描述進程控制進程控制經(jīng)典進程的同步問題經(jīng)典進程的同步問題 操作系統(tǒng) 第二章 進程的描述與控制22.1 2.1 程序的執(zhí)行及其特征程序的執(zhí)行及其特征 讓多個作業(yè)同時裝入一個計算機系統(tǒng)的讓多個作業(yè)同時裝入一個計算機系統(tǒng)的主存儲器主存儲器中,中,并且同時處于運行狀態(tài),共享系統(tǒng)中的各種軟、硬件資并且同時處于運行狀態(tài),共享系統(tǒng)中的各種軟、硬件資源,交替占用處理機運行。這種軟件設(shè)計技術(shù)稱源,交替占用處理機運行。這種

2、軟件設(shè)計技術(shù)稱“多道多道程序設(shè)計程序設(shè)計”,這種計算機系統(tǒng)稱,這種計算機系統(tǒng)稱“多道程序系統(tǒng)多道程序系統(tǒng)”。 一個程序通常由若干個程序段所組成,它們必須按一個程序通常由若干個程序段所組成,它們必須按照程序規(guī)定的先后次序來執(zhí)行,只有在前一個操作結(jié)束照程序規(guī)定的先后次序來執(zhí)行,只有在前一個操作結(jié)束之后才能開始后繼操作,這就是程序的順序執(zhí)行。之后才能開始后繼操作,這就是程序的順序執(zhí)行。一、程序的順序執(zhí)行一、程序的順序執(zhí)行程序:程序:是具有特定功能的一組指令是具有特定功能的一組指令( (或一組語句或一組語句) )的集合,的集合,它指出了處理器執(zhí)行它指出了處理器執(zhí)行操作操作的步驟。的步驟。 操作系統(tǒng) 第

3、二章 進程的描述與控制3 例如,在處理一個作業(yè)時,總是先輸入用戶的程序和例如,在處理一個作業(yè)時,總是先輸入用戶的程序和數(shù)據(jù),然后進行計算,最后將結(jié)果打印出來,它們分別由數(shù)據(jù),然后進行計算,最后將結(jié)果打印出來,它們分別由三個相對獨立的程序段(操作)三個相對獨立的程序段(操作)I I1 1,C C1 1,P P1 1組成。這三個程組成。這三個程序段的執(zhí)行只能是一個一個地順序執(zhí)行,以保證前一個程序段的執(zhí)行只能是一個一個地順序執(zhí)行,以保證前一個程序段操作的結(jié)果可被后一個操作所利用。序段操作的結(jié)果可被后一個操作所利用。程序段的執(zhí)行順序如下。程序段的執(zhí)行順序如下。 作作 業(yè)業(yè) 1 作作 業(yè)業(yè) 2程序段順序

4、執(zhí)行的有向圖程序段順序執(zhí)行的有向圖(前趨圖)(前趨圖) 操作系統(tǒng) 第二章 進程的描述與控制4程序順序執(zhí)行時的特征程序順序執(zhí)行時的特征1 1)順序性)順序性 處理機的操作嚴格按照程序所規(guī)定的順序執(zhí)處理機的操作嚴格按照程序所規(guī)定的順序執(zhí)行,即每一操作必須在下一操作開始之前結(jié)束。行,即每一操作必須在下一操作開始之前結(jié)束。2 2)封閉性)封閉性 程序是在封閉的環(huán)境下執(zhí)行的。即程序運行程序是在封閉的環(huán)境下執(zhí)行的。即程序運行時獨占全機資源,資源的狀態(tài)時獨占全機資源,資源的狀態(tài)( (除初始狀態(tài)外除初始狀態(tài)外) )只有本程只有本程序才能改變。程序一旦開始運行,其執(zhí)行結(jié)果不受外界序才能改變。程序一旦開始運行,其

5、執(zhí)行結(jié)果不受外界因素的影響。因素的影響。3 3)可再現(xiàn)性)可再現(xiàn)性 只要程序執(zhí)行時的環(huán)境和初始條件相同,只要程序執(zhí)行時的環(huán)境和初始條件相同,當(dāng)程序重復(fù)執(zhí)行時,不論它是從頭到尾不停頓地執(zhí)行,當(dāng)程序重復(fù)執(zhí)行時,不論它是從頭到尾不停頓地執(zhí)行,還是還是“停停走走停停走走”地執(zhí)行,都將獲得相同的結(jié)果。地執(zhí)行,都將獲得相同的結(jié)果。 操作系統(tǒng) 第二章 進程的描述與控制5程序段并發(fā)執(zhí)行的有向圖程序段并發(fā)執(zhí)行的有向圖(前趨圖)(前趨圖) 下圖給出了系統(tǒng)對一批作業(yè)進行處理時,輸入操作、下圖給出了系統(tǒng)對一批作業(yè)進行處理時,輸入操作、計算操作和打印操作各程序段執(zhí)行的先后次序。計算操作和打印操作各程序段執(zhí)行的先后次序。

6、 二、程序的并發(fā)執(zhí)行二、程序的并發(fā)執(zhí)行并發(fā)并發(fā) 操作系統(tǒng) 第二章 進程的描述與控制6程序的并發(fā)執(zhí)行:程序的并發(fā)執(zhí)行:若干程序段同時在系統(tǒng)中運行,這些若干程序段同時在系統(tǒng)中運行,這些程序程序段的執(zhí)行在時間上是重疊的段的執(zhí)行在時間上是重疊的,即:,即:一個程序段的執(zhí)行還沒結(jié)一個程序段的執(zhí)行還沒結(jié)束,另一個程序段的執(zhí)行已經(jīng)開始束,另一個程序段的執(zhí)行已經(jīng)開始??梢杂谜Z句記號表示:可以用語句記號表示: cobegin cobegin S S1 1;S;S2 2;.S;.Sn n coend coend從圖上中可以看出從圖上中可以看出: : 有的程序段的執(zhí)行是有先后次序的。有的程序段的執(zhí)行是有先后次序的。

7、 有的程序段的執(zhí)行是可以重疊的。有的程序段的執(zhí)行是可以重疊的。 操作系統(tǒng) 第二章 進程的描述與控制7程序并發(fā)執(zhí)行時的特征程序并發(fā)執(zhí)行時的特征1. 1. 失去了程序的封閉性和可再現(xiàn)性失去了程序的封閉性和可再現(xiàn)性例如:例如:某交通路口設(shè)置了一個自動計數(shù)系統(tǒng),該系統(tǒng)由觀某交通路口設(shè)置了一個自動計數(shù)系統(tǒng),該系統(tǒng)由觀察者和報告者共同組成。察者和報告者共同組成。觀察到一輛卡車觀察到一輛卡車將計數(shù)值累加將計數(shù)值累加1 1 將 計 數(shù) 值 清將 計 數(shù) 值 清“0”0”輸出計數(shù)值輸出計數(shù)值 交通路口自動計數(shù)系統(tǒng)交通路口自動計數(shù)系統(tǒng) 操作系統(tǒng) 第二章 進程的描述與控制8integer Ninteger N; N

8、:=0N:=0; cobegincobegin Procedure Procedure 觀察者觀察者 beginbegin L1 L1:觀察到一輛卡車;:觀察到一輛卡車; N=:N+1N=:N+1; goto L1;goto L1; end end Procedure Procedure 報告者報告者 beginbegin L2 L2:print Nprint N; N:=0N:=0; goto L2;goto L2; end end coend coend 由于觀察者和報告者程序可以并由于觀察者和報告者程序可以并發(fā)執(zhí)行,它們并發(fā)執(zhí)行時可能有如下發(fā)執(zhí)行,它們并發(fā)執(zhí)行時可能有如下兩種情況:兩種情

9、況:1)1)報告者執(zhí)行時無卡車通過。報告者執(zhí)行時無卡車通過。2)2)報告者執(zhí)行時有卡車通過。報告者執(zhí)行時有卡車通過。 設(shè)某時刻設(shè)某時刻N N的當(dāng)前值為的當(dāng)前值為m m,可能,可能出現(xiàn)的情況和結(jié)果:出現(xiàn)的情況和結(jié)果:情況:情況: (1 1)a a (1 1)b b (2 2)之前通過之前通過 之后通過之后通過 之中通過之中通過結(jié)果:結(jié)果: m+1 m mm+1 m m當(dāng)前的當(dāng)前的N N值:值: 0 1 00 1 0 操作系統(tǒng) 第二章 進程的描述與控制92.2. 程序與它的執(zhí)行過程不再一一對應(yīng)程序與它的執(zhí)行過程不再一一對應(yīng)3.3. 并發(fā)程序之間的相互制約性并發(fā)程序之間的相互制約性間斷性間斷性 當(dāng)具

10、有有一定的邏輯關(guān)系的各程序(或程序段)之間當(dāng)具有有一定的邏輯關(guān)系的各程序(或程序段)之間需要需要相互合作來完成同一任務(wù)相互合作來完成同一任務(wù)時,它們之間具有時,它們之間具有直接的相直接的相互制約關(guān)系互制約關(guān)系。 并發(fā)程序(或程序段)之間由于并發(fā)程序(或程序段)之間由于共享資源共享資源而競爭同一而競爭同一資源時,致使并發(fā)程序(或程序段)之間形成了資源時,致使并發(fā)程序(或程序段)之間形成了間接的相間接的相互制約關(guān)系互制約關(guān)系。 編譯程序編譯程序 user1.c user2.c 操作系統(tǒng) 第二章 進程的描述與控制10例如:例如: 由于程序活動之間的相互依賴和相互制約,這就使得程由于程序活動之間的相互

11、依賴和相互制約,這就使得程序的活動與它的運行環(huán)境密切相關(guān),并呈現(xiàn):序的活動與它的運行環(huán)境密切相關(guān),并呈現(xiàn):執(zhí)行執(zhí)行暫停暫停執(zhí)行執(zhí)行”的活動規(guī)律。的活動規(guī)律。程序段并發(fā)執(zhí)行的有向圖程序段并發(fā)執(zhí)行的有向圖(前趨圖)(前趨圖) 操作系統(tǒng) 第二章 進程的描述與控制11一、進程的定義和特征一、進程的定義和特征 在多道程序工作的環(huán)境下,各個程序是并發(fā)執(zhí)行的,在多道程序工作的環(huán)境下,各個程序是并發(fā)執(zhí)行的,它們共享系統(tǒng)資源,共同決定這些資源的狀態(tài)。它們共享系統(tǒng)資源,共同決定這些資源的狀態(tài)。 在這種情況下,在這種情況下,使用程序這個傳統(tǒng)的靜態(tài)的概念已經(jīng)使用程序這個傳統(tǒng)的靜態(tài)的概念已經(jīng)無法描述并發(fā)活動的特性、規(guī)律

12、和變化。無法描述并發(fā)活動的特性、規(guī)律和變化。也就是說,用程也就是說,用程序作為描述序作為描述并發(fā)活動并發(fā)活動的執(zhí)行過程以及管理共享資源的的執(zhí)行過程以及管理共享資源的基本基本單位單位是不合適的。為此,人們引入了新的概念是不合適的。為此,人們引入了新的概念進程進程,以便從變化的角度,動態(tài)地分析、研究并發(fā)程序的活動。以便從變化的角度,動態(tài)地分析、研究并發(fā)程序的活動。 進程是操作系統(tǒng)中的一個最基本、最重要的概念,但進程是操作系統(tǒng)中的一個最基本、最重要的概念,但是迄今為止,對這一概念還沒有形成一個非常確切的、統(tǒng)是迄今為止,對這一概念還沒有形成一個非常確切的、統(tǒng)一的定義,通常是從不同的角度描述它的各個基本

13、特征。一的定義,通常是從不同的角度描述它的各個基本特征。 2.2 2.2 進程的描述進程的描述 操作系統(tǒng) 第二章 進程的描述與控制12從不同角度定義的進程:從不同角度定義的進程:(1)(1) 進程是程序的一次執(zhí)行,亦即進程是在指定內(nèi)存區(qū)域進程是程序的一次執(zhí)行,亦即進程是在指定內(nèi)存區(qū)域中的一組指令序列的執(zhí)行過程。中的一組指令序列的執(zhí)行過程。(2)(2) 進程是可以和別的計算并發(fā)執(zhí)行的計算。進程是可以和別的計算并發(fā)執(zhí)行的計算。(3)(3) 進程可定義為一個數(shù)據(jù)結(jié)構(gòu)和能在其上進行操作的進程可定義為一個數(shù)據(jù)結(jié)構(gòu)和能在其上進行操作的一個程序。一個程序。(4)(4) 進程是程序在一個數(shù)據(jù)集合上運行的過程,

14、它是系進程是程序在一個數(shù)據(jù)集合上運行的過程,它是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。統(tǒng)進行資源分配和調(diào)度的一個獨立單位。 1. 1. 進程的定義:進程的定義:進程是一個程序?qū)δ硞€數(shù)據(jù)集在處理機上的執(zhí)行過程,進程是一個程序?qū)δ硞€數(shù)據(jù)集在處理機上的執(zhí)行過程,是系統(tǒng)進行資源分配和處理機調(diào)度的基本單位。是系統(tǒng)進行資源分配和處理機調(diào)度的基本單位。 操作系統(tǒng) 第二章 進程的描述與控制13進程與程序的區(qū)別:進程與程序的區(qū)別:1)1)進程是一次運行的過程,屬于一種動態(tài)的概念;進程是一次運行的過程,屬于一種動態(tài)的概念;而程序是而程序是指令的集合,是一個靜態(tài)的概念。指令的集合,是一個靜態(tài)的概念。5)5)一個進程

15、可以包含幾個程序一個進程可以包含幾個程序 ;一個程序也可以對應(yīng)多個一個程序也可以對應(yīng)多個進程。進程。當(dāng)當(dāng)同一程序同一程序同時運行于若干個同時運行于若干個不同的數(shù)據(jù)集合不同的數(shù)據(jù)集合上時,上時,它將屬于若干個它將屬于若干個不同的進程不同的進程。3)3)進程是有生命期的;進程是有生命期的;而程序是永久的。而程序是永久的。2)2)進程可以并發(fā)執(zhí)行;進程可以并發(fā)執(zhí)行;而程序不能。而程序不能。4)4)進程是系統(tǒng)資源分配的基本單位,進程是系統(tǒng)資源分配的基本單位,而程序則不行。而程序則不行。 編譯程序編譯程序 user1.c user2.c 操作系統(tǒng) 第二章 進程的描述與控制142. 2. 進程的特征:進程

16、的特征:1 1)動態(tài)性。)動態(tài)性。進程具有一定的生命期,是動態(tài)地產(chǎn)生、變進程具有一定的生命期,是動態(tài)地產(chǎn)生、變化和消亡的。動態(tài)性是進程最本質(zhì)的特征?;拖龅摹討B(tài)性是進程最本質(zhì)的特征。2 2)并發(fā)性。)并發(fā)性。進程之間的活動在時間上可以重疊。進程之間的活動在時間上可以重疊。引入進程的目的引入進程的目的正是為了使其程序能和其它程序并發(fā)執(zhí)行,正是為了使其程序能和其它程序并發(fā)執(zhí)行,以提高系統(tǒng)資源利用率。以提高系統(tǒng)資源利用率。3 3)獨立性。)獨立性。進程是一個能獨立運行的基本單位同時也進程是一個能獨立運行的基本單位同時也是系統(tǒng)分配資源和調(diào)度的是系統(tǒng)分配資源和調(diào)度的獨立單位獨立單位。4 4)異步性。

17、)異步性。由于進程間的相互制約,使進程具有執(zhí)行的由于進程間的相互制約,使進程具有執(zhí)行的間斷性。即進程按各自獨立的、不可預(yù)知的速度向前推進。間斷性。即進程按各自獨立的、不可預(yù)知的速度向前推進。 操作系統(tǒng) 第二章 進程的描述與控制15PCB1共共享享 程程 序序 數(shù)數(shù) 據(jù)據(jù) 1PCB2 數(shù)數(shù)據(jù)據(jù) 2(c). .進程實體的組成進程實體的組成一個進程通常由三部分組成:程序段、相關(guān)的數(shù)據(jù)段和進程一個進程通常由三部分組成:程序段、相關(guān)的數(shù)據(jù)段和進程控制塊(控制塊(PCBPCB)。)。進程控制塊(進程控制塊(PCBPCB)是進程的一個運行情況的登記表。系統(tǒng)是進程的一個運行情況的登記表。系統(tǒng)利用利用PCBPC

18、B來描述進程的基本情況和活動過程,進而控制和管來描述進程的基本情況和活動過程,進而控制和管理進程。理進程。 程程 序序 數(shù)數(shù) 據(jù)據(jù)PCB(a)PCB 程程 序序 數(shù)數(shù) 據(jù)據(jù)(b) 操作系統(tǒng) 第二章 進程的描述與控制16進程的基本狀態(tài)進程的基本狀態(tài) 在操作系統(tǒng)中,進程至少要有三種基本狀態(tài):運行在操作系統(tǒng)中,進程至少要有三種基本狀態(tài):運行狀態(tài),就緒狀態(tài)和等待狀態(tài)。狀態(tài),就緒狀態(tài)和等待狀態(tài)。二二、進程的狀態(tài)及其轉(zhuǎn)換進程的狀態(tài)及其轉(zhuǎn)換) ) 運行狀態(tài)。運行狀態(tài)。當(dāng)一個進程已獲得必要的資源,并占有當(dāng)一個進程已獲得必要的資源,并占有中央處理機執(zhí)行時進程所處的狀態(tài)。中央處理機執(zhí)行時進程所處的狀態(tài)。 在單處理

19、機系統(tǒng)中,任一時刻,處于運行狀態(tài)的進在單處理機系統(tǒng)中,任一時刻,處于運行狀態(tài)的進程只能有一個。程只能有一個。 操作系統(tǒng) 第二章 進程的描述與控制173) 3) 等待狀態(tài)等待狀態(tài)( (阻塞狀態(tài),封鎖狀態(tài),睡眠狀態(tài)阻塞狀態(tài),封鎖狀態(tài),睡眠狀態(tài)) )。正在執(zhí)正在執(zhí)行的進程,由于發(fā)生某事件(如等待輸入行的進程,由于發(fā)生某事件(如等待輸入/ /輸出完成)而輸出完成)而暫時無法執(zhí)行下去時,便放棄處理機,此時進程所處的暫時無法執(zhí)行下去時,便放棄處理機,此時進程所處的狀態(tài)。狀態(tài)。引起進程等待的事件有:引起進程等待的事件有:請求請求I/OI/O、申請緩沖區(qū)、等待、申請緩沖區(qū)、等待信件(信號)等等。處于等待狀態(tài)的

20、進程本身不具備運信件(信號)等等。處于等待狀態(tài)的進程本身不具備運行條件,即使分配給它處理機也不能運行。行條件,即使分配給它處理機也不能運行。) ) 就緒狀態(tài)。就緒狀態(tài)。進程等待分配處理機時所處的狀態(tài)。進程等待分配處理機時所處的狀態(tài)。 進程已獲得了除中央處理機以外的所有資源,具備進程已獲得了除中央處理機以外的所有資源,具備了運行條件,只因處理機被其它進程占用而不能執(zhí)行,了運行條件,只因處理機被其它進程占用而不能執(zhí)行,一旦獲得處理機,便可立即執(zhí)行。一旦獲得處理機,便可立即執(zhí)行。 操作系統(tǒng) 第二章 進程的描述與控制18. .進程基本狀態(tài)的轉(zhuǎn)換及其轉(zhuǎn)換的原因進程基本狀態(tài)的轉(zhuǎn)換及其轉(zhuǎn)換的原因1 1)就緒

21、)就緒-運行:運行:對就緒狀態(tài)的進程,當(dāng)對就緒狀態(tài)的進程,當(dāng)進程調(diào)度程進程調(diào)度程序序按一種選定的策略從中按一種選定的策略從中選中一個就緒進程選中一個就緒進程,為之,為之分分配了處理機配了處理機后,該進程便由就緒狀態(tài)變?yōu)閳?zhí)行狀態(tài);后,該進程便由就緒狀態(tài)變?yōu)閳?zhí)行狀態(tài);進程調(diào)度進程調(diào)度運行運行就緒就緒等待等待 進程的基本狀態(tài)及其轉(zhuǎn)換進程的基本狀態(tài)及其轉(zhuǎn)換 操作系統(tǒng) 第二章 進程的描述與控制192 2)運行)運行-等待:等待:正在執(zhí)行的進程正在執(zhí)行的進程因發(fā)生某等待事件因發(fā)生某等待事件而無法而無法執(zhí)行,則進程由執(zhí)行狀態(tài)變?yōu)榈却隣顟B(tài),如:進程提出輸入執(zhí)行,則進程由執(zhí)行狀態(tài)變?yōu)榈却隣顟B(tài),如:進程提出輸入/

22、 /輸出請求而變成等待外部設(shè)備傳輸信息的狀態(tài),進程申請資輸出請求而變成等待外部設(shè)備傳輸信息的狀態(tài),進程申請資源(主存空間或外部設(shè)備)得不到滿足時變成等待資源狀態(tài),源(主存空間或外部設(shè)備)得不到滿足時變成等待資源狀態(tài),進程運行中出現(xiàn)了故障(程序出錯或主存儲器讀寫錯等)變進程運行中出現(xiàn)了故障(程序出錯或主存儲器讀寫錯等)變成等待干預(yù)狀態(tài)等等;成等待干預(yù)狀態(tài)等等; 等待某事件發(fā)生等待某事件發(fā)生而阻塞而阻塞運行運行就緒就緒等待等待進程調(diào)度進程調(diào)度 進程的基本狀態(tài)及其轉(zhuǎn)換進程的基本狀態(tài)及其轉(zhuǎn)換 操作系統(tǒng) 第二章 進程的描述與控制203 3)等待)等待-就緒就緒:處于等待狀態(tài)的進程,在其:處于等待狀態(tài)的進

23、程,在其等待的事件已等待的事件已經(jīng)完成經(jīng)完成,如輸入,如輸入/ /輸出完成,資源得到滿足或錯誤處理完畢時,輸出完成,資源得到滿足或錯誤處理完畢時,處于等待狀態(tài)的進程并不馬上轉(zhuǎn)入執(zhí)行狀態(tài),而是先轉(zhuǎn)入就處于等待狀態(tài)的進程并不馬上轉(zhuǎn)入執(zhí)行狀態(tài),而是先轉(zhuǎn)入就緒狀態(tài),然后再由系統(tǒng)進程調(diào)度程序在適當(dāng)?shù)臅r候?qū)⒃撨M程緒狀態(tài),然后再由系統(tǒng)進程調(diào)度程序在適當(dāng)?shù)臅r候?qū)⒃撨M程轉(zhuǎn)為執(zhí)行狀態(tài);轉(zhuǎn)為執(zhí)行狀態(tài); 所等待的事件發(fā)生所等待的事件發(fā)生而喚醒而喚醒運行運行就緒就緒等待等待進程調(diào)度進程調(diào)度等待某事件發(fā)生等待某事件發(fā)生而阻塞而阻塞 進程的基本狀態(tài)及其轉(zhuǎn)換進程的基本狀態(tài)及其轉(zhuǎn)換 操作系統(tǒng) 第二章 進程的描述與控制214 4

24、)執(zhí)行)執(zhí)行-就緒:就緒:正在執(zhí)行的進程,因正在執(zhí)行的進程,因時間片用完時間片用完而被暫停而被暫停執(zhí)行,或在執(zhí)行,或在采用搶先式優(yōu)先級調(diào)度算法的系統(tǒng)采用搶先式優(yōu)先級調(diào)度算法的系統(tǒng)中中, ,當(dāng)當(dāng)有更高優(yōu)有更高優(yōu)先級的進程要運行先級的進程要運行而被迫讓出處理機時,該進程便由執(zhí)行狀而被迫讓出處理機時,該進程便由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)榫途w狀態(tài)。態(tài)轉(zhuǎn)變?yōu)榫途w狀態(tài)。時間片到時間片到運行運行就緒就緒等待等待進程調(diào)度進程調(diào)度等待某事件發(fā)生等待某事件發(fā)生所等待的事件發(fā)生所等待的事件發(fā)生而阻塞而阻塞而喚醒而喚醒 進程的基本狀態(tài)及其轉(zhuǎn)換進程的基本狀態(tài)及其轉(zhuǎn)換任務(wù)開始任務(wù)開始任務(wù)結(jié)束任務(wù)結(jié)束 操作系統(tǒng) 第二章 進程的描述與控

25、制22進程狀態(tài)的擴展及其轉(zhuǎn)換進程狀態(tài)的擴展及其轉(zhuǎn)換1) 1) 創(chuàng)建狀態(tài)創(chuàng)建狀態(tài)正在創(chuàng)建過程中的進程,創(chuàng)建過程尚未完成,進程正在創(chuàng)建過程中的進程,創(chuàng)建過程尚未完成,進程還不能被調(diào)度運行,于是把此時進程所處的狀態(tài)稱為創(chuàng)還不能被調(diào)度運行,于是把此時進程所處的狀態(tài)稱為創(chuàng)建狀態(tài)。建狀態(tài)。2) 2) 終止狀態(tài)終止狀態(tài)進程由于各種原因終止運行,等待操作系統(tǒng)進行善進程由于各種原因終止運行,等待操作系統(tǒng)進行善后處理時所處的狀態(tài)。后處理時所處的狀態(tài)。 進入終止態(tài)的進程以后不能再執(zhí)行,但在操作系統(tǒng)進入終止態(tài)的進程以后不能再執(zhí)行,但在操作系統(tǒng)中依然保留一個記錄。中依然保留一個記錄。 操作系統(tǒng) 第二章 進程的描述與控制

26、23時間片到時間片到運行運行就緒就緒等待等待進程調(diào)度進程調(diào)度等待某事件發(fā)生等待某事件發(fā)生而阻塞而阻塞所等待的事件發(fā)生所等待的事件發(fā)生而喚醒而喚醒 進程狀態(tài)的擴展及其轉(zhuǎn)換進程狀態(tài)的擴展及其轉(zhuǎn)換創(chuàng)建創(chuàng)建終止終止許可許可終止終止 操作系統(tǒng) 第二章 進程的描述與控制243) 3) 掛起操作和激活操作的引入掛起操作和激活操作的引入引入掛起操作的原因,是基于系統(tǒng)和用戶的如下需要:引入掛起操作的原因,是基于系統(tǒng)和用戶的如下需要:(1) (1) 終端用戶的需要。終端用戶的需要。(2) (2) 父進程請求。父進程請求。 (3) (3) 負荷調(diào)節(jié)的需要。負荷調(diào)節(jié)的需要。 (4) (4) 操作系統(tǒng)的需要。操作系統(tǒng)的

27、需要。 進程將可能發(fā)生以下幾種狀態(tài)的轉(zhuǎn)換:進程將可能發(fā)生以下幾種狀態(tài)的轉(zhuǎn)換:(1) (1) 活動就緒活動就緒靜止就緒。靜止就緒。(2) (2) 活動阻塞活動阻塞靜止阻塞。靜止阻塞。(3) (3) 靜止就緒靜止就緒活動就緒?;顒泳途w。(4) (4) 靜止阻塞靜止阻塞活動阻塞?;顒幼枞?操作系統(tǒng) 第二章 進程的描述與控制25時間片到時間片到運行運行就緒就緒等待等待進程調(diào)度進程調(diào)度等待某事件發(fā)生等待某事件發(fā)生而阻塞而阻塞所等待的事件發(fā)生所等待的事件發(fā)生而喚醒而喚醒 進程狀態(tài)的擴展及其轉(zhuǎn)換進程狀態(tài)的擴展及其轉(zhuǎn)換 外存外存 內(nèi)存內(nèi)存就緒就緒等待等待所等待的事件發(fā)生所等待的事件發(fā)生而喚醒而喚醒換出換出換

28、出換出換進換進換進換進創(chuàng)建創(chuàng)建終止終止許可許可掛起掛起許可許可終止終止 操作系統(tǒng) 第二章 進程的描述與控制26三、進程管理中的數(shù)據(jù)結(jié)構(gòu)三、進程管理中的數(shù)據(jù)結(jié)構(gòu)1. 1. 操作系統(tǒng)中用于管理控制的數(shù)據(jù)結(jié)構(gòu)操作系統(tǒng)中用于管理控制的數(shù)據(jù)結(jié)構(gòu) 在計算機系統(tǒng)中,對于每個資源和每個進程都設(shè)在計算機系統(tǒng)中,對于每個資源和每個進程都設(shè)置了一個數(shù)據(jù)結(jié)構(gòu),用于表征其實體,我們稱之為資置了一個數(shù)據(jù)結(jié)構(gòu),用于表征其實體,我們稱之為資源信息表或進程信息表,其中包含了資源或進程的標源信息表或進程信息表,其中包含了資源或進程的標識、描述、狀態(tài)等信息以及一批指針。識、描述、狀態(tài)等信息以及一批指針。OSOS管理的這些數(shù)據(jù)結(jié)構(gòu)一

29、般分為以下四類:管理的這些數(shù)據(jù)結(jié)構(gòu)一般分為以下四類:內(nèi)存表、設(shè)備表、文件表和用于進程管理的進程表,內(nèi)存表、設(shè)備表、文件表和用于進程管理的進程表,通常進程表又被稱為進程控制塊通常進程表又被稱為進程控制塊PCBPCB。 操作系統(tǒng) 第二章 進程的描述與控制27操作系統(tǒng)控制表的一般結(jié)構(gòu)操作系統(tǒng)控制表的一般結(jié)構(gòu)n圖2-9 操作系統(tǒng)控制表的一般結(jié)構(gòu) 操作系統(tǒng) 第二章 進程的描述與控制28 進程是動態(tài)的,為了記錄進程的情況以及控制進程進程是動態(tài)的,為了記錄進程的情況以及控制進程的運行,系統(tǒng)為每一個進程設(shè)置了一個數(shù)據(jù)結(jié)構(gòu)的運行,系統(tǒng)為每一個進程設(shè)置了一個數(shù)據(jù)結(jié)構(gòu)進進程控制塊程控制塊(PCB)(PCB)。 系統(tǒng)

30、根據(jù)系統(tǒng)根據(jù)PCBPCB而感知進程的存在,通過而感知進程的存在,通過PCBPCB對進程進對進程進行管理,行管理,PCBPCB是進程存在的惟一標志是進程存在的惟一標志。 當(dāng)系統(tǒng)創(chuàng)建一個進程時,必須為它設(shè)置一個當(dāng)系統(tǒng)創(chuàng)建一個進程時,必須為它設(shè)置一個PCBPCB,在進程的生命期內(nèi),系統(tǒng)利用在進程的生命期內(nèi),系統(tǒng)利用PCBPCB對進程實施控制管理,對進程實施控制管理,進程運行結(jié)束后,系統(tǒng)要收回它的進程運行結(jié)束后,系統(tǒng)要收回它的PCBPCB,進程也隨之消,進程也隨之消亡。亡。2.2.進程控制塊進程控制塊(PCB)(PCB)及其作用:及其作用: 操作系統(tǒng) 第二章 進程的描述與控制293 3進程控制塊(進程

31、控制塊(PCBPCB)的內(nèi)容)的內(nèi)容: :1)1)描述信息(進程標識符)描述信息(進程標識符) 進程標識(內(nèi)、外部)符進程標識(內(nèi)、外部)符, ,用戶名用戶名, ,家族關(guān)系家族關(guān)系2)2)調(diào)度控制信息(進程調(diào)度信息)調(diào)度控制信息(進程調(diào)度信息) 進程當(dāng)前狀態(tài)進程當(dāng)前狀態(tài), ,進程優(yōu)先級進程優(yōu)先級, , 各種計時信息各種計時信息, , 阻塞的阻塞的原因原因3)3)資源管理信息(進程控制信息)資源管理信息(進程控制信息) 程序起始地址程序起始地址, ,通信信息,占用內(nèi)存大小通信信息,占用內(nèi)存大小, ,占用外設(shè)占用外設(shè)情況情況, ,指向文件系統(tǒng)的指針指向文件系統(tǒng)的指針4) CPU4) CPU現(xiàn)場保護

32、區(qū)(處理機狀態(tài))現(xiàn)場保護區(qū)(處理機狀態(tài)) 處理機的上、下文處理機的上、下文 操作系統(tǒng) 第二章 進程的描述與控制304.4.進程控制塊的組織方式:進程控制塊的組織方式:為了能對為了能對PCBPCB加以有效的管理,系統(tǒng)用適當(dāng)?shù)姆绞綄⑦@些加以有效的管理,系統(tǒng)用適當(dāng)?shù)姆绞綄⑦@些PCBPCB組織起來。目前常用的組織方式有以下三種。組織起來。目前常用的組織方式有以下三種。PCBPCB線性表示意圖線性表示意圖 (1 1)線性表方式)線性表方式將系統(tǒng)中所有的將系統(tǒng)中所有的PCBPCB都組織在一都組織在一張線性表中,將該表的首地址張線性表中,將該表的首地址存放在內(nèi)存的一個專用區(qū)域中。存放在內(nèi)存的一個專用區(qū)域中。

33、該方式實現(xiàn)簡單、開銷小,但該方式實現(xiàn)簡單、開銷小,但每次查找時都需要掃描整張表,每次查找時都需要掃描整張表,因此適合進程數(shù)目不多的系統(tǒng)。因此適合進程數(shù)目不多的系統(tǒng)。 操作系統(tǒng) 第二章 進程的描述與控制31即把具有相同狀態(tài)進程的即把具有相同狀態(tài)進程的PCBPCB分別通過分別通過PCBPCB中的鏈接字中的鏈接字鏈接成一個隊列。這樣,可以形成就緒隊列、若干個鏈接成一個隊列。這樣,可以形成就緒隊列、若干個阻塞隊列和空白隊列等。阻塞隊列和空白隊列等。(2 2)鏈表(進程隊列)方式)鏈表(進程隊列)方式 操作系統(tǒng) 第二章 進程的描述與控制32(2 2)鏈表(進程隊列)方式)鏈表(進程隊列)方式PCB14P

34、CB2PCB3PCB4PCB5PCB6PCB7PCB8PCB93087901執(zhí) 行 指 針就 緒 隊 列 指 針阻 塞 隊 列 指 針空 閑 隊 列 指 針 PCB PCB鏈接隊列示意圖鏈接隊列示意圖 操作系統(tǒng) 第二章 進程的描述與控制33(3)索引表方式系統(tǒng)根據(jù)所有進程狀態(tài)的不同,建立幾張索引表,并把系統(tǒng)根據(jù)所有進程狀態(tài)的不同,建立幾張索引表,并把各索引表在內(nèi)存的首地址記錄在內(nèi)存的一些專用單元中。各索引表在內(nèi)存的首地址記錄在內(nèi)存的一些專用單元中。執(zhí)行指針就緒索引表PCB1PCB2PCB3PCB4PCB5PCB6PCB7阻塞索引表就緒表指針阻塞表指針按索引方式組織按索引方式組織PCB 操作系統(tǒng)

35、 第二章 進程的描述與控制342.3 2.3 進程控制進程控制 處理機的工作狀態(tài):處理機的工作狀態(tài):(1) (1) 系統(tǒng)態(tài)(核心態(tài)、管態(tài))系統(tǒng)態(tài)(核心態(tài)、管態(tài))(2) (2) 用戶態(tài)(目態(tài))用戶態(tài)(目態(tài))一一、操作系統(tǒng)內(nèi)核操作系統(tǒng)內(nèi)核 進程控制的職責(zé)是對系統(tǒng)中的全部進程實施有效的進程控制的職責(zé)是對系統(tǒng)中的全部進程實施有效的管理,包括:進程的管理,包括:進程的創(chuàng)建創(chuàng)建、撤銷撤銷,以及,以及阻塞阻塞、喚醒喚醒、掛掛起起、激活激活時進程轉(zhuǎn)汰的轉(zhuǎn)換,它是處理機管理的一部分。時進程轉(zhuǎn)汰的轉(zhuǎn)換,它是處理機管理的一部分。進程控制一般由內(nèi)核中的進程控制一般由內(nèi)核中的原語原語來實現(xiàn)。來實現(xiàn)。 操作系統(tǒng) 第二章

36、進程的描述與控制351. 1. 支撐功能支撐功能(1) (1) 中斷處理。中斷處理。(2) (2) 時鐘管理。時鐘管理。(3) (3) 原語操作。原語操作。2. 2. 資源管理功能資源管理功能(1) (1) 進程(處理機)管理。進程(處理機)管理。(2) (2) 存儲器管理。存儲器管理。(3) (3) 設(shè)備管理。設(shè)備管理。 一一、操作系統(tǒng)內(nèi)核操作系統(tǒng)內(nèi)核 操作系統(tǒng) 第二章 進程的描述與控制36原語:原語:是機器指令的延伸,是由若干條機器指令構(gòu)成的,是機器指令的延伸,是由若干條機器指令構(gòu)成的,用以用以完成操作系統(tǒng)特定功能的程序段完成操作系統(tǒng)特定功能的程序段。為保證原語操作。為保證原語操作的正確性

37、,的正確性,原語在執(zhí)行期間是不可分割原語在執(zhí)行期間是不可分割( (被中斷被中斷) )的。的。進程控制原語:進程控制原語:進程創(chuàng)建原語,進程撤消原語,進程阻進程創(chuàng)建原語,進程撤消原語,進程阻塞原語,進程喚醒原語塞原語,進程喚醒原語, ,進程掛起原語進程掛起原語, ,進程激活原語。進程激活原語。二、進程創(chuàng)建二、進程創(chuàng)建 一個進程可以通過創(chuàng)建原語來產(chǎn)生一個新進程。創(chuàng)建一個進程可以通過創(chuàng)建原語來產(chǎn)生一個新進程。創(chuàng)建進程稱為進程稱為父進程父進程,被創(chuàng)建的進程稱為,被創(chuàng)建的進程稱為子進程子進程,子進程還可,子進程還可以通過創(chuàng)建原語創(chuàng)建自己的子進程,這樣就形成一個進程以通過創(chuàng)建原語創(chuàng)建自己的子進程,這樣就形

38、成一個進程家族樹。家族樹。 操作系統(tǒng) 第二章 進程的描述與控制37進程樹進程樹 子進程可以繼承父進程所擁有的資源,子進程可以繼承父進程所擁有的資源,例如,繼承父例如,繼承父進程打開的文件、父進程所分配到的緩沖區(qū)等。當(dāng)子進程進程打開的文件、父進程所分配到的緩沖區(qū)等。當(dāng)子進程被撤消時,應(yīng)將從父進程那里獲得的資源歸還給父進程。被撤消時,應(yīng)將從父進程那里獲得的資源歸還給父進程。此外,在撤消父進程時,也必須同時撤消其所有的子進程。此外,在撤消父進程時,也必須同時撤消其所有的子進程。 操作系統(tǒng) 第二章 進程的描述與控制38創(chuàng)建原語的形式為:創(chuàng)建原語的形式為:Create (name, Create (na

39、me, Priority, start_addr)創(chuàng)建原語的主要功能:創(chuàng)建原語的主要功能:創(chuàng)建一個指定標識符的進程。創(chuàng)建一個指定標識符的進程。過程:過程:1 1)申請一個空白的進程控制塊)申請一個空白的進程控制塊PCBPCB表,并向其中填入進程標表,并向其中填入進程標識符、進程優(yōu)先級、進程起始地址等有關(guān)參數(shù);識符、進程優(yōu)先級、進程起始地址等有關(guān)參數(shù);2 2)置該進程為)置該進程為“就緒就緒”狀態(tài),其它資源從父進程那里繼承;狀態(tài),其它資源從父進程那里繼承;3 3)將該)將該PCBPCB插入就緒隊列和進程家族隊列。插入就緒隊列和進程家族隊列。 進程優(yōu)先級進程優(yōu)先級 操作系統(tǒng) 第二章 進程的描述與控

40、制39 查查PCBPCB總鏈總鏈 有同名?有同名? 申請一個空的申請一個空的PCBPCB結(jié)構(gòu)結(jié)構(gòu) 有空有空PCBPCB? 取空取空PCBPCB(i i) 將入口參數(shù)填入將入口參數(shù)填入PCBPCB(i i)相應(yīng)項)相應(yīng)項 將將PCBPCB(i i)入就緒隊列和)入就緒隊列和PCBPCB總鏈總鏈 出錯出錯 返回返回 出錯出錯 入口入口有有無無無無有有 操作系統(tǒng) 第二章 進程的描述與控制40三、進程撤銷三、進程撤銷 進程完成任務(wù)后應(yīng)予以撤銷,以便及時釋放它所占用進程完成任務(wù)后應(yīng)予以撤銷,以便及時釋放它所占用的各種資源和的各種資源和PCBPCB結(jié)構(gòu)本身。結(jié)構(gòu)本身。 撤銷原語的主要功能:撤銷原語的主要功

41、能:收回被撤銷進程占用的所有資源,收回被撤銷進程占用的所有資源,并撤銷它的并撤銷它的PCBPCB。進程的撤銷過程:進程的撤銷過程:1 1)從)從PCBPCB集合中檢索被撤銷進程的集合中檢索被撤銷進程的PCBPCB,讀出該進程的狀態(tài);,讀出該進程的狀態(tài);2 2)若被撤銷的進程正在執(zhí)行,應(yīng)立即終止該進程的執(zhí)行,)若被撤銷的進程正在執(zhí)行,應(yīng)立即終止該進程的執(zhí)行,并設(shè)置調(diào)度標志為真以指示該進程被撤銷后系統(tǒng)應(yīng)重新并設(shè)置調(diào)度標志為真以指示該進程被撤銷后系統(tǒng)應(yīng)重新調(diào)度;調(diào)度;3 3)若該進程還有子進程,則還應(yīng)將其所有子進程撤銷;)若該進程還有子進程,則還應(yīng)將其所有子進程撤銷;4 4)將該進程所擁有的全部資源

42、,或者歸還給其父進程,)將該進程所擁有的全部資源,或者歸還給其父進程,或者歸還給系統(tǒng);或者歸還給系統(tǒng); 操作系統(tǒng) 第二章 進程的描述與控制41 入口入口查查PCBPCB總鏈或進程家族總鏈或進程家族有此有此PCBPCB?該該PCBPCB有子進程?有子進程? 釋放該進程所占有的資源釋放該進程所占有的資源 釋放該進程的釋放該進程的PCBPCB結(jié)構(gòu)結(jié)構(gòu) 出錯出錯 返回返回?zé)o無有有無無有有5)5)將被撤消進程的將被撤消進程的PCBPCB從所從所在隊列中清除,放回到空白在隊列中清除,放回到空白PCBPCB隊列中。隊列中。撤消原語的形式為:撤消原語的形式為:destroy (namedestroy (nam

43、e) 操作系統(tǒng) 第二章 進程的描述與控制42四、進程阻塞四、進程阻塞( (等待等待) )阻塞原語的作用:阻塞原語的作用:將進程由執(zhí)行狀態(tài)轉(zhuǎn)換為等待狀態(tài)。將進程由執(zhí)行狀態(tài)轉(zhuǎn)換為等待狀態(tài)。 處于運行狀態(tài)的進程,在其運行過程中期待某一事件發(fā)處于運行狀態(tài)的進程,在其運行過程中期待某一事件發(fā)生,如等待鍵盤輸入;等待磁盤的數(shù)據(jù)傳輸完成,或等待其生,如等待鍵盤輸入;等待磁盤的數(shù)據(jù)傳輸完成,或等待其它進程發(fā)送一個信息等,當(dāng)被等待的事件還沒有發(fā)生時,該它進程發(fā)送一個信息等,當(dāng)被等待的事件還沒有發(fā)生時,該進程調(diào)用等待原語將自己掛起。一旦被掛起,它只能由另一進程調(diào)用等待原語將自己掛起。一旦被掛起,它只能由另一個進程

44、喚醒。個進程喚醒。阻塞原語的過程:阻塞原語的過程:1 1)中斷處理機的執(zhí)行,并保存該進程的)中斷處理機的執(zhí)行,并保存該進程的CPUCPU現(xiàn)場信息;現(xiàn)場信息;2 2)將被阻塞進程的狀態(tài)設(shè)置為)將被阻塞進程的狀態(tài)設(shè)置為“等待等待”狀態(tài),把該進程的狀態(tài),把該進程的PCBPCB插入到相應(yīng)的等待隊列中去;插入到相應(yīng)的等待隊列中去;3 3)轉(zhuǎn)進程調(diào)度程序從就緒隊列中選擇一個新的進程投入運行。)轉(zhuǎn)進程調(diào)度程序從就緒隊列中選擇一個新的進程投入運行。 操作系統(tǒng) 第二章 進程的描述與控制43 保存需等待進程的保存需等待進程的CPUCPU現(xiàn)場現(xiàn)場 設(shè)置該進程的狀態(tài)為設(shè)置該進程的狀態(tài)為“等待等待” 需等待進程的需等待

45、進程的PCBPCB入等待隊列入等待隊列 轉(zhuǎn)進程調(diào)度程序轉(zhuǎn)進程調(diào)度程序 入口入口阻塞原語的形式為:阻塞原語的形式為:block( )block( ) 操作系統(tǒng) 第二章 進程的描述與控制44五、進程喚醒五、進程喚醒當(dāng)被等待進程所期待的事件,如當(dāng)被等待進程所期待的事件,如I IO O操作完成,其所期待操作完成,其所期待的數(shù)據(jù)已經(jīng)到達時,則由有關(guān)進程的數(shù)據(jù)已經(jīng)到達時,則由有關(guān)進程( (比如,用完并釋放了比如,用完并釋放了該該I IO O設(shè)備的進程設(shè)備的進程) )調(diào)用喚醒原語,將等待該事件的進程調(diào)用喚醒原語,將等待該事件的進程喚醒。喚醒。喚醒原語的作用:喚醒原語的作用:將進程由等待狀態(tài)轉(zhuǎn)換為就緒狀態(tài)。將進程由等待狀態(tài)轉(zhuǎn)換為就緒狀態(tài)。喚醒原語的形式為:喚醒原語的形式為:wakeup(name)wakeup(name)喚醒原語執(zhí)行的操作:喚醒原語執(zhí)行的操作:1 1)在等待隊列中找到相應(yīng)進程的)在等待隊列中找到相應(yīng)進程的PCBPCB,將其從等待隊列中,將其從等待隊列中摘下;摘下;2 2)設(shè)置其狀態(tài)為就緒狀態(tài),把該進程的)設(shè)置其狀態(tài)為就緒狀態(tài),把該進程的PCBPCB插入就緒隊列;插入就緒隊列;3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論