進(jìn)程管理一基本概念_第1頁
進(jìn)程管理一基本概念_第2頁
進(jìn)程管理一基本概念_第3頁
進(jìn)程管理一基本概念_第4頁
進(jìn)程管理一基本概念_第5頁
已閱讀5頁,還剩69頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1

計算機(jī)操作系統(tǒng)錢斌dnhistory@內(nèi)容回顧介紹了幾種常用的操作系統(tǒng):DOS、Windows、Unix及Linux2第一章:操作系統(tǒng)概述操作系統(tǒng)的定義操作系統(tǒng)的特征操作系統(tǒng)的發(fā)展操作系統(tǒng)的分類操作系統(tǒng)的結(jié)構(gòu)(包括內(nèi)核體系結(jié)構(gòu))3進(jìn)程的基本概念進(jìn)程的控制進(jìn)程的同步經(jīng)典進(jìn)程的同步問題進(jìn)程的通信線程第二章進(jìn)程管理4第二章進(jìn)程管理2.1進(jìn)程的引入--并發(fā)活動操作系統(tǒng)的特性之一是并發(fā)與共享,即在系統(tǒng)中(內(nèi)存)同時存在幾個相互獨(dú)立的程序,這些程序在系統(tǒng)中既交叉地運(yùn)行,又要共享系統(tǒng)中的資源,這就會引起一系列的問題,包括:對資源的競爭、運(yùn)行程序之間的通信、程序之間的合作與協(xié)同等符。要解決這些問題,用程序的概念已經(jīng)不能描述程序在內(nèi)存中運(yùn)行的狀態(tài),必須引入新的概念--進(jìn)程。5閱讀菜譜準(zhǔn)備原料烹制菜肴飯菜閱讀洗衣機(jī)手冊準(zhǔn)備衣服、洗衣粉設(shè)定參數(shù),洗衣服干凈衣服程序輸入運(yùn)行輸出分時切換洗衣進(jìn)程做飯進(jìn)程程序輸入運(yùn)行輸出62.1并發(fā)活動--進(jìn)程的引入

程序的順序執(zhí)行

一、概念一個程序由若干個程序段組成,而這些程序段的執(zhí)行必須是順序的,這種程序執(zhí)行的方式就稱為程序的順序執(zhí)行。例如:

7程序的順序執(zhí)行

二、程序順序執(zhí)行的特點(diǎn)1.順序性處理機(jī)嚴(yán)格按照程序所規(guī)定的順序執(zhí)行,即每個操作必須在下一個操作開始之前結(jié)束。2.封閉性

程序一旦開始執(zhí)行,其計算結(jié)果不受外界的影響,當(dāng)程序的初始條件給定之后,其后的狀態(tài)只能由程序本身確定,即只有本程序才能改變它。3.可再現(xiàn)性

程序執(zhí)行的結(jié)果與初始條件有關(guān),而與執(zhí)行時間無關(guān)。即只要程序的初始條件相同,它的執(zhí)行結(jié)果是相同的,不論它在什么時間執(zhí)行,也不管計算機(jī)的運(yùn)行速度。8

2程序的并發(fā)執(zhí)行例:在系統(tǒng)中有n個作業(yè),每個作業(yè)都有三個處理步驟,輸入數(shù)據(jù)、處理、輸出,即Ii,Ci,Pi(i=1,2,3,...,n)。

這些作業(yè)系統(tǒng)中,有些操作必須在其它操作之前執(zhí)行,這是有序的,但有些操作是可以同時執(zhí)行的。例如:

I1、C1、P1的執(zhí)行必須嚴(yán)格按照I1,C1,P1的順序,而P1與I2,C1與I2,I3與P1是可以同時執(zhí)行的。9程序的并發(fā)執(zhí)行—前驅(qū)圖表示例如:

I1、C1、P1的執(zhí)行必須嚴(yán)格按照I1,C1,P1的順序,而P1與I2,C1與I2,I3與P1是可以同時執(zhí)行的。10并發(fā)活動--進(jìn)程的引人

程序的并發(fā)執(zhí)行程序并發(fā)執(zhí)行(定義)

若干個程序段同時在系統(tǒng)中運(yùn)行,這些程序的執(zhí)行在時間上是重迭的,一個程序段的執(zhí)行尚未結(jié)束,另一個程序段的執(zhí)行已經(jīng)開始,即使這種重迭是很小的,也稱這幾個程序段是并發(fā)執(zhí)行的。11并發(fā)活動--進(jìn)程的引人

程序的并發(fā)執(zhí)行程序并發(fā)執(zhí)行的描述

cobeginS1;S2;S3;...;SNcoend;Si(i=1,2,3,...,n)表示n個語句(程序段),這n個語句用cobegin和coend括起來,表示這n個語句是可以并發(fā)執(zhí)行的。co是concurrent的頭兩個字符。這是Dijkstra提出的。12

程序并發(fā)執(zhí)行的描述假設(shè)有一個程序由S0~Sn+1個語句,其中S1~Sn語句是并發(fā)執(zhí)行的,程序如下:

S0;

cobeginS1;S2;S3;...;SNcoend;Sn+1;13一、一個循環(huán)程序順序執(zhí)行的抄寫例子算法1:輸入:f輸出:g{

while(f不為空)

{input;output;}}由這個程序完成謄抄工作是不會出錯的。14

并發(fā)執(zhí)行實(shí)行--謄抄

二、兩個程序并發(fā)執(zhí)行完成抄寫

設(shè)有一臺標(biāo)準(zhǔn)輸入設(shè)備(鍵盤),和一臺標(biāo)準(zhǔn)輸出設(shè)備(顯示器或打印機(jī)),輸入程序負(fù)責(zé)從標(biāo)準(zhǔn)設(shè)備中讀取一個字符,送緩沖區(qū)中。輸出程序從緩沖區(qū)中取數(shù)據(jù),送標(biāo)準(zhǔn)設(shè)備輸出。15二、兩個程序并發(fā)執(zhí)行完成謄抄算法:2{cobeginwhile(不為結(jié)束符)/*輸入程序段*/

{input;/*從標(biāo)準(zhǔn)輸入設(shè)備讀入一個數(shù)據(jù)*/

send;/*將讀入的數(shù)據(jù)送到bufferf*/}while(buffer不為空)/*輸出程序段*/

{receive;/*從bufferf中取數(shù)據(jù)*/

output;/*送打印機(jī)輸出*/

}

coend}16二、兩個程序并發(fā)執(zhí)行完成謄抄這兩個程序段并發(fā)執(zhí)行時可能出現(xiàn)如下情況:1、輸出程序運(yùn)行的速度比輸入程序快時,有些輸出會重復(fù);如輸入送入了一個字符“A”,輸出取出打印“A”,當(dāng)輸入還未送入新的數(shù)據(jù),輸出程序已執(zhí)行,又取出“A”打印,這樣“A”的輸出就重復(fù)了,出錯。2、輸入程序執(zhí)行的速度比輸出程序快時,有些數(shù)據(jù)會丟失;如輸入程序送入一個字符“B”,緊接著(當(dāng)輸出程序還未取走字符“B”)又送入字符“N”,這時輸出程序取走的是“N”,“B”就丟失了。17程序并發(fā)執(zhí)行的特點(diǎn)一、間斷性程序在并發(fā)執(zhí)行時,由于它們共享系統(tǒng)資源,以及為完成同一項(xiàng)任務(wù)而相互合作,致使在這些并發(fā)執(zhí)行的程序之間,形成了相互制約的關(guān)系。相互制約將導(dǎo)致并發(fā)程序具有“執(zhí)行—暫?!獔?zhí)行”這種間斷性的活動規(guī)律。18程序并發(fā)執(zhí)行的特點(diǎn)二、失去了程序的封閉性

如果程序執(zhí)行的結(jié)果是一個與時間無關(guān)的函數(shù),即具有封閉性。若一個程序的執(zhí)行可改變另一個程序的變量,象二個并發(fā)程序完成謄抄的例子,程序執(zhí)行的結(jié)果不僅依賴于程序的初始條件,還依賴于程序執(zhí)行時的相對速度,在這種情況下就失去了程序的封閉性。

19程序并發(fā)執(zhí)行的特點(diǎn)三、不可再現(xiàn)性:P35例,設(shè)N的初值為n。有2個循環(huán)程序A和B,它們共享一個變量N,程序A每執(zhí)行一次時,都要做N=N+1;B則每次要執(zhí)行Print(N),然后再做N=0.某時刻變量N的值為n;若程序A,B以不同的速度運(yùn)行有三種不同的輸出結(jié)果20進(jìn)程概念(process)

1進(jìn)程的定義

在多道程序設(shè)計的環(huán)境下,為了描述程序在計算機(jī)系統(tǒng)內(nèi)的執(zhí)行情況,必須引新的概念--進(jìn)程。進(jìn)程的概念來自于麻省理工的MULTICS、IBM的TSS/360,在IBM的OS/360/370系統(tǒng)中也曾叫過任務(wù)(task)。21進(jìn)程的定義(枚舉法)行為的一個規(guī)則叫做程序,程序在處理機(jī)上執(zhí)行時所發(fā)生的活動稱為進(jìn)程(Dijkstra)。進(jìn)程是這樣的計算部分,它是可以和其它計算并行的一個計算。(Donovan)進(jìn)程(有時稱為任務(wù))是一個程序與其數(shù)據(jù)一道通過處理機(jī)的執(zhí)行所發(fā)生的活動。(Alan.C.Shaw)進(jìn)程是執(zhí)行中的程序。(KenThompsonandDennisRitchie)教材上給出的進(jìn)程的定義:

進(jìn)程,是進(jìn)程實(shí)體的運(yùn)行過程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨(dú)立單位。22

進(jìn)程與程序的區(qū)別與聯(lián)系(進(jìn)程的特點(diǎn))1、動態(tài)性:程序是指令的集合,可以作為軟件資料長期保存,是靜態(tài)的概念。進(jìn)程是程序在處理機(jī)上的一次執(zhí)行的過程,進(jìn)程是有生命周期的:創(chuàng)建-撤銷,產(chǎn)生-消亡,是動態(tài)的概念。2、并發(fā)性:進(jìn)程是一個獨(dú)立的運(yùn)行單位,能與其它進(jìn)程并行(并發(fā))活動。而程序則不能。只有建立了進(jìn)程,才能并發(fā)執(zhí)行。3、獨(dú)立性:進(jìn)程是競爭計算機(jī)系統(tǒng)有限資源的基本單位,也是進(jìn)行處理機(jī)調(diào)度的基本單位。獨(dú)立運(yùn)行,獨(dú)立獲得資源4、異步性。進(jìn)程按照各自獨(dú)立的不可預(yù)知的速度向前推進(jìn)。5、進(jìn)程的組成包括程序和數(shù)據(jù),還有進(jìn)程控制塊PCB。23

進(jìn)程的狀態(tài)一、進(jìn)程的基本狀態(tài)進(jìn)程在系統(tǒng)中的活動規(guī)律是:執(zhí)行暫停執(zhí)行(在校學(xué)生,吃飯->學(xué)習(xí)->睡覺三種狀態(tài))進(jìn)程的三種基本狀態(tài):

運(yùn)行狀態(tài)就緒狀態(tài)

等待狀態(tài)(又稱阻塞、掛起、睡眠)24

一、進(jìn)程的基本狀態(tài)1、就緒狀態(tài)(Ready)

存在于處理機(jī)調(diào)度隊(duì)列中的那些進(jìn)程,它們已經(jīng)準(zhǔn)備就緒,一旦得到CPU,就立即可以運(yùn)行,這些進(jìn)程所取的狀態(tài)為就緒狀態(tài)。(有多個進(jìn)程處于此狀態(tài))2、運(yùn)行狀態(tài)(Running)

當(dāng)進(jìn)程由調(diào)度/分派程序分派后,得到CPU控制權(quán),它的程序正在運(yùn)行,該進(jìn)程所處的狀態(tài)為運(yùn)行狀態(tài)。(在單CPU系統(tǒng)中,總只有一個進(jìn)程處于此狀態(tài))3、阻塞狀態(tài)(Block)

若一個進(jìn)程正在等待某個事件的發(fā)生(如等待I/O的完成),而暫停執(zhí)行,這時,即使給它CPU時間,它也無法執(zhí)行,則稱該進(jìn)程處于阻塞狀態(tài)。25

二、進(jìn)程狀態(tài)變遷圖進(jìn)程的狀態(tài)不是固定不變的,而是在不斷變換。運(yùn)行Running被調(diào)度時間片用完,中斷資源釋放或事件完成阻塞Blocked等待資源和事件進(jìn)程占有處理機(jī),處理機(jī)正在執(zhí)行該進(jìn)程的程序。進(jìn)程已獲得除處理機(jī)外的所需資源,等待分配處理機(jī)執(zhí)行。也叫等待、掛起、睡眠態(tài),此時進(jìn)程因等待某種條件(如I/O操作或進(jìn)程同步)無法運(yùn)行。引起進(jìn)程阻塞的原因很多,系統(tǒng)將根據(jù)不同的阻塞原因?qū)⑦M(jìn)程插入某個相應(yīng)的阻塞隊(duì)列中。就緒Ready26

進(jìn)程的狀態(tài)變化的原因運(yùn)行阻塞等待某事件的發(fā)生(如等待I/O完成)阻塞就緒事件已經(jīng)發(fā)生(如I/O完成)運(yùn)行

就緒時間片到(例如,兩節(jié)課時間到,下課)新建進(jìn)程就緒新創(chuàng)建的進(jìn)程進(jìn)入就緒狀態(tài)就緒運(yùn)行當(dāng)處理機(jī)空閑時,由調(diào)度(分派)程序從就緒進(jìn)程隊(duì)列中選擇一個進(jìn)程占用CPU。增加“創(chuàng)建”、“終止”狀態(tài)27運(yùn)行就緒阻塞被調(diào)度時間片用完,中斷資源釋放或事件完成等待資源和事件創(chuàng)建創(chuàng)建完畢終止結(jié)束執(zhí)行五種進(jìn)程狀態(tài)轉(zhuǎn)換28進(jìn)程并發(fā)執(zhí)行示例例:

假設(shè)內(nèi)存中有3個進(jìn)程A、B、C,他們的程序代碼已全部裝入內(nèi)存。若A、C兩進(jìn)程需要執(zhí)行12條指令,B進(jìn)程需要執(zhí)行4條指令,且B進(jìn)程執(zhí)行到第4條指令處必須等待I/O觀察ProgramCounter內(nèi)容的變化,理解進(jìn)程并發(fā)過程中狀態(tài)的切換。293個進(jìn)程全部裝入內(nèi)存,準(zhǔn)備并發(fā)執(zhí)行303個進(jìn)程的執(zhí)行代碼在內(nèi)存中的地址31處理機(jī)執(zhí)行這3個進(jìn)程的軌跡(見圖3.3,P104)323進(jìn)程狀態(tài)轉(zhuǎn)換33其狀態(tài)轉(zhuǎn)換的隊(duì)列結(jié)構(gòu)()34增加“掛起”狀態(tài)掛起狀態(tài)(被換出內(nèi)存的狀態(tài))引入原因終端用戶請求父進(jìn)程請求負(fù)荷調(diào)節(jié)需要操作系統(tǒng)需要355狀態(tài)進(jìn)程轉(zhuǎn)換圖活動就緒靜止就緒活動阻塞靜止阻塞激活掛起激活掛起釋放釋放掛起請求I/O執(zhí)行36五狀態(tài)進(jìn)程模型:增加了“掛起”操作

(5種狀態(tài))執(zhí)行狀態(tài):占用處理機(jī)(單處理機(jī)環(huán)境中,某一時刻僅一個進(jìn)程占用處理機(jī))活動就緒狀態(tài):準(zhǔn)備執(zhí)行靜止就緒狀態(tài):從活動就緒掛起活動阻塞狀態(tài):等待某事件發(fā)生才能執(zhí)行,如等待I/O完成等靜止阻塞狀態(tài):從阻塞狀態(tài)掛起37進(jìn)程實(shí)體描述在系統(tǒng)中一個進(jìn)程實(shí)體存在:進(jìn)程控制塊(數(shù)據(jù)結(jié)構(gòu))

進(jìn)程的執(zhí)行程序(一個可執(zhí)行文件)進(jìn)程總是位于某個隊(duì)列(就緒、等待某事件隊(duì)列)

處于某種狀態(tài)(運(yùn)行、就緒、等待)占用某些系統(tǒng)資源(內(nèi)存,打開某些文件、處理機(jī)、外設(shè))38進(jìn)程的組成PCBProcessControlBlock

靈魂,進(jìn)程存在的唯一標(biāo)志。數(shù)據(jù)程序

程序:描述了進(jìn)程要完成的功能,是進(jìn)程執(zhí)行時不可修改的部分。數(shù)據(jù):進(jìn)程執(zhí)行時用到的數(shù)據(jù)(用戶輸入的數(shù)據(jù)、常量、靜態(tài)變量)。工作區(qū)

工作區(qū):參數(shù)傳遞、系統(tǒng)調(diào)用時使用的動態(tài)區(qū)域(堆棧區(qū))。實(shí)體39

進(jìn)程描述進(jìn)程控制塊

PCB(ProcessControlBlock)

存放進(jìn)程的管理和控制信息的數(shù)據(jù)結(jié)構(gòu)稱為進(jìn)程控制塊。它是進(jìn)程管理和控制的最重要的數(shù)據(jù)結(jié)構(gòu),在創(chuàng)建時,建立PCB,并伴隨進(jìn)程運(yùn)行的全過程,直到進(jìn)程撤消而撤消。PCB就象我們的戶口。40

進(jìn)程控制塊PCB內(nèi)容

1、進(jìn)程標(biāo)識符name

每個進(jìn)程都必須有一個唯一的標(biāo)識符,可以是字符串,也可以是一個數(shù)字。UNIX系統(tǒng)中就是一個整型數(shù)。在進(jìn)程創(chuàng)建時由系統(tǒng)賦予。

2、進(jìn)程當(dāng)前狀態(tài)status

說明進(jìn)程當(dāng)前所處的狀態(tài)。為了管理的方便,系統(tǒng)設(shè)計時會將相同的狀態(tài)的進(jìn)程組成一個隊(duì)列,如就緒進(jìn)程隊(duì)列,等待進(jìn)程則要根據(jù)等待的事件組成多個等待隊(duì)列,如等待打印機(jī)隊(duì)列、等待磁盤I/O完成隊(duì)列等等。41進(jìn)程控制塊

PCB內(nèi)容3、當(dāng)前隊(duì)列指針next

登記與本進(jìn)程處于同一隊(duì)列的下一個進(jìn)程的PCB的地址。42

進(jìn)程控制塊PCB內(nèi)容4、總鏈指針all-q-next5、執(zhí)行程序開始地址start-addr6、進(jìn)程優(yōu)先級priority

進(jìn)程的優(yōu)先級反映進(jìn)程的緊迫程序,通常由用戶指定和系統(tǒng)設(shè)置。UNIX系統(tǒng)采用用戶設(shè)置和系統(tǒng)計算相結(jié)合的方式確定進(jìn)程的優(yōu)先級。43

進(jìn)程控制塊PCB內(nèi)容7、CPU現(xiàn)場保護(hù)區(qū)cpustatus

當(dāng)進(jìn)程因某種原因不能繼續(xù)占用CPU時(等待打印機(jī)),釋放CPU,這時就要將CPU的各種狀態(tài)信息保護(hù)起來,為將來再次得到處理機(jī)恢復(fù)CPU的各種狀態(tài),繼續(xù)運(yùn)行。例如,我們下課,這時我要記住這次講到什么地方,下次課接著講。8、通信信息communicationinformation

是指某個進(jìn)程在運(yùn)行的過程中要與其它進(jìn)程進(jìn)行通信,該區(qū)記錄有關(guān)進(jìn)程通信方面的信息。44

進(jìn)程控制塊PCB內(nèi)容9、家族聯(lián)系processfamily

有的系統(tǒng)允許一個進(jìn)程可創(chuàng)建自已的子進(jìn)程,子進(jìn)程還可以創(chuàng)建,一個進(jìn)程往往處在一個家族之中,就需要記錄進(jìn)程在家族中位置的信息。10、占有資源清單own-resource

進(jìn)程占用系統(tǒng)資源的情況,不同的系統(tǒng)的處理差別很大,UNIX系統(tǒng)中就沒有此項(xiàng)。45進(jìn)程控制塊PCB組織方式鏈接方式索引方式46進(jìn)程控制塊PCB組織方式鏈接方式

執(zhí)行指針就緒隊(duì)列指針阻塞隊(duì)列指針空閑隊(duì)列指針...PCB1PCB2PCB3PCB4PCB6PCB7PCB8PCB9PCB543087901鏈接方式47進(jìn)程控制塊PCB組織方式索引方式執(zhí)行指針就緒隊(duì)列指針阻塞隊(duì)列指針...PCB1PCB2PCB3PCB4PCB6PCB7PCB8PCB9PCB5482.2進(jìn)程控制

進(jìn)程控制的概念

進(jìn)程是有生命周期的,產(chǎn)生、運(yùn)行、暫停、終止。對進(jìn)程的這些操作叫進(jìn)程控制。

進(jìn)程控制的職責(zé)是對系統(tǒng)中全部進(jìn)程實(shí)施有效的管理,它是處理機(jī)管理的部分(另一部分是進(jìn)程調(diào)度),當(dāng)系統(tǒng)允許多進(jìn)程并發(fā)執(zhí)行時,為了實(shí)現(xiàn)共享、協(xié)調(diào)并發(fā)進(jìn)程的關(guān)系,處理機(jī)管理必須提供對進(jìn)程實(shí)行有效的管理。492.2進(jìn)程控制

進(jìn)程控制的概念

進(jìn)程控制包括:

進(jìn)程創(chuàng)建、進(jìn)程撤消、

進(jìn)程阻塞、

進(jìn)程喚醒。

這些操作都要對應(yīng)地執(zhí)行一個特殊的程序段(操作系統(tǒng)核心程序),同時系統(tǒng)也通過系統(tǒng)調(diào)用給用戶提供進(jìn)程控制的功能。教材上叫原語(一種特殊的系統(tǒng)調(diào)用)。502.2進(jìn)程控制

進(jìn)程控制的概念運(yùn)行狀態(tài)

等待狀態(tài)

進(jìn)程阻塞等待狀態(tài)

就緒狀態(tài)進(jìn)程喚醒新建進(jìn)程置為就緒狀態(tài)

進(jìn)程創(chuàng)建進(jìn)程終止(消亡)

進(jìn)程撤消就緒狀態(tài)

運(yùn)行狀態(tài)

進(jìn)程調(diào)度512.2進(jìn)程控制

進(jìn)程控制的概念

在UNIX系統(tǒng)中進(jìn)程控制的系統(tǒng)調(diào)用有:

fork()創(chuàng)建子進(jìn)程

sleep()進(jìn)程睡眠

exit()進(jìn)程自已終止(自殺)

wait()(父)等待子進(jìn)程終止

wakeup()

進(jìn)程喚醒

522.2進(jìn)程控制

進(jìn)程創(chuàng)建

在UNIX系統(tǒng)中用戶鍵入一個命令(如date,ps,ls),shell就創(chuàng)建一個進(jìn)程。

一個程序(可執(zhí)行的)如果可分成幾個程序段,并且這些程序段可并發(fā)執(zhí)行,用戶程序可使用創(chuàng)建程序的系統(tǒng)調(diào)用創(chuàng)建多個進(jìn)程,每個進(jìn)程執(zhí)行一個程序段。例如,放VCD程序。進(jìn)程創(chuàng)建類似于人出生后要到派出所報戶口。532.2進(jìn)程控制

進(jìn)程創(chuàng)建創(chuàng)建事由在終端上交互式的登錄作業(yè)調(diào)度提供服務(wù)由系統(tǒng)內(nèi)核創(chuàng)建新進(jìn)程應(yīng)用請求由請求的應(yīng)用程序自行創(chuàng)建新進(jìn)程542.2進(jìn)程控制

進(jìn)程創(chuàng)建進(jìn)程創(chuàng)建系統(tǒng)調(diào)用:

create(name,priority,start-addr)UNIX系統(tǒng):

fork()552.2進(jìn)程控制

進(jìn)程創(chuàng)建后隊(duì)列的變化圖562.2進(jìn)程控制

進(jìn)程撤消

進(jìn)程完成其任務(wù),希望終止時,調(diào)用撤消進(jìn)程的系統(tǒng)調(diào)用(進(jìn)程撤消原語)撤消進(jìn)程。相當(dāng)于一個人死亡后,家人要去派出所消戶口。

在一般操作系統(tǒng)中進(jìn)程撤消的系統(tǒng)調(diào)用是:kill

UNIX系統(tǒng)中是exit()。

終止事由:正常結(jié)束異常結(jié)束外界的干預(yù)57終止流程:

OS通過調(diào)用進(jìn)程終止原語完成進(jìn)程的終止。第一步:根據(jù)被終止進(jìn)程的標(biāo)識符,從PCB集合中查找對應(yīng)進(jìn)程控制塊并讀出該進(jìn)程的狀態(tài);第二步:若被終止進(jìn)程正處于執(zhí)行狀態(tài),則終止該進(jìn)程的執(zhí)行,并設(shè)置調(diào)度標(biāo)志為真,用于指示該進(jìn)程被終止后應(yīng)重新進(jìn)行調(diào)度,選擇一新進(jìn)程,把處理機(jī)分配給它。第三步:若進(jìn)程還有子孫進(jìn)程,應(yīng)將其所有子孫進(jìn)程終止,以防它們成為不可控制的。第四步:將進(jìn)程所占有的全部資源釋放(還給父進(jìn)程或系統(tǒng)),釋放進(jìn)程控制塊(若該進(jìn)成為執(zhí)行態(tài),要進(jìn)行進(jìn)程調(diào)度)。第五步:將被終止進(jìn)程(它的PCB)從所在隊(duì)列(或鏈表)中移出,等待其他程序來收集相關(guān)信息。582.2進(jìn)程控制

進(jìn)程撤消592.2進(jìn)程控制

進(jìn)程撤消602.2進(jìn)程控制

進(jìn)程掛起

當(dāng)一個處在運(yùn)行狀態(tài)的進(jìn)程,因等待某個事件的發(fā)生(如等待打印機(jī))而不能繼續(xù)運(yùn)行時,將調(diào)用進(jìn)程掛起系統(tǒng)調(diào)用,把進(jìn)程的狀態(tài)置為阻塞狀態(tài),并調(diào)用進(jìn)程調(diào)度程序(等于讓出處理機(jī))。在UNIX系統(tǒng)中進(jìn)程掛起調(diào)用sleep(chan,pri)。612.2進(jìn)程控制

進(jìn)程掛起

進(jìn)程從運(yùn)行狀態(tài)轉(zhuǎn)換成阻塞狀態(tài)是由進(jìn)程掛起原語實(shí)現(xiàn)的,因此,調(diào)用進(jìn)程掛起操作是在進(jìn)程處于運(yùn)行狀態(tài)下執(zhí)行的。它的執(zhí)行將引起等待某事件的隊(duì)列的改變.

例如,進(jìn)程是因等待打印機(jī)而進(jìn)入阻塞狀態(tài),則該進(jìn)程將加入到等待打印機(jī)的隊(duì)列。進(jìn)程掛起系統(tǒng)調(diào)用的算法和隊(duì)列變化如下。622.2進(jìn)程控制

進(jìn)程掛起進(jìn)程掛起的內(nèi)部調(diào)用形式(UNIX系統(tǒng)):

sleep(chan,pri)

其中:chan進(jìn)程掛起(睡眠)的原因;

pri進(jìn)程被喚醒后的優(yōu)先級

一般調(diào)用形式:

susp(chan)

其中:chan進(jìn)程等待的原因632.2進(jìn)程控制

進(jìn)程掛起642.2進(jìn)程控制

進(jìn)程掛起652.2進(jìn)程控制

進(jìn)程喚醒

一個正在運(yùn)行的進(jìn)程會因等待某事件(例如,等待打印機(jī))的發(fā)生,由運(yùn)行狀態(tài)轉(zhuǎn)換成阻塞狀態(tài),當(dāng)它等待的事件發(fā)生后,這個進(jìn)程將由阻塞狀態(tài)轉(zhuǎn)換成就緒狀態(tài)。這種轉(zhuǎn)換由進(jìn)程喚醒操作完成。

調(diào)用進(jìn)程喚醒操作一般在中斷處理、進(jìn)程通信等過程中。例如,打印機(jī)完成中斷處理程序,在完成了打印完成的操作后,就去檢查等待打印機(jī)的隊(duì)列,若不為空,則調(diào)用進(jìn)程喚醒操作,喚醒一個(或多個)等待打印機(jī)的

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論