版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 操作系統(tǒng) 第二章 進(jìn)程的描述與控制1第二章第二章 進(jìn)程的描述與控制進(jìn)程的描述與控制進(jìn)程通信進(jìn)程通信 進(jìn)程同步進(jìn)程同步線程線程進(jìn)程互進(jìn)程互斥斥程序的執(zhí)行及其特征程序的執(zhí)行及其特征進(jìn)程的描述進(jìn)程的描述進(jìn)程控制進(jìn)程控制經(jīng)典進(jìn)程的同步問(wèn)題經(jīng)典進(jìn)程的同步問(wèn)題 操作系統(tǒng) 第二章 進(jìn)程的描述與控制22.1 2.1 程序的執(zhí)行及其特征程序的執(zhí)行及其特征 讓多個(gè)作業(yè)同時(shí)裝入一個(gè)計(jì)算機(jī)系統(tǒng)的讓多個(gè)作業(yè)同時(shí)裝入一個(gè)計(jì)算機(jī)系統(tǒng)的主存儲(chǔ)器主存儲(chǔ)器中,中,并且同時(shí)處于運(yùn)行狀態(tài),共享系統(tǒng)中的各種軟、硬件資并且同時(shí)處于運(yùn)行狀態(tài),共享系統(tǒng)中的各種軟、硬件資源,交替占用處理機(jī)運(yùn)行。這種軟件設(shè)計(jì)技術(shù)稱源,交替占用處理機(jī)運(yùn)行。這種
2、軟件設(shè)計(jì)技術(shù)稱“多道多道程序設(shè)計(jì)程序設(shè)計(jì)”,這種計(jì)算機(jī)系統(tǒng)稱,這種計(jì)算機(jī)系統(tǒng)稱“多道程序系統(tǒng)多道程序系統(tǒng)”。 一個(gè)程序通常由若干個(gè)程序段所組成,它們必須按一個(gè)程序通常由若干個(gè)程序段所組成,它們必須按照程序規(guī)定的先后次序來(lái)執(zhí)行,只有在前一個(gè)操作結(jié)束照程序規(guī)定的先后次序來(lái)執(zhí)行,只有在前一個(gè)操作結(jié)束之后才能開(kāi)始后繼操作,這就是程序的順序執(zhí)行。之后才能開(kāi)始后繼操作,這就是程序的順序執(zhí)行。一、程序的順序執(zhí)行一、程序的順序執(zhí)行程序:程序:是具有特定功能的一組指令是具有特定功能的一組指令( (或一組語(yǔ)句或一組語(yǔ)句) )的集合,的集合,它指出了處理器執(zhí)行它指出了處理器執(zhí)行操作操作的步驟。的步驟。 操作系統(tǒng) 第
3、二章 進(jìn)程的描述與控制3 例如,在處理一個(gè)作業(yè)時(shí),總是先輸入用戶的程序和例如,在處理一個(gè)作業(yè)時(shí),總是先輸入用戶的程序和數(shù)據(jù),然后進(jìn)行計(jì)算,最后將結(jié)果打印出來(lái),它們分別由數(shù)據(jù),然后進(jìn)行計(jì)算,最后將結(jié)果打印出來(lái),它們分別由三個(gè)相對(duì)獨(dú)立的程序段(操作)三個(gè)相對(duì)獨(dú)立的程序段(操作)I I1 1,C C1 1,P P1 1組成。這三個(gè)程組成。這三個(gè)程序段的執(zhí)行只能是一個(gè)一個(gè)地順序執(zhí)行,以保證前一個(gè)程序段的執(zhí)行只能是一個(gè)一個(gè)地順序執(zhí)行,以保證前一個(gè)程序段操作的結(jié)果可被后一個(gè)操作所利用。序段操作的結(jié)果可被后一個(gè)操作所利用。程序段的執(zhí)行順序如下。程序段的執(zhí)行順序如下。 作作 業(yè)業(yè) 1 作作 業(yè)業(yè) 2程序段順序
4、執(zhí)行的有向圖程序段順序執(zhí)行的有向圖(前趨圖)(前趨圖) 操作系統(tǒng) 第二章 進(jìn)程的描述與控制4程序順序執(zhí)行時(shí)的特征程序順序執(zhí)行時(shí)的特征1 1)順序性)順序性 處理機(jī)的操作嚴(yán)格按照程序所規(guī)定的順序執(zhí)處理機(jī)的操作嚴(yán)格按照程序所規(guī)定的順序執(zhí)行,即每一操作必須在下一操作開(kāi)始之前結(jié)束。行,即每一操作必須在下一操作開(kāi)始之前結(jié)束。2 2)封閉性)封閉性 程序是在封閉的環(huán)境下執(zhí)行的。即程序運(yùn)行程序是在封閉的環(huán)境下執(zhí)行的。即程序運(yùn)行時(shí)獨(dú)占全機(jī)資源,資源的狀態(tài)時(shí)獨(dú)占全機(jī)資源,資源的狀態(tài)( (除初始狀態(tài)外除初始狀態(tài)外) )只有本程只有本程序才能改變。程序一旦開(kāi)始運(yùn)行,其執(zhí)行結(jié)果不受外界序才能改變。程序一旦開(kāi)始運(yùn)行,其
5、執(zhí)行結(jié)果不受外界因素的影響。因素的影響。3 3)可再現(xiàn)性)可再現(xiàn)性 只要程序執(zhí)行時(shí)的環(huán)境和初始條件相同,只要程序執(zhí)行時(shí)的環(huán)境和初始條件相同,當(dāng)程序重復(fù)執(zhí)行時(shí),不論它是從頭到尾不停頓地執(zhí)行,當(dāng)程序重復(fù)執(zhí)行時(shí),不論它是從頭到尾不停頓地執(zhí)行,還是還是“停停走走停停走走”地執(zhí)行,都將獲得相同的結(jié)果。地執(zhí)行,都將獲得相同的結(jié)果。 操作系統(tǒng) 第二章 進(jìn)程的描述與控制5程序段并發(fā)執(zhí)行的有向圖程序段并發(fā)執(zhí)行的有向圖(前趨圖)(前趨圖) 下圖給出了系統(tǒng)對(duì)一批作業(yè)進(jìn)行處理時(shí),輸入操作、下圖給出了系統(tǒng)對(duì)一批作業(yè)進(jìn)行處理時(shí),輸入操作、計(jì)算操作和打印操作各程序段執(zhí)行的先后次序。計(jì)算操作和打印操作各程序段執(zhí)行的先后次序。
6、 二、程序的并發(fā)執(zhí)行二、程序的并發(fā)執(zhí)行并發(fā)并發(fā) 操作系統(tǒng) 第二章 進(jìn)程的描述與控制6程序的并發(fā)執(zhí)行:程序的并發(fā)執(zhí)行:若干程序段同時(shí)在系統(tǒng)中運(yùn)行,這些若干程序段同時(shí)在系統(tǒng)中運(yùn)行,這些程序程序段的執(zhí)行在時(shí)間上是重疊的段的執(zhí)行在時(shí)間上是重疊的,即:,即:一個(gè)程序段的執(zhí)行還沒(méi)結(jié)一個(gè)程序段的執(zhí)行還沒(méi)結(jié)束,另一個(gè)程序段的執(zhí)行已經(jīng)開(kāi)始束,另一個(gè)程序段的執(zhí)行已經(jīng)開(kāi)始??梢杂谜Z(yǔ)句記號(hào)表示:可以用語(yǔ)句記號(hào)表示: cobegin cobegin S S1 1;S;S2 2;.S;.Sn n coend coend從圖上中可以看出從圖上中可以看出: : 有的程序段的執(zhí)行是有先后次序的。有的程序段的執(zhí)行是有先后次序的。
7、 有的程序段的執(zhí)行是可以重疊的。有的程序段的執(zhí)行是可以重疊的。 操作系統(tǒng) 第二章 進(jìn)程的描述與控制7程序并發(fā)執(zhí)行時(shí)的特征程序并發(fā)執(zhí)行時(shí)的特征1. 1. 失去了程序的封閉性和可再現(xiàn)性失去了程序的封閉性和可再現(xiàn)性例如:例如:某交通路口設(shè)置了一個(gè)自動(dòng)計(jì)數(shù)系統(tǒng),該系統(tǒng)由觀某交通路口設(shè)置了一個(gè)自動(dòng)計(jì)數(shù)系統(tǒng),該系統(tǒng)由觀察者和報(bào)告者共同組成。察者和報(bào)告者共同組成。觀察到一輛卡車觀察到一輛卡車將計(jì)數(shù)值累加將計(jì)數(shù)值累加1 1 將 計(jì) 數(shù) 值 清將 計(jì) 數(shù) 值 清“0”0”輸出計(jì)數(shù)值輸出計(jì)數(shù)值 交通路口自動(dòng)計(jì)數(shù)系統(tǒng)交通路口自動(dòng)計(jì)數(shù)系統(tǒng) 操作系統(tǒng) 第二章 進(jìn)程的描述與控制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 報(bào)告者報(bào)告者 beginbegin L2 L2:print Nprint N; N:=0N:=0; goto L2;goto L2; end end coend coend 由于觀察者和報(bào)告者程序可以并由于觀察者和報(bào)告者程序可以并發(fā)執(zhí)行,它們并發(fā)執(zhí)行時(shí)可能有如下發(fā)執(zhí)行,它們并發(fā)執(zhí)行時(shí)可能有如下兩種情況:兩種情
9、況:1)1)報(bào)告者執(zhí)行時(shí)無(wú)卡車通過(guò)。報(bào)告者執(zhí)行時(shí)無(wú)卡車通過(guò)。2)2)報(bào)告者執(zhí)行時(shí)有卡車通過(guò)。報(bào)告者執(zhí)行時(shí)有卡車通過(guò)。 設(shè)某時(shí)刻設(shè)某時(shí)刻N(yùn) N的當(dāng)前值為的當(dāng)前值為m m,可能,可能出現(xiàn)的情況和結(jié)果:出現(xiàn)的情況和結(jié)果:情況:情況: (1 1)a a (1 1)b b (2 2)之前通過(guò)之前通過(guò) 之后通過(guò)之后通過(guò) 之中通過(guò)之中通過(guò)結(jié)果:結(jié)果: m+1 m mm+1 m m當(dāng)前的當(dāng)前的N N值:值: 0 1 00 1 0 操作系統(tǒng) 第二章 進(jìn)程的描述與控制92.2. 程序與它的執(zhí)行過(guò)程不再一一對(duì)應(yīng)程序與它的執(zhí)行過(guò)程不再一一對(duì)應(yīng)3.3. 并發(fā)程序之間的相互制約性并發(fā)程序之間的相互制約性間斷性間斷性 當(dāng)具
10、有有一定的邏輯關(guān)系的各程序(或程序段)之間當(dāng)具有有一定的邏輯關(guān)系的各程序(或程序段)之間需要需要相互合作來(lái)完成同一任務(wù)相互合作來(lái)完成同一任務(wù)時(shí),它們之間具有時(shí),它們之間具有直接的相直接的相互制約關(guān)系互制約關(guān)系。 并發(fā)程序(或程序段)之間由于并發(fā)程序(或程序段)之間由于共享資源共享資源而競(jìng)爭(zhēng)同一而競(jìng)爭(zhēng)同一資源時(shí),致使并發(fā)程序(或程序段)之間形成了資源時(shí),致使并發(fā)程序(或程序段)之間形成了間接的相間接的相互制約關(guān)系互制約關(guān)系。 編譯程序編譯程序 user1.c user2.c 操作系統(tǒng) 第二章 進(jìn)程的描述與控制10例如:例如: 由于程序活動(dòng)之間的相互依賴和相互制約,這就使得程由于程序活動(dòng)之間的相互
11、依賴和相互制約,這就使得程序的活動(dòng)與它的運(yùn)行環(huán)境密切相關(guān),并呈現(xiàn):序的活動(dòng)與它的運(yùn)行環(huán)境密切相關(guān),并呈現(xiàn):執(zhí)行執(zhí)行暫停暫停執(zhí)行執(zhí)行”的活動(dòng)規(guī)律。的活動(dòng)規(guī)律。程序段并發(fā)執(zhí)行的有向圖程序段并發(fā)執(zhí)行的有向圖(前趨圖)(前趨圖) 操作系統(tǒng) 第二章 進(jìn)程的描述與控制11一、進(jìn)程的定義和特征一、進(jìn)程的定義和特征 在多道程序工作的環(huán)境下,各個(gè)程序是并發(fā)執(zhí)行的,在多道程序工作的環(huán)境下,各個(gè)程序是并發(fā)執(zhí)行的,它們共享系統(tǒng)資源,共同決定這些資源的狀態(tài)。它們共享系統(tǒng)資源,共同決定這些資源的狀態(tài)。 在這種情況下,在這種情況下,使用程序這個(gè)傳統(tǒng)的靜態(tài)的概念已經(jīng)使用程序這個(gè)傳統(tǒng)的靜態(tài)的概念已經(jīng)無(wú)法描述并發(fā)活動(dòng)的特性、規(guī)律
12、和變化。無(wú)法描述并發(fā)活動(dòng)的特性、規(guī)律和變化。也就是說(shuō),用程也就是說(shuō),用程序作為描述序作為描述并發(fā)活動(dòng)并發(fā)活動(dòng)的執(zhí)行過(guò)程以及管理共享資源的的執(zhí)行過(guò)程以及管理共享資源的基本基本單位單位是不合適的。為此,人們引入了新的概念是不合適的。為此,人們引入了新的概念進(jìn)程進(jìn)程,以便從變化的角度,動(dòng)態(tài)地分析、研究并發(fā)程序的活動(dòng)。以便從變化的角度,動(dòng)態(tài)地分析、研究并發(fā)程序的活動(dòng)。 進(jìn)程是操作系統(tǒng)中的一個(gè)最基本、最重要的概念,但進(jìn)程是操作系統(tǒng)中的一個(gè)最基本、最重要的概念,但是迄今為止,對(duì)這一概念還沒(méi)有形成一個(gè)非常確切的、統(tǒng)是迄今為止,對(duì)這一概念還沒(méi)有形成一個(gè)非常確切的、統(tǒng)一的定義,通常是從不同的角度描述它的各個(gè)基本
13、特征。一的定義,通常是從不同的角度描述它的各個(gè)基本特征。 2.2 2.2 進(jìn)程的描述進(jìn)程的描述 操作系統(tǒng) 第二章 進(jìn)程的描述與控制12從不同角度定義的進(jìn)程:從不同角度定義的進(jìn)程:(1)(1) 進(jìn)程是程序的一次執(zhí)行,亦即進(jìn)程是在指定內(nèi)存區(qū)域進(jìn)程是程序的一次執(zhí)行,亦即進(jìn)程是在指定內(nèi)存區(qū)域中的一組指令序列的執(zhí)行過(guò)程。中的一組指令序列的執(zhí)行過(guò)程。(2)(2) 進(jìn)程是可以和別的計(jì)算并發(fā)執(zhí)行的計(jì)算。進(jìn)程是可以和別的計(jì)算并發(fā)執(zhí)行的計(jì)算。(3)(3) 進(jìn)程可定義為一個(gè)數(shù)據(jù)結(jié)構(gòu)和能在其上進(jìn)行操作的進(jìn)程可定義為一個(gè)數(shù)據(jù)結(jié)構(gòu)和能在其上進(jìn)行操作的一個(gè)程序。一個(gè)程序。(4)(4) 進(jìn)程是程序在一個(gè)數(shù)據(jù)集合上運(yùn)行的過(guò)程,
14、它是系進(jìn)程是程序在一個(gè)數(shù)據(jù)集合上運(yùn)行的過(guò)程,它是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。 1. 1. 進(jìn)程的定義:進(jìn)程的定義:進(jìn)程是一個(gè)程序?qū)δ硞€(gè)數(shù)據(jù)集在處理機(jī)上的執(zhí)行過(guò)程,進(jìn)程是一個(gè)程序?qū)δ硞€(gè)數(shù)據(jù)集在處理機(jī)上的執(zhí)行過(guò)程,是系統(tǒng)進(jìn)行資源分配和處理機(jī)調(diào)度的基本單位。是系統(tǒng)進(jìn)行資源分配和處理機(jī)調(diào)度的基本單位。 操作系統(tǒng) 第二章 進(jìn)程的描述與控制13進(jìn)程與程序的區(qū)別:進(jìn)程與程序的區(qū)別:1)1)進(jìn)程是一次運(yùn)行的過(guò)程,屬于一種動(dòng)態(tài)的概念;進(jìn)程是一次運(yùn)行的過(guò)程,屬于一種動(dòng)態(tài)的概念;而程序是而程序是指令的集合,是一個(gè)靜態(tài)的概念。指令的集合,是一個(gè)靜態(tài)的概念。5)5)一個(gè)進(jìn)程
15、可以包含幾個(gè)程序一個(gè)進(jìn)程可以包含幾個(gè)程序 ;一個(gè)程序也可以對(duì)應(yīng)多個(gè)一個(gè)程序也可以對(duì)應(yīng)多個(gè)進(jìn)程。進(jìn)程。當(dāng)當(dāng)同一程序同一程序同時(shí)運(yùn)行于若干個(gè)同時(shí)運(yùn)行于若干個(gè)不同的數(shù)據(jù)集合不同的數(shù)據(jù)集合上時(shí),上時(shí),它將屬于若干個(gè)它將屬于若干個(gè)不同的進(jìn)程不同的進(jìn)程。3)3)進(jìn)程是有生命期的;進(jìn)程是有生命期的;而程序是永久的。而程序是永久的。2)2)進(jìn)程可以并發(fā)執(zhí)行;進(jìn)程可以并發(fā)執(zhí)行;而程序不能。而程序不能。4)4)進(jìn)程是系統(tǒng)資源分配的基本單位,進(jìn)程是系統(tǒng)資源分配的基本單位,而程序則不行。而程序則不行。 編譯程序編譯程序 user1.c user2.c 操作系統(tǒng) 第二章 進(jìn)程的描述與控制142. 2. 進(jìn)程的特征:進(jìn)程
16、的特征:1 1)動(dòng)態(tài)性。)動(dòng)態(tài)性。進(jìn)程具有一定的生命期,是動(dòng)態(tài)地產(chǎn)生、變進(jìn)程具有一定的生命期,是動(dòng)態(tài)地產(chǎn)生、變化和消亡的。動(dòng)態(tài)性是進(jìn)程最本質(zhì)的特征?;拖龅?。動(dòng)態(tài)性是進(jìn)程最本質(zhì)的特征。2 2)并發(fā)性。)并發(fā)性。進(jìn)程之間的活動(dòng)在時(shí)間上可以重疊。進(jìn)程之間的活動(dòng)在時(shí)間上可以重疊。引入進(jìn)程的目的引入進(jìn)程的目的正是為了使其程序能和其它程序并發(fā)執(zhí)行,正是為了使其程序能和其它程序并發(fā)執(zhí)行,以提高系統(tǒng)資源利用率。以提高系統(tǒng)資源利用率。3 3)獨(dú)立性。)獨(dú)立性。進(jìn)程是一個(gè)能獨(dú)立運(yùn)行的基本單位同時(shí)也進(jìn)程是一個(gè)能獨(dú)立運(yùn)行的基本單位同時(shí)也是系統(tǒng)分配資源和調(diào)度的是系統(tǒng)分配資源和調(diào)度的獨(dú)立單位獨(dú)立單位。4 4)異步性。
17、)異步性。由于進(jìn)程間的相互制約,使進(jìn)程具有執(zhí)行的由于進(jìn)程間的相互制約,使進(jìn)程具有執(zhí)行的間斷性。即進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度向前推進(jìn)。間斷性。即進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度向前推進(jìn)。 操作系統(tǒng) 第二章 進(jìn)程的描述與控制15PCB1共共享享 程程 序序 數(shù)數(shù) 據(jù)據(jù) 1PCB2 數(shù)數(shù)據(jù)據(jù) 2(c). .進(jìn)程實(shí)體的組成進(jìn)程實(shí)體的組成一個(gè)進(jìn)程通常由三部分組成:程序段、相關(guān)的數(shù)據(jù)段和進(jìn)程一個(gè)進(jìn)程通常由三部分組成:程序段、相關(guān)的數(shù)據(jù)段和進(jìn)程控制塊(控制塊(PCBPCB)。)。進(jìn)程控制塊(進(jìn)程控制塊(PCBPCB)是進(jìn)程的一個(gè)運(yùn)行情況的登記表。系統(tǒng)是進(jìn)程的一個(gè)運(yùn)行情況的登記表。系統(tǒng)利用利用PCBPC
18、B來(lái)描述進(jìn)程的基本情況和活動(dòng)過(guò)程,進(jìn)而控制和管來(lái)描述進(jìn)程的基本情況和活動(dòng)過(guò)程,進(jìn)而控制和管理進(jìn)程。理進(jìn)程。 程程 序序 數(shù)數(shù) 據(jù)據(jù)PCB(a)PCB 程程 序序 數(shù)數(shù) 據(jù)據(jù)(b) 操作系統(tǒng) 第二章 進(jìn)程的描述與控制16進(jìn)程的基本狀態(tài)進(jìn)程的基本狀態(tài) 在操作系統(tǒng)中,進(jìn)程至少要有三種基本狀態(tài):運(yùn)行在操作系統(tǒng)中,進(jìn)程至少要有三種基本狀態(tài):運(yùn)行狀態(tài),就緒狀態(tài)和等待狀態(tài)。狀態(tài),就緒狀態(tài)和等待狀態(tài)。二二、進(jìn)程的狀態(tài)及其轉(zhuǎn)換進(jìn)程的狀態(tài)及其轉(zhuǎn)換) ) 運(yùn)行狀態(tài)。運(yùn)行狀態(tài)。當(dāng)一個(gè)進(jìn)程已獲得必要的資源,并占有當(dāng)一個(gè)進(jìn)程已獲得必要的資源,并占有中央處理機(jī)執(zhí)行時(shí)進(jìn)程所處的狀態(tài)。中央處理機(jī)執(zhí)行時(shí)進(jìn)程所處的狀態(tài)。 在單處理
19、機(jī)系統(tǒng)中,任一時(shí)刻,處于運(yùn)行狀態(tài)的進(jìn)在單處理機(jī)系統(tǒng)中,任一時(shí)刻,處于運(yùn)行狀態(tài)的進(jìn)程只能有一個(gè)。程只能有一個(gè)。 操作系統(tǒng) 第二章 進(jìn)程的描述與控制173) 3) 等待狀態(tài)等待狀態(tài)( (阻塞狀態(tài),封鎖狀態(tài),睡眠狀態(tài)阻塞狀態(tài),封鎖狀態(tài),睡眠狀態(tài)) )。正在執(zhí)正在執(zhí)行的進(jìn)程,由于發(fā)生某事件(如等待輸入行的進(jìn)程,由于發(fā)生某事件(如等待輸入/ /輸出完成)而輸出完成)而暫時(shí)無(wú)法執(zhí)行下去時(shí),便放棄處理機(jī),此時(shí)進(jìn)程所處的暫時(shí)無(wú)法執(zhí)行下去時(shí),便放棄處理機(jī),此時(shí)進(jìn)程所處的狀態(tài)。狀態(tài)。引起進(jìn)程等待的事件有:引起進(jìn)程等待的事件有:請(qǐng)求請(qǐng)求I/OI/O、申請(qǐng)緩沖區(qū)、等待、申請(qǐng)緩沖區(qū)、等待信件(信號(hào))等等。處于等待狀態(tài)的
20、進(jìn)程本身不具備運(yùn)信件(信號(hào))等等。處于等待狀態(tài)的進(jìn)程本身不具備運(yùn)行條件,即使分配給它處理機(jī)也不能運(yùn)行。行條件,即使分配給它處理機(jī)也不能運(yùn)行。) ) 就緒狀態(tài)。就緒狀態(tài)。進(jìn)程等待分配處理機(jī)時(shí)所處的狀態(tài)。進(jìn)程等待分配處理機(jī)時(shí)所處的狀態(tài)。 進(jìn)程已獲得了除中央處理機(jī)以外的所有資源,具備進(jìn)程已獲得了除中央處理機(jī)以外的所有資源,具備了運(yùn)行條件,只因處理機(jī)被其它進(jìn)程占用而不能執(zhí)行,了運(yùn)行條件,只因處理機(jī)被其它進(jìn)程占用而不能執(zhí)行,一旦獲得處理機(jī),便可立即執(zhí)行。一旦獲得處理機(jī),便可立即執(zhí)行。 操作系統(tǒng) 第二章 進(jìn)程的描述與控制18. .進(jìn)程基本狀態(tài)的轉(zhuǎn)換及其轉(zhuǎn)換的原因進(jìn)程基本狀態(tài)的轉(zhuǎn)換及其轉(zhuǎn)換的原因1 1)就緒
21、)就緒-運(yùn)行:運(yùn)行:對(duì)就緒狀態(tài)的進(jìn)程,當(dāng)對(duì)就緒狀態(tài)的進(jìn)程,當(dāng)進(jìn)程調(diào)度程進(jìn)程調(diào)度程序序按一種選定的策略從中按一種選定的策略從中選中一個(gè)就緒進(jìn)程選中一個(gè)就緒進(jìn)程,為之,為之分分配了處理機(jī)配了處理機(jī)后,該進(jìn)程便由就緒狀態(tài)變?yōu)閳?zhí)行狀態(tài);后,該進(jìn)程便由就緒狀態(tài)變?yōu)閳?zhí)行狀態(tài);進(jìn)程調(diào)度進(jìn)程調(diào)度運(yùn)行運(yùn)行就緒就緒等待等待 進(jìn)程的基本狀態(tài)及其轉(zhuǎn)換進(jìn)程的基本狀態(tài)及其轉(zhuǎn)換 操作系統(tǒng) 第二章 進(jìn)程的描述與控制192 2)運(yùn)行)運(yùn)行-等待:等待:正在執(zhí)行的進(jìn)程正在執(zhí)行的進(jìn)程因發(fā)生某等待事件因發(fā)生某等待事件而無(wú)法而無(wú)法執(zhí)行,則進(jìn)程由執(zhí)行狀態(tài)變?yōu)榈却隣顟B(tài),如:進(jìn)程提出輸入執(zhí)行,則進(jìn)程由執(zhí)行狀態(tài)變?yōu)榈却隣顟B(tài),如:進(jìn)程提出輸入/
22、 /輸出請(qǐng)求而變成等待外部設(shè)備傳輸信息的狀態(tài),進(jìn)程申請(qǐng)資輸出請(qǐng)求而變成等待外部設(shè)備傳輸信息的狀態(tài),進(jìn)程申請(qǐng)資源(主存空間或外部設(shè)備)得不到滿足時(shí)變成等待資源狀態(tài),源(主存空間或外部設(shè)備)得不到滿足時(shí)變成等待資源狀態(tài),進(jìn)程運(yùn)行中出現(xiàn)了故障(程序出錯(cuò)或主存儲(chǔ)器讀寫(xiě)錯(cuò)等)變進(jìn)程運(yùn)行中出現(xiàn)了故障(程序出錯(cuò)或主存儲(chǔ)器讀寫(xiě)錯(cuò)等)變成等待干預(yù)狀態(tài)等等;成等待干預(yù)狀態(tài)等等; 等待某事件發(fā)生等待某事件發(fā)生而阻塞而阻塞運(yùn)行運(yùn)行就緒就緒等待等待進(jìn)程調(diào)度進(jìn)程調(diào)度 進(jìn)程的基本狀態(tài)及其轉(zhuǎn)換進(jìn)程的基本狀態(tài)及其轉(zhuǎn)換 操作系統(tǒng) 第二章 進(jìn)程的描述與控制203 3)等待)等待-就緒就緒:處于等待狀態(tài)的進(jìn)程,在其:處于等待狀態(tài)的進(jìn)
23、程,在其等待的事件已等待的事件已經(jīng)完成經(jīng)完成,如輸入,如輸入/ /輸出完成,資源得到滿足或錯(cuò)誤處理完畢時(shí),輸出完成,資源得到滿足或錯(cuò)誤處理完畢時(shí),處于等待狀態(tài)的進(jìn)程并不馬上轉(zhuǎn)入執(zhí)行狀態(tài),而是先轉(zhuǎn)入就處于等待狀態(tài)的進(jìn)程并不馬上轉(zhuǎn)入執(zhí)行狀態(tài),而是先轉(zhuǎn)入就緒狀態(tài),然后再由系統(tǒng)進(jìn)程調(diào)度程序在適當(dāng)?shù)臅r(shí)候?qū)⒃撨M(jìn)程緒狀態(tài),然后再由系統(tǒng)進(jìn)程調(diào)度程序在適當(dāng)?shù)臅r(shí)候?qū)⒃撨M(jìn)程轉(zhuǎn)為執(zhí)行狀態(tài);轉(zhuǎn)為執(zhí)行狀態(tài); 所等待的事件發(fā)生所等待的事件發(fā)生而喚醒而喚醒運(yùn)行運(yùn)行就緒就緒等待等待進(jìn)程調(diào)度進(jìn)程調(diào)度等待某事件發(fā)生等待某事件發(fā)生而阻塞而阻塞 進(jìn)程的基本狀態(tài)及其轉(zhuǎn)換進(jìn)程的基本狀態(tài)及其轉(zhuǎn)換 操作系統(tǒng) 第二章 進(jìn)程的描述與控制214 4
24、)執(zhí)行)執(zhí)行-就緒:就緒:正在執(zhí)行的進(jìn)程,因正在執(zhí)行的進(jìn)程,因時(shí)間片用完時(shí)間片用完而被暫停而被暫停執(zhí)行,或在執(zhí)行,或在采用搶先式優(yōu)先級(jí)調(diào)度算法的系統(tǒng)采用搶先式優(yōu)先級(jí)調(diào)度算法的系統(tǒng)中中, ,當(dāng)當(dāng)有更高優(yōu)有更高優(yōu)先級(jí)的進(jìn)程要運(yùn)行先級(jí)的進(jìn)程要運(yùn)行而被迫讓出處理機(jī)時(shí),該進(jìn)程便由執(zhí)行狀而被迫讓出處理機(jī)時(shí),該進(jìn)程便由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)榫途w狀態(tài)。態(tài)轉(zhuǎn)變?yōu)榫途w狀態(tài)。時(shí)間片到時(shí)間片到運(yùn)行運(yùn)行就緒就緒等待等待進(jìn)程調(diào)度進(jìn)程調(diào)度等待某事件發(fā)生等待某事件發(fā)生所等待的事件發(fā)生所等待的事件發(fā)生而阻塞而阻塞而喚醒而喚醒 進(jìn)程的基本狀態(tài)及其轉(zhuǎn)換進(jìn)程的基本狀態(tài)及其轉(zhuǎn)換任務(wù)開(kāi)始任務(wù)開(kāi)始任務(wù)結(jié)束任務(wù)結(jié)束 操作系統(tǒng) 第二章 進(jìn)程的描述與控
25、制22進(jìn)程狀態(tài)的擴(kuò)展及其轉(zhuǎn)換進(jìn)程狀態(tài)的擴(kuò)展及其轉(zhuǎn)換1) 1) 創(chuàng)建狀態(tài)創(chuàng)建狀態(tài)正在創(chuàng)建過(guò)程中的進(jìn)程,創(chuàng)建過(guò)程尚未完成,進(jìn)程正在創(chuàng)建過(guò)程中的進(jìn)程,創(chuàng)建過(guò)程尚未完成,進(jìn)程還不能被調(diào)度運(yùn)行,于是把此時(shí)進(jìn)程所處的狀態(tài)稱為創(chuàng)還不能被調(diào)度運(yùn)行,于是把此時(shí)進(jìn)程所處的狀態(tài)稱為創(chuàng)建狀態(tài)。建狀態(tài)。2) 2) 終止?fàn)顟B(tài)終止?fàn)顟B(tài)進(jìn)程由于各種原因終止運(yùn)行,等待操作系統(tǒng)進(jìn)行善進(jìn)程由于各種原因終止運(yùn)行,等待操作系統(tǒng)進(jìn)行善后處理時(shí)所處的狀態(tài)。后處理時(shí)所處的狀態(tài)。 進(jìn)入終止態(tài)的進(jìn)程以后不能再執(zhí)行,但在操作系統(tǒng)進(jìn)入終止態(tài)的進(jìn)程以后不能再執(zhí)行,但在操作系統(tǒng)中依然保留一個(gè)記錄。中依然保留一個(gè)記錄。 操作系統(tǒng) 第二章 進(jìn)程的描述與控制
26、23時(shí)間片到時(shí)間片到運(yùn)行運(yùn)行就緒就緒等待等待進(jìn)程調(diào)度進(jìn)程調(diào)度等待某事件發(fā)生等待某事件發(fā)生而阻塞而阻塞所等待的事件發(fā)生所等待的事件發(fā)生而喚醒而喚醒 進(jìn)程狀態(tài)的擴(kuò)展及其轉(zhuǎn)換進(jìn)程狀態(tài)的擴(kuò)展及其轉(zhuǎn)換創(chuàng)建創(chuàng)建終止終止許可許可終止終止 操作系統(tǒng) 第二章 進(jìn)程的描述與控制243) 3) 掛起操作和激活操作的引入掛起操作和激活操作的引入引入掛起操作的原因,是基于系統(tǒng)和用戶的如下需要:引入掛起操作的原因,是基于系統(tǒng)和用戶的如下需要:(1) (1) 終端用戶的需要。終端用戶的需要。(2) (2) 父進(jìn)程請(qǐng)求。父進(jìn)程請(qǐng)求。 (3) (3) 負(fù)荷調(diào)節(jié)的需要。負(fù)荷調(diào)節(jié)的需要。 (4) (4) 操作系統(tǒng)的需要。操作系統(tǒng)的
27、需要。 進(jìn)程將可能發(fā)生以下幾種狀態(tài)的轉(zhuǎn)換:進(jìn)程將可能發(fā)生以下幾種狀態(tài)的轉(zhuǎn)換:(1) (1) 活動(dòng)就緒活動(dòng)就緒靜止就緒。靜止就緒。(2) (2) 活動(dòng)阻塞活動(dòng)阻塞靜止阻塞。靜止阻塞。(3) (3) 靜止就緒靜止就緒活動(dòng)就緒?;顒?dòng)就緒。(4) (4) 靜止阻塞靜止阻塞活動(dòng)阻塞?;顒?dòng)阻塞。 操作系統(tǒng) 第二章 進(jìn)程的描述與控制25時(shí)間片到時(shí)間片到運(yùn)行運(yùn)行就緒就緒等待等待進(jìn)程調(diào)度進(jìn)程調(diào)度等待某事件發(fā)生等待某事件發(fā)生而阻塞而阻塞所等待的事件發(fā)生所等待的事件發(fā)生而喚醒而喚醒 進(jìn)程狀態(tài)的擴(kuò)展及其轉(zhuǎn)換進(jìn)程狀態(tài)的擴(kuò)展及其轉(zhuǎn)換 外存外存 內(nèi)存內(nèi)存就緒就緒等待等待所等待的事件發(fā)生所等待的事件發(fā)生而喚醒而喚醒換出換出換
28、出換出換進(jìn)換進(jìn)換進(jìn)換進(jìn)創(chuàng)建創(chuàng)建終止終止許可許可掛起掛起許可許可終止終止 操作系統(tǒng) 第二章 進(jìn)程的描述與控制26三、進(jìn)程管理中的數(shù)據(jù)結(jié)構(gòu)三、進(jìn)程管理中的數(shù)據(jù)結(jié)構(gòu)1. 1. 操作系統(tǒng)中用于管理控制的數(shù)據(jù)結(jié)構(gòu)操作系統(tǒng)中用于管理控制的數(shù)據(jù)結(jié)構(gòu) 在計(jì)算機(jī)系統(tǒng)中,對(duì)于每個(gè)資源和每個(gè)進(jìn)程都設(shè)在計(jì)算機(jī)系統(tǒng)中,對(duì)于每個(gè)資源和每個(gè)進(jìn)程都設(shè)置了一個(gè)數(shù)據(jù)結(jié)構(gòu),用于表征其實(shí)體,我們稱之為資置了一個(gè)數(shù)據(jù)結(jié)構(gòu),用于表征其實(shí)體,我們稱之為資源信息表或進(jìn)程信息表,其中包含了資源或進(jìn)程的標(biāo)源信息表或進(jìn)程信息表,其中包含了資源或進(jìn)程的標(biāo)識(shí)、描述、狀態(tài)等信息以及一批指針。識(shí)、描述、狀態(tài)等信息以及一批指針。OSOS管理的這些數(shù)據(jù)結(jié)構(gòu)一
29、般分為以下四類:管理的這些數(shù)據(jù)結(jié)構(gòu)一般分為以下四類:內(nèi)存表、設(shè)備表、文件表和用于進(jìn)程管理的進(jìn)程表,內(nèi)存表、設(shè)備表、文件表和用于進(jìn)程管理的進(jìn)程表,通常進(jìn)程表又被稱為進(jìn)程控制塊通常進(jìn)程表又被稱為進(jìn)程控制塊PCBPCB。 操作系統(tǒng) 第二章 進(jìn)程的描述與控制27操作系統(tǒng)控制表的一般結(jié)構(gòu)操作系統(tǒng)控制表的一般結(jié)構(gòu)n圖2-9 操作系統(tǒng)控制表的一般結(jié)構(gòu) 操作系統(tǒng) 第二章 進(jìn)程的描述與控制28 進(jìn)程是動(dòng)態(tài)的,為了記錄進(jìn)程的情況以及控制進(jìn)程進(jìn)程是動(dòng)態(tài)的,為了記錄進(jìn)程的情況以及控制進(jìn)程的運(yùn)行,系統(tǒng)為每一個(gè)進(jìn)程設(shè)置了一個(gè)數(shù)據(jù)結(jié)構(gòu)的運(yùn)行,系統(tǒng)為每一個(gè)進(jìn)程設(shè)置了一個(gè)數(shù)據(jù)結(jié)構(gòu)進(jìn)進(jìn)程控制塊程控制塊(PCB)(PCB)。 系統(tǒng)
30、根據(jù)系統(tǒng)根據(jù)PCBPCB而感知進(jìn)程的存在,通過(guò)而感知進(jìn)程的存在,通過(guò)PCBPCB對(duì)進(jìn)程進(jìn)對(duì)進(jìn)程進(jìn)行管理,行管理,PCBPCB是進(jìn)程存在的惟一標(biāo)志是進(jìn)程存在的惟一標(biāo)志。 當(dāng)系統(tǒng)創(chuàng)建一個(gè)進(jìn)程時(shí),必須為它設(shè)置一個(gè)當(dāng)系統(tǒng)創(chuàng)建一個(gè)進(jìn)程時(shí),必須為它設(shè)置一個(gè)PCBPCB,在進(jìn)程的生命期內(nèi),系統(tǒng)利用在進(jìn)程的生命期內(nèi),系統(tǒng)利用PCBPCB對(duì)進(jìn)程實(shí)施控制管理,對(duì)進(jìn)程實(shí)施控制管理,進(jìn)程運(yùn)行結(jié)束后,系統(tǒng)要收回它的進(jìn)程運(yùn)行結(jié)束后,系統(tǒng)要收回它的PCBPCB,進(jìn)程也隨之消,進(jìn)程也隨之消亡。亡。2.2.進(jìn)程控制塊進(jìn)程控制塊(PCB)(PCB)及其作用:及其作用: 操作系統(tǒng) 第二章 進(jìn)程的描述與控制293 3進(jìn)程控制塊(進(jìn)程
31、控制塊(PCBPCB)的內(nèi)容)的內(nèi)容: :1)1)描述信息(進(jìn)程標(biāo)識(shí)符)描述信息(進(jìn)程標(biāo)識(shí)符) 進(jìn)程標(biāo)識(shí)(內(nèi)、外部)符進(jìn)程標(biāo)識(shí)(內(nèi)、外部)符, ,用戶名用戶名, ,家族關(guān)系家族關(guān)系2)2)調(diào)度控制信息(進(jìn)程調(diào)度信息)調(diào)度控制信息(進(jìn)程調(diào)度信息) 進(jìn)程當(dāng)前狀態(tài)進(jìn)程當(dāng)前狀態(tài), ,進(jìn)程優(yōu)先級(jí)進(jìn)程優(yōu)先級(jí), , 各種計(jì)時(shí)信息各種計(jì)時(shí)信息, , 阻塞的阻塞的原因原因3)3)資源管理信息(進(jìn)程控制信息)資源管理信息(進(jìn)程控制信息) 程序起始地址程序起始地址, ,通信信息,占用內(nèi)存大小通信信息,占用內(nèi)存大小, ,占用外設(shè)占用外設(shè)情況情況, ,指向文件系統(tǒng)的指針指向文件系統(tǒng)的指針4) CPU4) CPU現(xiàn)場(chǎng)保護(hù)
32、區(qū)(處理機(jī)狀態(tài))現(xiàn)場(chǎng)保護(hù)區(qū)(處理機(jī)狀態(tài)) 處理機(jī)的上、下文處理機(jī)的上、下文 操作系統(tǒng) 第二章 進(jìn)程的描述與控制304.4.進(jìn)程控制塊的組織方式:進(jìn)程控制塊的組織方式:為了能對(duì)為了能對(duì)PCBPCB加以有效的管理,系統(tǒng)用適當(dāng)?shù)姆绞綄⑦@些加以有效的管理,系統(tǒng)用適當(dāng)?shù)姆绞綄⑦@些PCBPCB組織起來(lái)。目前常用的組織方式有以下三種。組織起來(lái)。目前常用的組織方式有以下三種。PCBPCB線性表示意圖線性表示意圖 (1 1)線性表方式)線性表方式將系統(tǒng)中所有的將系統(tǒng)中所有的PCBPCB都組織在一都組織在一張線性表中,將該表的首地址張線性表中,將該表的首地址存放在內(nèi)存的一個(gè)專用區(qū)域中。存放在內(nèi)存的一個(gè)專用區(qū)域中。
33、該方式實(shí)現(xiàn)簡(jiǎn)單、開(kāi)銷小,但該方式實(shí)現(xiàn)簡(jiǎn)單、開(kāi)銷小,但每次查找時(shí)都需要掃描整張表,每次查找時(shí)都需要掃描整張表,因此適合進(jìn)程數(shù)目不多的系統(tǒng)。因此適合進(jìn)程數(shù)目不多的系統(tǒng)。 操作系統(tǒng) 第二章 進(jìn)程的描述與控制31即把具有相同狀態(tài)進(jìn)程的即把具有相同狀態(tài)進(jìn)程的PCBPCB分別通過(guò)分別通過(guò)PCBPCB中的鏈接字中的鏈接字鏈接成一個(gè)隊(duì)列。這樣,可以形成就緒隊(duì)列、若干個(gè)鏈接成一個(gè)隊(duì)列。這樣,可以形成就緒隊(duì)列、若干個(gè)阻塞隊(duì)列和空白隊(duì)列等。阻塞隊(duì)列和空白隊(duì)列等。(2 2)鏈表(進(jìn)程隊(duì)列)方式)鏈表(進(jìn)程隊(duì)列)方式 操作系統(tǒng) 第二章 進(jìn)程的描述與控制32(2 2)鏈表(進(jìn)程隊(duì)列)方式)鏈表(進(jìn)程隊(duì)列)方式PCB14P
34、CB2PCB3PCB4PCB5PCB6PCB7PCB8PCB93087901執(zhí) 行 指 針就 緒 隊(duì) 列 指 針阻 塞 隊(duì) 列 指 針空 閑 隊(duì) 列 指 針 PCB PCB鏈接隊(duì)列示意圖鏈接隊(duì)列示意圖 操作系統(tǒng) 第二章 進(jìn)程的描述與控制33(3)索引表方式系統(tǒng)根據(jù)所有進(jìn)程狀態(tài)的不同,建立幾張索引表,并把系統(tǒng)根據(jù)所有進(jìn)程狀態(tài)的不同,建立幾張索引表,并把各索引表在內(nèi)存的首地址記錄在內(nèi)存的一些專用單元中。各索引表在內(nèi)存的首地址記錄在內(nèi)存的一些專用單元中。執(zhí)行指針就緒索引表PCB1PCB2PCB3PCB4PCB5PCB6PCB7阻塞索引表就緒表指針阻塞表指針按索引方式組織按索引方式組織PCB 操作系統(tǒng)
35、 第二章 進(jìn)程的描述與控制342.3 2.3 進(jìn)程控制進(jìn)程控制 處理機(jī)的工作狀態(tài):處理機(jī)的工作狀態(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)核 進(jìn)程控制的職責(zé)是對(duì)系統(tǒng)中的全部進(jìn)程實(shí)施有效的進(jìn)程控制的職責(zé)是對(duì)系統(tǒng)中的全部進(jìn)程實(shí)施有效的管理,包括:進(jìn)程的管理,包括:進(jìn)程的創(chuàng)建創(chuàng)建、撤銷撤銷,以及,以及阻塞阻塞、喚醒喚醒、掛掛起起、激活激活時(shí)進(jìn)程轉(zhuǎn)汰的轉(zhuǎn)換,它是處理機(jī)管理的一部分。時(shí)進(jìn)程轉(zhuǎn)汰的轉(zhuǎn)換,它是處理機(jī)管理的一部分。進(jìn)程控制一般由內(nèi)核中的進(jìn)程控制一般由內(nèi)核中的原語(yǔ)原語(yǔ)來(lái)實(shí)現(xiàn)。來(lái)實(shí)現(xiàn)。 操作系統(tǒng) 第二章
36、進(jìn)程的描述與控制351. 1. 支撐功能支撐功能(1) (1) 中斷處理。中斷處理。(2) (2) 時(shí)鐘管理。時(shí)鐘管理。(3) (3) 原語(yǔ)操作。原語(yǔ)操作。2. 2. 資源管理功能資源管理功能(1) (1) 進(jìn)程(處理機(jī))管理。進(jìn)程(處理機(jī))管理。(2) (2) 存儲(chǔ)器管理。存儲(chǔ)器管理。(3) (3) 設(shè)備管理。設(shè)備管理。 一一、操作系統(tǒng)內(nèi)核操作系統(tǒng)內(nèi)核 操作系統(tǒng) 第二章 進(jìn)程的描述與控制36原語(yǔ):原語(yǔ):是機(jī)器指令的延伸,是由若干條機(jī)器指令構(gòu)成的,是機(jī)器指令的延伸,是由若干條機(jī)器指令構(gòu)成的,用以用以完成操作系統(tǒng)特定功能的程序段完成操作系統(tǒng)特定功能的程序段。為保證原語(yǔ)操作。為保證原語(yǔ)操作的正確性
37、,的正確性,原語(yǔ)在執(zhí)行期間是不可分割原語(yǔ)在執(zhí)行期間是不可分割( (被中斷被中斷) )的。的。進(jìn)程控制原語(yǔ):進(jìn)程控制原語(yǔ):進(jìn)程創(chuàng)建原語(yǔ),進(jìn)程撤消原語(yǔ),進(jìn)程阻進(jìn)程創(chuàng)建原語(yǔ),進(jìn)程撤消原語(yǔ),進(jìn)程阻塞原語(yǔ),進(jìn)程喚醒原語(yǔ)塞原語(yǔ),進(jìn)程喚醒原語(yǔ), ,進(jìn)程掛起原語(yǔ)進(jìn)程掛起原語(yǔ), ,進(jìn)程激活原語(yǔ)。進(jìn)程激活原語(yǔ)。二、進(jìn)程創(chuàng)建二、進(jìn)程創(chuàng)建 一個(gè)進(jìn)程可以通過(guò)創(chuàng)建原語(yǔ)來(lái)產(chǎn)生一個(gè)新進(jìn)程。創(chuàng)建一個(gè)進(jìn)程可以通過(guò)創(chuàng)建原語(yǔ)來(lái)產(chǎn)生一個(gè)新進(jìn)程。創(chuàng)建進(jìn)程稱為進(jìn)程稱為父進(jìn)程父進(jìn)程,被創(chuàng)建的進(jìn)程稱為,被創(chuàng)建的進(jìn)程稱為子進(jìn)程子進(jìn)程,子進(jìn)程還可,子進(jìn)程還可以通過(guò)創(chuàng)建原語(yǔ)創(chuàng)建自己的子進(jìn)程,這樣就形成一個(gè)進(jìn)程以通過(guò)創(chuàng)建原語(yǔ)創(chuàng)建自己的子進(jìn)程,這樣就形
38、成一個(gè)進(jìn)程家族樹(shù)。家族樹(shù)。 操作系統(tǒng) 第二章 進(jìn)程的描述與控制37進(jìn)程樹(shù)進(jìn)程樹(shù) 子進(jìn)程可以繼承父進(jìn)程所擁有的資源,子進(jìn)程可以繼承父進(jìn)程所擁有的資源,例如,繼承父例如,繼承父進(jìn)程打開(kāi)的文件、父進(jìn)程所分配到的緩沖區(qū)等。當(dāng)子進(jìn)程進(jìn)程打開(kāi)的文件、父進(jìn)程所分配到的緩沖區(qū)等。當(dāng)子進(jìn)程被撤消時(shí),應(yīng)將從父進(jìn)程那里獲得的資源歸還給父進(jìn)程。被撤消時(shí),應(yīng)將從父進(jìn)程那里獲得的資源歸還給父進(jìn)程。此外,在撤消父進(jìn)程時(shí),也必須同時(shí)撤消其所有的子進(jìn)程。此外,在撤消父進(jìn)程時(shí),也必須同時(shí)撤消其所有的子進(jìn)程。 操作系統(tǒng) 第二章 進(jìn)程的描述與控制38創(chuàng)建原語(yǔ)的形式為:創(chuàng)建原語(yǔ)的形式為:Create (name, Create (na
39、me, Priority, start_addr)創(chuàng)建原語(yǔ)的主要功能:創(chuàng)建原語(yǔ)的主要功能:創(chuàng)建一個(gè)指定標(biāo)識(shí)符的進(jìn)程。創(chuàng)建一個(gè)指定標(biāo)識(shí)符的進(jìn)程。過(guò)程:過(guò)程:1 1)申請(qǐng)一個(gè)空白的進(jìn)程控制塊)申請(qǐng)一個(gè)空白的進(jìn)程控制塊PCBPCB表,并向其中填入進(jìn)程標(biāo)表,并向其中填入進(jìn)程標(biāo)識(shí)符、進(jìn)程優(yōu)先級(jí)、進(jìn)程起始地址等有關(guān)參數(shù);識(shí)符、進(jìn)程優(yōu)先級(jí)、進(jìn)程起始地址等有關(guān)參數(shù);2 2)置該進(jìn)程為)置該進(jìn)程為“就緒就緒”狀態(tài),其它資源從父進(jìn)程那里繼承;狀態(tài),其它資源從父進(jìn)程那里繼承;3 3)將該)將該P(yáng)CBPCB插入就緒隊(duì)列和進(jìn)程家族隊(duì)列。插入就緒隊(duì)列和進(jìn)程家族隊(duì)列。 進(jìn)程優(yōu)先級(jí)進(jìn)程優(yōu)先級(jí) 操作系統(tǒng) 第二章 進(jìn)程的描述與控
40、制39 查查PCBPCB總鏈總鏈 有同名?有同名? 申請(qǐng)一個(gè)空的申請(qǐng)一個(gè)空的PCBPCB結(jié)構(gòu)結(jié)構(gòu) 有空有空PCBPCB? 取空取空PCBPCB(i i) 將入口參數(shù)填入將入口參數(shù)填入PCBPCB(i i)相應(yīng)項(xiàng))相應(yīng)項(xiàng) 將將PCBPCB(i i)入就緒隊(duì)列和)入就緒隊(duì)列和PCBPCB總鏈總鏈 出錯(cuò)出錯(cuò) 返回返回 出錯(cuò)出錯(cuò) 入口入口有有無(wú)無(wú)無(wú)無(wú)有有 操作系統(tǒng) 第二章 進(jìn)程的描述與控制40三、進(jìn)程撤銷三、進(jìn)程撤銷 進(jìn)程完成任務(wù)后應(yīng)予以撤銷,以便及時(shí)釋放它所占用進(jìn)程完成任務(wù)后應(yīng)予以撤銷,以便及時(shí)釋放它所占用的各種資源和的各種資源和PCBPCB結(jié)構(gòu)本身。結(jié)構(gòu)本身。 撤銷原語(yǔ)的主要功能:撤銷原語(yǔ)的主要功
41、能:收回被撤銷進(jìn)程占用的所有資源,收回被撤銷進(jìn)程占用的所有資源,并撤銷它的并撤銷它的PCBPCB。進(jìn)程的撤銷過(guò)程:進(jìn)程的撤銷過(guò)程:1 1)從)從PCBPCB集合中檢索被撤銷進(jìn)程的集合中檢索被撤銷進(jìn)程的PCBPCB,讀出該進(jìn)程的狀態(tài);,讀出該進(jìn)程的狀態(tài);2 2)若被撤銷的進(jìn)程正在執(zhí)行,應(yīng)立即終止該進(jìn)程的執(zhí)行,)若被撤銷的進(jìn)程正在執(zhí)行,應(yīng)立即終止該進(jìn)程的執(zhí)行,并設(shè)置調(diào)度標(biāo)志為真以指示該進(jìn)程被撤銷后系統(tǒng)應(yīng)重新并設(shè)置調(diào)度標(biāo)志為真以指示該進(jìn)程被撤銷后系統(tǒng)應(yīng)重新調(diào)度;調(diào)度;3 3)若該進(jìn)程還有子進(jìn)程,則還應(yīng)將其所有子進(jìn)程撤銷;)若該進(jìn)程還有子進(jìn)程,則還應(yīng)將其所有子進(jìn)程撤銷;4 4)將該進(jìn)程所擁有的全部資源
42、,或者歸還給其父進(jìn)程,)將該進(jìn)程所擁有的全部資源,或者歸還給其父進(jìn)程,或者歸還給系統(tǒng);或者歸還給系統(tǒng); 操作系統(tǒng) 第二章 進(jìn)程的描述與控制41 入口入口查查PCBPCB總鏈或進(jìn)程家族總鏈或進(jìn)程家族有此有此PCBPCB?該該P(yáng)CBPCB有子進(jìn)程?有子進(jìn)程? 釋放該進(jìn)程所占有的資源釋放該進(jìn)程所占有的資源 釋放該進(jìn)程的釋放該進(jìn)程的PCBPCB結(jié)構(gòu)結(jié)構(gòu) 出錯(cuò)出錯(cuò) 返回返回?zé)o無(wú)有有無(wú)無(wú)有有5)5)將被撤消進(jìn)程的將被撤消進(jìn)程的PCBPCB從所從所在隊(duì)列中清除,放回到空白在隊(duì)列中清除,放回到空白PCBPCB隊(duì)列中。隊(duì)列中。撤消原語(yǔ)的形式為:撤消原語(yǔ)的形式為:destroy (namedestroy (nam
43、e) 操作系統(tǒng) 第二章 進(jìn)程的描述與控制42四、進(jìn)程阻塞四、進(jìn)程阻塞( (等待等待) )阻塞原語(yǔ)的作用:阻塞原語(yǔ)的作用:將進(jìn)程由執(zhí)行狀態(tài)轉(zhuǎn)換為等待狀態(tài)。將進(jìn)程由執(zhí)行狀態(tài)轉(zhuǎn)換為等待狀態(tài)。 處于運(yùn)行狀態(tài)的進(jìn)程,在其運(yùn)行過(guò)程中期待某一事件發(fā)處于運(yùn)行狀態(tài)的進(jìn)程,在其運(yùn)行過(guò)程中期待某一事件發(fā)生,如等待鍵盤(pán)輸入;等待磁盤(pán)的數(shù)據(jù)傳輸完成,或等待其生,如等待鍵盤(pán)輸入;等待磁盤(pán)的數(shù)據(jù)傳輸完成,或等待其它進(jìn)程發(fā)送一個(gè)信息等,當(dāng)被等待的事件還沒(méi)有發(fā)生時(shí),該它進(jìn)程發(fā)送一個(gè)信息等,當(dāng)被等待的事件還沒(méi)有發(fā)生時(shí),該進(jìn)程調(diào)用等待原語(yǔ)將自己掛起。一旦被掛起,它只能由另一進(jìn)程調(diào)用等待原語(yǔ)將自己掛起。一旦被掛起,它只能由另一個(gè)進(jìn)程
44、喚醒。個(gè)進(jìn)程喚醒。阻塞原語(yǔ)的過(guò)程:阻塞原語(yǔ)的過(guò)程:1 1)中斷處理機(jī)的執(zhí)行,并保存該進(jìn)程的)中斷處理機(jī)的執(zhí)行,并保存該進(jìn)程的CPUCPU現(xiàn)場(chǎng)信息;現(xiàn)場(chǎng)信息;2 2)將被阻塞進(jìn)程的狀態(tài)設(shè)置為)將被阻塞進(jìn)程的狀態(tài)設(shè)置為“等待等待”狀態(tài),把該進(jìn)程的狀態(tài),把該進(jìn)程的PCBPCB插入到相應(yīng)的等待隊(duì)列中去;插入到相應(yīng)的等待隊(duì)列中去;3 3)轉(zhuǎn)進(jìn)程調(diào)度程序從就緒隊(duì)列中選擇一個(gè)新的進(jìn)程投入運(yùn)行。)轉(zhuǎn)進(jìn)程調(diào)度程序從就緒隊(duì)列中選擇一個(gè)新的進(jìn)程投入運(yùn)行。 操作系統(tǒng) 第二章 進(jìn)程的描述與控制43 保存需等待進(jìn)程的保存需等待進(jìn)程的CPUCPU現(xiàn)場(chǎng)現(xiàn)場(chǎng) 設(shè)置該進(jìn)程的狀態(tài)為設(shè)置該進(jìn)程的狀態(tài)為“等待等待” 需等待進(jìn)程的需等待
45、進(jìn)程的PCBPCB入等待隊(duì)列入等待隊(duì)列 轉(zhuǎn)進(jìn)程調(diào)度程序轉(zhuǎn)進(jìn)程調(diào)度程序 入口入口阻塞原語(yǔ)的形式為:阻塞原語(yǔ)的形式為:block( )block( ) 操作系統(tǒng) 第二章 進(jìn)程的描述與控制44五、進(jìn)程喚醒五、進(jìn)程喚醒當(dāng)被等待進(jìn)程所期待的事件,如當(dāng)被等待進(jìn)程所期待的事件,如I IO O操作完成,其所期待操作完成,其所期待的數(shù)據(jù)已經(jīng)到達(dá)時(shí),則由有關(guān)進(jìn)程的數(shù)據(jù)已經(jīng)到達(dá)時(shí),則由有關(guān)進(jìn)程( (比如,用完并釋放了比如,用完并釋放了該該I IO O設(shè)備的進(jìn)程設(shè)備的進(jìn)程) )調(diào)用喚醒原語(yǔ),將等待該事件的進(jìn)程調(diào)用喚醒原語(yǔ),將等待該事件的進(jìn)程喚醒。喚醒。喚醒原語(yǔ)的作用:?jiǎn)拘言Z(yǔ)的作用:將進(jìn)程由等待狀態(tài)轉(zhuǎn)換為就緒狀態(tài)。將進(jìn)程由等待狀態(tài)轉(zhuǎn)換為就緒狀態(tài)。喚醒原語(yǔ)的形式為:?jiǎn)拘言Z(yǔ)的形式為:wakeup(name)wakeup(name)喚醒原語(yǔ)執(zhí)行的操作:?jiǎn)拘言Z(yǔ)執(zhí)行的操作:1 1)在等待隊(duì)列中找到相應(yīng)進(jìn)程的)在等待隊(duì)列中找到相應(yīng)進(jìn)程的PCBPCB,將其從等待隊(duì)列中,將其從等待隊(duì)列中摘下;摘下;2 2)設(shè)置其狀態(tài)為就緒狀態(tài),把該進(jìn)程的)設(shè)置其狀態(tài)為就緒狀態(tài),把該進(jìn)程的PCBPCB插入就緒隊(duì)列;插入就緒隊(duì)列;3
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于班風(fēng)學(xué)風(fēng)的精彩發(fā)言稿(5篇)
- 污水處理與可持續(xù)發(fā)展-洞察分析
- 新型密封材料耐磨性分析-洞察分析
- 網(wǎng)絡(luò)均衡與數(shù)據(jù)安全-洞察分析
- 虛擬現(xiàn)實(shí)技術(shù)在火災(zāi)風(fēng)險(xiǎn)培訓(xùn)中的作用-洞察分析
- 虛擬現(xiàn)實(shí)的報(bào)告-洞察分析
- 水利工程風(fēng)險(xiǎn)監(jiān)測(cè)技術(shù)-洞察分析
- 虛擬現(xiàn)實(shí)技術(shù)與心理實(shí)驗(yàn)的結(jié)合-洞察分析
- 用戶畫(huà)像在人工智能領(lǐng)域的應(yīng)用與挑戰(zhàn)研究-洞察分析
- 下頜下腺癌化療藥物分子標(biāo)記物-洞察分析
- 鄉(xiāng)土中國(guó)知識(shí)點(diǎn)匯總 統(tǒng)編版高中語(yǔ)文必修上冊(cè)
- 《電力設(shè)備預(yù)防性試驗(yàn)規(guī)程》
- 高大模板工程安全技術(shù)交底
- 2023年托幼機(jī)構(gòu)幼兒園衛(wèi)生保健人員考試題庫(kù)及參考答案
- 工程造價(jià)司法鑒定難點(diǎn)與應(yīng)對(duì)措施
- 牙隱裂牙隱裂
- 辦公樓裝飾裝修改造工程施工組織設(shè)計(jì)方案
- 三色鴿食品廠降壓變電所的電氣設(shè)計(jì)
- YY/T 1181-2021免疫組織化學(xué)試劑盒
- GB/T 6680-2003液體化工產(chǎn)品采樣通則
- GB/T 4457.4-2002機(jī)械制圖圖樣畫(huà)法圖線
評(píng)論
0/150
提交評(píng)論