版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第二章 進(jìn) 程 管 理 第二章第二章 進(jìn)程管理進(jìn)程管理2.1 2.1 進(jìn)程的基本概念進(jìn)程的基本概念 2.2 2.2 進(jìn)程控制進(jìn)程控制 2.3 2.3 進(jìn)程同步進(jìn)程同步 2.4 2.4 經(jīng)典進(jìn)程的同步問題經(jīng)典進(jìn)程的同步問題 2.5 2.5 進(jìn)程通信進(jìn)程通信 第二章 進(jìn) 程 管 理 2.1 進(jìn)程的基本概念進(jìn)程的基本概念什么是進(jìn)程?什么是進(jìn)程?第二章 進(jìn) 程 管 理 小結(jié) 程序并發(fā)執(zhí)行時(shí)的這些特征,這說明通常的程序是不能參與并發(fā)執(zhí)行的,因?yàn)槌绦驁?zhí)行的結(jié)果是不可再現(xiàn)的;這樣程序的運(yùn)行就失去了意義,為了使程序能并發(fā)執(zhí)行,引入了“進(jìn)程”的概念。 程序是存在磁盤的文件時(shí)靜態(tài)的。第二章 進(jìn) 程 管 理 進(jìn)程的
2、定義進(jìn)程的定義靜止的程序靜止的程序無法描述正在運(yùn)行程序的活動規(guī)律,以及系統(tǒng)內(nèi)無法描述正在運(yùn)行程序的活動規(guī)律,以及系統(tǒng)內(nèi)的動態(tài)情況。的動態(tài)情況。第二章 進(jìn) 程 管 理 進(jìn)程的特征進(jìn)程的特征結(jié)構(gòu)特征結(jié)構(gòu)特征進(jìn)程是為描述了正在運(yùn)行的程序的若干指標(biāo)。從實(shí)現(xiàn)的角度是進(jìn)程是為描述了正在運(yùn)行的程序的若干指標(biāo)。從實(shí)現(xiàn)的角度是一個結(jié)構(gòu)體數(shù)據(jù)結(jié)構(gòu)一個結(jié)構(gòu)體數(shù)據(jù)結(jié)構(gòu) 稱為稱為PCB(進(jìn)程控制塊進(jìn)程控制塊)1)并發(fā)性并發(fā)性 2)獨(dú)立性獨(dú)立性獨(dú)立運(yùn)行,獨(dú)立獲得資源的基本單位獨(dú)立運(yùn)行,獨(dú)立獲得資源的基本單位3)異步性異步性 進(jìn)程在計(jì)算機(jī)系統(tǒng)中推進(jìn)的速度不可預(yù)知進(jìn)程在計(jì)算機(jī)系統(tǒng)中推進(jìn)的速度不可預(yù)知 5)動態(tài)性)動態(tài)性 (最
3、基本特征,具有生命周期(最基本特征,具有生命周期創(chuàng)建創(chuàng)建 調(diào)度調(diào)度 暫停暫停 撤銷撤銷第二章 進(jìn) 程 管 理 3 . 進(jìn)程與程序的區(qū)別與聯(lián)系進(jìn)程與程序的區(qū)別與聯(lián)系 動態(tài)與靜態(tài)動態(tài)與靜態(tài) 本質(zhì)區(qū)別,進(jìn)程是動態(tài)的,程序是靜態(tài)的本質(zhì)區(qū)別,進(jìn)程是動態(tài)的,程序是靜態(tài)的 進(jìn)程可以并發(fā)執(zhí)行,程序不能進(jìn)程可以并發(fā)執(zhí)行,程序不能 進(jìn)程是競爭計(jì)算機(jī)系統(tǒng)資源、進(jìn)行調(diào)度的進(jìn)程是競爭計(jì)算機(jī)系統(tǒng)資源、進(jìn)行調(diào)度的基本單位基本單位 進(jìn)程與程序有聯(lián)系進(jìn)程與程序有聯(lián)系進(jìn)程既然是動態(tài)的,因此它有若干狀態(tài)進(jìn)程既然是動態(tài)的,因此它有若干狀態(tài)第二章 進(jìn) 程 管 理 4進(jìn)程的三種基本狀態(tài)進(jìn)程的三種基本狀態(tài)1)就緒狀態(tài)就緒狀態(tài) (Ready
4、)萬事俱備,只欠萬事俱備,只欠CPU; 就緒隊(duì)列;等待調(diào)度程序進(jìn)行調(diào)度就緒隊(duì)列;等待調(diào)度程序進(jìn)行調(diào)度2)執(zhí)行執(zhí)行/運(yùn)行狀態(tài)運(yùn)行狀態(tài)(Running) 占有占有CPU,正在運(yùn)行(單,正在運(yùn)行(單CPU 系統(tǒng),任何時(shí)刻只有一個進(jìn)系統(tǒng),任何時(shí)刻只有一個進(jìn)程在運(yùn)行程在運(yùn)行)3)阻塞狀態(tài)阻塞狀態(tài) (Blocked)運(yùn)行進(jìn)程發(fā)生某事件(請求運(yùn)行進(jìn)程發(fā)生某事件(請求I/O)而暫停執(zhí)行,)而暫停執(zhí)行,自愿自愿放棄放棄CPU 進(jìn)入阻塞狀態(tài);當(dāng)進(jìn)入阻塞狀態(tài);當(dāng)I/0完成,進(jìn)入就需狀態(tài)。完成,進(jìn)入就需狀態(tài)。第二章 進(jìn) 程 管 理 當(dāng)進(jìn)程執(zhí)行過程中,CPU被強(qiáng)行掠奪,那么進(jìn)程進(jìn)入什么狀態(tài)呢? 強(qiáng)行掠奪:在分時(shí)系統(tǒng)中,
5、采用的是時(shí)間片機(jī)制,當(dāng)進(jìn)程時(shí)間片完了,那么CPU將被掠奪,或者由于更高級別的進(jìn)程進(jìn)來獲得了CPU,當(dāng)前的進(jìn)程也被剝奪CPU?此時(shí)進(jìn)程進(jìn)入什么狀態(tài)呢?第二章 進(jìn) 程 管 理 就緒就緒阻塞阻塞執(zhí)行執(zhí)行時(shí)間片完時(shí)間片完進(jìn)程調(diào)度進(jìn)程調(diào)度I/O完成完成I/O請求請求進(jìn)程的三種基本狀態(tài)及其轉(zhuǎn)換圖進(jìn)程的三種基本狀態(tài)及其轉(zhuǎn)換圖 第二章 進(jìn) 程 管 理 5. 新狀態(tài)和終止?fàn)顟B(tài)新狀態(tài)和終止?fàn)顟B(tài) 新狀態(tài)(新狀態(tài)(New)建立建立 就緒隊(duì)列就緒隊(duì)列 新狀態(tài)新狀態(tài) 終止?fàn)顟B(tài)(終止?fàn)顟B(tài)(Terminated)進(jìn)程結(jié)束進(jìn)程結(jié)束 撤銷撤銷 終止?fàn)顟B(tài)終止?fàn)顟B(tài)第二章 進(jìn) 程 管 理 進(jìn)程狀態(tài)變遷圖進(jìn)程狀態(tài)變遷圖阻塞阻塞執(zhí)行執(zhí)行時(shí)
6、間片完時(shí)間片完進(jìn)程調(diào)度進(jìn)程調(diào)度I/O完成完成I/O請求請求新進(jìn)程新進(jìn)程結(jié)束結(jié)束就緒就緒第二章 進(jìn) 程 管 理 進(jìn)程狀態(tài)的轉(zhuǎn)換進(jìn)程狀態(tài)的轉(zhuǎn)換 新新就緒就緒 就緒就緒執(zhí)行執(zhí)行 執(zhí)行執(zhí)行就緒就緒 執(zhí)行執(zhí)行阻塞阻塞 阻塞阻塞就緒就緒 執(zhí)行執(zhí)行終止終止 就緒就緒阻塞阻塞 阻塞阻塞執(zhí)行執(zhí)行 第二章 進(jìn) 程 管 理 6掛起狀態(tài)掛起狀態(tài)掛起狀態(tài)的產(chǎn)生掛起狀態(tài)的產(chǎn)生 進(jìn)程不斷被創(chuàng)建,內(nèi)存資源越來越有限,此時(shí)有重要的進(jìn)程必須被創(chuàng)建,而內(nèi)存已沒有足夠的空間,可考慮把一部分進(jìn)程送離內(nèi)存。這部分就叫掛起。進(jìn)程狀態(tài)的轉(zhuǎn)換進(jìn)程狀態(tài)的轉(zhuǎn)換 引入掛起狀態(tài)后,將又增加從掛起狀態(tài)到非掛起狀態(tài)的裝換;第二章 進(jìn) 程 管 理 6掛起狀
7、態(tài)掛起狀態(tài)進(jìn)程狀態(tài)的轉(zhuǎn)換進(jìn)程狀態(tài)的轉(zhuǎn)換活動活動就緒就緒靜止靜止就緒就緒 從從處于未被掛起的就緒狀態(tài)稱為“活動就緒”,當(dāng)被掛起后,該進(jìn)程就裝變?yōu)椤办o止就緒”活動活動阻塞阻塞靜止靜止阻塞阻塞 從從處于未被掛起的阻塞狀態(tài)稱為“活動就緒”,當(dāng)被掛起后,該進(jìn)程就裝變?yōu)椤办o止阻塞”靜止靜止就緒就緒活動活動就緒就緒 被激活靜止靜止阻塞阻塞活動活動阻塞阻塞被激活第二章 進(jìn) 程 管 理 6掛起狀態(tài)掛起狀態(tài)引入掛起狀態(tài)的原因引入掛起狀態(tài)的原因 終端用戶的請求終端用戶的請求 用戶編程過程中,調(diào)用了掛起代碼父進(jìn)程父進(jìn)程請求請求 A進(jìn)程中創(chuàng)建B進(jìn)程,則A與B是父子關(guān)系,對B的控制和管理由A負(fù)責(zé);負(fù)荷調(diào)節(jié)的需要負(fù)荷調(diào)節(jié)的
8、需要 操作系統(tǒng)的需要操作系統(tǒng)的需要 操作系統(tǒng)修改進(jìn)程時(shí),可能將進(jìn)程掛起第二章 進(jìn) 程 管 理 具有掛起狀態(tài)的進(jìn)程狀態(tài)圖具有掛起狀態(tài)的進(jìn)程狀態(tài)圖 活動活動就緒就緒靜止靜止就緒就緒執(zhí)行執(zhí)行掛起掛起激活激活完成完成IOIO掛起掛起活動活動阻塞阻塞靜止靜止阻塞阻塞掛起掛起激活激活完成完成IOIO請求請求 I/O第二章 進(jìn) 程 管 理 2.1.6 進(jìn)程控制塊進(jìn)程控制塊PCB1. 進(jìn)程控制塊的作用進(jìn)程控制塊的作用2. 進(jìn)程控制塊中的信息進(jìn)程控制塊中的信息3. 進(jìn)程控制塊的組織方式進(jìn)程控制塊的組織方式第二章 進(jìn) 程 管 理 1. 進(jìn)程控制塊的作用進(jìn)程控制塊的作用(1). 定義定義進(jìn)程控制塊(進(jìn)程控制塊(PC
9、B:Process Control Block)是進(jìn)程實(shí)體的一部分,)是進(jìn)程實(shí)體的一部分,是操作系統(tǒng)中最重要的記錄型數(shù)據(jù)結(jié)構(gòu),其中記錄了是操作系統(tǒng)中最重要的記錄型數(shù)據(jù)結(jié)構(gòu),其中記錄了OS所需的、所需的、用于描述進(jìn)程情況及控制進(jìn)程運(yùn)行的全部信息。用于描述進(jìn)程情況及控制進(jìn)程運(yùn)行的全部信息。(2). 作用作用使一個在多道程序環(huán)境下不能獨(dú)立運(yùn)行的程序使一個在多道程序環(huán)境下不能獨(dú)立運(yùn)行的程序(含數(shù)據(jù)含數(shù)據(jù)),成為一個,成為一個能獨(dú)立運(yùn)行的基本單位,一個能與其它進(jìn)程并發(fā)執(zhí)行的進(jìn)程。能獨(dú)立運(yùn)行的基本單位,一個能與其它進(jìn)程并發(fā)執(zhí)行的進(jìn)程。OS是根據(jù)是根據(jù)PCB來對并發(fā)執(zhí)行的進(jìn)程進(jìn)行控制和管理的。來對并發(fā)執(zhí)行的
10、進(jìn)程進(jìn)行控制和管理的。PCB是是OS 感知進(jìn)程存在的唯一標(biāo)志。感知進(jìn)程存在的唯一標(biāo)志。創(chuàng)建進(jìn)程:建立創(chuàng)建進(jìn)程:建立PCB撤銷進(jìn)程:收回撤銷進(jìn)程:收回PCB 第二章 進(jìn) 程 管 理 1. 進(jìn)程控制塊(進(jìn)程控制塊(PCB)的作用)的作用作用作用(對正在運(yùn)行的程序的描述對正在運(yùn)行的程序的描述) 1、是進(jìn)程存在的唯一標(biāo)識。、是進(jìn)程存在的唯一標(biāo)識。 2、操作系統(tǒng)是通過進(jìn)程控制塊來對進(jìn)程、操作系統(tǒng)是通過進(jìn)程控制塊來對進(jìn)程進(jìn)行控制和管理的。進(jìn)行控制和管理的。 PCB是是OS 感知進(jìn)程存在的唯一標(biāo)志。感知進(jìn)程存在的唯一標(biāo)志。 創(chuàng)建進(jìn)程:建立創(chuàng)建進(jìn)程:建立PCB 撤銷進(jìn)程:收回撤銷進(jìn)程:收回PCB 第二章 進(jìn)
11、程 管 理 1) 進(jìn)程標(biāo)識符進(jìn)程標(biāo)識符 進(jìn)程標(biāo)識符用于惟一地標(biāo)識一個進(jìn)程。一個進(jìn)程通常有兩種標(biāo)識進(jìn)程標(biāo)識符用于惟一地標(biāo)識一個進(jìn)程。一個進(jìn)程通常有兩種標(biāo)識符:符:(1) 內(nèi)部標(biāo)識符內(nèi)部標(biāo)識符在所有的操作系統(tǒng)中,都為每一個進(jìn)程賦予一個惟一的數(shù)字標(biāo)識符,在所有的操作系統(tǒng)中,都為每一個進(jìn)程賦予一個惟一的數(shù)字標(biāo)識符,它通常是一個進(jìn)程的序號。它通常是一個進(jìn)程的序號。 設(shè)置內(nèi)部標(biāo)識符主要是為了方便系統(tǒng)設(shè)置內(nèi)部標(biāo)識符主要是為了方便系統(tǒng)使用。使用。 (2) 外部標(biāo)識符外部標(biāo)識符它由創(chuàng)建者提供,通常是由字母、數(shù)字組成,往往是由用戶它由創(chuàng)建者提供,通常是由字母、數(shù)字組成,往往是由用戶(進(jìn)程進(jìn)程)在訪問該進(jìn)程時(shí)使用。
12、為了描述進(jìn)程的家族關(guān)系,在訪問該進(jìn)程時(shí)使用。為了描述進(jìn)程的家族關(guān)系, 還應(yīng)設(shè)置父進(jìn)還應(yīng)設(shè)置父進(jìn)程標(biāo)識及子進(jìn)程標(biāo)識。此程標(biāo)識及子進(jìn)程標(biāo)識。此外,還可設(shè)置用戶標(biāo)識,以指示擁有該進(jìn)外,還可設(shè)置用戶標(biāo)識,以指示擁有該進(jìn)程的用戶。程的用戶。 2. 進(jìn)程控制塊中的信息(進(jìn)程控制塊中的信息(1)第二章 進(jìn) 程 管 理 2) 處理機(jī)狀態(tài)處理機(jī)狀態(tài) 處理機(jī)狀態(tài)信息主要是由處理機(jī)的各種寄存器中的內(nèi)容組成的。處理機(jī)狀態(tài)信息主要是由處理機(jī)的各種寄存器中的內(nèi)容組成的。 通用寄存器通用寄存器又稱為用戶可視寄存器,它們是用戶程序可以訪問的,用于暫存信又稱為用戶可視寄存器,它們是用戶程序可以訪問的,用于暫存信息;息; 指令計(jì)
13、數(shù)器指令計(jì)數(shù)器其中存放了要訪問的下一條指令的地址;其中存放了要訪問的下一條指令的地址; 程序狀態(tài)字程序狀態(tài)字PSW其中含有狀態(tài)信息,如條件碼、執(zhí)行方式、其中含有狀態(tài)信息,如條件碼、執(zhí)行方式、 中斷屏蔽標(biāo)志等;中斷屏蔽標(biāo)志等; 用戶棧指針用戶棧指針每個用戶進(jìn)程都有一個或若干個與之相關(guān)的系每個用戶進(jìn)程都有一個或若干個與之相關(guān)的系統(tǒng)棧,用于存放過程統(tǒng)棧,用于存放過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址。棧指針指向該棧的棧頂。和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址。棧指針指向該棧的棧頂。 2. 進(jìn)程控制塊中的信息(續(xù)進(jìn)程控制塊中的信息(續(xù)2)第二章 進(jìn) 程 管 理 3) 進(jìn)程調(diào)度信息進(jìn)程調(diào)度信息在在PCB中還存放一些與進(jìn)程調(diào)度
14、和進(jìn)程對換有關(guān)的信息,包括:中還存放一些與進(jìn)程調(diào)度和進(jìn)程對換有關(guān)的信息,包括: 進(jìn)程狀態(tài)進(jìn)程狀態(tài)指明進(jìn)程的當(dāng)前狀態(tài),指明進(jìn)程的當(dāng)前狀態(tài), 作為進(jìn)程調(diào)度和對換時(shí)的依據(jù);處于阻塞作為進(jìn)程調(diào)度和對換時(shí)的依據(jù);處于阻塞的不能被調(diào)度,只有就緒的才能被調(diào)度的不能被調(diào)度,只有就緒的才能被調(diào)度 進(jìn)程優(yōu)先級進(jìn)程優(yōu)先級用于描述進(jìn)程使用處理機(jī)的優(yōu)先級別的一個整數(shù),用于描述進(jìn)程使用處理機(jī)的優(yōu)先級別的一個整數(shù), 優(yōu)先級高的進(jìn)優(yōu)先級高的進(jìn)程應(yīng)優(yōu)先獲得處理機(jī);程應(yīng)優(yōu)先獲得處理機(jī); 進(jìn)程調(diào)度所需的其它信息進(jìn)程調(diào)度所需的其它信息它們與所采用的進(jìn)程調(diào)度算法有關(guān),比如,采用先來先調(diào)度的算它們與所采用的進(jìn)程調(diào)度算法有關(guān),比如,采用先
15、來先調(diào)度的算法,那必須知道進(jìn)程創(chuàng)建的時(shí)間先后順序法,那必須知道進(jìn)程創(chuàng)建的時(shí)間先后順序 事件事件是指進(jìn)程由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)樽枞麪顟B(tài)所等待發(fā)生的事件,即是指進(jìn)程由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)樽枞麪顟B(tài)所等待發(fā)生的事件,即阻塞阻塞原因。原因。 2. 進(jìn)程控制塊中的信息(續(xù)進(jìn)程控制塊中的信息(續(xù)3)第二章 進(jìn) 程 管 理 4) 進(jìn)程控制信息進(jìn)程控制信息 程序和數(shù)據(jù)的地址程序和數(shù)據(jù)的地址是指進(jìn)程的程序和數(shù)據(jù)所在的內(nèi)存或外存地是指進(jìn)程的程序和數(shù)據(jù)所在的內(nèi)存或外存地(首首)址,以便再調(diào)度到該進(jìn)程址,以便再調(diào)度到該進(jìn)程執(zhí)行時(shí),能從執(zhí)行時(shí),能從PCB中找到其程序和數(shù)據(jù);中找到其程序和數(shù)據(jù); 進(jìn)程同步和通信機(jī)制進(jìn)程同步和通信機(jī)制指
16、實(shí)現(xiàn)進(jìn)程同步和進(jìn)程通信時(shí)必需的機(jī)制,指實(shí)現(xiàn)進(jìn)程同步和進(jìn)程通信時(shí)必需的機(jī)制, 兩個進(jìn)程通信的方式兩個進(jìn)程通信的方式 資源清單資源清單是一張列出了除是一張列出了除CPU以外的、進(jìn)程所需的全部資源及已經(jīng)分配到該進(jìn)程以外的、進(jìn)程所需的全部資源及已經(jīng)分配到該進(jìn)程的資源的清單;的資源的清單; 鏈接指針鏈接指針?biāo)o出了本進(jìn)程它給出了本進(jìn)程(PCB)所在隊(duì)列中所在隊(duì)列中的下一個進(jìn)程的的下一個進(jìn)程的PCB的首地址。的首地址。指向同種狀態(tài)的下一個進(jìn)程。指向同種狀態(tài)的下一個進(jìn)程。2. 進(jìn)程控制塊中的信息(續(xù)進(jìn)程控制塊中的信息(續(xù)4)第二章 進(jìn) 程 管 理 3. 進(jìn)程控制塊的組織方式進(jìn)程控制塊的組織方式1) 鏈接方式
17、鏈接方式 通過進(jìn)程控制塊中的指針,將進(jìn)程控制塊排成通過進(jìn)程控制塊中的指針,將進(jìn)程控制塊排成幾個隊(duì)列:就緒隊(duì)列,阻塞隊(duì)列,空閑隊(duì)列幾個隊(duì)列:就緒隊(duì)列,阻塞隊(duì)列,空閑隊(duì)列2) 索引方式索引方式系統(tǒng)建立幾張索引表:就緒進(jìn)程索引表,阻塞進(jìn)系統(tǒng)建立幾張索引表:就緒進(jìn)程索引表,阻塞進(jìn)程索引表,空閑進(jìn)程控制塊索引表程索引表,空閑進(jìn)程控制塊索引表保留各索引表的首地址。保留各索引表的首地址。第二章 進(jìn) 程 管 理 1) 鏈接方式鏈接方式 PCB14PCB2PCB3PCB4PCB5PCB6PCB7PCB8PCB93087901執(zhí)行指針執(zhí)行指針就緒隊(duì)列指針就緒隊(duì)列指針阻塞隊(duì)列指針阻塞隊(duì)列指針空閑隊(duì)列指針空閑隊(duì)列指針
18、PCB鏈接隊(duì)列示意圖鏈接隊(duì)列示意圖第二章 進(jìn) 程 管 理 執(zhí)行指針執(zhí)行指針就緒索引表就緒索引表PCB1PCB2PCB3PCB4PCB5PCB6PCB7阻塞索引表阻塞索引表就緒表指針就緒表指針阻塞表指針阻塞表指針按索引方式組織按索引方式組織PCB第二章 進(jìn) 程 管 理 2.2 進(jìn)進(jìn) 程程 控控 制制 主要任務(wù):創(chuàng)建和撤銷進(jìn)程,并實(shí)現(xiàn)進(jìn)主要任務(wù):創(chuàng)建和撤銷進(jìn)程,并實(shí)現(xiàn)進(jìn)程的狀態(tài)轉(zhuǎn)換,一般由操作系統(tǒng)內(nèi)核實(shí)程的狀態(tài)轉(zhuǎn)換,一般由操作系統(tǒng)內(nèi)核實(shí)現(xiàn)?,F(xiàn)。2.2.1 進(jìn)程的創(chuàng)建進(jìn)程的創(chuàng)建2.2.2 進(jìn)程的終止進(jìn)程的終止2.2.3 進(jìn)程的阻塞與喚醒進(jìn)程的阻塞與喚醒2.2.4 進(jìn)程的掛起與激活進(jìn)程的掛起與激活第二
19、章 進(jìn) 程 管 理 2.2.1 進(jìn)程的創(chuàng)建進(jìn)程的創(chuàng)建1. 進(jìn)程圖進(jìn)程圖(Process Graph)2. 引起創(chuàng)建進(jìn)程的事件引起創(chuàng)建進(jìn)程的事件 3. 進(jìn)程的創(chuàng)建進(jìn)程的創(chuàng)建(Creation of Progress)第二章 進(jìn) 程 管 理 2. 進(jìn)程的創(chuàng)建過程進(jìn)程的創(chuàng)建過程創(chuàng)建原語創(chuàng)建原語Create(),步驟如下:,步驟如下:(1) 申請空白申請空白PCB。分配唯一的數(shù)字標(biāo)識符。分配唯一的數(shù)字標(biāo)識符 (2) 為新進(jìn)程分配資源。為新進(jìn)程分配資源。 (3) 初始化進(jìn)程控制塊初始化進(jìn)程控制塊PCB。(標(biāo)識符、標(biāo)識符、CPU狀態(tài)、狀態(tài)、 進(jìn)程進(jìn)程控制信息控制信息) (4) 將新進(jìn)程插入就緒隊(duì)列,如果進(jìn)
20、程就緒隊(duì)列能夠接納將新進(jìn)程插入就緒隊(duì)列,如果進(jìn)程就緒隊(duì)列能夠接納新進(jìn)程,新進(jìn)程, 便將新進(jìn)程插入就緒隊(duì)便將新進(jìn)程插入就緒隊(duì)列。列。第二章 進(jìn) 程 管 理 3 進(jìn)程的終止過程()進(jìn)程的終止過程()(1) 根據(jù)被終止進(jìn)程的標(biāo)識符,從根據(jù)被終止進(jìn)程的標(biāo)識符,從PCB集合中檢索出該進(jìn)程集合中檢索出該進(jìn)程的的PCB,從中讀出該進(jìn)程的狀態(tài)。,從中讀出該進(jìn)程的狀態(tài)。(2) 若被終止進(jìn)程正處于執(zhí)行狀態(tài),應(yīng)立即終止該進(jìn)程的執(zhí)若被終止進(jìn)程正處于執(zhí)行狀態(tài),應(yīng)立即終止該進(jìn)程的執(zhí)行,并置調(diào)度標(biāo)志為真,用于指示該進(jìn)程被終止后應(yīng)重行,并置調(diào)度標(biāo)志為真,用于指示該進(jìn)程被終止后應(yīng)重新進(jìn)行調(diào)度。新進(jìn)行調(diào)度。(3) 若該進(jìn)程還有子
21、孫進(jìn)程,還應(yīng)將其所有子孫進(jìn)程予以終若該進(jìn)程還有子孫進(jìn)程,還應(yīng)將其所有子孫進(jìn)程予以終止,以防他們成為不可控的進(jìn)程。止,以防他們成為不可控的進(jìn)程。(4) 將被終止進(jìn)程所擁有的全部資源,或者歸還給其父進(jìn)程,將被終止進(jìn)程所擁有的全部資源,或者歸還給其父進(jìn)程, 或者歸還給系統(tǒng)。或者歸還給系統(tǒng)。(5) 將被終止進(jìn)程將被終止進(jìn)程(它的它的PCB)從所在隊(duì)列從所在隊(duì)列(或鏈表或鏈表)中移出,中移出, 等待其他程序來搜集信息。等待其他程序來搜集信息。 第二章 進(jìn) 程 管 理 4、 進(jìn)程阻塞過程進(jìn)程阻塞過程 正在執(zhí)行的進(jìn)程,當(dāng)發(fā)現(xiàn)上述某事件時(shí),由于無法繼續(xù)執(zhí)行,正在執(zhí)行的進(jìn)程,當(dāng)發(fā)現(xiàn)上述某事件時(shí),由于無法繼續(xù)執(zhí)行
22、,于是進(jìn)程便通過調(diào)用阻塞原語于是進(jìn)程便通過調(diào)用阻塞原語block把自己阻塞把自己阻塞??梢?,進(jìn)程??梢?,進(jìn)程的阻塞是進(jìn)程自身的一種主動行為。進(jìn)入的阻塞是進(jìn)程自身的一種主動行為。進(jìn)入block過程后,由于過程后,由于此時(shí)該進(jìn)程還處于執(zhí)行狀態(tài),所以應(yīng)先立即停止執(zhí)行,把進(jìn)此時(shí)該進(jìn)程還處于執(zhí)行狀態(tài),所以應(yīng)先立即停止執(zhí)行,把進(jìn)程控制塊中的現(xiàn)行狀態(tài)由程控制塊中的現(xiàn)行狀態(tài)由“執(zhí)行執(zhí)行”改為阻塞,并將改為阻塞,并將PCB插入插入阻塞隊(duì)列。如果系統(tǒng)中設(shè)置了因不同事件而阻塞的多個阻塞阻塞隊(duì)列。如果系統(tǒng)中設(shè)置了因不同事件而阻塞的多個阻塞隊(duì)列,則應(yīng)將本進(jìn)程插入到具有相同事件的阻塞隊(duì)列,則應(yīng)將本進(jìn)程插入到具有相同事件的
23、阻塞(等待等待)隊(duì)列。隊(duì)列。 最后,轉(zhuǎn)到進(jìn)程調(diào)度程序進(jìn)行重新調(diào)度,將處理機(jī)分配給另最后,轉(zhuǎn)到進(jìn)程調(diào)度程序進(jìn)行重新調(diào)度,將處理機(jī)分配給另一就緒進(jìn)程,并進(jìn)行切換,亦即,保留被阻塞進(jìn)一就緒進(jìn)程,并進(jìn)行切換,亦即,保留被阻塞進(jìn)程的處理機(jī)程的處理機(jī)狀態(tài)狀態(tài)(在在PCB中中),再按新進(jìn)程的,再按新進(jìn)程的PCB中的處理機(jī)狀態(tài)設(shè)置中的處理機(jī)狀態(tài)設(shè)置CPU的環(huán)境。的環(huán)境。第二章 進(jìn) 程 管 理 進(jìn)程喚醒過程進(jìn)程喚醒過程 當(dāng)被阻塞進(jìn)程所期待的事件出現(xiàn)時(shí),如當(dāng)被阻塞進(jìn)程所期待的事件出現(xiàn)時(shí),如I/O完成或其所完成或其所期待的數(shù)據(jù)已經(jīng)到達(dá),則由有關(guān)進(jìn)程期待的數(shù)據(jù)已經(jīng)到達(dá),則由有關(guān)進(jìn)程(比如,用完并釋比如,用完并釋放了該
24、放了該I/O設(shè)備的進(jìn)程設(shè)備的進(jìn)程)調(diào)用喚醒原語調(diào)用喚醒原語wakeup( ),將等,將等待該事件的進(jìn)程喚醒。喚醒原語執(zhí)行的過程是:首先待該事件的進(jìn)程喚醒。喚醒原語執(zhí)行的過程是:首先把被阻塞的進(jìn)程從等待該事件的阻塞隊(duì)列中移出,把被阻塞的進(jìn)程從等待該事件的阻塞隊(duì)列中移出,將將其其PCB中的現(xiàn)行狀態(tài)由阻塞改為就緒,然后再將該中的現(xiàn)行狀態(tài)由阻塞改為就緒,然后再將該P(yáng)CB插入到就緒隊(duì)列中。插入到就緒隊(duì)列中。第二章 進(jìn) 程 管 理 5 進(jìn)程的進(jìn)程的掛起掛起與激活與激活 1. 進(jìn)程的掛起進(jìn)程的掛起引起進(jìn)程掛起的事件:如,用戶進(jìn)程請求將自己掛起,或父引起進(jìn)程掛起的事件:如,用戶進(jìn)程請求將自己掛起,或父進(jìn)程請求
25、將自己的某個子進(jìn)程掛起,系統(tǒng)將利用掛起原語進(jìn)程請求將自己的某個子進(jìn)程掛起,系統(tǒng)將利用掛起原語suspend( )將指定進(jìn)程或處于阻塞狀態(tài)的進(jìn)程掛起。將指定進(jìn)程或處于阻塞狀態(tài)的進(jìn)程掛起。掛起原語的執(zhí)行過程是:首先檢查被掛起進(jìn)程的狀態(tài),若處掛起原語的執(zhí)行過程是:首先檢查被掛起進(jìn)程的狀態(tài),若處于活動就緒狀態(tài),便將其改為靜止就緒;對于活動阻塞狀于活動就緒狀態(tài),便將其改為靜止就緒;對于活動阻塞狀態(tài)的進(jìn)程,則將之改為靜止阻塞。為了方便用戶或父進(jìn)程態(tài)的進(jìn)程,則將之改為靜止阻塞。為了方便用戶或父進(jìn)程考查該進(jìn)程的運(yùn)行情況而把該進(jìn)程的考查該進(jìn)程的運(yùn)行情況而把該進(jìn)程的PCB復(fù)制到某指定的復(fù)制到某指定的內(nèi)存區(qū)域。最后
26、,若被掛內(nèi)存區(qū)域。最后,若被掛起的進(jìn)程正在執(zhí)行,則轉(zhuǎn)向調(diào)度起的進(jìn)程正在執(zhí)行,則轉(zhuǎn)向調(diào)度程序重新調(diào)度。程序重新調(diào)度。第二章 進(jìn) 程 管 理 5進(jìn)程的掛起與進(jìn)程的掛起與激活激活(續(xù))(續(xù))2. 進(jìn)程的激活過程進(jìn)程的激活過程激活進(jìn)程的事件:如,父進(jìn)程或用戶進(jìn)程請求激活指定進(jìn)程,激活進(jìn)程的事件:如,父進(jìn)程或用戶進(jìn)程請求激活指定進(jìn)程,若該進(jìn)程駐留在外存而內(nèi)存中已有足夠的空間時(shí),則可將若該進(jìn)程駐留在外存而內(nèi)存中已有足夠的空間時(shí),則可將在外存上處于靜止就緒狀態(tài)的進(jìn)程換入內(nèi)存。這時(shí),系統(tǒng)在外存上處于靜止就緒狀態(tài)的進(jìn)程換入內(nèi)存。這時(shí),系統(tǒng)將利用激活原語將利用激活原語active( )將指定的進(jìn)程激活。將指定的進(jìn)程激活。 激活原語的執(zhí)行過程是:先將進(jìn)程從外存調(diào)入內(nèi)存,檢查該激活原語的執(zhí)行過程是:先將進(jìn)程從外存調(diào)入內(nèi)存,檢查該進(jìn)程的現(xiàn)行狀態(tài),若是靜止就緒,便將之改為活動就緒;進(jìn)程的現(xiàn)行狀態(tài),若是靜止就緒,便將之改為活動就緒;若為靜止阻塞便將之改為活動阻塞。假如采用的是搶
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國工程擔(dān)保行業(yè)發(fā)展模式及轉(zhuǎn)型升級分析報(bào)告
- 橡膠制品行業(yè)的投資戰(zhàn)略與競爭優(yōu)勢考核試卷
- 企業(yè)教育培訓(xùn)的互聯(lián)網(wǎng)應(yīng)用考核試卷
- 2024-2030年中國家庭視頻監(jiān)控行業(yè)創(chuàng)新模式及未來5發(fā)展趨勢報(bào)告
- 2024年典型職工勞動協(xié)議樣本
- 訪問控制技術(shù) 課程設(shè)計(jì)
- 果蔬加工工藝優(yōu)化
- 《基于PI3K-AKT信號通路的電針傍剌促進(jìn)皮膚創(chuàng)傷修復(fù)的作用機(jī)制研究》
- 2024年情侶相架項(xiàng)目可行性研究報(bào)告
- 房屋租賃簡易協(xié)議范本2024年
- 公共場所中文標(biāo)識英文譯寫規(guī)范 第4部分:體育
- 創(chuàng)業(yè)計(jì)劃書小紅書
- 角膜炎的原因和治療藥物選擇
- 品牌授權(quán)書中英文版本
- 鐵的氫氧化物(課件)
- 冷庫安全危險(xiǎn)因素和管控與應(yīng)急措施培訓(xùn)課件
- 培養(yǎng)小學(xué)生尊老愛幼的禮儀
- 大班-科學(xué)語言-塑料瓶到哪里去了?-課件
- 腦缺血再灌注損傷與腦復(fù)蘇課件
- 《輕度損傷的自我處理》教學(xué)設(shè)計(jì)
- 船舶設(shè)備與管系-船舶系固設(shè)備
評論
0/150
提交評論