![chap3處理機調(diào)度與死鎖_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/16/50da19d6-0e4f-4c02-8120-59b3046e4f40/50da19d6-0e4f-4c02-8120-59b3046e4f401.gif)
![chap3處理機調(diào)度與死鎖_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/16/50da19d6-0e4f-4c02-8120-59b3046e4f40/50da19d6-0e4f-4c02-8120-59b3046e4f402.gif)
![chap3處理機調(diào)度與死鎖_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/16/50da19d6-0e4f-4c02-8120-59b3046e4f40/50da19d6-0e4f-4c02-8120-59b3046e4f403.gif)
![chap3處理機調(diào)度與死鎖_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/16/50da19d6-0e4f-4c02-8120-59b3046e4f40/50da19d6-0e4f-4c02-8120-59b3046e4f404.gif)
![chap3處理機調(diào)度與死鎖_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/16/50da19d6-0e4f-4c02-8120-59b3046e4f40/50da19d6-0e4f-4c02-8120-59b3046e4f405.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、一、處理機的多級調(diào)度策略第三章 處理機的調(diào)度與死鎖處理機調(diào)度是操作系統(tǒng)的主要功能之一,它的實現(xiàn)策略決定了操作系統(tǒng)的類型,處理機調(diào)度是操作系統(tǒng)的主要功能之一,它的實現(xiàn)策略決定了操作系統(tǒng)的類型,其調(diào)度算法的優(yōu)劣直接影響整個系統(tǒng)的性能其調(diào)度算法的優(yōu)劣直接影響整個系統(tǒng)的性能。處理機處理機調(diào)度的任務(wù)調(diào)度的任務(wù)是選出待分派的作業(yè)或進程,為之分配處理機。是選出待分派的作業(yè)或進程,為之分配處理機。一般來說,處理機調(diào)度可分為三個級別,分別是高級調(diào)度、中級調(diào)度和低級調(diào)度。一般來說,處理機調(diào)度可分為三個級別,分別是高級調(diào)度、中級調(diào)度和低級調(diào)度。1、高級調(diào)度又稱作業(yè)調(diào)度、高級調(diào)度又稱作業(yè)調(diào)度,作業(yè)就是用戶程序及其所需
2、的數(shù)據(jù)和命令的集合,作業(yè)就是用戶程序及其所需的數(shù)據(jù)和命令的集合,作業(yè)管理就是對作業(yè)的執(zhí)行情況進行系統(tǒng)管理的程序的集合。作業(yè)調(diào)度程序的主作業(yè)管理就是對作業(yè)的執(zhí)行情況進行系統(tǒng)管理的程序的集合。作業(yè)調(diào)度程序的主要功能是審查系統(tǒng)是否能滿足用戶作業(yè)的資源要求以及按照一定的算法來選取作要功能是審查系統(tǒng)是否能滿足用戶作業(yè)的資源要求以及按照一定的算法來選取作業(yè)。業(yè)。2、引入、引入中級調(diào)度中級調(diào)度的主要目的是為了提高內(nèi)存的利用率和系統(tǒng)吞吐量,使得暫時的主要目的是為了提高內(nèi)存的利用率和系統(tǒng)吞吐量,使得暫時不運行的進程從內(nèi)存對換到外存上。不運行的進程從內(nèi)存對換到外存上。 3、低級調(diào)度又稱進程調(diào)度、低級調(diào)度又稱進程調(diào)
3、度,其主要功能是根據(jù)一定的算法將,其主要功能是根據(jù)一定的算法將CPU分派給就緒隊分派給就緒隊列中的一個進程。進程調(diào)度是操作系統(tǒng)中最基本的一種調(diào)度,其調(diào)度策略的優(yōu)劣列中的一個進程。進程調(diào)度是操作系統(tǒng)中最基本的一種調(diào)度,其調(diào)度策略的優(yōu)劣直接影響整個系統(tǒng)的性能。直接影響整個系統(tǒng)的性能。n幾點說明:在多道批處理系統(tǒng)中,既有高級調(diào)度,又有低級調(diào)度,也可以采用中級調(diào)度。在分時系統(tǒng)中,一般沒有高級調(diào)度,只有低級調(diào)度,一般會采用中級調(diào)度在實時系統(tǒng)中,只有低級調(diào)度在支持多道程序的操作系統(tǒng)中,一般存在進程調(diào)度有的操作系統(tǒng)采用中級調(diào)度,有的操作系統(tǒng)沒有中級調(diào)度二、處理機的調(diào)度隊列模型1、僅有進程調(diào)度的處理高度隊形模
4、型(分時系統(tǒng)中)、僅有進程調(diào)度的處理高度隊形模型(分時系統(tǒng)中)就 緒隊 列阻 塞隊列進程調(diào)度CPU進程完成等待事件交互用戶事件出現(xiàn)時間片完2、具有兩級調(diào)度的處理機調(diào)度隊列模型(多道批處理系統(tǒng)中)、具有兩級調(diào)度的處理機調(diào)度隊列模型(多道批處理系統(tǒng)中)就緒隊列進程調(diào)度CPU進程完成等待事件1作業(yè)調(diào)度事件 1出現(xiàn)時間片完等待事件2事件 2出現(xiàn)等待事件n事件 n 出現(xiàn)后備隊列該模型與上一模型的主要區(qū)別在于如下兩個方面: (1)就緒隊列的形式。 (2) 設(shè)置多個阻塞隊列。3、具有三級調(diào)度的處理機調(diào)度隊列模型(多道批處理和分時系統(tǒng)中)、具有三級調(diào)度的處理機調(diào)度隊列模型(多道批處理和分時系統(tǒng)中)就緒隊列進程
5、調(diào)度CPU就緒,掛起隊列中級調(diào)度阻塞,掛起隊列阻塞隊列等待事件進程完成時間片完作業(yè)調(diào)度交互型作業(yè)后備隊列批量作業(yè)掛起事件出現(xiàn)事件出現(xiàn)三、調(diào)度性能的衡量指標對批處理系統(tǒng)應(yīng)盡量提高各種資源的利用率和增加系統(tǒng)的吞吐量分時系統(tǒng)應(yīng)保證對用戶的響應(yīng)時間的要求實時系統(tǒng)必須及時和可靠的處理衡量作業(yè)調(diào)度和進程調(diào)度性能的指標如下: (1)CPU利用率(2)吞吐量-單位時間內(nèi)CPU完成作業(yè)的數(shù)量。(3)周轉(zhuǎn)時間-從作業(yè)提交到作業(yè)完成的時間間隔。(4)等待時間作業(yè)或進程從進入系統(tǒng)到被調(diào)度并開始執(zhí)行所經(jīng)歷的時間 (5)響應(yīng)時間-從提交第一個請求到產(chǎn)生第一個響應(yīng)所用的時間 (6)平均帶權(quán)周轉(zhuǎn)時間 作業(yè)i周轉(zhuǎn)時間作業(yè)i執(zhí)行
6、時間作業(yè)總數(shù)作業(yè)調(diào)度:就是要按一定的策略選取一個或多個作業(yè),為它們分配必需的資源(內(nèi)存空間、I/O設(shè)備等),使它們能夠并發(fā)執(zhí)行。作業(yè)調(diào)度的必要條件是:系統(tǒng)現(xiàn)有尚未分配的資源可以滿足該作業(yè)的資源需求。作業(yè)分類批量型作業(yè)終端型作業(yè)一、批量型作業(yè)的組織1、作業(yè)申請(作業(yè)情況、資源要求)2、作業(yè)實體(作業(yè)操作說明書、源程序或目標模塊程序、數(shù)據(jù)集合、修改信息(可沒有)3.2 調(diào)度算法作業(yè)調(diào)度二、批處理系統(tǒng)中作業(yè)的狀態(tài)及其轉(zhuǎn)換四種狀態(tài):提交、后備、執(zhí)行和完成3.2 調(diào)度算法作業(yè)調(diào)度三、實現(xiàn)作業(yè)狀態(tài)轉(zhuǎn)換的程序1、SPOOLing系統(tǒng)程序包括輸入程序、輸出程序、井管理程序(讀子程序、寫子程序)2、作業(yè)調(diào)度程序
7、作業(yè)調(diào)度程序負責作業(yè)從“后備狀態(tài)”到“執(zhí)行狀態(tài)”以及從“執(zhí)行狀態(tài)”到“完成狀態(tài)”的轉(zhuǎn)換,作業(yè)調(diào)度程序為作業(yè)分配的是一臺虛擬的邏輯處理機。n作業(yè)調(diào)度:作業(yè)調(diào)度:按照某種調(diào)度算法從后備作業(yè)隊列中挑選一個/幾個作業(yè)進入內(nèi)存,參加運行。同時分配資源,做好運行前的準備。3.2 調(diào)度算法作業(yè)調(diào)度3、進程調(diào)度程序進程調(diào)度程序的主要任務(wù):實現(xiàn)進程從“就緒狀態(tài)”到“運行狀態(tài)”的轉(zhuǎn)變。它總是按照確定的調(diào)度算法從就緒隊列中選擇一個進程,讓它占有CPU運行,進程調(diào)度程序為作業(yè)分配的是一臺真實的物理處理機。4、交通控制程序交通控制程序負責進程狀態(tài)的轉(zhuǎn)換和進程之間的通信。3.2 調(diào)度算法作業(yè)調(diào)度四、作業(yè)調(diào)度所需的數(shù)據(jù)結(jié)構(gòu)
8、及其組織1、作業(yè)控制塊2、作業(yè)后備隊列3.2 調(diào)度算法作業(yè)調(diào)度五、作業(yè)調(diào)度算法的設(shè)計原則n面向用戶的準則:周轉(zhuǎn)時間短;響應(yīng)時間快;截止時間的保證;優(yōu)先權(quán)準則n面向系統(tǒng)的準則:系統(tǒng)吞吐量高;處理機利用率好;各類資源的平衡利用3.2 調(diào)度算法作業(yè)調(diào)度六、常用的作業(yè)調(diào)度算法1.先來先服務(wù)調(diào)度算法(先來先服務(wù)調(diào)度算法(FCFS)特點:簡單容易實現(xiàn),有利于長作業(yè),但不利于短作業(yè)特點:簡單容易實現(xiàn),有利于長作業(yè),但不利于短作業(yè)3.2 調(diào)度算法作業(yè)調(diào)度2、最短作業(yè)優(yōu)先調(diào)度算法(、最短作業(yè)優(yōu)先調(diào)度算法(SJF)特點:易于實現(xiàn),會使系統(tǒng)平均周轉(zhuǎn)時間最短,系統(tǒng)吞吐量大。特點:易于實現(xiàn),會使系統(tǒng)平均周轉(zhuǎn)時間最短,系
9、統(tǒng)吞吐量大。但忽視了作業(yè)的等待時間,不利于長作業(yè),會出現(xiàn)但忽視了作業(yè)的等待時間,不利于長作業(yè),會出現(xiàn)“餓死餓死”現(xiàn)象?,F(xiàn)象。3.2 調(diào)度算法作業(yè)調(diào)度3、響應(yīng)比高者優(yōu)先(HRRF)特點:算法較為復雜,每當調(diào)度作業(yè)時都需要進行響應(yīng)比的計特點:算法較為復雜,每當調(diào)度作業(yè)時都需要進行響應(yīng)比的計算。但它既照顧了用戶作業(yè)到來的先后,又考慮了要求系統(tǒng)服算。但它既照顧了用戶作業(yè)到來的先后,又考慮了要求系統(tǒng)服務(wù)時間的長短。務(wù)時間的長短。3.2 調(diào)度算法作業(yè)調(diào)度3.2 調(diào)度算法作業(yè)調(diào)度例子:分析n在多道批處理系統(tǒng)中,有下列1、2、3、4四個作業(yè),提交時間分別是6.0、6.5、7.0、7.5,執(zhí)行時間分別是2.0、
10、0.5、0.1、0.2,用先來先服務(wù)調(diào)度算法和短作業(yè)調(diào)度算法進行調(diào)度,哪一種算法調(diào)度性能好些?為什么? 若后備作業(yè)隊列中等待運行的同時有三個作業(yè)J1 、J2、J3 ,已知它們各自的運行時間為a 、b 、c,且滿足a 退化為FCFS算法,進程在一個時間片內(nèi)都執(zhí)行完,響應(yīng)時間長。q過短用戶的一次請求需要多個時間片才能處理完,CPU現(xiàn)場切換次數(shù)增加,響應(yīng)時間長?!緦憫?yīng)時間的要求】: T(響應(yīng)時間)=N(進程數(shù)目)*q(時間片)【時間片長度的影響因素】:q就緒進程的數(shù)目:數(shù)目越多,時間片越?。ó旐憫?yīng)時間一定時)。q系統(tǒng)的處理能力:應(yīng)當使用戶輸入通常在一個時間片內(nèi)能處理完,否則使響應(yīng)時間,平均周轉(zhuǎn)時間
11、和平均帶權(quán)周轉(zhuǎn)時間延長。3.2 調(diào)度算法進程調(diào)度3.2 調(diào)度算法進程調(diào)度3.2 調(diào)度算法進程調(diào)度3、多隊列輪轉(zhuǎn)調(diào)度算法 將系統(tǒng)內(nèi)進程按各自屬性分為若干類,每一類組織一個就緒隊列,并為每一個就緒隊列規(guī)定一個調(diào)度優(yōu)先級,且還可以為不同的隊列規(guī)定不同的調(diào)度算法。多隊列算法首先將CPU分配給高優(yōu)先級隊列中的進程。只有當高優(yōu)先級隊列為空時,再將CPU分配給較低優(yōu)先級隊列中的進程。各隊列需采用的調(diào)度算法也應(yīng)根據(jù)系統(tǒng)設(shè)計目標而具體確定。例:分時批處理系統(tǒng)中,前臺作業(yè)(終端)、后臺作業(yè)(批處理作業(yè))3.2 調(diào)度算法進程調(diào)度4、多級反饋隊列調(diào)度算法q設(shè)置設(shè)置多個就緒隊列多個就緒隊列,分別賦予,分別賦予不同的優(yōu)先
12、級不同的優(yōu)先級,隊列,隊列1的優(yōu)先的優(yōu)先級最高,其他逐級降低。每隊列分配級最高,其他逐級降低。每隊列分配不同的時間片不同的時間片,規(guī)定優(yōu),規(guī)定優(yōu)先級越低則時間片越長。先級越低則時間片越長。q新進程就緒后,新進程就緒后,先投入隊列先投入隊列1的末尾的末尾,按,按FCFS算法調(diào)度。若算法調(diào)度。若一個時間片未能執(zhí)行完,則一個時間片未能執(zhí)行完,則降低降低投入到隊列投入到隊列2的末尾;依此的末尾;依此類推,類推,降低到最后的隊列降低到最后的隊列,則按,則按“時間片輪轉(zhuǎn)時間片輪轉(zhuǎn)”算法調(diào)度直算法調(diào)度直到完成。到完成。q 進程由于等待事件而放棄進程由于等待事件而放棄CPU后后, 進入等待隊列進入等待隊列,
13、一旦等待一旦等待的事件發(fā)生的事件發(fā)生, 則回到原來的就緒隊列。則回到原來的就緒隊列。q僅當僅當較高優(yōu)先級的隊列為空較高優(yōu)先級的隊列為空,才調(diào)度較低優(yōu)先級的隊列中的,才調(diào)度較低優(yōu)先級的隊列中的進程執(zhí)行。如果進程執(zhí)行時有新進程進入較高優(yōu)先級的隊列,進程執(zhí)行。如果進程執(zhí)行時有新進程進入較高優(yōu)先級的隊列,則則搶先搶先執(zhí)行新進程,并把執(zhí)行新進程,并把被搶先的進程投入原隊列的末尾被搶先的進程投入原隊列的末尾。3.2 調(diào)度算法進程調(diào)度進程調(diào)度進程調(diào)度多級反饋隊列調(diào)度算法的特點多級反饋隊列調(diào)度算法的特點 合理地考慮了分時系統(tǒng)平均響應(yīng)時間,考慮了批處理系統(tǒng)短進程優(yōu)先,能使I/O為主的進程優(yōu)先于CPU為主的進程。
14、這種調(diào)度算法能適用于同時支持分時、實時、批處理的通用操作系統(tǒng)。3.2 調(diào)度算法進程調(diào)度n5、實時調(diào)度算法、實時調(diào)度算法實時調(diào)度的基本要求:保證計算機在規(guī)定的時間內(nèi)對外部事件的實時調(diào)度的基本要求:保證計算機在規(guī)定的時間內(nèi)對外部事件的請求作出響應(yīng)。請求作出響應(yīng)。強實時系統(tǒng):計算機對事件的響應(yīng)必須在規(guī)定的時間內(nèi)(最終期強實時系統(tǒng):計算機對事件的響應(yīng)必須在規(guī)定的時間內(nèi)(最終期限)限)弱實時系統(tǒng):允許偶爾的失誤弱實時系統(tǒng):允許偶爾的失誤實時調(diào)度策略(動態(tài)調(diào)度和靜態(tài)調(diào)度)實時調(diào)度策略(動態(tài)調(diào)度和靜態(tài)調(diào)度)靜態(tài)調(diào)度:進程的調(diào)度順序是預先規(guī)定好的靜態(tài)調(diào)度:進程的調(diào)度順序是預先規(guī)定好的動態(tài)調(diào)度:進程的調(diào)度順序是
15、動態(tài)變化的且在運行時決定動態(tài)調(diào)度:進程的調(diào)度順序是動態(tài)變化的且在運行時決定等級單調(diào)算法:它根據(jù)各個進程的觸發(fā)事件的發(fā)生順序給每個進等級單調(diào)算法:它根據(jù)各個進程的觸發(fā)事件的發(fā)生順序給每個進程賦予一個優(yōu)先權(quán),運行時,調(diào)度者總是運行優(yōu)先權(quán)最高的可程賦予一個優(yōu)先權(quán),運行時,調(diào)度者總是運行優(yōu)先權(quán)最高的可執(zhí)行進程,調(diào)度方式可以采用搶先式。執(zhí)行進程,調(diào)度方式可以采用搶先式。最早最終期限優(yōu)先法:進程調(diào)度的優(yōu)先級根據(jù)相應(yīng)事件的最終期最早最終期限優(yōu)先法:進程調(diào)度的優(yōu)先級根據(jù)相應(yīng)事件的最終期限的時間來確定,最終期限的時間越短,其優(yōu)先級越高。限的時間來確定,最終期限的時間越短,其優(yōu)先級越高。最小松弛時間優(yōu)先:系統(tǒng)首先
16、為每個進程計算它可以讓出的時間最小松弛時間優(yōu)先:系統(tǒng)首先為每個進程計算它可以讓出的時間(松弛時間),調(diào)度時系統(tǒng)選取松弛時間最小的運行。(松弛時間),調(diào)度時系統(tǒng)選取松弛時間最小的運行。練習題:n 在所學的調(diào)度算法中,對所有進程和作業(yè)都是公平合理的調(diào)度算法是 A ;最有利于提高系統(tǒng)吞吐量的作業(yè)調(diào)度算法是 B ;能兼顧作業(yè)等待時間和作業(yè)執(zhí)行時間調(diào)度算法是 C ;最有利于提高資源的使用率、能使短作業(yè)、長作業(yè)及交互作業(yè)用戶都比較滿意的調(diào)度算法是 D ;為實現(xiàn)人機交互作用應(yīng)采用調(diào)度算法是 E ;能對緊急作業(yè)進行及時處理的調(diào)度算法是 F 。nAF:(1)FCFS調(diào)度算法; (2)短作業(yè)優(yōu)先調(diào)度算法;n (3
17、)時間片輪轉(zhuǎn)法; (4)多級反饋隊列調(diào)度算法;n (5)高響應(yīng)比優(yōu)先算法;n (6)基于優(yōu)先權(quán)的剝奪調(diào)度算法。練習題:n1操作系統(tǒng)的主要性能參數(shù):操作系統(tǒng)的主要性能參數(shù): A 指的是單位時間內(nèi)系統(tǒng)處理的作業(yè)量。指的是單位時間內(nèi)系統(tǒng)處理的作業(yè)量。A:(:(1)周轉(zhuǎn)時間;)周轉(zhuǎn)時間; (2)處理時間;)處理時間; (3)消逝時間;)消逝時間; (4)利用率;)利用率; (5)生產(chǎn)率;生產(chǎn)率; (6)吞吐量。)吞吐量。n2在所學的調(diào)度算法中,為實現(xiàn)人機交互作用應(yīng)采用調(diào)度算法是在所學的調(diào)度算法中,為實現(xiàn)人機交互作用應(yīng)采用調(diào)度算法是 A 。A:(:(1)FCFS調(diào)度算法;調(diào)度算法; (2)短作業(yè)優(yōu)先調(diào)度
18、算法;)短作業(yè)優(yōu)先調(diào)度算法; (3)時間片輪轉(zhuǎn)法;)時間片輪轉(zhuǎn)法; (4)多級反饋隊列調(diào)度算法;)多級反饋隊列調(diào)度算法; (5)高響應(yīng)比優(yōu)先算法;)高響應(yīng)比優(yōu)先算法; (6)基于優(yōu)先)基于優(yōu)先權(quán)的剝奪調(diào)度算法。權(quán)的剝奪調(diào)度算法。n3. 時間片輪轉(zhuǎn)算法中時間片足夠大時,該算法退化為時間片輪轉(zhuǎn)算法中時間片足夠大時,該算法退化為 A 。 A: (1)時間片輪轉(zhuǎn)算法)時間片輪轉(zhuǎn)算法 (2)先進先出調(diào)度算法)先進先出調(diào)度算法 (3)高響應(yīng)比優(yōu)先算法高響應(yīng)比優(yōu)先算法 (4)短作業(yè)優(yōu)先算法)短作業(yè)優(yōu)先算法n4.作業(yè)調(diào)度是按某種算法從磁盤輸入井的作業(yè)調(diào)度是按某種算法從磁盤輸入井的 A 中選一個作業(yè)裝入主存運行
19、。中選一個作業(yè)裝入主存運行。 A:(:(1)就緒隊列)就緒隊列 (2)等待隊列)等待隊列 (3)作業(yè)后備隊列)作業(yè)后備隊列 (4)提交隊列)提交隊列n5.作業(yè)調(diào)度與進程調(diào)度的主要區(qū)別是:作業(yè)調(diào)度與進程調(diào)度的主要區(qū)別是: A 。A:(:(1)作業(yè)調(diào)度比進程調(diào)度頻繁)作業(yè)調(diào)度比進程調(diào)度頻繁 (2)兩種調(diào)度的算法完全不同)兩種調(diào)度的算法完全不同 (3)兩種調(diào)度的性能指標完全不同)兩種調(diào)度的性能指標完全不同 (4)進程調(diào)度比作業(yè)調(diào)度頻繁進程調(diào)度比作業(yè)調(diào)度頻繁3.3 死鎖死鎖:指多個進程在運行的時候因為競爭資源而陷入的一種僵局,陷入這種僵局的進程,若無外力的作用將無法再向前推進。產(chǎn)生死鎖的原因:1、進程
20、對資源的競爭 當若干進程需求資源的總數(shù)大于系統(tǒng)能提供的資源數(shù)時,進程間就會出現(xiàn)競爭資源的現(xiàn)象,若管理不當就可能引起死鎖。2、資源分配策略 如果按某種資源分配策略分配資源時使得某些進程各自占用了部分資源后又都在等待其他進程所占的資源,且互不相讓,則出會引起死鎖。3、并發(fā)進程執(zhí)行速度 并發(fā)進程執(zhí)行的速度不能由進程自己來控制,如果協(xié)調(diào)不好的話也會出現(xiàn)循環(huán)等待資源的情況。 例:系統(tǒng)有打印機、讀卡機各一臺,被進程P、Q共享。兩個進程并發(fā)執(zhí)行,按以下順序請求和釋放資源:進程PA1:請求讀卡機 A2:請求打印機 A3:釋放讀卡機 A4:釋放打印機進程QB1:請求打印機 B2:請求讀卡機 B3:釋放讀卡機 B
21、4:釋放打印機A1、A2、A3、A4、B1、B2、B3、B4B1、B2、B3、B4、A1、A2、A3、A4A1、A2、B1、B2、A3、A4、B3、B4A1、B1、A2、B2、A3、B3、A4、B4 分析上面四種執(zhí)行順序哪個可能會產(chǎn)生死鎖分析上面四種執(zhí)行順序哪個可能會產(chǎn)生死鎖產(chǎn)生死鎖的必要條件n 從以上分析可見,如果在計算機系統(tǒng)中同時具備同時具備下面四個必要條件時,那麼會發(fā)生死鎖。換句話說,只要下面四個條件有一個不具備,系統(tǒng)就不會出現(xiàn)死鎖。n 1互斥條件?;コ鈼l件。即某個資源在一段時間內(nèi)只能由一個進程占有,不能同時被兩個或兩個以上的進程占有。這種獨占資源如CD-ROM驅(qū)動器,打印機等等,必須在
22、占有該資源的進程主動釋放它之后,其它進程才能占有該資源。這是由資源本身的屬性所決定的。如獨木橋就是一種獨占資源,兩方的人不能同時過橋。n 2不可搶占條件。不可搶占條件。進程所獲得的資源在未使用完畢之前,資源申請者不能強行地從資源占有者手中奪取資源,而只能由該資源的占有者進程自行釋放。如過獨木橋的人不能強迫對方后退,也不能非法地將對方推下橋,必須是橋上的人自己過橋后空出橋面(即主動釋放占有資源),對方的人才能過橋。n 3占有且申請條件。占有且申請條件。進程至少已經(jīng)占有一個資源,但又申請新的資源;由于該資源已被另外進程占有,此時該進程阻塞;但是,它在等待新資源之時,仍繼續(xù)占用已占有的資源。還以過獨
23、木橋為例,甲乙兩人在橋上相遇。甲走過一段橋面(即占有了一些資源),還需要走其余的橋面(申請新的資源),但那部分橋面被乙占有(乙走過一段橋面)。甲過不去,前進不能,又不后退;乙也處于同樣的狀況。n 4循環(huán)等待條件。循環(huán)等待條件。存在一個進程等待序列P1,P2,.,Pn,其中P1等待P2所占有的某一資源,P2等待P3所占有的某一源,.,而Pn等待P1所占有的的某一資源,形成一個進程循環(huán)等待環(huán)。就像前面的過獨木橋問題,甲等待乙占有的橋面,而乙又等待甲占有的橋面,從而彼此循環(huán)等待。n 上面我們提到的這四個條件在死鎖時會同時發(fā)生。也就是說,只要有一個必要條件不滿足,則死鎖就可以排除。解決死鎖的對策1、設(shè)
24、計無死鎖的系統(tǒng)兩種途徑:預防死鎖、避免死鎖2、允許系統(tǒng)出現(xiàn)死鎖然后設(shè)法排除它加死鎖檢測手段-一旦發(fā)現(xiàn)死鎖能夠進行排除的死鎖解除手段1、靜態(tài)分配資源策略 每個進程在開始執(zhí)行前就申請它所需要的全部資源,僅當系統(tǒng)能滿足進程的資源申請要求且把資源分配給進程后,該進程才能開始執(zhí)行。(打破了(3)占有并申請) 特點:簡單安全,資源利用率低2、按序分配資源策略 把系統(tǒng)中所有資源排一個順序,對第一個資源給一個確定的編號,規(guī)定任何一個進程申請兩個以上資源時總是先申請編號小的資源,后申請編號大的資源。(打中4循環(huán)等待條件)循環(huán)等待條件) 特點:可以提高資源利用率,但資源的使用與實際使用順序不一致,給用戶編制程序帶
25、來麻煩。3、搶奪式分配資源策略 僅當一個進程已經(jīng)占有了某些資源又要申請新資源,而系統(tǒng)這時又不能滿足其他資源的要求(已被其他進程占用)必須等待時,系統(tǒng)才可以搶奪該進程已占有的資源。(適用于CPU、內(nèi)存,不能完全防止死鎖)1、系統(tǒng)的安全與不安全狀態(tài) 系統(tǒng)能按某種進程順序(P1, P2, ,Pn)(稱P1, P2, , Pn序列為安全序列),來為每個進程Pi分配其所需資源,直至滿足每個進程對資源的最大需求,使每個進程都可順利地完成。如果系統(tǒng)無法找到這樣一個安全序列,則稱系統(tǒng)處于不安全狀態(tài)。只要系統(tǒng)處于安全狀態(tài),系統(tǒng)就不會發(fā)生死鎖在系統(tǒng)處于不安全狀態(tài)下未必一定發(fā)生死鎖,但是安全狀態(tài)下的系統(tǒng)是一定不會發(fā)
26、生死鎖的。我們通過一個例子來說明安全性。假定系統(tǒng)中有三個進程P1、 P2和P3,共有12臺磁帶機。進程P1總共要求10臺磁帶機,P2和P3分別要求4臺和9臺。假設(shè)在T0時刻,進程P1、P2和P3已分別獲得5臺、2臺和2臺磁帶機,尚有3臺空閑未分配,如下表所示:進 程 最 大 需 求 已 分 配 可 用 P1P2P310495223n由安全狀態(tài)向不安全狀態(tài)的轉(zhuǎn)換由安全狀態(tài)向不安全狀態(tài)的轉(zhuǎn)換n 如果不按照安全序列分配資源,則系統(tǒng)可能會由安全狀態(tài)進入不安全狀態(tài)。例如,在T0時刻以后,P3又請求1臺磁帶機,若此時系統(tǒng)把剩余3臺中的1臺分配給P3,則系統(tǒng)便進入不安全狀態(tài)。 因為,此時也無法再找到一個安全
27、序列, 例如,把其余的2臺分配給P2,這樣,在P2完成后只能釋放出4臺,既不能滿足P1尚需5臺的要求,也不能滿足P3尚需6臺的要求,致使它們都無法推進到完成,彼此都在等待對方釋放資源,即陷入僵局,結(jié)果導致死鎖。現(xiàn)有同類資源12個供3個進程共享,假定進程所需資源和已占資源的情況如下表所示。3個進程在執(zhí)行中又都提出申請一個資源的要求,回答:na.如果先滿足進程A的要求,系統(tǒng)將會出現(xiàn)什么現(xiàn)象?解釋之。 nb.你認為應(yīng)按怎樣的次序分配資源才合適?為什么? n答:a.在當前狀態(tài)下,尚余2個資源可供分配,如果先滿足進程A的要求,把其中1個資源分配給A進程,此時A、B、C進程仍未擁有足夠資源完成任務(wù)。系統(tǒng)進
28、入不安全狀態(tài),隨著進程的繼續(xù)執(zhí)行,剩余的1個資源無論分給哪個進程,均導至所有進程進入等告待而出現(xiàn)死鎖。nb.根據(jù)目前的資源占用情況,應(yīng)該先滿足B的要求,把剩下的2個資源分配給他,這樣,B進程可執(zhí)行完畢歸還系統(tǒng)6個資源。這6個資源可以滿足A和C進程的資源需求,從而使系統(tǒng)處于安全狀態(tài)。 2、利用銀行家算法避免死鎖、利用銀行家算法避免死鎖算法:把操作系統(tǒng)比作銀行家,操作系統(tǒng)管理的各種資源比作銀行的周轉(zhuǎn)資金,申請資源的進程比作銀行借款的主顧。銀行家占有有限的資金,他不可能滿足所有借款人的請求,但可以滿足一部分人的借款請求,等這些人歸還后,又可把這筆資金借給其他人,其原則是不能使銀行家的錢被借完,使資金
29、無法周轉(zhuǎn)。特點:可避免死鎖,比靜態(tài)資源分配法資源利用率高 但資源分配保守,每次分配前均要花較長時間計算時間,系統(tǒng)開銷較大,而且必須知道每個進程對資源的最大需求量。3、區(qū)分死鎖的避免與死鎖的防止預防:是在運行之前,預先防止死鎖的產(chǎn)生(主要通過破壞產(chǎn)生死鎖的四個必要條件中任何一個來實現(xiàn)的)避免:是系統(tǒng)運行過程中注意避免死鎖的發(fā)生(要求系統(tǒng)每當在進程申請資源時,都應(yīng)根據(jù)一定的算法判斷,僅當系統(tǒng)處于安全狀態(tài)時才把資源分配給進程,使系統(tǒng)一直處于安全狀態(tài)之中)四、死鎖的檢測和解除死鎖的檢測:系統(tǒng)定時運行一個檢查程序,來檢測系統(tǒng)中是否存在死鎖,當檢測到死鎖時再設(shè)法解除死鎖。1. 資源分配圖資源分配圖凡屬于凡
30、屬于E中的一個邊中的一個邊eE,都連接,都連接著著P中的一個結(jié)點和中的一個結(jié)點和R中的一個結(jié)中的一個結(jié)點,點,e=pi, rj是資源請求邊,由進是資源請求邊,由進程程pi指向資源指向資源rj, 它表示進程它表示進程pi請請求一個單位的求一個單位的rj資源。資源。e=rj, pi是是資源分配邊,由資源資源分配邊,由資源rj指向進程指向進程pi, 它表示把一個單位的資源它表示把一個單位的資源rj分配給分配給進程進程pi。2、利用資源圖可以檢測系統(tǒng)中是否存在死鎖進程,判定死鎖的法則、利用資源圖可以檢測系統(tǒng)中是否存在死鎖進程,判定死鎖的法則如下:如下:1)如果進程資源圖中無環(huán)路,則此時系統(tǒng)內(nèi)不存在死鎖
31、。2)如果進程資源圖中有環(huán)路,且處于環(huán)路內(nèi)的每類資源均只有一個,則此時系統(tǒng)內(nèi)存在死鎖;處于環(huán)路內(nèi)的進程就是卷入死鎖的進程。3)如果進程資源圖中有環(huán)路,但處于環(huán)路內(nèi)的每類資源個數(shù)不全為一個,則此時系統(tǒng)內(nèi)是否存在死鎖,還要化簡進程資源圖才能判定。3、進程資源的化簡過程、進程資源的化簡過程1)找出一個既不阻塞又非孤立的進程節(jié)點Pi2)進程Pi所占有的資源全部釋放時,可喚醒等待此資源而進入阻塞的進程Pj,使原來處于阻塞的進程可能變成非阻塞進程。3)若進程資源狀態(tài)圖通過上述簡化步驟后,都成為孤立點,則該圖是可完全化簡的,并且該進程資源圖所代表的系統(tǒng)狀態(tài)是安全的。4、死鎖定理對于較復雜的資源狀態(tài)圖可能存在
32、著多個非阻塞點,若我們從不同的點開始化簡是否可以得到同一個化簡圖呢?經(jīng)證明:一個給定的進程資源圖的所有化簡順序?qū)е峦粋€不可化簡圖。所以我們進一步可得到如下的死鎖定理:若S是死鎖狀態(tài)的話,當且僅當S的進程資源圖是不可完全化簡的。如果得到一個可完全化簡的進程資源狀態(tài)圖,我們就稱該狀態(tài)為安全態(tài),反之為死鎖狀態(tài)。3、死鎖的解除當死鎖檢測程序檢測到有死鎖存在時,一般采用兩種方式來解除死鎖。1)刪除法:即終止一個或幾個涉及死鎖的進程的執(zhí)行,收回它們所占的資源進程再分配,以破壞循環(huán)等2)剝奪法:即從涉及死鎖的一個或幾個進程中搶奪資源,把奪來的資源再分配給卷入死鎖的其他進程,直至死鎖解除11.某系統(tǒng)中有10臺打印機,有三個進程P1,P2,P3分別需要8臺,7臺和4臺。若P1,P2,P3已申請到4臺,2臺和2臺。試問:按銀行家算法能安全分配嗎?請說明分配過程。 系統(tǒng)能為進程P3分配二臺打印機。因為盡管此時10臺打印機已分配給進程P1 4臺,P2 2臺和P3 4臺,全部分配
溫馨提示
- 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年度辦公用品店租賃與品牌授權(quán)合同
- 產(chǎn)品研發(fā)流程規(guī)范作業(yè)指導書
- 酒水購銷合同年
- 軟件公司保密協(xié)議書
- 委托房屋買賣合同
- 建筑裝飾工程門窗施工合同
- 虛擬現(xiàn)實技術(shù)專利申請合同
- 展覽會管理合同協(xié)議
- 部編四下語文《口語交際:轉(zhuǎn)述》公開課教案教學設(shè)計【一等獎】
- 倉庫每日巡查制度
- 學校教育數(shù)字化工作先進個人事跡材料
- 2024魯教版七年級下冊數(shù)學第七章綜合檢測試卷及答案
- 企事業(yè)單位公建項目物業(yè)管理全套方案
- 新人教版八年級數(shù)學下冊期末試題
- 《美容心理學》課件-容貌的社會心理價值
- 蘇教版五年級上冊數(shù)學簡便計算大全600題及答案
- 特殊感染器械的處理課件
- 《小兒過敏性紫癜》課件
- 侵占公司資金還款協(xié)議
評論
0/150
提交評論