




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第三章 進 程 管 理 1第三章第三章 進程管理進程管理 3.1 3.1 進程概述進程概述 3.2 3.2 進程控制塊進程控制塊 3.3 3.3 調(diào)度調(diào)度 3.4 UNIX3.4 UNIX系統(tǒng)的進程調(diào)度系統(tǒng)的進程調(diào)度 3.5 3.5 進程控制進程控制 3.6 3.6 進程的創(chuàng)建和圖像改換進程的創(chuàng)建和圖像改換 3.7 3.7 線程線程 3.8 Linux3.8 Linux進程管理進程管理第三章 進 程 管 理 23.1 3.1 進程概述進程概述 u程序的執(zhí)行有兩種方式:程序的執(zhí)行有兩種方式:順序執(zhí)行順序執(zhí)行和和并發(fā)執(zhí)行并發(fā)執(zhí)行。 順序執(zhí)行順序執(zhí)行是是單道單道批處理系統(tǒng)的執(zhí)行方式,也批處理系統(tǒng)的執(zhí)
2、行方式,也用于用于簡單的單片機簡單的單片機系統(tǒng);系統(tǒng); 現(xiàn)在的操作系統(tǒng)多為現(xiàn)在的操作系統(tǒng)多為并發(fā)執(zhí)行并發(fā)執(zhí)行,具有許多新,具有許多新的特征。引入并發(fā)執(zhí)行的目的是為了提高的特征。引入并發(fā)執(zhí)行的目的是為了提高資資源利用率源利用率。第三章 進 程 管 理 31.1.程序程序:是一個在時間上嚴格有序的指令集合。:是一個在時間上嚴格有序的指令集合。2.2.程序規(guī)定了完成某一任務時,計算機所需做程序規(guī)定了完成某一任務時,計算機所需做的各種操作,以及這些操作的執(zhí)行時間。的各種操作,以及這些操作的執(zhí)行時間。3.3.程序的順序執(zhí)行:具有獨立功能的程序程序的順序執(zhí)行:具有獨立功能的程序獨占獨占CPUCPU直至得到
3、最終結果的過程。直至得到最終結果的過程。程序程序第三章 進 程 管 理 4程序順序執(zhí)行時的特征程序順序執(zhí)行時的特征 (1 1)順序性)順序性:(執(zhí)行的順序性)由于內(nèi)存中每:(執(zhí)行的順序性)由于內(nèi)存中每次只有一道程序,因此各個程序是按次序執(zhí)次只有一道程序,因此各個程序是按次序執(zhí)行的,即執(zhí)行完一個以后,再執(zhí)行下一個。行的,即執(zhí)行完一個以后,再執(zhí)行下一個。(2 2)封閉性)封閉性:獨占全部資源,計算機的狀態(tài)只:獨占全部資源,計算機的狀態(tài)只由于該程序的控制邏輯所決定由于該程序的控制邏輯所決定(3 3)可再現(xiàn)性)可再現(xiàn)性:結果的再現(xiàn)性,初始條件相同:結果的再現(xiàn)性,初始條件相同則結果相同。則結果相同。第三
4、章 進 程 管 理 5程序的并發(fā)執(zhí)行及其特征程序的并發(fā)執(zhí)行及其特征 1. 程序的并發(fā)執(zhí)行程序的并發(fā)執(zhí)行 P1P2P3P4I1I2I3I4C1C2C3C4第三章 進 程 管 理 6程序并發(fā)執(zhí)行時的特征程序并發(fā)執(zhí)行時的特征 間斷間斷(異步異步)性性:執(zhí)行的順序性被打破,:執(zhí)行的順序性被打破,“走走停停走走停?!?,一個程序可能走到中途停下來,失去原有的時序關系;一個程序可能走到中途停下來,失去原有的時序關系; 失去封閉性失去封閉性:資源的獨占性被打破,共享資源,受其:資源的獨占性被打破,共享資源,受其他程序的控制邏輯的影響。如:一個程序?qū)懙酱鎯ζ髦兴绦虻目刂七壿嫷挠绊?。如:一個程序?qū)懙酱鎯ζ髦械臄?shù)
5、據(jù)可能被另一個程序修改,失去原有的不變特征。的數(shù)據(jù)可能被另一個程序修改,失去原有的不變特征。 失去可再現(xiàn)性失去可再現(xiàn)性:失去封閉性:失去封閉性 失去可再現(xiàn)性;外界失去可再現(xiàn)性;外界環(huán)境在程序的兩次執(zhí)行期間發(fā)生變化,失去原有的可重環(huán)境在程序的兩次執(zhí)行期間發(fā)生變化,失去原有的可重復特征。復特征。第三章 進 程 管 理 7不加控制的并發(fā)執(zhí)行所帶來的影響不加控制的并發(fā)執(zhí)行所帶來的影響u例:為了了解某單行道的交通流量,在路口安放一個監(jiān)視器,例:為了了解某單行道的交通流量,在路口安放一個監(jiān)視器,功能是有車通過該路段時,就向計算機發(fā)送一個信號。程序功能是有車通過該路段時,就向計算機發(fā)送一個信號。程序A功能:
6、接收到監(jiān)視器信號時,就在計數(shù)單元功能:接收到監(jiān)視器信號時,就在計數(shù)單元COUNT上加上加1;程序程序B功能:每個半個小時,打印功能:每個半個小時,打印COUNT的值,然后清零。的值,然后清零。程序程序A:While(1)A1:收到監(jiān)視器信號;收到監(jiān)視器信號;A2:COUNT=COUNT+1;程序程序B:While(1)B1:延遲半小時;延遲半小時;B2:打印打印COUNT的值的值;B3:COUNT=0;A1A2B1B2A1A2B3第三章 進 程 管 理 83.1.1 進程的概念進程的概念 程序本身完全是個靜態(tài)的概念(程序是完成某程序本身完全是個靜態(tài)的概念(程序是完成某個功能的指令的集合),而系
7、統(tǒng)及其中的各個程序個功能的指令的集合),而系統(tǒng)及其中的各個程序?qū)嶋H上是處于不斷變化的狀態(tài),程序的概念反映不實際上是處于不斷變化的狀態(tài),程序的概念反映不了這種動態(tài)性;其次,程序概念也反映不了系統(tǒng)中了這種動態(tài)性;其次,程序概念也反映不了系統(tǒng)中的并行特性。的并行特性。 綜上所述,靜態(tài)的程序概念已不敷使用,需要綜上所述,靜態(tài)的程序概念已不敷使用,需要引用一個新的概念引用一個新的概念“進程進程”。第三章 進 程 管 理 9進程的概念進程的概念u進程是進程是程序程序處于一個執(zhí)行環(huán)境中在一個數(shù)據(jù)集處于一個執(zhí)行環(huán)境中在一個數(shù)據(jù)集上的上的運行過程運行過程,它是系統(tǒng)進行,它是系統(tǒng)進行資源分配和調(diào)度資源分配和調(diào)度的
8、一個的一個可并發(fā)執(zhí)行可并發(fā)執(zhí)行的獨立單位。的獨立單位。第三章 進 程 管 理 10進程的特征進程的特征u(1)動態(tài)性)動態(tài)性 進程的實質(zhì)是程序的一次執(zhí)行過程,因進程的實質(zhì)是程序的一次執(zhí)行過程,因此,動態(tài)性是進程的最基本特征。動態(tài)性還表現(xiàn)為:此,動態(tài)性是進程的最基本特征。動態(tài)性還表現(xiàn)為:“它由創(chuàng)建而產(chǎn)生,由它由創(chuàng)建而產(chǎn)生,由調(diào)度調(diào)度而執(zhí)行,由撤消而消而執(zhí)行,由撤消而消亡亡”??梢姡M程有一定的生命期,而程序只是一組??梢?,進程有一定的生命期,而程序只是一組有序指令的集合,并存放于某種介質(zhì)上,本身并無運有序指令的集合,并存放于某種介質(zhì)上,本身并無運動的含義,因此是靜態(tài)的。動的含義,因此是靜態(tài)的。u
9、(2)并發(fā)性)并發(fā)性 這是指多個進程能在一段時間內(nèi)同時運這是指多個進程能在一段時間內(nèi)同時運行,并發(fā)性是進程的重要特征。引入進程的目的也正行,并發(fā)性是進程的重要特征。引入進程的目的也正是為了使其程序能和其他進程的程序并發(fā)執(zhí)行,而程是為了使其程序能和其他進程的程序并發(fā)執(zhí)行,而程序(沒有建立進程)是不能并發(fā)執(zhí)行的(由于程序不序(沒有建立進程)是不能并發(fā)執(zhí)行的(由于程序不反映執(zhí)行過程)。反映執(zhí)行過程)。第三章 進 程 管 理 11進程的特征進程的特征u(3)獨立性)獨立性 這是指進程是一個能獨立運行、獨立分配資這是指進程是一個能獨立運行、獨立分配資源和獨立調(diào)度的基本單位,凡未建立進程的程序,都不能源和
10、獨立調(diào)度的基本單位,凡未建立進程的程序,都不能作為一個獨立的單位參加運行。只有進程有資格向系統(tǒng)提作為一個獨立的單位參加運行。只有進程有資格向系統(tǒng)提出申請資源并獲得系統(tǒng)提供的服務。出申請資源并獲得系統(tǒng)提供的服務。u(4)異步性)異步性 這是指進程按各自獨立的、不可預知的速度這是指進程按各自獨立的、不可預知的速度向前推進,或說進程按異步方式運行。向前推進,或說進程按異步方式運行。u(5)結構性)結構性 為使進程能獨立運行,應為之配置一個稱為為使進程能獨立運行,應為之配置一個稱為“進程控制塊進程控制塊”的數(shù)據(jù)結構,簡稱的數(shù)據(jù)結構,簡稱PCB。第三章 進 程 管 理 12進程和程序的聯(lián)系與區(qū)別:進程和
11、程序的聯(lián)系與區(qū)別:u(1)聯(lián)系。)聯(lián)系。 程序是構成進程的組成部分之一,一個進程的程序是構成進程的組成部分之一,一個進程的運行目標是執(zhí)行它所對應的程序,如果沒有程運行目標是執(zhí)行它所對應的程序,如果沒有程序,進程就失去了其實際存在的意義。序,進程就失去了其實際存在的意義。第三章 進 程 管 理 13進程和程序的聯(lián)系與區(qū)別:進程和程序的聯(lián)系與區(qū)別:u(2)區(qū)別。)區(qū)別。 進程是程序的一次動態(tài)執(zhí)行活動,而程序是進進程是程序的一次動態(tài)執(zhí)行活動,而程序是進程運行的靜態(tài)描述文本。程運行的靜態(tài)描述文本。 一個進程可以執(zhí)行一個或多個程序,反之,同一個進程可以執(zhí)行一個或多個程序,反之,同一程序也可被多個進程同時
12、執(zhí)行。一程序也可被多個進程同時執(zhí)行。 程序是一種軟件資源,它可以長期保存,而進程序是一種軟件資源,它可以長期保存,而進程是一次執(zhí)行過程,它是暫時存在的、動態(tài)地程是一次執(zhí)行過程,它是暫時存在的、動態(tài)地產(chǎn)生和中止的。產(chǎn)生和中止的。第三章 進 程 管 理 14特權指令、管態(tài)、目態(tài)特權指令、管態(tài)、目態(tài)特權指令:只能由操作系統(tǒng)使用的指令。特權指令:只能由操作系統(tǒng)使用的指令。非特權指令:大家(用戶和操作系統(tǒng))都能使用的指非特權指令:大家(用戶和操作系統(tǒng))都能使用的指令。令。用戶執(zhí)行狀態(tài),用戶執(zhí)行狀態(tài),又稱又稱用戶態(tài),目態(tài)(目標程序態(tài))用戶態(tài),目態(tài)(目標程序態(tài)),進程的用戶程序段執(zhí)行時,該程序處于用戶態(tài)。用
13、戶進程的用戶程序段執(zhí)行時,該程序處于用戶態(tài)。用戶態(tài)時不可直接訪問受保護的態(tài)時不可直接訪問受保護的OSOS代碼;代碼;系統(tǒng)執(zhí)行狀態(tài)系統(tǒng)執(zhí)行狀態(tài),又稱,又稱系統(tǒng)態(tài),核心態(tài),管態(tài)(管理程系統(tǒng)態(tài),核心態(tài),管態(tài)(管理程序態(tài)),序態(tài)),進程的系統(tǒng)程序執(zhí)行時,該進程處于系統(tǒng)態(tài)。進程的系統(tǒng)程序執(zhí)行時,該進程處于系統(tǒng)態(tài)。核心態(tài)時可以執(zhí)行核心態(tài)時可以執(zhí)行OSOS代碼,可以訪問全部進程空間。代碼,可以訪問全部進程空間。第三章 進 程 管 理 153.1.2 進程的組成進程的組成 u進程是在一個上下文的執(zhí)行環(huán)境中執(zhí)行的,這個進程是在一個上下文的執(zhí)行環(huán)境中執(zhí)行的,這個執(zhí)行環(huán)境稱為進程的映像,或稱圖像。執(zhí)行環(huán)境稱為進程的
14、映像,或稱圖像。u它包括處理機中各通用寄存器的值、進程的內(nèi)存它包括處理機中各通用寄存器的值、進程的內(nèi)存映像、打開文件的狀態(tài)和進程占用資源的信息等映像、打開文件的狀態(tài)和進程占用資源的信息等很多部分。很多部分。u進程映像的關鍵部分是存儲器映像。進程映像的關鍵部分是存儲器映像。u進程存儲器映像由以下幾部分組成:進程存儲器映像由以下幾部分組成:進程控制塊進程控制塊、進程執(zhí)行的程序進程執(zhí)行的程序(code)、)、進程執(zhí)行時所用的數(shù)進程執(zhí)行時所用的數(shù)據(jù)據(jù)、進程執(zhí)行時使用的工作區(qū)進程執(zhí)行時使用的工作區(qū)第三章 進 程 管 理 16進程的組成進程的組成第三章 進 程 管 理 171.進程控制塊進程控制塊u進程控
15、制塊進程控制塊PCB(ProcessControlBlock)是系統(tǒng))是系統(tǒng)用于用于查詢和控制進程運行查詢和控制進程運行的檔案,它描述進程的的檔案,它描述進程的特征,記載進程的歷史,決定進程的命運。特征,記載進程的歷史,決定進程的命運。u由于由于PCB較大,一些系統(tǒng)將其分割成兩部分:一較大,一些系統(tǒng)將其分割成兩部分:一部分是部分是進程基本控制塊進程基本控制塊,這部分記錄不管進程是,這部分記錄不管進程是否在執(zhí)行,操作系統(tǒng)都需要訪問的進程控制信息,否在執(zhí)行,操作系統(tǒng)都需要訪問的進程控制信息,因此,因此,進程基本控制塊要常駐內(nèi)存進程基本控制塊要常駐內(nèi)存;u另一部分是另一部分是進程擴充控制塊進程擴充控
16、制塊,當進程不處于執(zhí)行,當進程不處于執(zhí)行狀態(tài)時,操作系統(tǒng)就不會訪問這部分信息,擴充狀態(tài)時,操作系統(tǒng)就不會訪問這部分信息,擴充控制塊能對換到盤交換區(qū)中。控制塊能對換到盤交換區(qū)中。第三章 進 程 管 理 182.共享正文段共享正文段u用高級語言編寫的程序一般是可重入的用高級語言編寫的程序一般是可重入的“純代純代碼碼”,也即是它可以被多個進程并發(fā)地執(zhí)行的。,也即是它可以被多個進程并發(fā)地執(zhí)行的。u共享正文段不限于包括程序,還可包括不可修改共享正文段不限于包括程序,還可包括不可修改的常數(shù)。的常數(shù)。u用戶用用戶用C語言所編的程序經(jīng)編譯后產(chǎn)生的代碼也語言所編的程序經(jīng)編譯后產(chǎn)生的代碼也是作為共享正文段裝入內(nèi)存
17、的是作為共享正文段裝入內(nèi)存的第三章 進 程 管 理 193.數(shù)據(jù)區(qū)數(shù)據(jù)區(qū)u進程執(zhí)行時用到的數(shù)據(jù),如進程執(zhí)行時用到的數(shù)據(jù),如C程序中的外部變量程序中的外部變量和靜態(tài)變量;和靜態(tài)變量;u如進程執(zhí)行的程序為非共享程序(如用匯編語言如進程執(zhí)行的程序為非共享程序(如用匯編語言編寫,可以在執(zhí)行時修改執(zhí)行的代碼和其中夾帶編寫,可以在執(zhí)行時修改執(zhí)行的代碼和其中夾帶的數(shù)據(jù)),則也可構成數(shù)據(jù)區(qū)的一部分。的數(shù)據(jù)),則也可構成數(shù)據(jù)區(qū)的一部分。第三章 進 程 管 理 204. 工作區(qū)工作區(qū)u進程在核心態(tài)運行時的工作區(qū)為核心棧;進程在核心態(tài)運行時的工作區(qū)為核心棧;u在用戶態(tài)下運行時的工作區(qū)為用戶棧;在用戶態(tài)下運行時的工作
18、區(qū)為用戶棧;u在調(diào)用核心的函數(shù)或用戶函數(shù)時,兩種棧分別用在調(diào)用核心的函數(shù)或用戶函數(shù)時,兩種棧分別用于傳遞參數(shù)、存放返回地址、保護現(xiàn)場以及為局于傳遞參數(shù)、存放返回地址、保護現(xiàn)場以及為局部動態(tài)變量提供存儲空間。部動態(tài)變量提供存儲空間。u此外,核心棧還可用于保護中斷現(xiàn)場,用戶棧還此外,核心棧還可用于保護中斷現(xiàn)場,用戶棧還用于向主程序(用于向主程序(main函數(shù))傳遞命令行參數(shù)等。函數(shù))傳遞命令行參數(shù)等。第三章 進 程 管 理 213.1.3 進程的狀態(tài)及其變化進程的狀態(tài)及其變化 u進程具有生存期,它有一個創(chuàng)建、活動及消亡進程具有生存期,它有一個創(chuàng)建、活動及消亡的過程。的過程。u進程在其活動期間可以因
19、外部和內(nèi)部的原因進進程在其活動期間可以因外部和內(nèi)部的原因進入入“睡眠睡眠”階段。階段。“睡眠睡眠”的進程會被的進程會被“喚醒喚醒”而繼續(xù)先前的活動。為了完成一組特定的任務,而繼續(xù)先前的活動。為了完成一組特定的任務,進程也可采用進程也可采用“克隆克隆”技術,生成一個或多個技術,生成一個或多個子進程,互相配合地工作。子進程,互相配合地工作。u進程在其整個生存期間可處于不同的狀態(tài),有進程在其整個生存期間可處于不同的狀態(tài),有一些不同的特征一些不同的特征第三章 進 程 管 理 221) 就緒就緒(Ready)狀態(tài)狀態(tài):一個進程已經(jīng)具備運行條件,但由:一個進程已經(jīng)具備運行條件,但由于無于無CPU暫時不能運
20、行的狀態(tài)(當調(diào)度給其暫時不能運行的狀態(tài)(當調(diào)度給其CPU時,時,立即可以運行立即可以運行)?!叭f事俱備,只欠東風萬事俱備,只欠東風”。位于。位于“就就緒隊列緒隊列”中中 。2) 執(zhí)行狀態(tài)執(zhí)行狀態(tài)(Running):進程占有了包括:進程占有了包括CPU在內(nèi)的全部在內(nèi)的全部資源,并在資源,并在CPU上運行。上運行。 3) 阻塞狀態(tài)阻塞狀態(tài)(Blocked) :也稱等待態(tài)、睡眠態(tài)、封鎖態(tài)、掛:也稱等待態(tài)、睡眠態(tài)、封鎖態(tài)、掛起態(tài)等。指進程因等待某種事件的發(fā)生而暫時不能運起態(tài)等。指進程因等待某種事件的發(fā)生而暫時不能運行的狀態(tài)(即使行的狀態(tài)(即使CPU空閑,該進程也不可運行)。處空閑,該進程也不可運行)。
21、處于阻塞態(tài)的進程位于阻塞隊列中。于阻塞態(tài)的進程位于阻塞隊列中。第三章 進 程 管 理 23運行運行Running就緒就緒Ready阻塞阻塞BlockedDispatchDispatchTimeoutTimeoutEventEventWaitWaitEventEventOccursOccurs基本狀態(tài)間的轉(zhuǎn)換第三章 進 程 管 理 24 在實際的操作系統(tǒng)中,為了管理和調(diào)度的便利,還將進在實際的操作系統(tǒng)中,為了管理和調(diào)度的便利,還將進程的狀態(tài)進一步細分,例如,程的狀態(tài)進一步細分,例如,UNIX系統(tǒng)系統(tǒng)V定義了定義了10種進程的種進程的狀態(tài):狀態(tài):#define SSLEEP 1 睡眠狀態(tài)睡眠狀態(tài)#
22、define SWAIT 2 等待狀態(tài),該狀態(tài)已被廢棄等待狀態(tài),該狀態(tài)已被廢棄#define SRUN 3 執(zhí)行狀態(tài)或就緒狀態(tài)執(zhí)行狀態(tài)或就緒狀態(tài)#define SIDL 4 創(chuàng)建子進程狀態(tài)創(chuàng)建子進程狀態(tài)#define SZOMB 5 等待善后處理狀態(tài)等待善后處理狀態(tài)#define SSTOP 6 進程處于被跟蹤的暫停狀態(tài)進程處于被跟蹤的暫停狀態(tài)#define SXBRK 7 因數(shù)據(jù)段擴展時未滿足的換出狀態(tài)因數(shù)據(jù)段擴展時未滿足的換出狀態(tài)#define SXSTK 8 因棧段擴展時未滿足的換出狀態(tài)因棧段擴展時未滿足的換出狀態(tài)#define SXFRK 9 創(chuàng)建子進程時內(nèi)存不夠,父進程鎖定在內(nèi)創(chuàng)建子
23、進程時內(nèi)存不夠,父進程鎖定在內(nèi)存的狀態(tài)存的狀態(tài)#define SXTXT 10 因正文段擴展未滿足而被換出的狀態(tài)因正文段擴展未滿足而被換出的狀態(tài)第三章 進 程 管 理 253.2 3.2 進程控制塊進程控制塊 u為了掌握進程的運行狀況和便于管理和控制進為了掌握進程的運行狀況和便于管理和控制進程的運行,操作系統(tǒng)為每一個進程設置了一個程的運行,操作系統(tǒng)為每一個進程設置了一個數(shù)據(jù)結構數(shù)據(jù)結構進程控制塊(進程控制塊(PCB)。u進程控制塊進程控制塊是進程的控制結構,包含了進程的是進程的控制結構,包含了進程的描述信息描述信息、控制信息控制信息和和資源信息資源信息以及以及現(xiàn)場保護現(xiàn)場保護區(qū)區(qū)。第三章 進
24、程 管 理 261. 進程控制塊的作用進程控制塊的作用 進程控制塊是由進程控制塊是由OS維護維護的用來記錄的用來記錄進程相關信息和管理進進程相關信息和管理進程程設置的一個專門的數(shù)據(jù)結構。設置的一個專門的數(shù)據(jù)結構。進程控制塊的作用是使一個在多道程序環(huán)境下不能獨立運行進程控制塊的作用是使一個在多道程序環(huán)境下不能獨立運行的程序的程序(含數(shù)據(jù)含數(shù)據(jù)),成為一個能獨立運行的基本單位,一個能與,成為一個能獨立運行的基本單位,一個能與其它進程并發(fā)執(zhí)行的進程。或者說,其它進程并發(fā)執(zhí)行的進程。或者說,OS是根據(jù)是根據(jù)PCB來對并發(fā)來對并發(fā)執(zhí)行的進程進行控制和管理的。執(zhí)行的進程進行控制和管理的。PCB是進程動態(tài)特
25、性的集中反映。系統(tǒng)通過是進程動態(tài)特性的集中反映。系統(tǒng)通過PCB感知進程的感知進程的存在,通過存在,通過PCB中所包含的各項變量的變化,掌握進程的狀中所包含的各項變量的變化,掌握進程的狀態(tài)以達到控制進程活動的目的;態(tài)以達到控制進程活動的目的;第三章 進 程 管 理 27PCBPCB隨進程的創(chuàng)建而填寫,隨進程的撤消而釋放;隨進程的創(chuàng)建而填寫,隨進程的撤消而釋放;系統(tǒng)利用系統(tǒng)利用PCBPCB來控制和管理進程,所以來控制和管理進程,所以PCBPCB是系統(tǒng)感知是系統(tǒng)感知進程存在的唯一標志進程存在的唯一標志進程與進程與PCBPCB是一一對應的是一一對應的PCBPCB結構常駐內(nèi)存;系統(tǒng)將所有結構常駐內(nèi)存;系
26、統(tǒng)將所有PCBPCB組織成若干個隊列,組織成若干個隊列,存放在操作系統(tǒng)中專門開辟的存放在操作系統(tǒng)中專門開辟的PCBPCB區(qū)內(nèi)。區(qū)內(nèi)。第三章 進 程 管 理 282. 進程控制塊中的信息進程控制塊中的信息 1) 進程標識符進程標識符 進程標識符用于惟一地標識一個進程。一個進程通常有進程標識符用于惟一地標識一個進程。一個進程通常有兩種標識符:兩種標識符: (1) 內(nèi)部標識符內(nèi)部標識符。在所有的操作系統(tǒng)中,都為每一個進。在所有的操作系統(tǒng)中,都為每一個進 程賦予一個惟一的數(shù)字標識符,它通常是一個進程的序號。程賦予一個惟一的數(shù)字標識符,它通常是一個進程的序號。 設置內(nèi)部標識符主要是為了方便系統(tǒng)使用。設置
27、內(nèi)部標識符主要是為了方便系統(tǒng)使用。 (2) 外部標識符。外部標識符。它由創(chuàng)建者提供,通常是由字母、數(shù)字它由創(chuàng)建者提供,通常是由字母、數(shù)字組成,往往是由用戶組成,往往是由用戶(進程進程)在訪問該進程時使用。為了描述在訪問該進程時使用。為了描述進程的家族關系,進程的家族關系, 還應設置父進程標識及子進程標識。此還應設置父進程標識及子進程標識。此外,還可設置用戶標識,以指示擁有該進程的用戶。外,還可設置用戶標識,以指示擁有該進程的用戶。 第三章 進 程 管 理 29 2) 處理機狀態(tài)處理機狀態(tài) 處理機狀態(tài)信息主要是由處理機的各種寄存器中的內(nèi)容處理機狀態(tài)信息主要是由處理機的各種寄存器中的內(nèi)容組成的。組
28、成的。 通用寄存器通用寄存器,又稱為用戶可視寄存器,它們是用戶程序可,又稱為用戶可視寄存器,它們是用戶程序可以訪問的,用于暫存信息,以訪問的,用于暫存信息, 在大多數(shù)處理機中,有在大多數(shù)處理機中,有 832 個通個通用寄存器,在用寄存器,在RISC結構的計算機中可超過結構的計算機中可超過 100 個;個; 指令計數(shù)器指令計數(shù)器,其中存放了要訪問的下一條指令的地址;,其中存放了要訪問的下一條指令的地址; 程序狀態(tài)字程序狀態(tài)字PSW,其中含有狀態(tài)信息,如條件碼、執(zhí)行方,其中含有狀態(tài)信息,如條件碼、執(zhí)行方式、式、 中斷屏蔽標志等;中斷屏蔽標志等; 用戶棧指針用戶棧指針, 指每個用戶進程都有一個或若干
29、個與之相關指每個用戶進程都有一個或若干個與之相關的系的系統(tǒng)棧,用于存放過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址。棧指統(tǒng)棧,用于存放過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址。棧指針指向該棧的棧頂。針指向該棧的棧頂。 第三章 進 程 管 理 30 3) 進程調(diào)度信息進程調(diào)度信息 在在PCB中還存放一些與進程調(diào)度和進程對換有關的信中還存放一些與進程調(diào)度和進程對換有關的信息,包括:息,包括: 進程狀態(tài)進程狀態(tài),指明進程的當前狀態(tài),指明進程的當前狀態(tài), 作為進程調(diào)度和對作為進程調(diào)度和對換時的依據(jù);換時的依據(jù); 進程優(yōu)先級進程優(yōu)先級,用于描述進程使用處理機的優(yōu)先級別的一,用于描述進程使用處理機的優(yōu)先級別的一個整數(shù),個整數(shù), 優(yōu)先
30、級高的進程應優(yōu)先獲得處理機;優(yōu)先級高的進程應優(yōu)先獲得處理機; 進程調(diào)度所需的其它信息進程調(diào)度所需的其它信息,它們與所采用的進程調(diào)度算,它們與所采用的進程調(diào)度算法有關,比如,進程已等待法有關,比如,進程已等待CPU的時間總和、的時間總和、 進程已執(zhí)進程已執(zhí)行的時間總和等;行的時間總和等; 事件事件,是指進程由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)樽枞麪顟B(tài)所等待發(fā)生,是指進程由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)樽枞麪顟B(tài)所等待發(fā)生的事件,即的事件,即阻塞原因。阻塞原因。 第三章 進 程 管 理 314) 進程控制信息進程控制信息 程序和數(shù)據(jù)的地址程序和數(shù)據(jù)的地址, 是指進程的程序和數(shù)據(jù)所在的內(nèi)是指進程的程序和數(shù)據(jù)所在的內(nèi)存或外存地存或外存地(
31、首首)址,以便再調(diào)度到該進程執(zhí)行時,能從址,以便再調(diào)度到該進程執(zhí)行時,能從PCB中找到其程序和數(shù)據(jù);中找到其程序和數(shù)據(jù); 進程同步和通信機制進程同步和通信機制,指實現(xiàn)進程同步和進程通信時必,指實現(xiàn)進程同步和進程通信時必需的機制,需的機制, 如消息隊列指針、信號量等,它們可能全部或如消息隊列指針、信號量等,它們可能全部或部分地放在部分地放在PCB中;中; 資源清單資源清單,是一張列出了除,是一張列出了除CPU以外的、進程所需的以外的、進程所需的全部資源及已經(jīng)分配到該進程的資源的清單;全部資源及已經(jīng)分配到該進程的資源的清單; 鏈接指針鏈接指針, 它給出了本進程它給出了本進程(PCB)所在隊列中所在
32、隊列中的下一個的下一個進程的進程的PCB的首地址。的首地址。 第三章 進 程 管 理 32PCB的存放的存放u有些系統(tǒng)將進程控制塊分成兩個部分:有些系統(tǒng)將進程控制塊分成兩個部分: 一部分是進程無論處于什么狀態(tài),系統(tǒng)都可能要查一部分是進程無論處于什么狀態(tài),系統(tǒng)都可能要查詢和處理的詢和處理的 PCB 成員,這部分就要常駐內(nèi)存;成員,這部分就要常駐內(nèi)存; 另一部分是進程不在執(zhí)行時系統(tǒng)就不需要訪問的另一部分是進程不在執(zhí)行時系統(tǒng)就不需要訪問的 PCB成員,在內(nèi)存緊張時可以將它們換到盤交換區(qū),成員,在內(nèi)存緊張時可以將它們換到盤交換區(qū),以為其他進程騰出寶貴的內(nèi)存空間。以為其他進程騰出寶貴的內(nèi)存空間。u在在U
33、NIX中,常駐內(nèi)存的進程中,常駐內(nèi)存的進程PCB部分是部分是proc結構;結構;u在在UNIX中,非常駐內(nèi)存的中,非常駐內(nèi)存的 PCB 部分是進程擴充控制部分是進程擴充控制塊塊 user 結構;結構;第三章 進 程 管 理 333. 進程控制塊的組織方式進程控制塊的組織方式 u早期的早期的UNIX系統(tǒng)將進程的系統(tǒng)將進程的proc結構組成一個順序存放的結構組成一個順序存放的線性表線性表,系統(tǒng)中可以存在的最大進程數(shù)受表的大小的限制,系統(tǒng)中可以存在的最大進程數(shù)受表的大小的限制(如(如50個)。當要對處于某種狀態(tài)的進程控制或調(diào)度時,個)。當要對處于某種狀態(tài)的進程控制或調(diào)度時,就要掃描整個就要掃描整個p
34、roc表,這大大地降低了系統(tǒng)的效率。表,這大大地降低了系統(tǒng)的效率。u系統(tǒng)系統(tǒng) V 用用鏈式方式鏈式方式組織組織 PCB 隊列,不同狀態(tài)的進程鏈接隊列,不同狀態(tài)的進程鏈接成就緒隊列、阻塞隊列等不同的隊列。為了便于系統(tǒng)的調(diào)成就緒隊列、阻塞隊列等不同的隊列。為了便于系統(tǒng)的調(diào)度和控制,對于就緒狀態(tài)進程,還可以將其分成優(yōu)先級不度和控制,對于就緒狀態(tài)進程,還可以將其分成優(yōu)先級不同的幾個就緒隊列。對于阻塞進程,可根據(jù)原因不同,組同的幾個就緒隊列。對于阻塞進程,可根據(jù)原因不同,組成若干個隊列。成若干個隊列。第三章 進 程 管 理 34第三章 進 程 管 理 353.3 3.3 調(diào)度調(diào)度 3.3.1 調(diào)度概述調(diào)
35、度概述1. 高級調(diào)度高級調(diào)度(High Scheduling) 又稱為作業(yè)調(diào)度或長程調(diào)度,用于決定把外存上處于又稱為作業(yè)調(diào)度或長程調(diào)度,用于決定把外存上處于后備隊列中的哪些作業(yè)調(diào)入內(nèi)存,并為它們創(chuàng)建進程、分后備隊列中的哪些作業(yè)調(diào)入內(nèi)存,并為它們創(chuàng)建進程、分配必要的資源,然后,再將新創(chuàng)建的進程排在就緒隊列上,配必要的資源,然后,再將新創(chuàng)建的進程排在就緒隊列上,準備執(zhí)行。因此有時也把作業(yè)調(diào)度稱為接納調(diào)度。在每次準備執(zhí)行。因此有時也把作業(yè)調(diào)度稱為接納調(diào)度。在每次執(zhí)行作業(yè)調(diào)度時,都須做出以下兩個決定。執(zhí)行作業(yè)調(diào)度時,都須做出以下兩個決定。 1) 接納多少個作業(yè)接納多少個作業(yè) ,取決于多道程序度。,取決
36、于多道程序度。 2) 接納哪些作業(yè)接納哪些作業(yè) ,取決于調(diào)度算法,取決于調(diào)度算法第三章 進 程 管 理 362. 中級調(diào)度中級調(diào)度(Intermediate-Level Scheduling) u又稱中程調(diào)度,它決定處于交換區(qū)中的就緒進程中哪一又稱中程調(diào)度,它決定處于交換區(qū)中的就緒進程中哪一個可以調(diào)入內(nèi)存,以便直接參與對個可以調(diào)入內(nèi)存,以便直接參與對CPU的競爭。的競爭。u在內(nèi)存資源緊張時,為了將進程調(diào)入內(nèi)存,必須將內(nèi)存在內(nèi)存資源緊張時,為了將進程調(diào)入內(nèi)存,必須將內(nèi)存中處于阻塞狀態(tài)的進程調(diào)至交換區(qū),以便為調(diào)入進程騰出中處于阻塞狀態(tài)的進程調(diào)至交換區(qū),以便為調(diào)入進程騰出空間??臻g。u這相當于使處于
37、內(nèi)存中的進程和處于盤交換區(qū)中的進程這相當于使處于內(nèi)存中的進程和處于盤交換區(qū)中的進程交換了位置,故中級調(diào)度又稱為交換了位置,故中級調(diào)度又稱為“對換調(diào)度對換調(diào)度”。u中級調(diào)度是為了緩解內(nèi)存資源的緊張狀態(tài),在多道程序中級調(diào)度是為了緩解內(nèi)存資源的緊張狀態(tài),在多道程序范疇內(nèi)實現(xiàn)進程動態(tài)覆蓋和進程級的虛擬存儲器技術。范疇內(nèi)實現(xiàn)進程動態(tài)覆蓋和進程級的虛擬存儲器技術。u一個進程在其運行期間可能需要經(jīng)過多次中級調(diào)度。一個進程在其運行期間可能需要經(jīng)過多次中級調(diào)度。第三章 進 程 管 理 373. 低級調(diào)度低級調(diào)度(Low Level Scheduling) (進程調(diào)度或短程調(diào)度)(進程調(diào)度或短程調(diào)度) 它決定駐在
38、內(nèi)存中的哪一個就緒進程可以占用它決定駐在內(nèi)存中的哪一個就緒進程可以占用CPU,使,使其獲得實實在在的執(zhí)行權力,故低級調(diào)度又可稱其獲得實實在在的執(zhí)行權力,故低級調(diào)度又可稱處理機調(diào)度處理機調(diào)度或分派調(diào)度。低級調(diào)度執(zhí)行頻度很高,調(diào)度算法也比較復雜,或分派調(diào)度。低級調(diào)度執(zhí)行頻度很高,調(diào)度算法也比較復雜,是操作系統(tǒng)中最活躍、最重要的調(diào)度程序,對系統(tǒng)的性能影是操作系統(tǒng)中最活躍、最重要的調(diào)度程序,對系統(tǒng)的性能影響也最大。響也最大。第三章 進 程 管 理 38第三章 進 程 管 理 393.3.2 進程調(diào)度策略進程調(diào)度策略u進程調(diào)度策略是指進程調(diào)度策略是指在什么情況下用什么方式在什么情況下用什么方式,在內(nèi),在
39、內(nèi)存中的就緒進程之間進行切換和分配處理機。存中的就緒進程之間進行切換和分配處理機。u進程切換的方式進程切換的方式有兩種:有兩種:u一種是一種是不可剝奪(或不可搶占)方式不可剝奪(或不可搶占)方式,即一個進程,即一個進程在獲得處理機后,除非因運行結束或進入了阻塞狀在獲得處理機后,除非因運行結束或進入了阻塞狀態(tài)等原因自己放棄處理機,否則就可以一直運行下態(tài)等原因自己放棄處理機,否則就可以一直運行下去,不會被其他進程搶占處理機;去,不會被其他進程搶占處理機;u另一種是另一種是可剝奪方式可剝奪方式,即在某些條件下系統(tǒng)可以強,即在某些條件下系統(tǒng)可以強制剝奪正在運行中進程使用處理機的權利,將其分制剝奪正在運
40、行中進程使用處理機的權利,將其分配給系統(tǒng)中另一個合適的就緒進程配給系統(tǒng)中另一個合適的就緒進程第三章 進 程 管 理 40 在設計一個調(diào)度算法時,應考慮以下的因素。在設計一個調(diào)度算法時,應考慮以下的因素。u 針對不同的系統(tǒng)針對不同的系統(tǒng)應當考慮不同的設計目標。如應當考慮不同的設計目標。如對于批處理系統(tǒng)應當以提高計算機系統(tǒng)的運行效對于批處理系統(tǒng)應當以提高計算機系統(tǒng)的運行效率、取得最大的作業(yè)吞吐量和減少作業(yè)平均周轉(zhuǎn)率、取得最大的作業(yè)吞吐量和減少作業(yè)平均周轉(zhuǎn)時間為主要目標;對于交互式分時系統(tǒng),應當以時間為主要目標;對于交互式分時系統(tǒng),應當以能及時響應用戶的請求為主要目標;對于實時系能及時響應用戶的請求
41、為主要目標;對于實時系統(tǒng),應當能對緊急事件做出及時處理和安全可靠統(tǒng),應當能對緊急事件做出及時處理和安全可靠為頭等重要的考慮因素。為頭等重要的考慮因素。u 調(diào)度算法應能調(diào)度算法應能充分使用系統(tǒng)中各種類型的資源充分使用系統(tǒng)中各種類型的資源,使多個設備能并行地工作使多個設備能并行地工作第三章 進 程 管 理 41u 應當既能在某一原則下應當既能在某一原則下公平公平地對待系統(tǒng)中的地對待系統(tǒng)中的各個進程,使它們能均衡地使用處理機,也能各個進程,使它們能均衡地使用處理機,也能考慮不同類型進程具有不同的優(yōu)先權利,在一考慮不同類型進程具有不同的優(yōu)先權利,在一定程度下滿足用戶對優(yōu)先級的要求,但也不能定程度下滿足
42、用戶對優(yōu)先級的要求,但也不能造成某些低優(yōu)先權的進程可能無限期地推遲任造成某些低優(yōu)先權的進程可能無限期地推遲任務完成的時間。務完成的時間。u 合理的合理的系統(tǒng)開銷系統(tǒng)開銷第三章 進 程 管 理 423.3.3 3.3.3 進程調(diào)度算法進程調(diào)度算法 在在OS中調(diào)度的實質(zhì)是一種資源分配,因而調(diào)度算法是中調(diào)度的實質(zhì)是一種資源分配,因而調(diào)度算法是指:根據(jù)系統(tǒng)的資源分配策略所規(guī)定的資源分配算法。指:根據(jù)系統(tǒng)的資源分配策略所規(guī)定的資源分配算法。 對于不同的系統(tǒng)和系統(tǒng)目標,通常采用不同的調(diào)度算對于不同的系統(tǒng)和系統(tǒng)目標,通常采用不同的調(diào)度算法。法。 目前存在的多種調(diào)度算法中,有的算法適用于作業(yè)調(diào)目前存在的多種調(diào)
43、度算法中,有的算法適用于作業(yè)調(diào)度,有的算法適用于進程調(diào)度;但也有些調(diào)度算法既可用度,有的算法適用于進程調(diào)度;但也有些調(diào)度算法既可用于作業(yè)調(diào)度,也可用于進程調(diào)度。于作業(yè)調(diào)度,也可用于進程調(diào)度。第三章 進 程 管 理 431. 先來先服務調(diào)度算法先來先服務調(diào)度算法 ( FCFS-First Come First Serve ) 按照作業(yè)進入系統(tǒng)的按照作業(yè)進入系統(tǒng)的先后次序先后次序進行調(diào)度,先進入進行調(diào)度,先進入系統(tǒng)者先調(diào)度;即啟動等待時間最長的作業(yè)。系統(tǒng)者先調(diào)度;即啟動等待時間最長的作業(yè)。l優(yōu)點:實現(xiàn)優(yōu)點:實現(xiàn)簡單簡單、公平公平l缺點:沒考慮資源利用率和作業(yè)的特殊性,對短缺點:沒考慮資源利用率和作
44、業(yè)的特殊性,對短作業(yè)不公平。作業(yè)不公平。第三章 進 程 管 理 44先來先服務調(diào)度算法先來先服務調(diào)度算法帶權周轉(zhuǎn)時間周轉(zhuǎn)時間帶權周轉(zhuǎn)時間周轉(zhuǎn)時間/請求服務時間請求服務時間第三章 進 程 管 理 45短作業(yè)短作業(yè)(進程進程)優(yōu)先調(diào)度算法優(yōu)先調(diào)度算法 短作業(yè)短作業(yè)(進程進程)優(yōu)先調(diào)度算法優(yōu)先調(diào)度算法SJ(P)F,是指對短作業(yè),是指對短作業(yè)或短進程優(yōu)先調(diào)度的算法。它們可以分別用于作業(yè)調(diào)度或短進程優(yōu)先調(diào)度的算法。它們可以分別用于作業(yè)調(diào)度和進程調(diào)度。短作業(yè)優(yōu)先和進程調(diào)度。短作業(yè)優(yōu)先(SJF)的調(diào)度算法,是從后備隊的調(diào)度算法,是從后備隊列中選擇一個或若干個估計運行時間最短的作業(yè),將它列中選擇一個或若干個估
45、計運行時間最短的作業(yè),將它們調(diào)入內(nèi)存運行。而短進程優(yōu)先們調(diào)入內(nèi)存運行。而短進程優(yōu)先(SPF)調(diào)度算法,則是從調(diào)度算法,則是從就緒隊列中選出一估計運行時間最短的進程,將處理機就緒隊列中選出一估計運行時間最短的進程,將處理機分配給它,使它立即執(zhí)行并一直執(zhí)行到完成,或發(fā)生某分配給它,使它立即執(zhí)行并一直執(zhí)行到完成,或發(fā)生某事件而被阻塞放棄處理機時,再重新調(diào)度。事件而被阻塞放棄處理機時,再重新調(diào)度。第三章 進 程 管 理 46第三章 進 程 管 理 47 SJ(P)F調(diào)度算法也存在不容忽視的調(diào)度算法也存在不容忽視的缺點缺點: (1) 該算法對長作業(yè)不利該算法對長作業(yè)不利,如作業(yè),如作業(yè)C的周轉(zhuǎn)時間由的周
46、轉(zhuǎn)時間由10增至增至16,其帶權周轉(zhuǎn)時間由,其帶權周轉(zhuǎn)時間由2增至增至3.1。更嚴重的是,如果。更嚴重的是,如果有一長作業(yè)有一長作業(yè)(進程進程)進入系統(tǒng)的后備隊列進入系統(tǒng)的后備隊列(就緒隊列就緒隊列),由于調(diào),由于調(diào)度程序總是優(yōu)先調(diào)度那些度程序總是優(yōu)先調(diào)度那些(即使是后進來的即使是后進來的)短作業(yè)短作業(yè)(進程進程),將導致長作業(yè)將導致長作業(yè)(進程進程)長期不被調(diào)度。長期不被調(diào)度。 (2) 該算法完全未考慮作業(yè)的緊迫程度該算法完全未考慮作業(yè)的緊迫程度,因而不能保,因而不能保證緊迫性作業(yè)證緊迫性作業(yè)(進程進程)會被及時處理。會被及時處理。 (3) 由于由于作業(yè)作業(yè)(進程進程)的長短只是根據(jù)用戶所提
47、供的估計的長短只是根據(jù)用戶所提供的估計執(zhí)行時間而定執(zhí)行時間而定的,而用戶又可能會有意或無意地縮短其作的,而用戶又可能會有意或無意地縮短其作業(yè)的估計運行時間,致使該算法不一定能真正做到短作業(yè)業(yè)的估計運行時間,致使該算法不一定能真正做到短作業(yè)優(yōu)先調(diào)度優(yōu)先調(diào)度。 第三章 進 程 管 理 48 2. 時間片輪轉(zhuǎn)法時間片輪轉(zhuǎn)法 在早期的時間片輪轉(zhuǎn)法中,系統(tǒng)將所有的就緒進程按先在早期的時間片輪轉(zhuǎn)法中,系統(tǒng)將所有的就緒進程按先來先服務的原則,排成一個隊列,每次調(diào)度時,把來先服務的原則,排成一個隊列,每次調(diào)度時,把CPU分分配給隊首進程,并令其執(zhí)行一個時間片。時間片的大小從幾配給隊首進程,并令其執(zhí)行一個時間片
48、。時間片的大小從幾ms到幾百到幾百ms。當執(zhí)行的時間片用完時,由一個計時器發(fā)出。當執(zhí)行的時間片用完時,由一個計時器發(fā)出時鐘中斷請求,調(diào)度程序便據(jù)此信號來停止該進程的執(zhí)行,時鐘中斷請求,調(diào)度程序便據(jù)此信號來停止該進程的執(zhí)行,并將它送往就緒隊列的末尾;然后,再把處理機分配給就緒并將它送往就緒隊列的末尾;然后,再把處理機分配給就緒隊列中新的隊首進程,同時也讓它執(zhí)行一個時間片。這樣就隊列中新的隊首進程,同時也讓它執(zhí)行一個時間片。這樣就可以保證就緒隊列中的所有進程,在一給定的時間內(nèi),均能可以保證就緒隊列中的所有進程,在一給定的時間內(nèi),均能獲得一時間片的處理機執(zhí)行時間。獲得一時間片的處理機執(zhí)行時間。第三章
49、 進 程 管 理 49u時間片輪轉(zhuǎn)法比較適合于時間片輪轉(zhuǎn)法比較適合于交互式的分時系統(tǒng)交互式的分時系統(tǒng),對,對于用戶輸入的每一條命令,系統(tǒng)能保證在一個不于用戶輸入的每一條命令,系統(tǒng)能保證在一個不太長的時間內(nèi)對此做出響應。太長的時間內(nèi)對此做出響應。u時間片輪轉(zhuǎn)法是時間片輪轉(zhuǎn)法是剝奪式調(diào)度算法剝奪式調(diào)度算法,因此系統(tǒng)需要,因此系統(tǒng)需要花費額外開銷用于各個就緒進程間的切換?;ㄙM額外開銷用于各個就緒進程間的切換。u系統(tǒng)的效率與時間片大小的設置有關系統(tǒng)的效率與時間片大小的設置有關。如時間片。如時間片設置過大,系統(tǒng)與用戶間的交互性就差,會招致設置過大,系統(tǒng)與用戶間的交互性就差,會招致用戶的埋怨;如時間片設置
50、太小,進程間切換過用戶的埋怨;如時間片設置太小,進程間切換過分頻繁,系統(tǒng)開銷就增大。分頻繁,系統(tǒng)開銷就增大。第三章 進 程 管 理 50u為了適應不同進程的運行特點,在系統(tǒng)中可設置為了適應不同進程的運行特點,在系統(tǒng)中可設置時間片大小不同的時間片大小不同的n個隊列,如時間片長度可分為個隊列,如時間片長度可分為10ms、50ms和和200ms等。等。u調(diào)度程序可將運行時間短、交互性強或調(diào)度程序可將運行時間短、交互性強或I/O繁忙的繁忙的進程安排在時間片小的隊列,這樣可以提高系統(tǒng)進程安排在時間片小的隊列,這樣可以提高系統(tǒng)的響應速度和減少周轉(zhuǎn)時間的響應速度和減少周轉(zhuǎn)時間u而對于需要連續(xù)占用處理機的進程
51、可安排在時間而對于需要連續(xù)占用處理機的進程可安排在時間片長的隊列中,這樣可減少進程切換的開銷。片長的隊列中,這樣可減少進程切換的開銷。u一個進程處于哪一個時間片的隊列,可以在運行一個進程處于哪一個時間片的隊列,可以在運行時根據(jù)它的先前運行狀況加以調(diào)整。時根據(jù)它的先前運行狀況加以調(diào)整。第三章 進 程 管 理 513. 優(yōu)先級調(diào)度算法優(yōu)先級調(diào)度算法 為了照顧緊迫型作業(yè),使之在進入系統(tǒng)后便獲為了照顧緊迫型作業(yè),使之在進入系統(tǒng)后便獲得優(yōu)先處理,引入了最高優(yōu)先權(得優(yōu)先處理,引入了最高優(yōu)先權(FPF)調(diào)度算法。)調(diào)度算法。 當把該算法用于作業(yè)調(diào)度時,系統(tǒng)將從后備隊當把該算法用于作業(yè)調(diào)度時,系統(tǒng)將從后備隊
52、列中選擇若干個優(yōu)先權最高的作業(yè),裝入內(nèi)存。當列中選擇若干個優(yōu)先權最高的作業(yè),裝入內(nèi)存。當用于進程調(diào)度時,該算法是把處理機分配給就緒隊用于進程調(diào)度時,該算法是把處理機分配給就緒隊列中優(yōu)先權最高的進程。列中優(yōu)先權最高的進程。 第三章 進 程 管 理 52 對于優(yōu)先權調(diào)度算法,其關鍵在于:它是使用對于優(yōu)先權調(diào)度算法,其關鍵在于:它是使用靜態(tài)優(yōu)先靜態(tài)優(yōu)先權權、還是、還是動態(tài)優(yōu)先權動態(tài)優(yōu)先權,以及,以及如何確定進程的優(yōu)先權如何確定進程的優(yōu)先權。 1) 靜態(tài)優(yōu)先權靜態(tài)優(yōu)先權 靜態(tài)優(yōu)先權是在創(chuàng)建進程時確定的,且在進程的整個運靜態(tài)優(yōu)先權是在創(chuàng)建進程時確定的,且在進程的整個運行期間保持不變。一般地,優(yōu)先權是利用
53、某一范圍內(nèi)的一個行期間保持不變。一般地,優(yōu)先權是利用某一范圍內(nèi)的一個整數(shù)來表示的,例如,整數(shù)來表示的,例如,07或或0255中的某一整數(shù),中的某一整數(shù), 又把該又把該整數(shù)稱為優(yōu)先數(shù)。只是具體用法各異:有的系統(tǒng)用整數(shù)稱為優(yōu)先數(shù)。只是具體用法各異:有的系統(tǒng)用“0”表示表示最高優(yōu)先權,當數(shù)值愈大時,最高優(yōu)先權,當數(shù)值愈大時,其優(yōu)先權愈低;而有的系統(tǒng)恰其優(yōu)先權愈低;而有的系統(tǒng)恰恰相反。恰相反。 第三章 進 程 管 理 53確定進程優(yōu)先權的依據(jù)有如下幾個方面:確定進程優(yōu)先權的依據(jù)有如下幾個方面: 系統(tǒng)進程執(zhí)行和完成的是系統(tǒng)功能,應當賦予它們比用系統(tǒng)進程執(zhí)行和完成的是系統(tǒng)功能,應當賦予它們比用戶進程高的優(yōu)
54、先級。戶進程高的優(yōu)先級。 短作業(yè)的進程可以賦予較高的優(yōu)先級,這樣可減少作業(yè)短作業(yè)的進程可以賦予較高的優(yōu)先級,這樣可減少作業(yè)的平均等待時間,提高系統(tǒng)的吞吐量。的平均等待時間,提高系統(tǒng)的吞吐量。 I/O繁忙的進程只要求較短的處理機時間,讓該類進程繁忙的進程只要求較短的處理機時間,讓該類進程優(yōu)先獲得優(yōu)先獲得CPU。 根據(jù)用戶作業(yè)的申請,系統(tǒng)可以分配一些進程較高的優(yōu)根據(jù)用戶作業(yè)的申請,系統(tǒng)可以分配一些進程較高的優(yōu)先級,一般這意味著要提高收費標準。先級,一般這意味著要提高收費標準。 靜態(tài)優(yōu)先權法也很適合于實時系統(tǒng),因為在實時系統(tǒng)靜態(tài)優(yōu)先權法也很適合于實時系統(tǒng),因為在實時系統(tǒng)中計算機所處理的所有事件是預知
55、的,故其優(yōu)先級可根中計算機所處理的所有事件是預知的,故其優(yōu)先級可根據(jù)事件的緊迫程度事先設定據(jù)事件的緊迫程度事先設定第三章 進 程 管 理 54 2) 動態(tài)優(yōu)先權動態(tài)優(yōu)先權 動態(tài)優(yōu)先權是指,在創(chuàng)建進程時所賦予的優(yōu)先權,是可動態(tài)優(yōu)先權是指,在創(chuàng)建進程時所賦予的優(yōu)先權,是可以隨進程的推進或隨其等待時間的增加而改變的以隨進程的推進或隨其等待時間的增加而改變的,以便獲得,以便獲得更好的調(diào)度性能。更好的調(diào)度性能。 例如,我們可以規(guī)定,在就緒隊列中的進程,隨其等待時例如,我們可以規(guī)定,在就緒隊列中的進程,隨其等待時間的增長,其優(yōu)先權以速率間的增長,其優(yōu)先權以速率a提高。提高。 當采用搶占式優(yōu)先權調(diào)度算法時,
56、如果再規(guī)定當前進程當采用搶占式優(yōu)先權調(diào)度算法時,如果再規(guī)定當前進程的優(yōu)先權以速率的優(yōu)先權以速率b下降,則可下降,則可防止一個長作業(yè)長期地壟斷處理防止一個長作業(yè)長期地壟斷處理機。機。 第三章 進 程 管 理 554. 多級反饋隊列調(diào)度算法多級反饋隊列調(diào)度算法 多級反饋隊列算法是時間片輪轉(zhuǎn)算法和優(yōu)先級算法的多級反饋隊列算法是時間片輪轉(zhuǎn)算法和優(yōu)先級算法的綜合和發(fā)展。優(yōu)點:綜合和發(fā)展。優(yōu)點:為提高系統(tǒng)吞吐量和縮短平均周轉(zhuǎn)時間而照顧短進為提高系統(tǒng)吞吐量和縮短平均周轉(zhuǎn)時間而照顧短進程程為獲得較好的為獲得較好的I/O設備利用率和縮短響應時間而照設備利用率和縮短響應時間而照顧顧I/O型進程型進程不必估計進程的
57、執(zhí)行時間,動態(tài)調(diào)節(jié)不必估計進程的執(zhí)行時間,動態(tài)調(diào)節(jié)第三章 進 程 管 理 564. 多級反饋隊列調(diào)度算法多級反饋隊列調(diào)度算法 (1) 應設置多個就緒隊列,并為各個隊列賦予不同的優(yōu)應設置多個就緒隊列,并為各個隊列賦予不同的優(yōu)先級。先級。 第一個隊列的優(yōu)先級最高,第二個隊列次之,其余第一個隊列的優(yōu)先級最高,第二個隊列次之,其余各隊列的優(yōu)先權逐個降低。該算法賦予各個隊列中進程執(zhí)各隊列的優(yōu)先權逐個降低。該算法賦予各個隊列中進程執(zhí)行時間片的大小也各不相同,行時間片的大小也各不相同,在優(yōu)先權愈高的隊列中,為在優(yōu)先權愈高的隊列中,為每個進程所規(guī)定的執(zhí)行時間片就愈小每個進程所規(guī)定的執(zhí)行時間片就愈小。例如,第二
58、個隊列。例如,第二個隊列的時間片要比第一個隊列的時間片長一倍,的時間片要比第一個隊列的時間片長一倍,第,第i+1個隊個隊列的時間片要比第列的時間片要比第i個隊列的時間片長一倍。個隊列的時間片長一倍。第三章 進 程 管 理 57第三章 進 程 管 理 58 (2) 當一個新進程進入內(nèi)存后,首先將它放入第一隊列當一個新進程進入內(nèi)存后,首先將它放入第一隊列的末尾,按的末尾,按FCFS原則排隊等待調(diào)度。當輪到該進程執(zhí)行時,原則排隊等待調(diào)度。當輪到該進程執(zhí)行時,如它能在該時間片內(nèi)完成,便可準備撤離系統(tǒng);如果它在如它能在該時間片內(nèi)完成,便可準備撤離系統(tǒng);如果它在一個時間片結束時尚未完成,調(diào)度程序便將該進程
59、轉(zhuǎn)入第一個時間片結束時尚未完成,調(diào)度程序便將該進程轉(zhuǎn)入第二隊列的末尾,再同樣地按二隊列的末尾,再同樣地按FCFS原則等待調(diào)度執(zhí)行;如果原則等待調(diào)度執(zhí)行;如果它在第二隊列中運行一個時間片后仍未完成,再依次將它它在第二隊列中運行一個時間片后仍未完成,再依次將它放入第三隊列,放入第三隊列,如此下去,當一個長作業(yè),如此下去,當一個長作業(yè)(進程進程)從第從第一隊列依次降到第一隊列依次降到第n隊列后,在第隊列后,在第n隊列中便采取按時間片隊列中便采取按時間片輪轉(zhuǎn)的方式運行。輪轉(zhuǎn)的方式運行。 第三章 進 程 管 理 59 (3) 僅當?shù)谝魂犃锌臻e時,調(diào)度程序才調(diào)度第二隊列僅當?shù)谝魂犃锌臻e時,調(diào)度程序才調(diào)度第
60、二隊列中的進程運行;中的進程運行; 僅當?shù)趦H當?shù)?(i-1) 隊列均空時,才會調(diào)度第隊列均空時,才會調(diào)度第i隊列中的進程運行。如果處理機正在第隊列中的進程運行。如果處理機正在第i隊列中為某進程隊列中為某進程服務時,又有新進程進入優(yōu)先權較高的隊列服務時,又有新進程進入優(yōu)先權較高的隊列(第第1(i-1)中中的任何一個隊列的任何一個隊列),則此時新進程將搶占正在運行進程的,則此時新進程將搶占正在運行進程的處理機,即由調(diào)度程序把正在運行的進程放回到第處理機,即由調(diào)度程序把正在運行的進程放回到第i隊列隊列的末尾,把的末尾,把處理機分配給新到的高優(yōu)先權進程。處理機分配給新到的高優(yōu)先權進程。 第三章 進 程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 日常辦公事務處理文書詳案
- 融資借款合同協(xié)議書
- 數(shù)據(jù)傳輸效率評估表
- 產(chǎn)品分銷合同協(xié)議規(guī)范書
- 中學生科普知識解讀征文
- 電商平臺在線客服機器人技術支持協(xié)議
- 《現(xiàn)代酒店管理基礎》(第二版)課件 任務9 酒店集團化管理
- 幼兒啟蒙成語故事解讀
- 如何學好高中化學的方法與技巧分享:高中化學學習策略課程教案
- 分析當前零售市場競爭格局
- 生產(chǎn)工藝的標準化與規(guī)范化
- 河道清淤培訓課件
- 機械基礎全冊教案第四版
- 《瘋狂動物城》全本臺詞中英文對照
- 大班語言猴子過河教案反思
- 同位語從句和定語從句
- 醫(yī)院OSCE考站建設需求
- 10以內(nèi)加減法口算題(13套100道題直接打印)
- 十年免還協(xié)議合同
- 中國建筑三鐵六律行為安全準則培訓ppt
- 斷橋門聯(lián)窗施工方案
評論
0/150
提交評論