第2章掛起和進程控制_第1頁
第2章掛起和進程控制_第2頁
第2章掛起和進程控制_第3頁
第2章掛起和進程控制_第4頁
第2章掛起和進程控制_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1 1第二章 進程的描述與控制復習復習進程是什么?進程實體組成?進程是什么?進程實體組成?進程的特征?與程序的區(qū)別。進程的特征?與程序的區(qū)別。進程的狀態(tài)及轉換進程的狀態(tài)及轉換2 2第二章 進程的描述與控制進程特征:進程特征:動態(tài)性、并發(fā)性、獨立性、異步性動態(tài)性、并發(fā)性、獨立性、異步性進程實體(進程影像)組成:進程實體(進程影像)組成:程序、程序、數(shù)據(jù)、進程控制塊(數(shù)據(jù)、進程控制塊(PCB)。)。PCB是系統(tǒng)感知進程存在的是系統(tǒng)感知進程存在的唯一標唯一標識識。PCB包含進程的描述信息、控包含進程的描述信息、控制信息、資源信息等。制信息、資源信息等。3進程與程序的區(qū)別:1)進程是一次運行的過程,屬

2、于一種動態(tài)的概念;進程是一次運行的過程,屬于一種動態(tài)的概念;而程序是而程序是指令的集合,是一個靜態(tài)的概念。指令的集合,是一個靜態(tài)的概念。5) 一個程序可以對應多個進程。一個程序可以對應多個進程。當當同一程序同一程序同時運行于若干同時運行于若干個個不同的數(shù)據(jù)集合不同的數(shù)據(jù)集合上時,它將屬于若干個上時,它將屬于若干個不同的進程不同的進程。3)進程是有生命期的;進程是有生命期的;而程序是永久的。而程序是永久的。2)進程可以并發(fā)執(zhí)行;進程可以并發(fā)執(zhí)行;而程序不能。而程序不能。4)進程是系統(tǒng)資源分配的獨立單位,進程是系統(tǒng)資源分配的獨立單位,而程序則不行。而程序則不行。 編譯程序編譯程序 user1.c

3、user2.c4 4第二章 進程的描述與控制進程狀態(tài)及轉換進程狀態(tài)及轉換就緒就緒執(zhí)行執(zhí)行等待等待阻塞阻塞調度調度1.時間片到時間片到2.高優(yōu)先級高優(yōu)先級等待某事等待某事件而睡眠件而睡眠因等待事件因等待事件發(fā)生而喚醒發(fā)生而喚醒創(chuàng)建創(chuàng)建終止終止結束結束5 5第二章 進程的描述與控制CPU就就 緒緒 隊隊 列列阻阻 塞塞 隊隊 列列 1時間片完、高優(yōu)先級時間片完、高優(yōu)先級進程進程調度調度事件事件1出現(xiàn)出現(xiàn)完成完成阻阻 塞塞 隊隊 列列 2事件事件2出現(xiàn)出現(xiàn)阻阻 塞塞 隊隊 列列 3事件事件n出現(xiàn)出現(xiàn).等待事件等待事件1等待事件等待事件2等待事件等待事件n創(chuàng)建創(chuàng)建進程進程6 6第二章 進程的描述與控制

4、7 7第二章 進程的描述與控制 將內存中暫時不能運行的進程,或將內存中暫時不能運行的進程,或暫時不用的數(shù)據(jù)和程序,暫時不用的數(shù)據(jù)和程序,換出到外存換出到外存,以騰出足夠的內存空間,把已具備運行以騰出足夠的內存空間,把已具備運行條件的進程,或進程所需要的數(shù)據(jù)和程條件的進程,或進程所需要的數(shù)據(jù)和程序,序,換入內存換入內存。交換技術交換技術8 8第二章 進程的描述與控制掛起(掛起(Suspend)操作:)操作:把一個進程從把一個進程從內存內存轉到轉到外存外存; 可能有以下幾種情況:可能有以下幾種情況:阻塞阻塞 (活動阻塞活動阻塞) 阻塞掛起阻塞掛起 (靜止阻塞靜止阻塞) 就緒就緒 (活動就緒活動就緒

5、) 就緒掛起就緒掛起 (靜止就緒靜止就緒) 執(zhí)行執(zhí)行 就緒掛起就緒掛起 (靜止就緒靜止就緒) 9 9第二章 進程的描述與控制阻塞阻塞對應對應喚醒喚醒,掛起掛起對應對應激活激活掛起與阻塞掛起與阻塞阻塞與否:阻塞與否:是否等待事件是否等待事件掛起與否:掛起與否:是否被換出內存是否被換出內存4種狀態(tài)組合:種狀態(tài)組合:就緒:就緒:進程在內存,準備執(zhí)行進程在內存,準備執(zhí)行阻塞:阻塞:進程在內存,等待事件進程在內存,等待事件就緒掛起:就緒掛起:進程在外存,需調入內存,準備執(zhí)行進程在外存,需調入內存,準備執(zhí)行阻塞掛起:阻塞掛起:進程在外存,等待事件進程在外存,等待事件10 10第二章 進程的描述與控制2.2

6、.3 2.2.3 掛起操作和進程狀態(tài)的轉換掛起操作和進程狀態(tài)的轉換1. 1. 掛起操作的引入掛起操作的引入引入掛起操作的原因,是基于系統(tǒng)和用戶的如下需要:引入掛起操作的原因,是基于系統(tǒng)和用戶的如下需要:(1) 終端用戶的需要。終端用戶的需要。(2) 父進程請求。父進程請求。(3) 負荷調節(jié)的需要。負荷調節(jié)的需要。為運行進程為運行進程提供足夠內存提供足夠內存:資源:資源緊張時,暫停某些進程,如:緊張時,暫停某些進程,如:CPU繁忙(或實時任務執(zhí)行),繁忙(或實時任務執(zhí)行),內存緊張內存緊張(4) 操作系統(tǒng)的需要。操作系統(tǒng)的需要。 (5) 進程全部阻塞,處理機空閑。進程全部阻塞,處理機空閑。11

7、11第二章 進程的描述與控制12 12第二章 進程的描述與控制激活(激活(Activate):):把一個進程從把一個進程從外存轉到內存外存轉到內存;可能有以下幾種情況:可能有以下幾種情況:就緒掛起就緒掛起就緒:就緒:沒有就緒進程沒有就緒進程或或掛起就緒進程掛起就緒進程優(yōu)先級高優(yōu)先級高于就緒進程時,會進行這種轉換;于就緒進程時,會進行這種轉換;阻塞掛起阻塞掛起阻塞:阻塞:當一個進程當一個進程釋放足夠內存釋放足夠內存時,時,系統(tǒng)會把一個高優(yōu)先級阻塞掛起(系統(tǒng)認為會很系統(tǒng)會把一個高優(yōu)先級阻塞掛起(系統(tǒng)認為會很快出現(xiàn)所等待的事件)進程激活;快出現(xiàn)所等待的事件)進程激活;13 13第二章 進程的描述與控

8、制活動就緒狀態(tài)活動就緒狀態(tài)(Readya):進程在進程在內存,內存,準備進入運行狀態(tài);準備進入運行狀態(tài);活動阻塞狀態(tài)活動阻塞狀態(tài)(Blockeda):進程在進程在內存內存并等待某事件的出現(xiàn);并等待某事件的出現(xiàn);靜止阻塞狀態(tài)(靜止阻塞狀態(tài)(Blockeds):):進程在進程在外存外存并等待某事件的出現(xiàn);并等待某事件的出現(xiàn);靜止就緒狀態(tài)(靜止就緒狀態(tài)(Readys):):進程在進程在外存外存,但只要進入內存,即,但只要進入內存,即可準備運行;可準備運行;14 14第二章 進程的描述與控制2. 2. 引入掛起原語操作后三個進程狀態(tài)的轉換引入掛起原語操作后三個進程狀態(tài)的轉換在引入掛起原語在引入掛起原語

9、Suspend和激活原語和激活原語Active后,在它們的作后,在它們的作用下,進程將可能發(fā)生以下幾種狀態(tài)的轉換:用下,進程將可能發(fā)生以下幾種狀態(tài)的轉換:(1) 活動就緒活動就緒靜止就緒。靜止就緒。一般,一般,OS掛起阻塞進程,但有時掛起阻塞進程,但有時也會掛起就緒進程,釋放足夠的內存空間。也會掛起就緒進程,釋放足夠的內存空間。(2) 活動阻塞活動阻塞靜止阻塞。靜止阻塞。OS通常將阻塞進程換出,騰出內通常將阻塞進程換出,騰出內存空間。存空間。(3) 靜止就緒靜止就緒活動就緒?;顒泳途w。OS需要調入內存執(zhí)行。需要調入內存執(zhí)行。(4) 靜止阻塞靜止阻塞靜止就緒。靜止就緒。期待的事件出現(xiàn)。期待的事件

10、出現(xiàn)。15 15第二章 進程的描述與控制15時間片到時間片到執(zhí)行執(zhí)行就緒就緒阻塞阻塞進程調度進程調度等待某事件發(fā)生等待某事件發(fā)生而阻塞而阻塞所等待的事件發(fā)生所等待的事件發(fā)生而喚醒而喚醒 進程狀態(tài)的擴展及其轉換進程狀態(tài)的擴展及其轉換 外存外存 內存內存靜止靜止就緒就緒靜止靜止阻塞阻塞所等待的事件發(fā)生所等待的事件發(fā)生而喚醒而喚醒換出換出換出換出換進換進換進換進創(chuàng)建創(chuàng)建終止終止許可許可掛起掛起許可許可終止終止3. 3. 引入掛起操作進程狀態(tài)的轉換引入掛起操作進程狀態(tài)的轉換16 16第二章 進程的描述與控制3. 3. 引入掛起操作進程狀態(tài)的轉換引入掛起操作進程狀態(tài)的轉換(1) 活動阻塞活動阻塞靜止阻塞

11、;靜止阻塞; (2) 靜止阻塞靜止阻塞活動阻塞;活動阻塞;(3) 活動就緒活動就緒靜止就緒;靜止就緒; (4) 靜止就緒靜止就緒活動就緒;活動就緒; (5) 靜止阻塞靜止阻塞靜止就緒靜止就緒(6) 創(chuàng)建創(chuàng)建靜止就緒:如果內存空間不足。靜止就緒:如果內存空間不足。(7) 執(zhí)行執(zhí)行靜止就緒:靜止就緒: (8) 活動阻塞活動阻塞執(zhí)行:執(zhí)行:對對搶先式搶先式分時系統(tǒng),當有分時系統(tǒng),當有高優(yōu)先級高優(yōu)先級阻塞掛起進程因事件出現(xiàn)而進入就緒阻塞掛起進程因事件出現(xiàn)而進入就緒掛起時,系統(tǒng)可能會把運行進程轉到就緒掛起狀態(tài)掛起時,系統(tǒng)可能會把運行進程轉到就緒掛起狀態(tài)17 17第二章 進程的描述與控制2.2.4 2.2

12、.4 進程管理中的數(shù)據(jù)結構進程管理中的數(shù)據(jù)結構1. 1. 操作系統(tǒng)中用于管理控制的數(shù)據(jù)結構操作系統(tǒng)中用于管理控制的數(shù)據(jù)結構 OS是將各類是將各類資源抽象資源抽象為各種為各種數(shù)據(jù)結構數(shù)據(jù)結構。 對于每個資源和每個進程都設置了一個數(shù)據(jù)結構,用于對于每個資源和每個進程都設置了一個數(shù)據(jù)結構,用于表征其實體,我們稱之為表征其實體,我們稱之為資源信息表資源信息表或或進程信息表進程信息表,其中包,其中包含了含了資源或進程的標識、描述、狀態(tài)資源或進程的標識、描述、狀態(tài)等信息以及等信息以及一批指針一批指針。 通過這些指針,可以將同類資源或進程的信息表,或者通過這些指針,可以將同類資源或進程的信息表,或者同一進程

13、所占用的資源信息表分類鏈接成不同的隊列,便于同一進程所占用的資源信息表分類鏈接成不同的隊列,便于操作系統(tǒng)進行查找。操作系統(tǒng)進行查找。 18 18第二章 進程的描述與控制OS管理的這些數(shù)據(jù)結構一般分為以下四類:管理的這些數(shù)據(jù)結構一般分為以下四類:內存表內存表、設備表設備表、文件表文件表和用于進程管理的和用于進程管理的進程表進程表,通常進程表又被,通常進程表又被稱為稱為進程控制塊進程控制塊PCB。 19 19第二章 進程的描述與控制2. 2. 進程控制塊進程控制塊PCBPCB的作用的作用(1) 作為作為獨立運行基本單位獨立運行基本單位的的標志標志。唯一標志唯一標志(2) 能能實現(xiàn)間斷性實現(xiàn)間斷性運

14、行方式。運行方式。 CPU現(xiàn)場保護和恢復現(xiàn)場保護和恢復 (3) 提供提供進程管理所需要的信息進程管理所需要的信息。 內外存起始地址、資源清單內外存起始地址、資源清單(4) 提供提供進程調度所需要的信息進程調度所需要的信息。 狀態(tài)、優(yōu)先級、執(zhí)行等待時間狀態(tài)、優(yōu)先級、執(zhí)行等待時間(5) 實現(xiàn)與其它進程的實現(xiàn)與其它進程的同步與通信同步與通信。2020第二章 進程的描述與控制3. 3. 進程控制塊中的信息進程控制塊中的信息在進程控制塊中,主要包括:在進程控制塊中,主要包括:1) 進程標識符進程標識符 (1) 外部標識符。外部標識符。(2) 內部標識符。內部標識符。2) 處理機狀態(tài)處理機狀態(tài)處理機狀態(tài)信

15、息處理機狀態(tài)信息也稱為也稱為處理機的上下文處理機的上下文,主要,主要是由處理機的各種寄存器中的內容組成的。是由處理機的各種寄存器中的內容組成的。 通用寄通用寄存器、指令計數(shù)器、程序狀態(tài)字、用戶棧指針存器、指令計數(shù)器、程序狀態(tài)字、用戶棧指針21 21第二章 進程的描述與控制3) 進程調度信息進程調度信息 進程狀態(tài)進程狀態(tài), 進程優(yōu)先級進程優(yōu)先級, 進程調度所需的其它進程調度所需的其它信息,它們與所信息,它們與所采用的采用的進程調度算法有關進程調度算法有關,比如,進程已等,比如,進程已等待待CPU的時間總和、進程已執(zhí)行的的時間總和、進程已執(zhí)行的時間時間總和等;總和等; 事件事件,是指進程由執(zhí)行狀態(tài)

16、轉變?yōu)樽枞麪顟B(tài)所等待發(fā)生的事件,即是指進程由執(zhí)行狀態(tài)轉變?yōu)樽枞麪顟B(tài)所等待發(fā)生的事件,即阻塞原因。阻塞原因。4) 進程控制信息進程控制信息是指用于進程控制所必須的信息,它包括:是指用于進程控制所必須的信息,它包括: 程序和程序和數(shù)據(jù)的地址數(shù)據(jù)的地址 ; 進程同步和通信機制進程同步和通信機制; 資源清單資源清單; 鏈鏈接指針接指針2222第二章 進程的描述與控制4. 4. 進程控制塊的組織方式進程控制塊的組織方式PCB組織方式有以下三種。組織方式有以下三種。 (1) 線性方式,線性方式,即將系統(tǒng)中即將系統(tǒng)中所有所有的的PCB都組織在一張線性表中,將都組織在一張線性表中,將該該表的首址存放在內存的一

17、個專用表的首址存放在內存的一個專用區(qū)域區(qū)域中。該方式實現(xiàn)簡單、開銷小,中。該方式實現(xiàn)簡單、開銷小,但每次查找時都需要掃描整張表,但每次查找時都需要掃描整張表,因此適合進程數(shù)目不多的系統(tǒng)。因此適合進程數(shù)目不多的系統(tǒng)。2323第二章 進程的描述與控制(2) 鏈接方式,鏈接方式,即把具有即把具有相同狀態(tài)進程相同狀態(tài)進程的的PCB分別通過分別通過PCB中的鏈接字鏈接成一個隊列。這樣,可以形成中的鏈接字鏈接成一個隊列。這樣,可以形成就緒隊就緒隊列列、若干個阻塞隊列若干個阻塞隊列和空白隊列等。和空白隊列等。2424第二章 進程的描述與控制(3) 索引方式,索引方式,即系統(tǒng)根據(jù)所有進程狀態(tài)的不同,建立即系統(tǒng)

18、根據(jù)所有進程狀態(tài)的不同,建立幾張索引表,例如,就緒索引表、阻塞索引表等,并把各索幾張索引表,例如,就緒索引表、阻塞索引表等,并把各索引表在內存的首地址記錄在內存的一些專用單元中。在每個引表在內存的首地址記錄在內存的一些專用單元中。在每個索引表的表目中,記錄具有相應狀態(tài)的某個索引表的表目中,記錄具有相應狀態(tài)的某個PCB在在PCB表中表中的地址。的地址。第二章 進 程 管 理 2.3 進程控制進程控制 與與硬件緊密硬件緊密相關的模塊(中斷處理程序)相關的模塊(中斷處理程序) 常用設備的常用設備的驅動程序驅動程序(鍵盤、顯示器)(鍵盤、顯示器) 運行頻率高運行頻率高的模塊(時鐘管理、進程調度等)的模

19、塊(時鐘管理、進程調度等) 關鍵性的數(shù)據(jù)結構關鍵性的數(shù)據(jù)結構(如進程控制塊(如進程控制塊PCB)2.3.1 OS內核內核第二章 進 程 管 理 2.3 進程控制進程控制 處理機兩種執(zhí)行狀態(tài)處理機兩種執(zhí)行狀態(tài):系統(tǒng)態(tài)系統(tǒng)態(tài)和和用戶態(tài)用戶態(tài)。兩種兩種執(zhí)行模式執(zhí)行模式 系統(tǒng)態(tài):系統(tǒng)態(tài):核心態(tài)核心態(tài)(Kernel State),管態(tài)管態(tài)。具有較高。具有較高的特權,能執(zhí)行一切命令,訪問所有寄存器和的特權,能執(zhí)行一切命令,訪問所有寄存器和存儲區(qū)。存儲區(qū)。OS內核運行在核心態(tài),進程控制是由內核運行在核心態(tài),進程控制是由OS內核實現(xiàn)的。內核實現(xiàn)的。 用戶態(tài)用戶態(tài)(User State):目態(tài)。:目態(tài)。具有較低

20、的特權,具有較低的特權,只能執(zhí)行規(guī)定的指令,訪問指定的寄存器和存只能執(zhí)行規(guī)定的指令,訪問指定的寄存器和存儲區(qū)。運行用戶程序。儲區(qū)。運行用戶程序。OS內核兩大內核兩大方面功能方面功能進程管理進程管理存儲器管理存儲器管理 設備管理設備管理資源管理資源管理中斷處理中斷處理原語原語 時鐘時鐘操作操作 管理管理支撐支撐硬件如系統(tǒng)調用、鍵如系統(tǒng)調用、鍵盤命令輸入、進盤命令輸入、進程調度、設備驅程調度、設備驅動、文件操作等。動、文件操作等。時間片輪轉調時間片輪轉調度、截止時間度、截止時間控制、最長時控制、最長時間控制等間控制等原語:由若干條指令構成、原語:由若干條指令構成、用于完成一定功能的一個過用于完成一

21、定功能的一個過程。程。原子操作:一個操作中的所原子操作:一個操作中的所有動作要么不做、要么全部有動作要么不做、要么全部完成。完成。進程的調度、分派、進程的調度、分派、創(chuàng)建、撤消等。創(chuàng)建、撤消等。內存分配與回收、內存分配與回收、內存保護與對換、內存保護與對換、虛擬內存管理等。虛擬內存管理等。設備驅動程序:緩和設備驅動程序:緩和CPU與與I/O不匹配的矛盾,不匹配的矛盾,實現(xiàn)設備分配和設備的實現(xiàn)設備分配和設備的獨立性等。獨立性等。O S內核2.3.2 進程的創(chuàng)建 當當子進程創(chuàng)建子進程創(chuàng)建時,子進程時,子進程繼承繼承父進程所擁有的資源;父進程所擁有的資源; 當當子進程撤消子進程撤消時將從父進程那里繼

22、承的資源時將從父進程那里繼承的資源歸還歸還給父進程。給父進程。 撤消父進程時撤消父進程時,也必須同時,也必須同時撤銷其所有子進程撤銷其所有子進程ABCDEFGHIJ父進程(Parent Process)子進程(Progeny Process)祖先(Ancestor)Unix構成進程家族,構成進程家族,Windows不存在進程的層次結構不存在進程的層次結構進程創(chuàng)建過程創(chuàng)建進程請求調用創(chuàng)建進程原語Creat()申請PCB、分配進程ID為進程分配資源初始化PCB將進程放進Ready隊列產(chǎn)生新進程事件:用戶登錄:當合法用戶登錄時作業(yè)調度:批處理系統(tǒng),把一個作業(yè)調度執(zhí)行時。提供服務:當系統(tǒng)收到服務請求時

23、。應用請求:當應用本身需要并發(fā)進程時。為新進程分配一個唯一為新進程分配一個唯一的進程的進程ID,并申請一個空并申請一個空白的白的PCB。為進程的程序代碼、為進程的程序代碼、數(shù)據(jù)用戶棧分配內存數(shù)據(jù)用戶棧分配內存空間??臻g。(1)將系統(tǒng)分配的進)將系統(tǒng)分配的進程程ID、父進程、父進程ID寫入寫入PCB。(2)將程序計數(shù)器指)將程序計數(shù)器指向程序的入口地址、向程序的入口地址、棧指針指向棧頂。棧指針指向棧頂。(3)設置進程狀態(tài)、)設置進程狀態(tài)、優(yōu)先級等。優(yōu)先級等。將進程擁有的資源歸還給父進程或OS2.3.3 進程的終止引發(fā)進程的終止事件調用進程終止原語Destroy()從PCB集中檢索出該進程的PCB讀出進程的狀態(tài)在Running狀態(tài):終止執(zhí)行、設置調度狀態(tài)為真。有子進程:終止所有的子孫進程。把對應的PCB設成空三大類:三大類:1、正常結束;、正常結束;2、異常結束:、異常結束:(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論