計(jì)算機(jī)操作系統(tǒng)(第二版)課件:進(jìn)程死鎖_第1頁(yè)
計(jì)算機(jī)操作系統(tǒng)(第二版)課件:進(jìn)程死鎖_第2頁(yè)
計(jì)算機(jī)操作系統(tǒng)(第二版)課件:進(jìn)程死鎖_第3頁(yè)
計(jì)算機(jī)操作系統(tǒng)(第二版)課件:進(jìn)程死鎖_第4頁(yè)
計(jì)算機(jī)操作系統(tǒng)(第二版)課件:進(jìn)程死鎖_第5頁(yè)
已閱讀5頁(yè),還剩51頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

進(jìn)程死鎖死鎖的基本概念預(yù)防死鎖避免死鎖死鎖的檢測(cè)與解除3.7進(jìn)程死鎖3.7.1死鎖的基本概念1.什么是死鎖并舉例說明2.分析產(chǎn)生死鎖的原因:(1)競(jìng)爭(zhēng)資源(2)進(jìn)程推進(jìn)順序非法3.分析說明產(chǎn)生死鎖的必要條件4.說明處理死鎖的基本方法3.7.1死鎖的基本概念1.死鎖的概念:例1:兩輛車過單車道的僵局3.7進(jìn)程死鎖例2.

競(jìng)爭(zhēng)外部設(shè)備。設(shè)系統(tǒng)中有打印機(jī)、掃描儀各一臺(tái),進(jìn)程A、B的申請(qǐng)如下:掃描儀進(jìn)程A進(jìn)程B占用占用請(qǐng)求請(qǐng)求阻塞阻塞死鎖打印機(jī)3.7.1死鎖的基本概念1.死鎖的概念:3.7進(jìn)程死鎖死鎖定義一組進(jìn)程中,每個(gè)進(jìn)程都無限等待被該組進(jìn)程中另一進(jìn)程所占有的且永遠(yuǎn)無法釋放的資源,這種現(xiàn)象稱為進(jìn)程死鎖,這一組進(jìn)程就稱為死鎖進(jìn)程。競(jìng)爭(zhēng)資源:2.產(chǎn)生死鎖的原因3.7.1死鎖的基本概念系統(tǒng)資源可重用資源消耗性資源不可剝奪資源可剝奪資源處理器,主存等打印機(jī),磁帶機(jī),隊(duì)列,文件等中斷,信號(hào),消息等死鎖什么是可重用資源?分為哪兩類?系統(tǒng)中哪些資源屬于可剝奪資源?哪些資源屬于不可剝奪資源?3.7進(jìn)程死鎖掃描儀進(jìn)程A進(jìn)程B占用占用請(qǐng)求請(qǐng)求阻塞阻塞死鎖打印機(jī)2.產(chǎn)生死鎖的原因3.7.1死鎖的基本概念競(jìng)爭(zhēng)資源競(jìng)爭(zhēng)不可剝奪資源產(chǎn)生死鎖:3.7進(jìn)程死鎖執(zhí)行順序1:P1:…Release(S1);Request(S3);…P2:…Release(S2);Request(S1);…P3:…Release(S3);Request(S2);…執(zhí)行順序2:P1:…Request(S3);Release(S1);…P2:…Request(S1);Release(S2);…P3:…Request(S2);Release(S3);…進(jìn)程P2進(jìn)程P3進(jìn)程P1臨時(shí)性資源S3臨時(shí)性資源S1臨時(shí)性資源S2請(qǐng)求產(chǎn)生產(chǎn)生請(qǐng)求產(chǎn)生請(qǐng)求不會(huì)“死鎖”“死鎖”2.產(chǎn)生死鎖的原因3.7.1死鎖的基本概念競(jìng)爭(zhēng)資源競(jìng)爭(zhēng)消耗性資源產(chǎn)生死鎖:按這個(gè)順序執(zhí)行,系統(tǒng)會(huì)出現(xiàn)死鎖嗎?按這個(gè)順序執(zhí)行,系統(tǒng)會(huì)出現(xiàn)死鎖嗎?合理的推進(jìn)順序:如按曲線①、②和③不會(huì)產(chǎn)生“死鎖”進(jìn)程推進(jìn)順序不當(dāng)①③②DP2Req(S1)P2Req(S2)P1Req(S2)P1Req(S1)P1Rel(S2)P1Rel(S1)P2Rel(S2)P2Rel(S1)DP2P12.產(chǎn)生死鎖的原因3.7.1死鎖的基本概念①③②DP2Req(S1)P2Req(S2)P1Req(S2)P1Req(S1)P1Rel(S2)P1Rel(S1)P2Rel(S2)P2Rel(S1)D不合理的推進(jìn)順序:如曲線④,產(chǎn)生“死鎖”。

④死鎖點(diǎn)區(qū)域D稱為“死鎖區(qū)”P2P1

進(jìn)程推進(jìn)順序不當(dāng)2.產(chǎn)生死鎖的原因死鎖是小概率事件!3.產(chǎn)生死鎖的必要條件互斥條件:請(qǐng)求和保持條件:不剝奪條件:環(huán)路等待條件:資源分配圖

這四個(gè)必要條件中只要有一個(gè)條件不滿足,都不會(huì)形成“死鎖”,又稱為Coffman條件。P1P2R1R2資源請(qǐng)求邊資源分配邊3.7.1死鎖的基本概念3.7進(jìn)程死鎖解釋說明產(chǎn)生死鎖的必要條件有哪些?P1P3P2●R1●R2●●R3是否有存在環(huán)路,但系統(tǒng)卻沒有發(fā)生死鎖的情況?如果有,畫出資源分配圖系統(tǒng)資源分配圖在下列情況下,無法判斷是否處于死鎖狀態(tài)的有():出現(xiàn)了環(huán)路沒有環(huán)路每種資源只有一個(gè),出現(xiàn)了環(huán)路每個(gè)進(jìn)程節(jié)點(diǎn)至少有一條請(qǐng)求邊ABCD提交多選題10分簡(jiǎn)要說明有哪幾種解決方法?每種方法的基本思路是怎樣的?4.處理死鎖的基本方法3.7.1死鎖的基本概念3.7進(jìn)程死鎖預(yù)防死鎖

避免死鎖

檢測(cè)與解除死鎖破壞產(chǎn)生死鎖的4個(gè)必要條件之一避免系統(tǒng)進(jìn)入不安全狀態(tài)允許系統(tǒng)發(fā)生死鎖3.7.1死鎖基本概念什么是死鎖?產(chǎn)生死鎖的原因:競(jìng)爭(zhēng)資源;進(jìn)程推進(jìn)順序非法產(chǎn)生死鎖的必要條件處理死鎖的基本方法本節(jié)知識(shí)小結(jié)哪個(gè)小組來總結(jié)下?課前學(xué)習(xí)中不理解的問題、希望老師重點(diǎn)講解的內(nèi)容有哪些?用彈幕給出1、簡(jiǎn)要分析說明產(chǎn)生死鎖的原因?2、簡(jiǎn)要說明產(chǎn)生死鎖的必要條件?3、資源分配圖是如何繪制的?前期知識(shí)回顧3.7進(jìn)程死鎖3.7進(jìn)程死鎖3.7.2預(yù)防死鎖1.互斥條件可以破壞嗎?2.如何破壞占有且等待條件?你的辦法有何優(yōu)缺點(diǎn)?3.如何破壞不可剝奪條件?你的辦法有何優(yōu)缺點(diǎn)?4.如何破壞環(huán)路等待條件?你的辦法有何優(yōu)缺點(diǎn)?破壞占有且等待條件靜態(tài)分配資源:一次性分配,一次性回收

缺點(diǎn):1)資源利用率低;2)進(jìn)程的運(yùn)行可能被推遲,甚至產(chǎn)生“饑餓”現(xiàn)象;要求進(jìn)程在沒有資源時(shí)才可申請(qǐng)資源:

允許動(dòng)態(tài)申請(qǐng)資源3.7.2預(yù)防死鎖3.7進(jìn)程死鎖有哪些破壞方法?這種方法有什么不好呢?有改進(jìn)辦法嗎?2.破壞不可剝奪條件進(jìn)程申請(qǐng)資源r時(shí),有則分配;若沒有則需釋放其所占有的全部資源后進(jìn)入阻塞狀態(tài)。進(jìn)程申請(qǐng)資源r時(shí),有則分配;若沒有則進(jìn)一步判斷是否能從其他進(jìn)程那里進(jìn)行剝奪;若不能剝奪則進(jìn)入阻塞狀態(tài)。

3.7.2預(yù)防死鎖其他阻塞進(jìn)程3.破壞循環(huán)等待條件:

采用按序分配資源策略:例如:1磁帶機(jī),2掃描儀,3打印機(jī),4繪圖儀,…,P1:申請(qǐng)2申請(qǐng)4…P2:申請(qǐng)2申請(qǐng)4…P3……P10優(yōu)點(diǎn):較之前面兩種方法提高了資源利用率和系統(tǒng)吞吐量。缺點(diǎn):(1)降低了添加新設(shè)備的靈活性;(2)作業(yè)使用資源的順序與系統(tǒng)規(guī)定的申請(qǐng)順序不同時(shí),會(huì)降低資

源的利用率3.7.2預(yù)防死鎖將所有的系統(tǒng)資源按類型進(jìn)行線性排隊(duì),并賦予不同的序號(hào);所有進(jìn)程對(duì)資源的請(qǐng)求應(yīng)嚴(yán)格按資源序號(hào)遞增順序提出。分析下這種方法的性能優(yōu)缺點(diǎn)?一次分配所有資源的方法可以預(yù)防死鎖的發(fā)生,她破壞死鎖4個(gè)必要條件中的()條件?;コ庹加胁⒄?qǐng)求不剝奪循環(huán)等待ABCD提交多選題10分某系統(tǒng)采用如下資源分配策略:若一個(gè)進(jìn)程請(qǐng)求資源得不到滿足,而此時(shí)又沒有因?yàn)榈却Y源而被阻塞的進(jìn)程,則自己被阻塞;若此時(shí)有進(jìn)程因?yàn)榈却Y源被阻塞,則檢查所有的阻塞進(jìn)程,如果它們占有申請(qǐng)進(jìn)程所需要的資源,則剝奪這些資源并分配給申請(qǐng)進(jìn)程。這種策略會(huì)導(dǎo)致()。死鎖回退饑餓ABC提交單選題10分安全狀態(tài)定義

設(shè)系統(tǒng)中有n個(gè)進(jìn)程,若存在一個(gè)進(jìn)程序列<P1,P2,…,Pn>。使得進(jìn)程Pi(i=1,2,…,n)以后還需要的資源可以通過系統(tǒng)現(xiàn)有空閑資源加上所有Pj(j<i)已占有的資源來滿足,則稱此時(shí)系統(tǒng)處于安全狀態(tài),進(jìn)程序列<P1,P2,…,Pn>稱為安全序列,因?yàn)楦鬟M(jìn)程至少可以按照安全序列中的順序依次執(zhí)行完成。

如果系統(tǒng)無法找到這樣一個(gè)安全序列,則稱系統(tǒng)處于不安全狀態(tài)。

1.安全狀態(tài)3.7.3避免死鎖(引導(dǎo)講授)3.7進(jìn)程死鎖安全狀態(tài)之例:

假設(shè)某系統(tǒng)共有15臺(tái)磁帶機(jī)和三個(gè)進(jìn)程P0、P1、P2,各進(jìn)程對(duì)磁帶機(jī)的最大需求數(shù)量、T0時(shí)刻已經(jīng)分配到的磁帶機(jī)數(shù)量、還需要的磁帶機(jī)數(shù)量以及系統(tǒng)剩余的可用磁帶機(jī)數(shù)量如下表所示:P1P0P21.安全狀態(tài)3.7.3避免死鎖3.7進(jìn)程死鎖進(jìn)程最大需求已分配數(shù)量還需要的數(shù)量剩余可用數(shù)量P012664P1523P21037安全序列

由安全狀態(tài)向不安全狀態(tài)的轉(zhuǎn)換如果不按照安全順序分配資源,則系統(tǒng)可能由安全狀態(tài)進(jìn)入不安全狀態(tài)。進(jìn)程最大需求量已分配可用

P01264

P152

P2103

已分配還需要可用66323

46

1.安全狀態(tài)3.7.3避免死鎖3.7進(jìn)程死鎖在T0時(shí)刻P2又申請(qǐng)了1臺(tái)磁帶機(jī),系統(tǒng)能否分配呢?若將剩余4臺(tái)中的一臺(tái)分配給P2

則系統(tǒng)會(huì)進(jìn)入不安全狀態(tài)。以下說法正確的是()死鎖狀態(tài)有可能是安全狀態(tài)安全狀態(tài)有可能成為死鎖狀態(tài)不安全狀態(tài)就是死鎖狀態(tài)死鎖狀態(tài)一定是不安全狀態(tài)ABCD提交單選題10分某時(shí)刻進(jìn)程的資源使用情況如下表,此時(shí)的安全序列是()。P1,P2,P3,P4P1,P3,P2,P4P1,P4,P3,P2不存在ABCD提交單選題10分2.銀行家算法基本思想:

DijkstraE.W于1968年提出銀行家算法

3.7.3避免死鎖3.7進(jìn)程死鎖提出“goto有害論”提出信號(hào)量和PV原語(yǔ)解決了“哲學(xué)家聚餐”問題Dijkstra最短路徑算法和銀行家算法的創(chuàng)造者第一個(gè)Algol60編譯器的設(shè)計(jì)者和實(shí)現(xiàn)者THE操作系統(tǒng)的設(shè)計(jì)者和開發(fā)者圖靈獎(jiǎng)計(jì)算機(jī)科學(xué)教育杰出貢獻(xiàn)獎(jiǎng)ACMPODC最具影響力論文獎(jiǎng)結(jié)構(gòu)程序之父WijingaardenAlgol682.銀行家算法基本思想:

DijkstraE.W于1968年提出銀行家算法:

它的模型基于一個(gè)小城鎮(zhèn)的銀行家:假定一個(gè)銀行家擁有資金,數(shù)量為∑,被N個(gè)客戶共享。銀行家對(duì)客戶提出下列約束條件:每個(gè)客戶必須預(yù)先說明自己所要求的最大資金量;每個(gè)客戶每次提出部分資金量申請(qǐng);如果銀行滿足了某客戶對(duì)資金的最大需求量,那么,客戶在資金運(yùn)作后,應(yīng)在有限時(shí)間內(nèi)全部歸還銀行。3.7.3避免死鎖3.7進(jìn)程死鎖提出“goto有害論”提出信號(hào)量和PV原語(yǔ)解決了“哲學(xué)家聚餐”問題Dijkstra最短路徑算法和銀行家算法的創(chuàng)造者第一個(gè)Algol60編譯器的設(shè)計(jì)者和實(shí)現(xiàn)者THE操作系統(tǒng)的設(shè)計(jì)者和開發(fā)者圖靈獎(jiǎng)計(jì)算機(jī)科學(xué)教育杰出貢獻(xiàn)獎(jiǎng)ACMPODC最具影響力論文獎(jiǎng)結(jié)構(gòu)程序之父WijingaardenAlgol68批判與創(chuàng)新思維堅(jiān)持真理DijkstraE.W3.7.3避免死鎖什么是死鎖?產(chǎn)生死鎖的原因和必要條件是什么?預(yù)防死鎖有哪幾種辦法?各有什么缺點(diǎn)?什么是安全狀態(tài)?前期知識(shí)回顧課前學(xué)習(xí)中不理解的問題、希望老師重點(diǎn)講解的內(nèi)容有哪些?用彈幕給出銀行家算法中的數(shù)據(jù)結(jié)構(gòu)①可利用資源向量Available[m]。其中的每一個(gè)元素代表一類可利用的資源數(shù)目Available[j]=K,則表示系統(tǒng)中現(xiàn)有Rj類資源K個(gè)。②最大需求矩陣Max[1..n,1..m]

該矩陣定義了系統(tǒng)中n個(gè)進(jìn)程對(duì)m類資源的最大需求。Max[i,j]=K,則表示進(jìn)程i需要Rj類資源的最大數(shù)目為K。2.銀行家算法3.7.3避免死鎖3.7進(jìn)程死鎖有哪些數(shù)據(jù)結(jié)構(gòu)?各自的含義是什么?③分配矩陣Allocation[1..n,1..m]

該矩陣表示系統(tǒng)中每個(gè)進(jìn)程當(dāng)前已分配到的每類資源數(shù)量。Allocation[i,j]=K,表示進(jìn)程i當(dāng)前已分得Rj類資源的數(shù)目為K。④需求矩陣Need[1..n,1..m]

該矩陣表示每個(gè)進(jìn)程尚需的各類資源數(shù)。Need[i,j]=K,則表示進(jìn)程i還需要Rj類資源K個(gè),方能完成其任務(wù)。Need[i,j]=Max[i,j]-Allocation[i,j]⑤請(qǐng)求向量Requesti[m];

某進(jìn)程提出的資源請(qǐng)求向量。

銀行家算法中的數(shù)據(jù)結(jié)構(gòu)2、銀行家算法3.7.3避免死鎖當(dāng)進(jìn)程Pi提出資源申請(qǐng)Requesti[m]時(shí),系統(tǒng)執(zhí)行下列步驟:⑴若Request[i]≤Need[i],轉(zhuǎn)⑵;否則錯(cuò)誤返回;⑵若Request[i]≤Available,轉(zhuǎn)⑶;否則,表示尚無足夠資源,Pi須等待;⑶系統(tǒng)嘗試把資源分配給進(jìn)程Pi,并修改以下數(shù)據(jù)結(jié)構(gòu):

Available:=Allocation[i]:=Need[i]:=⑷執(zhí)行安全性算法:檢查此次資源分配后,系統(tǒng)是否處于安全狀態(tài)。若安全,則將資源分配給進(jìn)程Pi,以完成本次分配;否則,將本次的試探分配作廢,恢復(fù)原來的資源分配狀態(tài),讓進(jìn)程Pi等待。Available-Request[i];Allocation[i]+Request[i];Need[i]-Request[i];

銀行家算法描述2、銀行家算法3.7.3避免死鎖需要修改哪些數(shù)據(jù)結(jié)構(gòu)?分別如何修改?①設(shè)置兩個(gè)臨時(shí)向量:

工作向量Work:

表示系統(tǒng)可提供給進(jìn)程繼續(xù)運(yùn)行所需的各類資源數(shù)目,它含有m個(gè)元素,在執(zhí)行安全算法開始時(shí),Work=Available;

Finish[n]:

它表示系統(tǒng)是否有足夠的資源分配給進(jìn)程,使之運(yùn)行完成。開始時(shí)先做Finish[i]=false;當(dāng)有足夠資源分配給進(jìn)程時(shí),再令Finish[i]=true。

安全性算法描述2、銀行家算法3.7.3避免死鎖②從進(jìn)程集合中找到一個(gè)能滿足下述條件的進(jìn)程:

1)Finish[i]=false;2)Need[i,j]≤Work[j];

若找到,執(zhí)行步驟③,否則,執(zhí)行步驟④;③當(dāng)進(jìn)程Pi獲得資源后,可順利執(zhí)行,直至完成,并釋放出分配給它的資源,故應(yīng)執(zhí)行:Work[j]=

Finish[i]=

gotostep②;④如果所有進(jìn)程的Finish[i]=true都滿足,則表示系統(tǒng)處于安全狀態(tài);否則,系統(tǒng)處于不安全狀態(tài)Work[j]+Allocation[i,j];true;安全性算法描述2、銀行家算法3.7.3避免死鎖提出“goto有害論”提出信號(hào)量和PV原語(yǔ)解決了“哲學(xué)家聚餐”問題Dijkstra最短路徑算法和銀行家算法的創(chuàng)造者第一個(gè)Algol60編譯器的設(shè)計(jì)者和實(shí)現(xiàn)者THE操作系統(tǒng)的設(shè)計(jì)者和開發(fā)者圖靈獎(jiǎng)計(jì)算機(jī)科學(xué)教育杰出貢獻(xiàn)獎(jiǎng)ACMPODC最具影響力論文獎(jiǎng)結(jié)構(gòu)程序之父WijingaardenAlgol68批判與創(chuàng)新思維堅(jiān)持真理DijkstraE.W3.7.3避免死鎖什么是死鎖?產(chǎn)生死鎖的原因和必要條件是什么?預(yù)防死鎖有哪幾種辦法?各有什么缺點(diǎn)?什么是安全狀態(tài)?銀行家算法相關(guān)的數(shù)據(jù)結(jié)構(gòu)及含義?銀行間算法的思路是怎樣的?安全性算法的思路是怎樣的?前期知識(shí)回顧課前學(xué)習(xí)中不理解的問題、希望老師重點(diǎn)講解的內(nèi)容有哪些?用彈幕給出例1:

假定系統(tǒng)中有五個(gè)進(jìn)程{P0,P1,P2,P3,P4}和三類資源{A,B,C},各種資源的數(shù)量分別為10、5、7,在T0時(shí)刻的資源分配情況如圖所示。

(1)判斷T0時(shí)刻的安全性;ABCABCABCABCAvailableNeedAllocationMax

進(jìn)程資源010200302211002753322902222433743122600011431332P0P1P2P3P4銀行家算法舉例2、銀行家算法3.7.3避免死鎖同時(shí)滿足兩個(gè)條件的進(jìn)程:1)

Finish[i]=false;2)

Need[i,j]≤Work[j]

WorkNeedAllocationWork+AllocationABCABCABCABC進(jìn)程資源122011431600743332532743745104720021100230201053274374510471057P1P3P4P2P0truetruetruetruetrueFinishABCABCABCABCAvailableNeedAllocationMax

進(jìn)程資源010200302211002753322902222433743122600011431332P0P1P2P3P4由于T0時(shí)刻存在安全序列{P1,P3,

P4,

P2,

P0},故此時(shí)系統(tǒng)是安全的。(1)判斷T0時(shí)刻的安全性;ABCABCABCABCAvailableNeedAllocationMax

進(jìn)程資源情況010200302211002753322902222433743122600011431332P0P1P2P3P4(2)當(dāng)P1請(qǐng)求資源:Request1(1,0,2)時(shí):①Request1(1,0,2)≦Need1(1,2,2)②Request1(1,0,2)≦Available(3,3,2)③試分配資源后,修改數(shù)據(jù)結(jié)構(gòu)。④對(duì)試分配后狀態(tài)進(jìn)行安全性檢查:3,0,20,2,02,3,0銀行家算法舉例大家算一下新狀態(tài)是否安全?如果安全,給出安全序列

WorkNeedAllocationWork+AllocationABCABCABCABC進(jìn)程資源情況020011431600743230532743745104730221100230201053274374510471057P1P3P4P2P0truetruetruetruetrueFinishABCABCABCABCAvailableNeedAllocationMax

進(jìn)程資源情況010302302211002753322902222433743020600011431

230P0P1P2P3P4由于此時(shí)存在安全序列{P1,P3,

P4,

P2,

P0},故系統(tǒng)是安全的,可為P1分配上述資源。ABCABCABCABCAvailableNeedAllocationMax

進(jìn)程資源情況010302302211002753322902222433743020600011431230P0P1P2P3P4(3)當(dāng)P4請(qǐng)求資源:Request4(3,3,0)時(shí):①Request4(3,3,0)≦Need4(4,3,1)成立;②Request4(3,3,0)≦Available(2,3,0)不成立,故讓P4等待。

銀行家算法舉例系統(tǒng)能否滿足P4的請(qǐng)求?為什么?ABCABCABCABCAvailableNeedAllocationMax

進(jìn)程資源010302302211002753322902222433743020600011431230P0P1P2P3P4(4)當(dāng)P0請(qǐng)求資源:Request0(0,2,0)時(shí):①Request0(0,2,0)≦Need0(7,4,3)成立;②Request0(0,2,0)≦Available(2,3,0)成立;③試分配資源后,修改數(shù)據(jù)結(jié)構(gòu)。④對(duì)試分配后的狀態(tài)進(jìn)行安全性檢查:由于Available(2,1,0)已不能滿足任何進(jìn)程的需要,故系統(tǒng)進(jìn)入不安全狀態(tài),所以不能為P0分配資源,而應(yīng)恢復(fù)原來的狀態(tài),讓P0等待。0,3,07,2,32,1,0系統(tǒng)能否滿足P0的請(qǐng)求?為什么?

課堂小組討論:8分鐘在銀行家算法中,某時(shí)刻T出現(xiàn)如表所示資源分配情況。試問:(1)此時(shí)系統(tǒng)狀態(tài)是否安全?若安全,給出安全序列。(2)若P1提出資源請(qǐng)求Request(1,0,2),系統(tǒng)能否進(jìn)行分配?若能,給出安全序列。(3)使用銀行家算法解決死鎖問題時(shí),請(qǐng)分析該算法在實(shí)現(xiàn)中的局限性。

課堂小組討論:(1)系統(tǒng)安全,因?yàn)榇嬖诎踩蛄校≒1,P3,P0,P2,P4),判斷過程略。(2)可以分配,分配后系統(tǒng)仍處于安全狀態(tài),存在安全序列(P1,P3,P2,P0,P4)。(3)銀行家算法的局限性:1)系統(tǒng)中進(jìn)程數(shù)量及資源數(shù)量眾多,而且每當(dāng)進(jìn)程申請(qǐng)資源時(shí)都要運(yùn)行該算法,因此算法本身的運(yùn)行開銷大;2)銀行家算法是按照最嚴(yán)苛的條件判斷安全性的,過于保守,會(huì)降低資源利用率及延遲進(jìn)程推進(jìn)速度;3)銀行家算法在尋找安全序列時(shí)完全沒有考慮進(jìn)程之間的同步關(guān)系:相互協(xié)作進(jìn)程間的前驅(qū)后繼關(guān)系,這在實(shí)際系統(tǒng)中是很不現(xiàn)實(shí)的。1.資源分配圖同類資源有多個(gè)時(shí)的情況3.7進(jìn)程死鎖3.7.4死鎖的檢測(cè)與解除P1P3P2●●R1●●R2●●●R31)只有資源分配邊,無資源請(qǐng)求邊;2)有資源請(qǐng)求邊,系統(tǒng)資源能滿足請(qǐng)求簡(jiǎn)化資源分配圖:

如果資源分配圖能完全簡(jiǎn)化,則系統(tǒng)中沒有死鎖;否則系統(tǒng)存在死鎖。2.死鎖定理

(1)在資源分配圖中,找出一個(gè)既非獨(dú)立又不阻塞的進(jìn)程節(jié)點(diǎn)Pi,如果找到轉(zhuǎn)(2);否則轉(zhuǎn)(3);(2)去掉Pi的所有邊,使其成為一個(gè)獨(dú)立節(jié)點(diǎn),并轉(zhuǎn)(1);(3)判斷是否所有節(jié)點(diǎn)都成為獨(dú)立節(jié)點(diǎn)?如果是,稱為資源分配圖能完全簡(jiǎn)化,系統(tǒng)無死鎖;否則系統(tǒng)存在死鎖。3.7.4死鎖的檢測(cè)與解除P1P3P2●●R1●●R2●●●R3P4圖中哪一個(gè)是既非獨(dú)立又不阻塞的進(jìn)程節(jié)點(diǎn)呢?有死鎖無死鎖例:2.死鎖定理

有沒有死鎖?如果有,哪些進(jìn)程處于死鎖狀態(tài)?

數(shù)據(jù)結(jié)構(gòu):可利用資源向量Available[m];

資源分配矩陣Allocation[n,m];

資源請(qǐng)求矩陣Request[n,m];工作向量Work=Available

finish[n]向量:

若Allocation[i]=0,則finish[i]=True;

否則finish[i]=False

3.死鎖檢測(cè)算法:Coffman算法3.7進(jìn)程死鎖3.7.4死鎖的檢測(cè)與解除算法目標(biāo):1)系統(tǒng)是否出現(xiàn)死鎖2)哪些進(jìn)程導(dǎo)致死鎖發(fā)生3)為解除死鎖做準(zhǔn)備為什么finish的初始值這樣設(shè)置?P4

算法描述:work=available;Finish[i]=False或True;(i=0,1,2,…n-1)①尋找同時(shí)滿足下述條件的進(jìn)程:

Finish[i]=False;Requesti≤Work

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論