版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、第二章 進程的描述與控制 Heb Nomal University Department of Computer Science1第二章第二章 進程管理進程管理 2.1 2.1 前驅(qū)圖和程序執(zhí)行前驅(qū)圖和程序執(zhí)行 2.2 2.2 進程進程 的描述的描述2.3 2.3 進程控制進程控制 2.4 2.4 進程同步進程同步 2.5 2.5 經(jīng)典進程的同步問題經(jīng)典進程的同步問題 2.6 2.6 進程通信進程通信 2.7 2.7 線程的基本概念線程的基本概念 2.8 2.8 線程的實現(xiàn)線程的實現(xiàn) 第二章 進程的描述與控制 Heb Nomal University Department of Compute
2、r Science21. 程序順序執(zhí)行時的特征程序順序執(zhí)行時的特征 (1) 順序性:(2) 封閉性: (3) 可再現(xiàn)性: 2. 程序并發(fā)執(zhí)行時的特征程序并發(fā)執(zhí)行時的特征 1) 間斷性2) 失去封閉性 3) 不可再現(xiàn)性 u 簡單回顧簡單回顧第二章 進程的描述與控制 Heb Nomal University Department of Computer Science3程序與進程之間的區(qū)別程序與進程之間的區(qū)別 進程更能真實地描述進程更能真實地描述并發(fā)并發(fā),而程序不能,而程序不能 進程是由進程是由程序,數(shù)據(jù)和控制塊程序,數(shù)據(jù)和控制塊三部分組成的三部分組成的 程序是靜態(tài)的,進程是程序是靜態(tài)的,進程是動
3、態(tài)動態(tài)的的 進程有進程有生命周期生命周期,有誕生有消亡,短暫的;而程序,有誕生有消亡,短暫的;而程序是相對長久的是相對長久的 一個程序可對應一個程序可對應多個多個進程,反之亦然進程,反之亦然 進程具有進程具有創(chuàng)建其他進程創(chuàng)建其他進程的功能,而程序沒有的功能,而程序沒有第二章 進程的描述與控制 Heb Nomal University Department of Computer Science4 較典型的進程定義有:較典型的進程定義有: (1) 進程是程序的一次執(zhí)行。進程是程序的一次執(zhí)行。 (2) 進程是一個程序及其數(shù)據(jù)在處理機上順序執(zhí)行時所進程是一個程序及其數(shù)據(jù)在處理機上順序執(zhí)行時所發(fā)生的活
4、動。發(fā)生的活動。 (3) 進程是程序在一個數(shù)據(jù)集合上運行的過程,它是系進程是程序在一個數(shù)據(jù)集合上運行的過程,它是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。統(tǒng)進行資源分配和調(diào)度的一個獨立單位。 在引入了進程實體的概念后,我們可以把在引入了進程實體的概念后,我們可以把傳統(tǒng)傳統(tǒng)OS中的中的進程定義進程定義為:為:“進程是進程實體的運行過程,是系統(tǒng)進行進程是進程實體的運行過程,是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位資源分配和調(diào)度的一個獨立單位”。 第二章 進程的描述與控制 Heb Nomal University Department of Computer Science52. 進程的三種基本狀態(tài)進程的
5、三種基本狀態(tài) 1)執(zhí)行執(zhí)行(Running)狀態(tài)狀態(tài)2) 就緒狀態(tài)就緒狀態(tài)3) 阻塞狀態(tài)阻塞狀態(tài) 圖 2-5 進程的三種基本狀態(tài)及其轉(zhuǎn)換 就緒就緒就緒就緒阻塞阻塞執(zhí)行執(zhí)行I/O完成I/O請求進程調(diào)度時間片完第二章 進程的描述與控制 Heb Nomal University Department of Computer Science6增加增加: : 創(chuàng)建狀態(tài),終止狀態(tài)創(chuàng)建狀態(tài),終止狀態(tài)創(chuàng)建創(chuàng)建( (新新new)new)狀態(tài)狀態(tài)OS OS 已完成為創(chuàng)建一進程所必要的工作已完成為創(chuàng)建一進程所必要的工作 已構(gòu)造了進程標識符已構(gòu)造了進程標識符 已創(chuàng)建了管理進程所需的表格已創(chuàng)建了管理進程所需的表格但還沒
6、有允許執(zhí)行該進程但還沒有允許執(zhí)行該進程 ( (尚未同意尚未同意) ) 因為資源有限因為資源有限 終止(退出終止(退出exit)exit)狀態(tài)狀態(tài) 中止后進程移入該狀態(tài)中止后進程移入該狀態(tài) 它不再有執(zhí)行資格它不再有執(zhí)行資格 表格和其它信息暫時由輔助程序保留表格和其它信息暫時由輔助程序保留 一旦其他進程完成了對終止態(tài)進程的信息一旦其他進程完成了對終止態(tài)進程的信息抽取之后,系統(tǒng)將刪除該進程。抽取之后,系統(tǒng)將刪除該進程。第二章 進程的描述與控制 Heb Nomal University Department of Computer Science7原因:(1)終端用戶的請求:修改程序 (2)父進程請求
7、:對子進程的修改等 (3)負荷調(diào)節(jié)的需要:資源不足 (4)操作系統(tǒng)的需要:檢查資源利用情況2.2.3. 掛起操作和進程狀態(tài)的轉(zhuǎn)換掛起操作和進程狀態(tài)的轉(zhuǎn)換第二章 進程的描述與控制 Heb Nomal University Department of Computer Science82.進程狀態(tài)的轉(zhuǎn)換進程狀態(tài)的轉(zhuǎn)換 (1) 活動就緒活動就緒靜止就緒。靜止就緒。 (2) 活動阻塞活動阻塞靜止阻塞。靜止阻塞。 (3) 靜止就緒靜止就緒活動就緒?;顒泳途w。 (4) 靜止阻塞靜止阻塞活動阻塞?;顒幼枞?圖 2-7 具有掛起狀態(tài)的進程狀態(tài)圖 執(zhí)行執(zhí)行靜止就緒。靜止就緒。 掛起掛起 激活激活 就緒狀態(tài)就緒
8、狀態(tài)(Ready):進程在內(nèi)存且可立即進入運行狀態(tài):進程在內(nèi)存且可立即進入運行狀態(tài)阻塞狀態(tài)阻塞狀態(tài)(Blocked):進程在內(nèi)存并等待某事件的出現(xiàn):進程在內(nèi)存并等待某事件的出現(xiàn)靜止阻塞靜止阻塞/阻塞掛起狀態(tài)(阻塞掛起狀態(tài)(Blocked, suspend):進程在外):進程在外存并等待某事件的出現(xiàn)存并等待某事件的出現(xiàn)靜止就緒靜止就緒/就緒掛起狀態(tài)(就緒掛起狀態(tài)(Ready, suspend):進程在外存,):進程在外存,但只要進入內(nèi)存,即可運行但只要進入內(nèi)存,即可運行第二章 進程的描述與控制 Heb Nomal University Department of Computer Science
9、9活動活動掛起掛起事件事件發(fā)生發(fā)生事件事件發(fā)生發(fā)生等待等待事件事件掛起掛起調(diào)度調(diào)度超時超時釋放釋放活動活動掛起掛起掛起(掛起(Suspend):把一個進程從內(nèi)存轉(zhuǎn)到外存可):把一個進程從內(nèi)存轉(zhuǎn)到外存可能有以下幾種情況能有以下幾種情況 活動阻塞活動阻塞靜止阻塞靜止阻塞:沒有進程處于就緒狀態(tài):沒有進程處于就緒狀態(tài)或就緒進程要求更多內(nèi)存資源時,發(fā)生這種轉(zhuǎn)或就緒進程要求更多內(nèi)存資源時,發(fā)生這種轉(zhuǎn)換,以提交新進程或運行就緒進程換,以提交新進程或運行就緒進程 活動就緒活動就緒靜止就緒靜止就緒:當有高優(yōu)先級阻塞(系:當有高優(yōu)先級阻塞(系統(tǒng)認為會很快就緒的)進程和低優(yōu)先級就緒進統(tǒng)認為會很快就緒的)進程和低優(yōu)先
10、級就緒進程時,系統(tǒng)會選擇掛起低優(yōu)先級就緒進程程時,系統(tǒng)會選擇掛起低優(yōu)先級就緒進程 運行運行靜止就緒靜止就緒:對搶占式系統(tǒng),當有高優(yōu)先:對搶占式系統(tǒng),當有高優(yōu)先級靜止阻塞進程因事件出現(xiàn)而進入靜止就緒時,級靜止阻塞進程因事件出現(xiàn)而進入靜止就緒時,系統(tǒng)可能會把運行進程轉(zhuǎn)到靜止就緒狀態(tài)系統(tǒng)可能會把運行進程轉(zhuǎn)到靜止就緒狀態(tài)第二章 進程的描述與控制 Heb Nomal University Department of Computer Science10活動活動掛起掛起事件事件發(fā)生發(fā)生事件事件發(fā)生發(fā)生等待等待事件事件掛起掛起調(diào)度調(diào)度超時超時釋放釋放活動活動掛起掛起激活(激活(Activate):把一個進程
11、從外存轉(zhuǎn)到):把一個進程從外存轉(zhuǎn)到內(nèi)存;可能有以下幾種情況:內(nèi)存;可能有以下幾種情況: 靜止就緒靜止就緒活動就緒活動就緒:沒有就緒進程或:沒有就緒進程或掛起就緒進程優(yōu)先級高于就緒進程時,掛起就緒進程優(yōu)先級高于就緒進程時,發(fā)生轉(zhuǎn)換發(fā)生轉(zhuǎn)換 靜止阻塞靜止阻塞活動阻塞活動阻塞:當一個進程釋放:當一個進程釋放足夠內(nèi)存時,系統(tǒng)會把一個高優(yōu)先級阻足夠內(nèi)存時,系統(tǒng)會把一個高優(yōu)先級阻塞掛起進程(系統(tǒng)認為會很快出現(xiàn)所等塞掛起進程(系統(tǒng)認為會很快出現(xiàn)所等待的事件)轉(zhuǎn)換為阻塞狀態(tài)。待的事件)轉(zhuǎn)換為阻塞狀態(tài)。第二章 進程的描述與控制 Heb Nomal University Department of Compute
12、r Science11可中斷的睡眠狀態(tài)的進程會睡眠直到某個條件變?yōu)檎?,如產(chǎn)生一個硬件中斷、釋放進程正在等待的系統(tǒng)資源或是傳遞一個信號都可以是喚醒進程的條件??芍袛嗟乃郀顟B(tài)的進程會睡眠直到某個條件變?yōu)檎妫绠a(chǎn)生一個硬件中斷、釋放進程正在等待的系統(tǒng)資源或是傳遞一個信號都可以是喚醒進程的條件。 可中斷的睡眠狀態(tài)的進程會睡眠直到某個條件變?yōu)檎?,如產(chǎn)生一個硬件中斷、釋放進程正在等待的系統(tǒng)資源或是傳遞一個信號都可以是喚醒進程的條件。 只能被如硬件中斷、正在等待的系統(tǒng)資源被釋放等喚醒,對其他進程傳遞的信號不響應。第二章 進程的描述與控制 Heb Nomal University Department of
13、 Computer Science12 進程程序進程程序 用戶所要執(zhí)行的語句序列,必須有用戶所要執(zhí)行的語句序列,必須有 進程數(shù)據(jù)進程數(shù)據(jù) 用戶程序所要處理的數(shù)據(jù)用戶程序所要處理的數(shù)據(jù) 數(shù)據(jù)量可大可小,也可以沒有數(shù)據(jù)量可大可小,也可以沒有 棧棧 用于過程調(diào)用和參數(shù)傳遞用于過程調(diào)用和參數(shù)傳遞 進程控制塊進程控制塊PCB (PCB (進程屬性進程屬性) ) 處于核心段處于核心段 用戶進程不能直接訪問、修改自己的用戶進程不能直接訪問、修改自己的PCB第二章 進程的描述與控制 Heb Nomal University Department of Computer Science132.1.4 進程管理中
14、的數(shù)據(jù)結(jié)構(gòu)進程管理中的數(shù)據(jù)結(jié)構(gòu)1. 操作系統(tǒng)中用于管理控制的數(shù)據(jù)結(jié)構(gòu)操作系統(tǒng)中用于管理控制的數(shù)據(jù)結(jié)構(gòu)內(nèi)存設備文件進程內(nèi)存表設備表文件表進程1進程2進程n進程1進程n進程實體及所用資源列表圖圖2-9 操作系統(tǒng)控制表的一般結(jié)構(gòu)操作系統(tǒng)控制表的一般結(jié)構(gòu)第二章 進程的描述與控制 Heb Nomal University Department of Computer Science142. 進程控制塊進程控制塊PCB的作用的作用 進程控制塊的作用是使一個在多道程序環(huán)境下不能進程控制塊的作用是使一個在多道程序環(huán)境下不能獨立運行的程序獨立運行的程序(含數(shù)據(jù)含數(shù)據(jù)),成為一個能獨立運行的基本單,成為一個能獨立
15、運行的基本單位,一個能與其它進程并發(fā)執(zhí)行的進程。或者說,位,一個能與其它進程并發(fā)執(zhí)行的進程。或者說,OS是是根據(jù)根據(jù)PCB來對并發(fā)執(zhí)行的進程進行控制和管理的來對并發(fā)執(zhí)行的進程進行控制和管理的。系統(tǒng)為了管理進程設置的系統(tǒng)為了管理進程設置的一個專門的數(shù)據(jù)結(jié)構(gòu)一個專門的數(shù)據(jù)結(jié)構(gòu),用它,用它來來記錄進程的外部特征,描述進程的運動變化過程記錄進程的外部特征,描述進程的運動變化過程 系統(tǒng)利用系統(tǒng)利用PCBPCB來控制和管理進程,所以來控制和管理進程,所以PCBPCB是系統(tǒng)是系統(tǒng)感知感知進程存在的唯一標志進程存在的唯一標志進程與進程與PCBPCB是一一對應的是一一對應的/include/linux/sche
16、d.h 中 struct task_struct第二章 進程的描述與控制 Heb Nomal University Department of Computer Science15PCBPCB的內(nèi)容的內(nèi)容第二章 進程的描述與控制 Heb Nomal University Department of Computer Science163. 進程控制塊中的信息進程控制塊中的信息 1) 進程標識符進程標識符 進程標識符用于唯一地標識一個進程。兩種標識符: (1) 內(nèi)部標識符內(nèi)部標識符。 在所有的操作系統(tǒng)中,都為每一個進程賦予一個唯一的數(shù)字標識符數(shù)字標識符,它通常是一個進程的序號。 設置內(nèi)部標識符主
17、要是為了方便系統(tǒng)方便系統(tǒng)使用。 (2) 外部標識符外部標識符。 它由創(chuàng)建者提供,通常是由字母、數(shù)字組成由字母、數(shù)字組成,往往是由用戶(進程)在訪問該進程時使用。為了描述進程的家族關系, 還應設置父進程標識及子進程標識。此外,還可設置用戶標識,以指示擁有該進程的用戶。 PCB中的信息包含:中的信息包含: 進程標識符,處理機狀態(tài),進程調(diào)度信息,進程控制信息。進程標識符,處理機狀態(tài),進程調(diào)度信息,進程控制信息。第二章 進程的描述與控制 Heb Nomal University Department of Computer Science17 2) 處理機狀態(tài)處理機狀態(tài) 處理機狀態(tài)信息主要是由處理機的
18、各種寄存器中的內(nèi)容組成的。 通用寄存器通用寄存器 用戶可視寄存器,它們是用戶程序可以訪問的,用于暫存信息;用戶可視寄存器,它們是用戶程序可以訪問的,用于暫存信息; 指令計數(shù)器指令計數(shù)器,存放了要訪問的下一條指令的地址;存放了要訪問的下一條指令的地址; 程序狀態(tài)字程序狀態(tài)字PSW,其中含有狀態(tài)信息,如條件碼(體現(xiàn)(體現(xiàn)當前指令執(zhí)行結(jié)果的各種狀態(tài)信息。如有無進位(當前指令執(zhí)行結(jié)果的各種狀態(tài)信息。如有無進位(CY位),有無溢出(位),有無溢出(OV位),結(jié)果正負(位),結(jié)果正負(SF位),位),結(jié)果是否為零(結(jié)果是否為零(ZF位),奇偶標志位(位),奇偶標志位(P位)等)、位)等)、執(zhí)行方式、 中斷
19、屏蔽標志等; 用戶棧指針用戶棧指針 指每個用戶進程都有一個或若干個與之相關的系統(tǒng)棧,用于存放指每個用戶進程都有一個或若干個與之相關的系統(tǒng)棧,用于存放過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址。棧指針指向該棧的棧頂。過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址。棧指針指向該棧的棧頂。 第二章 進程的描述與控制 Heb Nomal University Department of Computer Science18 3) 進程調(diào)度信息進程調(diào)度信息 在PCB中還存放一些與進程調(diào)度和進程對換有關的信息,包括: 進程狀態(tài)進程狀態(tài); 進程優(yōu)先級進程優(yōu)先級; 進程調(diào)度所需的其它信息進程調(diào)度所需的其它信息; 事件事件,即阻塞原因。 第二
20、章 進程的描述與控制 Heb Nomal University Department of Computer Science19 4) 進程控制信息進程控制信息 進程控制信息包括: 程序和數(shù)據(jù)的地址程序和數(shù)據(jù)的地址 ; 進程同步和通信機制進程同步和通信機制; 資源清單資源清單; 鏈接指針鏈接指針 。 是指進程的程序和數(shù)據(jù)所在的內(nèi)存或外存地(首)址,以便再調(diào)度到該進程執(zhí)行時,能從PCB中找到其程序和數(shù)據(jù)指實現(xiàn)進程同步和進程通信時必需的機制, 如消息隊列指針、信號量等,它們可能全部或部分地放在PCB中是一張列出了除CPU以外的、進程所需的全部資源及已經(jīng)分配到該進程的資源的清單它給出了本進程(PCB
21、)所在隊列中的下一個進程的PCB的首地址第二章 進程的描述與控制 Heb Nomal University Department of Computer Science20PCBPCB的內(nèi)容的內(nèi)容注意:不同操作系統(tǒng)中對進程的控制和管理機制不一樣,注意:不同操作系統(tǒng)中對進程的控制和管理機制不一樣,PCBPCB中的信息多少也不一樣中的信息多少也不一樣第二章 進程的描述與控制 Heb Nomal University Department of Computer Science213. 進程控制塊的組織方式進程控制塊的組織方式 1) 鏈接方式(Linux采用) 圖 2-11 PCB鏈接隊列示意圖 P
22、CB14PCB2PCB3PCB4PCB5PCB6PCB7PCB8PCB93087901執(zhí)行指針就緒隊列指針阻塞隊列指針空閑隊列指針鏈接方式, 索引方式 第二章 進程的描述與控制 Heb Nomal University Department of Computer Science222) 索引方式 圖 2-12 按索引方式組織PCB 執(zhí)行指針就緒索引表PCB1PCB2PCB3PCB4PCB5PCB6PCB7阻塞索引表就緒表指針阻塞表指針第二章 進程的描述與控制 Heb Nomal University Department of Computer Science23第二章 進程的描述與控制 H
23、eb Nomal University Department of Computer Science24第二章第二章 進程管理進程管理 2.1 2.1 前驅(qū)圖和程序執(zhí)行前驅(qū)圖和程序執(zhí)行 2.2 2.2 進程進程 的描述的描述2.3 2.3 進程控制進程控制 2.4 2.4 進程同步進程同步 2.5 2.5 經(jīng)典進程的同步問題經(jīng)典進程的同步問題 2.6 2.6 進程通信進程通信 2.7 2.7 線程的基本概念線程的基本概念 2.8 2.8 線程的實現(xiàn)線程的實現(xiàn) 第二章 進程的描述與控制 Heb Nomal University Department of Computer Science252.
24、3 進進 程程 控控 制制 2.3.1 操作系統(tǒng)內(nèi)核操作系統(tǒng)內(nèi)核u處理器管理的一個主要工作是對進程的控制,處理器管理的一個主要工作是對進程的控制,u包括:創(chuàng)建進程、阻塞進程、喚醒進程、掛起進程、激活進程、包括:創(chuàng)建進程、阻塞進程、喚醒進程、掛起進程、激活進程、終止進程和撤銷進程等終止進程和撤銷進程等現(xiàn)代現(xiàn)代OS一般采用分層結(jié)構(gòu)一般采用分層結(jié)構(gòu)與硬件緊密相關的模塊與硬件緊密相關的模塊常用設備的驅(qū)動程序常用設備的驅(qū)動程序運行頻率較高的模塊運行頻率較高的模塊硬件硬件A0A1AnOS內(nèi)核保護軟件;提高保護軟件;提高OS效率效率第二章 進程的描述與控制 Heb Nomal University Depa
25、rtment of Computer Science26處理機的執(zhí)行狀態(tài):處理機的執(zhí)行狀態(tài):u系統(tǒng)態(tài)(管態(tài)),內(nèi)核態(tài)系統(tǒng)態(tài)(管態(tài)),內(nèi)核態(tài) 可執(zhí)行可執(zhí)行特權(quán)特權(quán)指令,訪問指令,訪問所有的所有的寄存器和存儲區(qū)寄存器和存儲區(qū)u用戶態(tài)(目態(tài))用戶態(tài)(目態(tài)) 可執(zhí)行可執(zhí)行非特權(quán)指令非特權(quán)指令,訪問指定的寄存器和存儲區(qū),訪問指定的寄存器和存儲區(qū)一般一般OS內(nèi)核的功能:內(nèi)核的功能:支撐功能支撐功能 中斷處理、時鐘管理、原語操作中斷處理、時鐘管理、原語操作資源管理功能資源管理功能 進程管理、存儲器管理、設備管理進程管理、存儲器管理、設備管理第二章 進程的描述與控制 Heb Nomal University
26、Department of Computer Science272.3.2 進程的創(chuàng)建進程的創(chuàng)建 1. 進程的層次結(jié)構(gòu)進程的層次結(jié)構(gòu) 圖 2-13 進程樹 DEFGHBCIJKLMA2. 進程圖進程圖(Process Graph) 父進程父進程:創(chuàng)建進程的進程。:創(chuàng)建進程的進程。子進程子進程:被創(chuàng)建的進程。:被創(chuàng)建的進程。各自工作區(qū),僅共享父進程打開的文件各自工作區(qū),僅共享父進程打開的文件祖先祖先進程進程用戶用戶進程進程系統(tǒng)系統(tǒng)進程進程用戶用戶進程進程用戶用戶進程進程進程家族樹進程家族樹第二章 進程的描述與控制 Heb Nomal University Department of Comput
27、er Science283. 引起創(chuàng)建進程的事件引起創(chuàng)建進程的事件 (1) 用戶登錄。用戶登錄。 (2) 作業(yè)調(diào)度。作業(yè)調(diào)度。 (3) 提供服務。提供服務。 (4) 應用請求。應用請求。 系統(tǒng)為用戶創(chuàng)建一個進程,并插入就緒隊列 第二章 進程的描述與控制 Heb Nomal University Department of Computer Science294. 進程的創(chuàng)建進程的創(chuàng)建(Creation of Progress) (1)申請空白申請空白PCB。 (2) 為新進程分配資源。為新進程分配資源。 (3) 初始化進程控制塊。初始化進程控制塊。 (4) 將新進程插入就緒隊列,或直接投入運行
28、。將新進程插入就緒隊列,或直接投入運行。 第二章 進程的描述與控制 Heb Nomal University Department of Computer Science302.3.3 進程的終止進程的終止 1. 引起進程終止引起進程終止(Termination of Process)的事件的事件 1) 正常結(jié)束 在任何計算機系統(tǒng)中,都應有一個用于表示進程已經(jīng)運行完成的指示。例如,在批處理系統(tǒng)中,通常在程序的最后安排一條例如,在批處理系統(tǒng)中,通常在程序的最后安排一條Holt指令或終止的系統(tǒng)指令或終止的系統(tǒng)調(diào)用。當程序運行到調(diào)用。當程序運行到Holt指令時,將產(chǎn)生一個中斷,去通知指令時,將產(chǎn)生一
29、個中斷,去通知OS本進程已經(jīng)完本進程已經(jīng)完成。成。 在分時系統(tǒng)中,用戶可利用在分時系統(tǒng)中,用戶可利用Logs off去表示進程運行完畢,去表示進程運行完畢, 此時同樣可此時同樣可產(chǎn)生一個中斷,去通知產(chǎn)生一個中斷,去通知OS進程已運行完畢。進程已運行完畢。 第二章 進程的描述與控制 Heb Nomal University Department of Computer Science31 2) 異常結(jié)束異常結(jié)束 在進程運行期間,由于出現(xiàn)某些錯誤和故障而迫使進程在進程運行期間,由于出現(xiàn)某些錯誤和故障而迫使進程終止。這類異常事件很多,常見的有:終止。這類異常事件很多,常見的有: 越界錯誤。越界錯誤。
30、程序所訪問的存儲區(qū),已越出該進程的區(qū)域;程序所訪問的存儲區(qū),已越出該進程的區(qū)域; 保護錯。保護錯。進程試圖去訪問一個不允許訪問的資源或文件,或者以不進程試圖去訪問一個不允許訪問的資源或文件,或者以不適當?shù)姆绞竭M行訪問,例如,進程試圖去寫一個只讀文件;適當?shù)姆绞竭M行訪問,例如,進程試圖去寫一個只讀文件; 非法指令。非法指令。程序試圖去執(zhí)行一條不存在的指令。出現(xiàn)該錯誤的原因,程序試圖去執(zhí)行一條不存在的指令。出現(xiàn)該錯誤的原因,可能是程序錯誤地轉(zhuǎn)移到數(shù)據(jù)區(qū),把數(shù)據(jù)當成了指令;可能是程序錯誤地轉(zhuǎn)移到數(shù)據(jù)區(qū),把數(shù)據(jù)當成了指令; 特權(quán)指令錯。特權(quán)指令錯。用戶進程試圖去執(zhí)行一條只允許用戶進程試圖去執(zhí)行一條只允
31、許OS執(zhí)行的指令;執(zhí)行的指令; 運行超時。運行超時。進程的執(zhí)行時間超過了指定的最大值;進程的執(zhí)行時間超過了指定的最大值; 等待超時。等待超時。進程等待某事件的時間,進程等待某事件的時間, 超過了規(guī)定的最大值;超過了規(guī)定的最大值; 算術(shù)運算錯。算術(shù)運算錯。進程試圖去執(zhí)行一個被禁止的運算,例如,被進程試圖去執(zhí)行一個被禁止的運算,例如,被0除;除; I/O故障。故障。指在指在I/O過程中發(fā)生了錯誤等。過程中發(fā)生了錯誤等。 第二章 進程的描述與控制 Heb Nomal University Department of Computer Science32 3) 外界干預外界干預 外界干預并非指在本進程
32、運行中出現(xiàn)了異常事件,本進程運行中出現(xiàn)了異常事件,而是指進程應外界的請求而終止運行。而是指進程應外界的請求而終止運行。這些干預有: 操作員或操作系統(tǒng)干預。操作員或操作系統(tǒng)干預。 由于某種原因,例如,發(fā)生了死鎖,由于某種原因,例如,發(fā)生了死鎖, 由操作員或操作系統(tǒng)終止該進程;由操作員或操作系統(tǒng)終止該進程; 父進程請求。父進程請求。 由于父進程具有終止自己的任何子孫進程的權(quán)由于父進程具有終止自己的任何子孫進程的權(quán)利,利, 因而當父進程提出請求時,系統(tǒng)將終止該進程;因而當父進程提出請求時,系統(tǒng)將終止該進程; 父進程終止。父進程終止。 當父進程終止時,當父進程終止時,OS也將他的所有子孫進程終也將他的
33、所有子孫進程終止。止。 第二章 進程的描述與控制 Heb Nomal University Department of Computer Science33 2. 進程的終止過程進程的終止過程 (1) 根據(jù)被終止進程的標識符,從根據(jù)被終止進程的標識符,從PCB集合中找出該進程的集合中找出該進程的PCB,從中讀出該進程的狀態(tài)。從中讀出該進程的狀態(tài)。 (2) 若被終止進程正處于執(zhí)行狀態(tài),應立即終止該進程的執(zhí)行,并若被終止進程正處于執(zhí)行狀態(tài),應立即終止該進程的執(zhí)行,并置調(diào)度標志為真,用于指示該進程被終止后應重新進行調(diào)度。置調(diào)度標志為真,用于指示該進程被終止后應重新進行調(diào)度。 (3) 若該進程還有子孫
34、進程,還應將其所有子孫進程予以終止,以若該進程還有子孫進程,還應將其所有子孫進程予以終止,以防他們成為不可控的進程。防他們成為不可控的進程。 (4) 將被終止進程所擁有的全部資源,或者歸還給其父進程,將被終止進程所擁有的全部資源,或者歸還給其父進程, 或者或者歸還給系統(tǒng)。歸還給系統(tǒng)。 (5) 將被終止進程將被終止進程(它的它的PCB)從所在隊列從所在隊列(或鏈表或鏈表)中移出,中移出,。 第二章 進程的描述與控制 Heb Nomal University Department of Computer Science342.3.4 進程的阻塞與喚醒進程的阻塞與喚醒1. 引起進程阻塞和喚醒的事件引
35、起進程阻塞和喚醒的事件 1) 請求系統(tǒng)服務 2) 啟動某種操作 3) 新數(shù)據(jù)尚未到達 4) 無新工作可做 第二章 進程的描述與控制 Heb Nomal University Department of Computer Science35 2. 進程阻塞過程進程阻塞過程 正在執(zhí)行的進程,當發(fā)現(xiàn)上述某事件時,由于無法繼續(xù)正在執(zhí)行的進程,當發(fā)現(xiàn)上述某事件時,由于無法繼續(xù)執(zhí)行,于是進程便通過調(diào)用執(zhí)行,于是進程便通過調(diào)用阻塞原語阻塞原語block把自己阻塞??梢姡炎约鹤枞???梢姡M程的阻塞是進程的阻塞是進程自身的一種主動行為進程自身的一種主動行為。 進入進入block過程后,由于此時該進程還處于執(zhí)行
36、狀態(tài),所過程后,由于此時該進程還處于執(zhí)行狀態(tài),所以應以應立即停止執(zhí)行,立即停止執(zhí)行,把進程控制把進程控制塊中的現(xiàn)行狀態(tài)由塊中的現(xiàn)行狀態(tài)由“執(zhí)行執(zhí)行”改為阻塞,將改為阻塞,將PCB插入阻塞隊插入阻塞隊列列。如果系統(tǒng)中設置了因不同事件而阻塞的多個阻塞隊列,則應將本進如果系統(tǒng)中設置了因不同事件而阻塞的多個阻塞隊列,則應將本進程插入到具有相同事件的阻塞程插入到具有相同事件的阻塞(等待等待)隊列。隊列。 最后,轉(zhuǎn)調(diào)度程序進行重新調(diào)度,將處理機分配給另一最后,轉(zhuǎn)調(diào)度程序進行重新調(diào)度,將處理機分配給另一就緒進程,并進行切換,亦即,保留被阻塞進程的處理機狀就緒進程,并進行切換,亦即,保留被阻塞進程的處理機狀態(tài)
37、態(tài)(在在PCB中中),再按新進程的,再按新進程的PCB中的處理機狀態(tài)設置中的處理機狀態(tài)設置CPU的的環(huán)境。環(huán)境。 第二章 進程的描述與控制 Heb Nomal University Department of Computer Science36 3. 進程喚醒過程進程喚醒過程 當被阻塞進程所期待的事件出現(xiàn)時,如當被阻塞進程所期待的事件出現(xiàn)時,如I/O完成或其完成或其所期待的數(shù)據(jù)已經(jīng)到達,則由有關進程所期待的數(shù)據(jù)已經(jīng)到達,則由有關進程(比如,用完并釋比如,用完并釋放了該放了該I/O設備的進程設備的進程)調(diào)用調(diào)用喚醒原語喚醒原語wakeup( ),將等待該,將等待該事件的進程喚醒。事件的進程喚醒。 喚醒原語執(zhí)行的過程是:首先把被阻塞的進程從喚醒原語執(zhí)行的過程是:首先把被阻塞的進程從等待該事件的阻塞隊列中移出,將其等待該事件的阻塞隊列中移出,將其PC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個人房產(chǎn)抵押權(quán)抵押權(quán)轉(zhuǎn)讓合同3篇
- 2025年度個人貸款擔保轉(zhuǎn)讓合同4篇
- 2025版住宅室內(nèi)精裝修與裝飾工程施工合同5篇
- 人類的起源和發(fā)展課件2
- 出租車行業(yè)環(huán)保措施考核試卷
- 團隊建設力量培養(yǎng)項目計劃書考核試卷
- 印刷業(yè)科技創(chuàng)新與成果轉(zhuǎn)化考核試卷
- 二零二五年度藝術(shù)品交易居間代理合同樣本3篇
- 2025年創(chuàng)業(yè)創(chuàng)新貸款協(xié)議
- 2025年合作知名作者的高需求小說電子書協(xié)議
- 廣東省佛山市2025屆高三高中教學質(zhì)量檢測 (一)化學試題(含答案)
- 人教版【初中數(shù)學】知識點總結(jié)-全面+九年級上冊數(shù)學全冊教案
- 2024-2025學年人教版七年級英語上冊各單元重點句子
- 2024年九年級語文中考名著閱讀《儒林外史》考前練附答案
- 抖音麗人行業(yè)短視頻直播項目運營策劃方案
- 2024年江蘇揚州市邗城文化旅游發(fā)展有限公司招聘筆試參考題庫含答案解析
- 小學六年級數(shù)學100道題解分數(shù)方程
- 社區(qū)獲得性肺炎護理查房內(nèi)科
- 淺談提高中學生歷史學習興趣的策略
- 項目管理實施規(guī)劃-無錫萬象城
- 浙大一院之江院區(qū)就診指南
評論
0/150
提交評論