版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 1 第二章第二章 進(jìn)程管理進(jìn)程管理 2.1 2.1 前驅(qū)圖和程序執(zhí)行前驅(qū)圖和程序執(zhí)行 2.2 2.2 進(jìn)程進(jìn)程 的描述的描述 2.3 2.3 進(jìn)程控制進(jìn)程控制 2.4 2.4 進(jìn)程同步進(jìn)程同步 2.5 2.5 經(jīng)典進(jìn)程的同步問題經(jīng)典進(jìn)程的同步問題 2.6 2.6 進(jìn)程通信進(jìn)程通信 2.7 2.7 線程的基本概念線程的基本概念 2.8 2.8 線程的實(shí)現(xiàn)線程的實(shí)現(xiàn) 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Comp
2、uter Science 2 1. 程序順序執(zhí)行時(shí)的特征程序順序執(zhí)行時(shí)的特征 (1) 順序性: (2) 封閉性: (3) 可再現(xiàn)性: 2. 程序并發(fā)執(zhí)行時(shí)的特征程序并發(fā)執(zhí)行時(shí)的特征 1) 間斷性 2) 失去封閉性 3) 不可再現(xiàn)性 u 簡單回顧簡單回顧 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 3 程序與進(jìn)程之間的區(qū)別程序與進(jìn)程之間的區(qū)別 進(jìn)程更能真實(shí)地描述進(jìn)程更能真實(shí)地描述并發(fā)并發(fā),而程序不能,而程序不能 進(jìn)程是由進(jìn)程是由程序,數(shù)據(jù)和控制塊程序,數(shù)據(jù)和控制塊三部分組成的三部分組成的 程序是靜態(tài)的,進(jìn)程是程
3、序是靜態(tài)的,進(jìn)程是動(dòng)態(tài)動(dòng)態(tài)的的 進(jìn)程有進(jìn)程有生命周期生命周期,有誕生有消亡,短暫的;而程序,有誕生有消亡,短暫的;而程序 是相對(duì)長久的是相對(duì)長久的 一個(gè)程序可對(duì)應(yīng)一個(gè)程序可對(duì)應(yīng)多個(gè)多個(gè)進(jìn)程,反之亦然進(jìn)程,反之亦然 進(jìn)程具有進(jìn)程具有創(chuàng)建其他進(jìn)程創(chuàng)建其他進(jìn)程的功能,而程序沒有的功能,而程序沒有 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 4 較典型的進(jìn)程定義有:較典型的進(jìn)程定義有: (1) 進(jìn)程是程序的一次執(zhí)行。進(jìn)程是程序的一次執(zhí)行。 (2) 進(jìn)程是一個(gè)程序及其數(shù)據(jù)在處理機(jī)上順序執(zhí)行時(shí)所進(jìn)程是一個(gè)程序及其數(shù)據(jù)在處
4、理機(jī)上順序執(zhí)行時(shí)所 發(fā)生的活動(dòng)。發(fā)生的活動(dòng)。 (3) 進(jìn)程是程序在一個(gè)數(shù)據(jù)集合上運(yùn)行的過程,它是系進(jìn)程是程序在一個(gè)數(shù)據(jù)集合上運(yùn)行的過程,它是系 統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。 在引入了進(jìn)程實(shí)體的概念后,我們可以把在引入了進(jìn)程實(shí)體的概念后,我們可以把傳統(tǒng)傳統(tǒng)OS中的中的 進(jìn)程定義進(jìn)程定義為:為:“進(jìn)程是進(jìn)程實(shí)體的運(yùn)行過程,是系統(tǒng)進(jìn)行進(jìn)程是進(jìn)程實(shí)體的運(yùn)行過程,是系統(tǒng)進(jìn)行 資源分配和調(diào)度的一個(gè)獨(dú)立單位資源分配和調(diào)度的一個(gè)獨(dú)立單位”。 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Scienc
5、e 5 2. 進(jìn)程的三種基本狀態(tài)進(jìn)程的三種基本狀態(tài) 1)執(zhí)行執(zhí)行(Running)狀態(tài)狀態(tài) 2) 就緒狀態(tài)就緒狀態(tài) 3) 阻塞狀態(tài)阻塞狀態(tài) 圖 2-5 進(jìn)程的三種基本狀態(tài)及其轉(zhuǎn)換 就緒就緒 就緒就緒 阻塞阻塞執(zhí)行執(zhí)行 I/O完成 I/O請(qǐng)求 進(jìn)程調(diào)度 時(shí)間片完 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 6 增加增加: : 創(chuàng)建狀態(tài),終止?fàn)顟B(tài)創(chuàng)建狀態(tài),終止?fàn)顟B(tài) 創(chuàng)建創(chuàng)建( (新新new)new)狀態(tài)狀態(tài) OS OS 已完成為創(chuàng)建一進(jìn)程所必要的工作已完成為創(chuàng)建一進(jìn)程所必要的工作 已構(gòu)造了進(jìn)程標(biāo)識(shí)符已構(gòu)造了進(jìn)程標(biāo)
6、識(shí)符 已創(chuàng)建了管理進(jìn)程所需的表格已創(chuàng)建了管理進(jìn)程所需的表格 但還沒有允許執(zhí)行該進(jìn)程但還沒有允許執(zhí)行該進(jìn)程 ( (尚未同意尚未同意) ) 因?yàn)橘Y源有限因?yàn)橘Y源有限 終止(退出終止(退出exit)exit)狀態(tài)狀態(tài) 中止后進(jìn)程移入該狀態(tài)中止后進(jìn)程移入該狀態(tài) 它不再有執(zhí)行資格它不再有執(zhí)行資格 表格和其它信息暫時(shí)由輔助程序保留表格和其它信息暫時(shí)由輔助程序保留 一旦其他進(jìn)程完成了對(duì)終止態(tài)進(jìn)程的信息一旦其他進(jìn)程完成了對(duì)終止態(tài)進(jìn)程的信息 抽取之后,系統(tǒng)將刪除該進(jìn)程。抽取之后,系統(tǒng)將刪除該進(jìn)程。 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer
7、Science 7 原因: (1)終端用戶的請(qǐng)求:修改程序 (2)父進(jìn)程請(qǐng)求:對(duì)子進(jìn)程的修改等 (3)負(fù)荷調(diào)節(jié)的需要:資源不足 (4)操作系統(tǒng)的需要:檢查資源利用情況 2.2.3. 掛起操作和進(jìn)程狀態(tài)的轉(zhuǎn)換掛起操作和進(jìn)程狀態(tài)的轉(zhuǎn)換 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 8 2.進(jìn)程狀態(tài)的轉(zhuǎn)換進(jìn)程狀態(tài)的轉(zhuǎn)換 (1) 活動(dòng)就緒活動(dòng)就緒靜止就緒。靜止就緒。 (2) 活動(dòng)阻塞活動(dòng)阻塞靜止阻塞。靜止阻塞。 (3) 靜止就緒靜止就緒活動(dòng)就緒?;顒?dòng)就緒。 (4) 靜止阻塞靜止阻塞活動(dòng)阻塞。活動(dòng)阻塞。 圖 2-7 具有
8、掛起狀態(tài)的進(jìn)程狀態(tài)圖 執(zhí)行執(zhí)行靜止就緒。靜止就緒。 掛起掛起 激活激活 就緒狀態(tài)就緒狀態(tài)(Ready):進(jìn)程在內(nèi)存且可立即進(jìn)入運(yùn)行狀態(tài):進(jìn)程在內(nèi)存且可立即進(jìn)入運(yùn)行狀態(tài) 阻塞狀態(tài)阻塞狀態(tài)(Blocked):進(jìn)程在內(nèi)存并等待某事件的出現(xiàn):進(jìn)程在內(nèi)存并等待某事件的出現(xiàn) 靜止阻塞靜止阻塞/阻塞掛起狀態(tài)(阻塞掛起狀態(tài)(Blocked, suspend):進(jìn)程在外):進(jìn)程在外 存并等待某事件的出現(xiàn)存并等待某事件的出現(xiàn) 靜止就緒靜止就緒/就緒掛起狀態(tài)(就緒掛起狀態(tài)(Ready, suspend):進(jìn)程在外存,):進(jìn)程在外存, 但只要進(jìn)入內(nèi)存,即可運(yùn)行但只要進(jìn)入內(nèi)存,即可運(yùn)行 第二章 進(jìn)程的描述與控制 Heb
9、 Nomal University Department of Computer Science 9 活動(dòng)活動(dòng) 掛起掛起 事件事件 發(fā)生發(fā)生 事件事件 發(fā)生發(fā)生 等待等待 事件事件 掛起掛起 調(diào)度調(diào)度 超時(shí)超時(shí) 釋放釋放 活動(dòng)活動(dòng) 掛起掛起 掛起(掛起(Suspend):把一個(gè)進(jìn)程從內(nèi)存轉(zhuǎn)到外存可):把一個(gè)進(jìn)程從內(nèi)存轉(zhuǎn)到外存可 能有以下幾種情況能有以下幾種情況 活動(dòng)阻塞活動(dòng)阻塞靜止阻塞靜止阻塞:沒有進(jìn)程處于就緒狀態(tài):沒有進(jìn)程處于就緒狀態(tài) 或就緒進(jìn)程要求更多內(nèi)存資源時(shí),發(fā)生這種轉(zhuǎn)或就緒進(jìn)程要求更多內(nèi)存資源時(shí),發(fā)生這種轉(zhuǎn) 換,以提交新進(jìn)程或運(yùn)行就緒進(jìn)程換,以提交新進(jìn)程或運(yùn)行就緒進(jìn)程 活動(dòng)就緒活動(dòng)就
10、緒靜止就緒靜止就緒:當(dāng)有高優(yōu)先級(jí)阻塞(系:當(dāng)有高優(yōu)先級(jí)阻塞(系 統(tǒng)認(rèn)為會(huì)很快就緒的)進(jìn)程和低優(yōu)先級(jí)就緒進(jìn)統(tǒng)認(rèn)為會(huì)很快就緒的)進(jìn)程和低優(yōu)先級(jí)就緒進(jìn) 程時(shí),系統(tǒng)會(huì)選擇掛起低優(yōu)先級(jí)就緒進(jìn)程程時(shí),系統(tǒng)會(huì)選擇掛起低優(yōu)先級(jí)就緒進(jìn)程 運(yùn)行運(yùn)行靜止就緒靜止就緒:對(duì)搶占式系統(tǒng),當(dāng)有高優(yōu)先:對(duì)搶占式系統(tǒng),當(dāng)有高優(yōu)先 級(jí)靜止阻塞進(jìn)程因事件出現(xiàn)而進(jìn)入靜止就緒時(shí),級(jí)靜止阻塞進(jìn)程因事件出現(xiàn)而進(jìn)入靜止就緒時(shí), 系統(tǒng)可能會(huì)把運(yùn)行進(jìn)程轉(zhuǎn)到靜止就緒狀態(tài)系統(tǒng)可能會(huì)把運(yùn)行進(jìn)程轉(zhuǎn)到靜止就緒狀態(tài) 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 10 活動(dòng)活
11、動(dòng) 掛起掛起 事件事件 發(fā)生發(fā)生 事件事件 發(fā)生發(fā)生 等待等待 事件事件 掛起掛起 調(diào)度調(diào)度 超時(shí)超時(shí) 釋放釋放 活動(dòng)活動(dòng) 掛起掛起 激活(激活(Activate):把一個(gè)進(jìn)程從外存轉(zhuǎn)到):把一個(gè)進(jìn)程從外存轉(zhuǎn)到 內(nèi)存;可能有以下幾種情況:內(nèi)存;可能有以下幾種情況: 靜止就緒靜止就緒活動(dòng)就緒活動(dòng)就緒:沒有就緒進(jìn)程或:沒有就緒進(jìn)程或 掛起就緒進(jìn)程優(yōu)先級(jí)高于就緒進(jìn)程時(shí),掛起就緒進(jìn)程優(yōu)先級(jí)高于就緒進(jìn)程時(shí), 發(fā)生轉(zhuǎn)換發(fā)生轉(zhuǎn)換 靜止阻塞靜止阻塞活動(dòng)阻塞活動(dòng)阻塞:當(dāng)一個(gè)進(jìn)程釋放:當(dāng)一個(gè)進(jìn)程釋放 足夠內(nèi)存時(shí),系統(tǒng)會(huì)把一個(gè)高優(yōu)先級(jí)阻足夠內(nèi)存時(shí),系統(tǒng)會(huì)把一個(gè)高優(yōu)先級(jí)阻 塞掛起進(jìn)程(系統(tǒng)認(rèn)為會(huì)很快出現(xiàn)所等塞掛起進(jìn)程
12、(系統(tǒng)認(rèn)為會(huì)很快出現(xiàn)所等 待的事件)轉(zhuǎn)換為阻塞狀態(tài)。待的事件)轉(zhuǎn)換為阻塞狀態(tài)。 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 11 可中斷的睡眠狀態(tài)的進(jìn) 程會(huì)睡眠直到某個(gè)條件 變?yōu)檎?,如產(chǎn)生一個(gè)硬 件中斷、釋放進(jìn)程正在 等待的系統(tǒng)資源或是傳 遞一個(gè)信號(hào)都可以是喚 醒進(jìn)程的條件。 可中斷的睡眠狀態(tài)的進(jìn)程會(huì)睡眠直到某個(gè)條件變?yōu)檎?,如產(chǎn)生一個(gè)硬件中斷、釋放進(jìn)程正在等待的系統(tǒng)資源或是傳遞一個(gè)信號(hào)都可以是喚醒進(jìn)程的條件。 可中斷的睡眠狀態(tài)的進(jìn)程會(huì)睡眠直到某個(gè)條件變?yōu)檎?,如產(chǎn)生一個(gè)硬件中斷、釋放進(jìn)程正在等待的系統(tǒng)資源或是傳
13、遞一個(gè)信號(hào)都可以是喚醒進(jìn)程的條件。 只能被如硬件中斷、正在等待的系統(tǒng)資源被釋放等喚醒,對(duì) 其他進(jìn)程傳遞的信號(hào)不響應(yīng)。 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 12 進(jìn)程程序進(jìn)程程序 用戶所要執(zhí)行的語句序列,必須有用戶所要執(zhí)行的語句序列,必須有 進(jìn)程數(shù)據(jù)進(jìn)程數(shù)據(jù) 用戶程序所要處理的數(shù)據(jù)用戶程序所要處理的數(shù)據(jù) 數(shù)據(jù)量可大可小,也可以沒有數(shù)據(jù)量可大可小,也可以沒有 棧棧 用于過程調(diào)用和參數(shù)傳遞用于過程調(diào)用和參數(shù)傳遞 進(jìn)程控制塊進(jìn)程控制塊PCB (PCB (進(jìn)程屬性進(jìn)程屬性) ) 處于核心段處于核心段 用戶進(jìn)程不
14、能直接訪問、修改自己的用戶進(jìn)程不能直接訪問、修改自己的PCB 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 13 2.1.4 進(jìn)程管理中的數(shù)據(jù)結(jié)構(gòu)進(jìn)程管理中的數(shù)據(jù)結(jié)構(gòu) 1. 操作系統(tǒng)中用于管理控制的數(shù)據(jù)結(jié)構(gòu)操作系統(tǒng)中用于管理控制的數(shù)據(jù)結(jié)構(gòu) 內(nèi)存 設(shè)備 文件 進(jìn)程 內(nèi)存表 設(shè)備表 文件表 進(jìn)程1 進(jìn)程2 進(jìn)程n 進(jìn)程1 進(jìn)程n 進(jìn)程實(shí)體及所用資源列表 圖圖2-9 操作系統(tǒng)控制表的一般結(jié)構(gòu)操作系統(tǒng)控制表的一般結(jié)構(gòu) 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Com
15、puter Science 14 2. 進(jìn)程控制塊進(jìn)程控制塊PCB的作用的作用 進(jìn)程控制塊的作用是使一個(gè)在多道程序環(huán)境下不能進(jìn)程控制塊的作用是使一個(gè)在多道程序環(huán)境下不能 獨(dú)立運(yùn)行的程序獨(dú)立運(yùn)行的程序(含數(shù)據(jù)含數(shù)據(jù)),成為一個(gè)能獨(dú)立運(yùn)行的基本單,成為一個(gè)能獨(dú)立運(yùn)行的基本單 位,一個(gè)能與其它進(jìn)程并發(fā)執(zhí)行的進(jìn)程。或者說,位,一個(gè)能與其它進(jìn)程并發(fā)執(zhí)行的進(jìn)程?;蛘哒f,OS是是 根據(jù)根據(jù)PCB來對(duì)并發(fā)執(zhí)行的進(jìn)程進(jìn)行控制和管理的來對(duì)并發(fā)執(zhí)行的進(jìn)程進(jìn)行控制和管理的。 系統(tǒng)為了管理進(jìn)程設(shè)置的系統(tǒng)為了管理進(jìn)程設(shè)置的一個(gè)專門的數(shù)據(jù)結(jié)構(gòu)一個(gè)專門的數(shù)據(jù)結(jié)構(gòu),用它,用它 來來記錄進(jìn)程的外部特征,描述進(jìn)程的運(yùn)動(dòng)變化過程記錄
16、進(jìn)程的外部特征,描述進(jìn)程的運(yùn)動(dòng)變化過程 系統(tǒng)利用系統(tǒng)利用PCBPCB來控制和管理進(jìn)程,所以來控制和管理進(jìn)程,所以PCBPCB是系統(tǒng)是系統(tǒng)感知感知 進(jìn)程存在的唯一標(biāo)志進(jìn)程存在的唯一標(biāo)志 進(jìn)程與進(jìn)程與PCBPCB是一一對(duì)應(yīng)的是一一對(duì)應(yīng)的 /include/linux/sched.h 中 struct task_struct 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 15 PCBPCB的內(nèi)容的內(nèi)容 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer S
17、cience 16 3. 進(jìn)程控制塊中的信息進(jìn)程控制塊中的信息 1) 進(jìn)程標(biāo)識(shí)符進(jìn)程標(biāo)識(shí)符 進(jìn)程標(biāo)識(shí)符用于唯一地標(biāo)識(shí)一個(gè)進(jìn)程。兩種標(biāo)識(shí)符: (1) 內(nèi)部標(biāo)識(shí)符內(nèi)部標(biāo)識(shí)符。 在所有的操作系統(tǒng)中,都為每一個(gè)進(jìn)程賦予一個(gè)唯一 的數(shù)字標(biāo)識(shí)符數(shù)字標(biāo)識(shí)符,它通常是一個(gè)進(jìn)程的序號(hào)。 設(shè)置內(nèi)部標(biāo)識(shí) 符主要是為了方便系統(tǒng)方便系統(tǒng)使用。 (2) 外部標(biāo)識(shí)符外部標(biāo)識(shí)符。 它由創(chuàng)建者提供,通常是由字母、數(shù)字組成由字母、數(shù)字組成,往往是 由用戶(進(jìn)程)在訪問該進(jìn)程時(shí)使用。為了描述進(jìn)程的家族 關(guān)系, 還應(yīng)設(shè)置父進(jìn)程標(biāo)識(shí)及子進(jìn)程標(biāo)識(shí)。此外,還可設(shè) 置用戶標(biāo)識(shí),以指示擁有該進(jìn)程的用戶。 PCB中的信息包含:中的信息包含: 進(jìn)
18、程標(biāo)識(shí)符,處理機(jī)狀態(tài),進(jìn)程調(diào)度信息,進(jìn)程控制信息。進(jìn)程標(biāo)識(shí)符,處理機(jī)狀態(tài),進(jìn)程調(diào)度信息,進(jìn)程控制信息。 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 17 2) 處理機(jī)狀態(tài)處理機(jī)狀態(tài) 處理機(jī)狀態(tài)信息主要是由處理機(jī)的各種寄存器中的內(nèi)容 組成的。 通用寄存器通用寄存器 用戶可視寄存器,它們是用戶程序可以訪問的,用于暫存信息;用戶可視寄存器,它們是用戶程序可以訪問的,用于暫存信息; 指令計(jì)數(shù)器指令計(jì)數(shù)器,存放了要訪問的下一條指令的地址;存放了要訪問的下一條指令的地址; 程序狀態(tài)字程序狀態(tài)字PSW,其中含有狀態(tài)信息,如
19、條件碼(體現(xiàn)(體現(xiàn) 當(dāng)前指令執(zhí)行結(jié)果的各種狀態(tài)信息。如有無進(jìn)位(當(dāng)前指令執(zhí)行結(jié)果的各種狀態(tài)信息。如有無進(jìn)位(CY位),有無溢出(位),有無溢出(OV位),結(jié)果正負(fù)(位),結(jié)果正負(fù)(SF位),位), 結(jié)果是否為零(結(jié)果是否為零(ZF位),奇偶標(biāo)志位(位),奇偶標(biāo)志位(P位)等)、位)等)、執(zhí)行方式、 中斷屏蔽標(biāo)志等; 用戶棧指針用戶棧指針 指每個(gè)用戶進(jìn)程都有一個(gè)或若干個(gè)與之相關(guān)的系統(tǒng)棧,用于存放指每個(gè)用戶進(jìn)程都有一個(gè)或若干個(gè)與之相關(guān)的系統(tǒng)棧,用于存放 過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址。棧指針指向該棧的棧頂。過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址。棧指針指向該棧的棧頂。 第二章 進(jìn)程的描述與控制 Heb Nom
20、al University Department of Computer Science 18 3) 進(jìn)程調(diào)度信息進(jìn)程調(diào)度信息 在PCB中還存放一些與進(jìn)程調(diào)度和進(jìn)程對(duì)換有關(guān)的信 息,包括: 進(jìn)程狀態(tài)進(jìn)程狀態(tài); 進(jìn)程優(yōu)先級(jí)進(jìn)程優(yōu)先級(jí); 進(jìn)程調(diào)度所需的其它信息進(jìn)程調(diào)度所需的其它信息; 事件事件,即阻塞原因。 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 19 4) 進(jìn)程控制信息進(jìn)程控制信息 進(jìn)程控制信息包括: 程序和數(shù)據(jù)的地址程序和數(shù)據(jù)的地址 ; 進(jìn)程同步和通信機(jī)制進(jìn)程同步和通信機(jī)制; 資源清單資源清單; 鏈接指針
21、鏈接指針 。 是指進(jìn)程的程序和數(shù)據(jù)所在的內(nèi) 存或外存地(首)址,以便再調(diào)度 到該進(jìn)程執(zhí)行時(shí),能從PCB中找 到其程序和數(shù)據(jù) 指實(shí)現(xiàn)進(jìn)程同步和進(jìn)程通信時(shí)必 需的機(jī)制, 如消息隊(duì)列指針、 信號(hào)量等,它們可能全部或部分 地放在PCB中 是一張列出了除CPU以外的、進(jìn) 程所需的全部資源及已經(jīng)分配到 該進(jìn)程的資源的清單 它給出了本進(jìn)程(PCB)所在隊(duì)列 中的下一個(gè)進(jìn)程的PCB的首地址 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 20 PCBPCB的內(nèi)容的內(nèi)容 注意:不同操作系統(tǒng)中對(duì)進(jìn)程的控制和管理機(jī)制不一樣,注意:不同
22、操作系統(tǒng)中對(duì)進(jìn)程的控制和管理機(jī)制不一樣,PCBPCB中的信息多少也不一樣中的信息多少也不一樣 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 21 3. 進(jìn)程控制塊的組織方式進(jìn)程控制塊的組織方式 1) 鏈接方式(Linux采用) 圖 2-11 PCB鏈接隊(duì)列示意圖 PCB14 PCB2 PCB3 PCB4 PCB5 PCB6 PCB7 PCB8 PCB9 3 0 8 7 9 0 1 執(zhí)行指針 就緒隊(duì)列指針 阻塞隊(duì)列指針 空閑隊(duì)列指針 鏈接方式, 索引方式 第二章 進(jìn)程的描述與控制 Heb Nomal Univer
23、sity Department of Computer Science 22 2) 索引方式 圖 2-12 按索引方式組織PCB 執(zhí)行指針 就緒索引表 PCB1 PCB2 PCB3 PCB4 PCB5 PCB6 PCB7 阻塞索引表 就緒表指針 阻塞表指針 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 23 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 24 第二章第二章 進(jìn)程管理進(jìn)程管理 2.1 2.1 前驅(qū)圖和程序執(zhí)行前驅(qū)圖
24、和程序執(zhí)行 2.2 2.2 進(jìn)程進(jìn)程 的描述的描述 2.3 2.3 進(jìn)程控制進(jìn)程控制 2.4 2.4 進(jìn)程同步進(jìn)程同步 2.5 2.5 經(jīng)典進(jìn)程的同步問題經(jīng)典進(jìn)程的同步問題 2.6 2.6 進(jìn)程通信進(jìn)程通信 2.7 2.7 線程的基本概念線程的基本概念 2.8 2.8 線程的實(shí)現(xiàn)線程的實(shí)現(xiàn) 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 25 2.3 進(jìn)進(jìn) 程程 控控 制制 2.3.1 操作系統(tǒng)內(nèi)核操作系統(tǒng)內(nèi)核 u處理器管理的一個(gè)主要工作是對(duì)進(jìn)程的控制,處理器管理的一個(gè)主要工作是對(duì)進(jìn)程的控制, u包括:創(chuàng)建進(jìn)程、
25、阻塞進(jìn)程、喚醒進(jìn)程、掛起進(jìn)程、激活進(jìn)程、包括:創(chuàng)建進(jìn)程、阻塞進(jìn)程、喚醒進(jìn)程、掛起進(jìn)程、激活進(jìn)程、 終止進(jìn)程和撤銷進(jìn)程等終止進(jìn)程和撤銷進(jìn)程等 現(xiàn)代現(xiàn)代OS一般采用分層結(jié)構(gòu)一般采用分層結(jié)構(gòu) 與硬件緊密相關(guān)的模塊與硬件緊密相關(guān)的模塊 常用設(shè)備的驅(qū)動(dòng)程序常用設(shè)備的驅(qū)動(dòng)程序 運(yùn)行頻率較高的模塊運(yùn)行頻率較高的模塊 硬件硬件 A0 A1 An OS內(nèi)核 保護(hù)軟件;提高保護(hù)軟件;提高OS效率效率 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 26 處理機(jī)的執(zhí)行狀態(tài):處理機(jī)的執(zhí)行狀態(tài): u系統(tǒng)態(tài)(管態(tài)),內(nèi)核態(tài)系統(tǒng)態(tài)(管態(tài)),內(nèi)
26、核態(tài) 可執(zhí)行可執(zhí)行特權(quán)特權(quán)指令,訪問指令,訪問所有的所有的寄存器和存儲(chǔ)區(qū)寄存器和存儲(chǔ)區(qū) u用戶態(tài)(目態(tài))用戶態(tài)(目態(tài)) 可執(zhí)行可執(zhí)行非特權(quán)指令非特權(quán)指令,訪問指定的寄存器和存儲(chǔ)區(qū),訪問指定的寄存器和存儲(chǔ)區(qū) 一般一般OS內(nèi)核的功能:內(nèi)核的功能: 支撐功能支撐功能 中斷處理、時(shí)鐘管理、原語操作中斷處理、時(shí)鐘管理、原語操作 資源管理功能資源管理功能 進(jìn)程管理、存儲(chǔ)器管理、設(shè)備管理進(jìn)程管理、存儲(chǔ)器管理、設(shè)備管理 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 27 2.3.2 進(jìn)程的創(chuàng)建進(jìn)程的創(chuàng)建 1. 進(jìn)程的層次結(jié)構(gòu)進(jìn)
27、程的層次結(jié)構(gòu) 圖 2-13 進(jìn)程樹 DEFGH BC IJKLM A 2. 進(jìn)程圖進(jìn)程圖(Process Graph) 父進(jìn)程父進(jìn)程:創(chuàng)建進(jìn)程的進(jìn)程。:創(chuàng)建進(jìn)程的進(jìn)程。 子進(jìn)程子進(jìn)程:被創(chuàng)建的進(jìn)程。:被創(chuàng)建的進(jìn)程。 各自工作區(qū),僅共享父進(jìn)程打開的文件各自工作區(qū),僅共享父進(jìn)程打開的文件 祖先祖先 進(jìn)程進(jìn)程 用戶用戶 進(jìn)程進(jìn)程 系統(tǒng)系統(tǒng) 進(jìn)程進(jìn)程 用戶用戶 進(jìn)程進(jìn)程 用戶用戶 進(jìn)程進(jìn)程 進(jìn)程家族樹進(jìn)程家族樹 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 28 3. 引起創(chuàng)建進(jìn)程的事件引起創(chuàng)建進(jìn)程的事件 (1) 用戶
28、登錄。用戶登錄。 (2) 作業(yè)調(diào)度。作業(yè)調(diào)度。 (3) 提供服務(wù)。提供服務(wù)。 (4) 應(yīng)用請(qǐng)求。應(yīng)用請(qǐng)求。 系統(tǒng)為用戶創(chuàng)建一個(gè)進(jìn)程,并插入就緒隊(duì)列 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 29 4. 進(jìn)程的創(chuàng)建進(jìn)程的創(chuàng)建(Creation of Progress) (1)申請(qǐng)空白申請(qǐng)空白PCB。 (2) 為新進(jìn)程分配資源。為新進(jìn)程分配資源。 (3) 初始化進(jìn)程控制塊。初始化進(jìn)程控制塊。 (4) 將新進(jìn)程插入就緒隊(duì)列,或直接投入運(yùn)行。將新進(jìn)程插入就緒隊(duì)列,或直接投入運(yùn)行。 第二章 進(jìn)程的描述與控制 Heb
29、Nomal University Department of Computer Science 30 2.3.3 進(jìn)程的終止進(jìn)程的終止 1. 引起進(jìn)程終止引起進(jìn)程終止(Termination of Process)的事件的事件 1) 正常結(jié)束 在任何計(jì)算機(jī)系統(tǒng)中,都應(yīng)有一個(gè)用于表示進(jìn)程已經(jīng) 運(yùn)行完成的指示。 例如,在批處理系統(tǒng)中,通常在程序的最后安排一條例如,在批處理系統(tǒng)中,通常在程序的最后安排一條Holt指令或終止的系統(tǒng)指令或終止的系統(tǒng) 調(diào)用。當(dāng)程序運(yùn)行到調(diào)用。當(dāng)程序運(yùn)行到Holt指令時(shí),將產(chǎn)生一個(gè)中斷,去通知指令時(shí),將產(chǎn)生一個(gè)中斷,去通知OS本進(jìn)程已經(jīng)完本進(jìn)程已經(jīng)完 成。成。 在分時(shí)系統(tǒng)中
30、,用戶可利用在分時(shí)系統(tǒng)中,用戶可利用Logs off去表示進(jìn)程運(yùn)行完畢,去表示進(jìn)程運(yùn)行完畢, 此時(shí)同樣可此時(shí)同樣可 產(chǎn)生一個(gè)中斷,去通知產(chǎn)生一個(gè)中斷,去通知OS進(jìn)程已運(yùn)行完畢。進(jìn)程已運(yùn)行完畢。 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 31 2) 異常結(jié)束異常結(jié)束 在進(jìn)程運(yùn)行期間,由于出現(xiàn)某些錯(cuò)誤和故障而迫使進(jìn)程在進(jìn)程運(yùn)行期間,由于出現(xiàn)某些錯(cuò)誤和故障而迫使進(jìn)程 終止。這類異常事件很多,常見的有:終止。這類異常事件很多,常見的有: 越界錯(cuò)誤。越界錯(cuò)誤。程序所訪問的存儲(chǔ)區(qū),已越出該進(jìn)程的區(qū)域;程序所訪問的存儲(chǔ)區(qū)
31、,已越出該進(jìn)程的區(qū)域; 保護(hù)錯(cuò)。保護(hù)錯(cuò)。進(jìn)程試圖去訪問一個(gè)不允許訪問的資源或文件,或者以不進(jìn)程試圖去訪問一個(gè)不允許訪問的資源或文件,或者以不 適當(dāng)?shù)姆绞竭M(jìn)行訪問,例如,進(jìn)程試圖去寫一個(gè)只讀文件;適當(dāng)?shù)姆绞竭M(jìn)行訪問,例如,進(jìn)程試圖去寫一個(gè)只讀文件; 非法指令。非法指令。程序試圖去執(zhí)行一條不存在的指令。出現(xiàn)該錯(cuò)誤的原因,程序試圖去執(zhí)行一條不存在的指令。出現(xiàn)該錯(cuò)誤的原因, 可能是程序錯(cuò)誤地轉(zhuǎn)移到數(shù)據(jù)區(qū),把數(shù)據(jù)當(dāng)成了指令;可能是程序錯(cuò)誤地轉(zhuǎn)移到數(shù)據(jù)區(qū),把數(shù)據(jù)當(dāng)成了指令; 特權(quán)指令錯(cuò)。特權(quán)指令錯(cuò)。用戶進(jìn)程試圖去執(zhí)行一條只允許用戶進(jìn)程試圖去執(zhí)行一條只允許OS執(zhí)行的指令;執(zhí)行的指令; 運(yùn)行超時(shí)。運(yùn)行超時(shí)。進(jìn)
32、程的執(zhí)行時(shí)間超過了指定的最大值;進(jìn)程的執(zhí)行時(shí)間超過了指定的最大值; 等待超時(shí)。等待超時(shí)。進(jìn)程等待某事件的時(shí)間,進(jìn)程等待某事件的時(shí)間, 超過了規(guī)定的最大值;超過了規(guī)定的最大值; 算術(shù)運(yùn)算錯(cuò)。算術(shù)運(yùn)算錯(cuò)。進(jìn)程試圖去執(zhí)行一個(gè)被禁止的運(yùn)算,例如,被進(jìn)程試圖去執(zhí)行一個(gè)被禁止的運(yùn)算,例如,被0除;除; I/O故障。故障。指在指在I/O過程中發(fā)生了錯(cuò)誤等。過程中發(fā)生了錯(cuò)誤等。 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 32 3) 外界干預(yù)外界干預(yù) 外界干預(yù)并非指在本進(jìn)程運(yùn)行中出現(xiàn)了異常事件,本進(jìn)程運(yùn)行中出現(xiàn)了異常事件,
33、而是指進(jìn)程應(yīng)外界的請(qǐng)求而終止運(yùn)行。而是指進(jìn)程應(yīng)外界的請(qǐng)求而終止運(yùn)行。這些干預(yù)有: 操作員或操作系統(tǒng)干預(yù)。操作員或操作系統(tǒng)干預(yù)。 由于某種原因,例如,發(fā)生了死鎖,由于某種原因,例如,發(fā)生了死鎖, 由操作員或操作系統(tǒng)終止該進(jìn)程;由操作員或操作系統(tǒng)終止該進(jìn)程; 父進(jìn)程請(qǐng)求。父進(jìn)程請(qǐng)求。 由于父進(jìn)程具有終止自己的任何子孫進(jìn)程的權(quán)由于父進(jìn)程具有終止自己的任何子孫進(jìn)程的權(quán) 利,利, 因而當(dāng)父進(jìn)程提出請(qǐng)求時(shí),系統(tǒng)將終止該進(jìn)程;因而當(dāng)父進(jìn)程提出請(qǐng)求時(shí),系統(tǒng)將終止該進(jìn)程; 父進(jìn)程終止。父進(jìn)程終止。 當(dāng)父進(jìn)程終止時(shí),當(dāng)父進(jìn)程終止時(shí),OS也將他的所有子孫進(jìn)程終也將他的所有子孫進(jìn)程終 止。止。 第二章 進(jìn)程的描述與控
34、制 Heb Nomal University Department of Computer Science 33 2. 進(jìn)程的終止過程進(jìn)程的終止過程 (1) 根據(jù)被終止進(jìn)程的標(biāo)識(shí)符,從根據(jù)被終止進(jìn)程的標(biāo)識(shí)符,從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)重新進(jìn)行調(diào)度。置調(diào)度標(biāo)志為真,用于指示該進(jìn)程被終止后應(yīng)重新進(jìn)行調(diào)度。 (3) 若該進(jìn)程還有子孫進(jìn)程,還應(yīng)將其所有子孫進(jìn)程予以終止,以若
35、該進(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)程的描述與控制 Heb Nomal University Department of Computer Science 34 2.3.4 進(jìn)程的阻塞與喚醒進(jìn)程的阻塞與喚醒 1. 引起進(jìn)程阻塞和喚醒的事件引起進(jìn)程阻塞和喚醒的事件 1)
36、 請(qǐng)求系統(tǒng)服務(wù) 2) 啟動(dòng)某種操作 3) 新數(shù)據(jù)尚未到達(dá) 4) 無新工作可做 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 35 2. 進(jìn)程阻塞過程進(jìn)程阻塞過程 正在執(zhí)行的進(jìn)程,當(dāng)發(fā)現(xiàn)上述某事件時(shí),由于無法繼續(xù)正在執(zhí)行的進(jìn)程,當(dāng)發(fā)現(xiàn)上述某事件時(shí),由于無法繼續(xù) 執(zhí)行,于是進(jìn)程便通過調(diào)用執(zhí)行,于是進(jìn)程便通過調(diào)用阻塞原語阻塞原語block把自己阻塞??梢姡炎约鹤枞?。可見, 進(jìn)程的阻塞是進(jìn)程的阻塞是進(jìn)程自身的一種主動(dòng)行為進(jìn)程自身的一種主動(dòng)行為。 進(jìn)入進(jìn)入block過程后,由于此時(shí)該進(jìn)程還處于執(zhí)行狀態(tài),所過程后,由于此
37、時(shí)該進(jìn)程還處于執(zhí)行狀態(tài),所 以應(yīng)以應(yīng)立即停止執(zhí)行,立即停止執(zhí)行,把進(jìn)程控制把進(jìn)程控制 塊中的現(xiàn)行狀態(tài)由塊中的現(xiàn)行狀態(tài)由“執(zhí)行執(zhí)行”改為阻塞,將改為阻塞,將PCB插入阻塞隊(duì)插入阻塞隊(duì) 列列。如果系統(tǒng)中設(shè)置了因不同事件而阻塞的多個(gè)阻塞隊(duì)列,則應(yīng)將本進(jìn)如果系統(tǒng)中設(shè)置了因不同事件而阻塞的多個(gè)阻塞隊(duì)列,則應(yīng)將本進(jìn) 程插入到具有相同事件的阻塞程插入到具有相同事件的阻塞(等待等待)隊(duì)列。隊(duì)列。 最后,轉(zhuǎn)調(diào)度程序進(jìn)行重新調(diào)度,將處理機(jī)分配給另一最后,轉(zhuǎn)調(diào)度程序進(jìn)行重新調(diào)度,將處理機(jī)分配給另一 就緒進(jìn)程,并進(jìn)行切換,亦即,保留被阻塞進(jìn)程的處理機(jī)狀就緒進(jìn)程,并進(jìn)行切換,亦即,保留被阻塞進(jìn)程的處理機(jī)狀 態(tài)態(tài)(在在P
38、CB中中),再按新進(jìn)程的,再按新進(jìn)程的PCB中的處理機(jī)狀態(tài)設(shè)置中的處理機(jī)狀態(tài)設(shè)置CPU的的 環(huán)境。環(huán)境。 第二章 進(jìn)程的描述與控制 Heb Nomal University Department of Computer Science 36 3. 進(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)程(比如,用完并釋比如,用完并釋 放了該放了該I/O設(shè)備的進(jìn)程設(shè)備的進(jìn)程)調(diào)用調(diào)用喚醒原語喚醒原語wakeup( ),將等待該,將等待該 事件的進(jìn)程喚醒。事件的進(jìn)程喚醒。 喚醒原語執(zhí)行的過程是:首先把被阻塞的進(jìn)程從喚醒原語執(zhí)行的過程是:首先把被阻塞的進(jìn)程從 等待該事件的阻塞隊(duì)列中移出,將其等待該事
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基礎(chǔ)路面土方合同范例
- 天津?yàn)I海職業(yè)學(xué)院《電磁場的數(shù)值方法》2023-2024學(xué)年第一學(xué)期期末試卷
- 專用裝備采購合同范例
- 施工投標(biāo)合同范例
- 會(huì)計(jì)合伙合同范例
- 倉房搭建合同范例
- 叉車購銷轉(zhuǎn)讓合同范例
- 商鋪?zhàn)赓U續(xù)租合同范例
- 口腔內(nèi)科學(xué)模擬練習(xí)題(附答案)
- 2025年鐵嶺貨運(yùn)資格證考試有哪些項(xiàng)目
- 全套教學(xué)課件《工程倫理學(xué)》
- 大數(shù)據(jù)+治理智慧樹知到期末考試答案章節(jié)答案2024年廣州大學(xué)
- 江蘇省建筑與裝飾工程計(jì)價(jià)定額(2014)電子表格版
- T-SDDA 0002-2021 住宅裝飾裝修工程質(zhì)量驗(yàn)收標(biāo)準(zhǔn)
- 小學(xué)寫字閱讀考核實(shí)施方案
- 震雄注塑機(jī)Ai_01操作說明書(中文)
- 四川省煤礦探放水基準(zhǔn)線“兩把鎖”管理規(guī)定
- 壓力管道元件產(chǎn)品合格證
- 10KV變電站供電系統(tǒng)設(shè)計(jì)
- 15立方米的液氯儲(chǔ)罐課程設(shè)計(jì)說明書
- 發(fā)現(xiàn)所授薪律師及律師助理管理辦法
評(píng)論
0/150
提交評(píng)論