操作系統(tǒng)-modern os6ttt資源可搶占or不可_第1頁
操作系統(tǒng)-modern os6ttt資源可搶占or不可_第2頁
操作系統(tǒng)-modern os6ttt資源可搶占or不可_第3頁
操作系統(tǒng)-modern os6ttt資源可搶占or不可_第4頁
操作系統(tǒng)-modern os6ttt資源可搶占or不可_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第第3資源:可搶占資or不可搶占資死鎖必要條件(NecessaryConditionsfor死鎖預防(Deadlock死鎖避免(Deadlock死鎖檢測(Deadlock死鎖解除(Deadlock

Li資資進程運行可能會需要各種資資源可分可重用資源:如CPU、內(nèi)存、磁盤、I/O設備、件等申請 使用 釋消耗程產(chǎn)需要;如消息、中斷等。創(chuàng)建 獲取 使消耗性資源被使用后就不復存在,所以不需要

Li資資源可分為可搶占資源:如CPU、內(nèi)不可搶占資源:如磁帶機 、掃描儀資源也可以分獨享資源: 、磁帶機可同 資源:如磁

LisemaphoresemaphoremutexA,mutexB=1,1ProcessP();{P(mutexA);usebothresource;V(mutexA);}Process{usebothresource;V(mutexA);}

Li但死鎖還是可能發(fā)生但死鎖還是可能發(fā)生semaphoresemaphoremutexA,mutexB=1,1ProcessP();{P(mutexA);usebothresouV(mutexA);}Process{P(mutexB);usebothresource;V(mutexB);}

Li死鎖控制機Mechanismfor

Li何為如果一個進程在等待一 不會發(fā)生的事件,那么我們這個進程進入了死鎖狀態(tài)通常的情形是一個以上的進程陷入死鎖狀Aprocessisindefini ypostponedifitisdelayedrepeatedlyoveralongperiodoftimewhiletheattentionofthesystemisgiventootherprocesses.I.e.,logicallytheprocessmayproceedbutthesystemnevergivesittheCPU.

Li死鎖的必要條互斥條件(Mutual進程對臨界資源 必須是互斥請求保持(占有等待)條件(Wait-for已經(jīng)得到某些資源的進程繼續(xù)請求新的資不可搶占 )條件(Nopreemption已經(jīng)分配給一個進程的資源不能強制性被搶占(),它只能環(huán)路等待條件(Circularwait死鎖發(fā)生時,系統(tǒng)中一定有由兩個或者兩個以上的進程組成的一條環(huán)路,該環(huán)路中的每個進程都在等待下一個進程所占有的資源。

Li資源分配(ResourceAllocation

Li資源分配(ResourceAllocation競競爭非搶占性資源引起的死

Li資源分配(ResourceAllocation競爭競爭同一類資源產(chǎn)生的死

Li資源分配(ResourceAllocation進程間進程間通信時的死鎖

Li死鎖預設置某些資源使用限制條件,通過破壞死鎖產(chǎn)生的四個必件之一來預防死鎖避在資源動態(tài)分配過程中,用某種方法來防止系統(tǒng)進入不安態(tài)死鎖檢允許系統(tǒng)出現(xiàn)死鎖,但能檢測死鎖的發(fā)生,也能確定與死關的進程和資死鎖恢在檢測到死鎖發(fā)生后,可通過撤銷或掛起相關進程的方法,釋放相應的資源,使系統(tǒng)回到非死鎖狀態(tài)

Li鴕鳥算(TheOstrich發(fā)生死鎖時,系統(tǒng)不做任何事情,通過簡單重啟系統(tǒng)來解決死鎖問題。(就像一只鴕鳥鴕,碰到時,)在個人計算機中基本上都采用鴕鳥算法,其合理性有以下幾點:死鎖預防、死鎖避免、死鎖檢測/解除算法都有較大的系統(tǒng)在個人計算機由于資源的競爭相對不是很激烈,所以發(fā)生死鎖的概率較小,而且發(fā)生死鎖時的影響較小(只會影響當前一個用戶),所以沒有必要采用上述的死鎖解決方案。

Li死鎖預通過破壞死鎖四個必要條件之一來實破壞互斥條利用虛擬技術將臨界資源虛擬成可同時的資源。如采用Spooling技術可以將虛擬成可同時打印多個進程數(shù)破壞請求保持條采用靜態(tài)預分配方案。規(guī)定一個進程只有得到全部資源才能運行,這樣在運行過程中就不會有新的資源請求了。破壞不可搶占條如果一個持有若干資源的進程申請新的資源,在申請不滿足需要等待時,必須釋放當前所持有的所有資破壞環(huán)路等待條所有的資源進 ,進程 順序申請所需要的資源 Li總結死鎖

如何破等待新資源時,釋放當前所

Li死鎖避銀行家算法(Banker每個顧客需告訴銀行其最 需求顧客分若干 直至其最大需顧客最后還貸給銀銀行不是有款就貸 確定 后系統(tǒng)仍處于安全態(tài),才可以顧客 請求安全狀態(tài)(SafeState)-在所有顧客同時提出其最大 順序,按此順序進行不安全狀態(tài)(UnsafeState)-找不到上述的

Li安全狀即使各個進程同時提出各自的最大資源需求申請,系統(tǒng)也存在著一個資源分配序列(也叫安全序列),按照此序列逐個為每個進程分配資源到其最大需求,各進程都能順利推進直至完成,最后釋放它們占有的資源,則我們稱此時系統(tǒng)處于安全狀態(tài)。如果系統(tǒng)處于安全狀態(tài),則一定不會出現(xiàn)死鎖不安全狀態(tài):找不到上述的安全序不是死鎖狀態(tài),也不一定會引起死鎖,但有可能演化為死鎖狀態(tài)。銀行家算法的實質(zhì)是在資源動態(tài)分配中,避免系統(tǒng)進入不安全狀態(tài)。

Li 4422227P1申請1個資5312227能找到一個安全序列(P2,P1,所以T0時刻找不T1時刻系當系統(tǒng)進入不安全狀態(tài)時,就有可能出現(xiàn)死鎖,死

Li銀行銀行家算法中的數(shù)據(jù)可用資源向最大需求矩已分配資源矩需求資源矩 orNeedi=Maxi-資源請求矩工作向量完成布爾向

Li銀行313112132 12 24 333Need2=[2134Al2=[1234Av=[2342Re1=[1101

Li銀行算法描述Rei<=Needi 出錯處Rei<=Av? Av=Av–ReiAli=Ali+ReiNeedi=NeediReiPi等待資or真正得到資源

Li銀行安全性測試(Safetytest令Work=AvFinishFF找到一個Pi,滿足Finish(i)=F;andFinish(i)=T,Work=Work+如果有一個Pj,使得Finish(j)=F,這就意味著在當前資源分配狀態(tài)下,我們不能找到一個安全序列,

Li①T1銀行家算法①T1 07 22001223026002110110024313253274373105120117436043在T1時刻存在一個安全序列(P2,P4,P1,P3,P5),系統(tǒng)前處

Li銀行家算法②T2時刻資源請求:Re2=[102,進程P2可以獲得資源嗎Re2(102)<=Need2(12Re2(102)<=Av(33試探性分配:Av=Av–Re2=[230 Al2=Al2+Re2=[302Need2=Need2Re2020(當前資源分配情況如下圖所示執(zhí)行安全性測試,我們可以找到一個安全(P2,P4,P5,P1,P3)以分配給P2所需資源后,系統(tǒng)仍處于安分配給P2所需資源(實際 07 230302020302600211011002431010743332200122302600211011002431

Li銀行家算法③T3③T3時刻資源請求:Re5=[源嗎Re5(330)<=Need5(4330],進程P5不能滿足:Re5330Av(23當前的可用資源不能滿足P5的資源請求,所以P5必須等 010743230302020302600211011002431

Li銀行家算法④T4時刻的資源請求:Re1=020,進程P1可以獲得資源Re1(020)<=Need1(74Re1(020)<=Av(23Av=Av–Re1=[210 Al1=Al1+Re1=[030Need1=Need1Re1=[723(當前資源分配情況如下圖所示進程P1的資源請求不能滿足,P11100100332002212706044201330011 gSystems Li死鎖檢利用資源分配圖描述系進程能否順利推or 進資源分配圖的化死鎖定系統(tǒng)中某個時刻S為死鎖狀態(tài)的充分必要條件是,S時刻系統(tǒng)資源圖是非完全可化利用該定理,可以通過某種算法來實現(xiàn)資源分配圖的化簡,并以此為依據(jù)檢測系統(tǒng)中是否存在死鎖以及哪些進程是死鎖的。 Li死鎖檢

Li死鎖檢有環(huán)路但無死有環(huán)路但無死鎖發(fā)(資源圖可完全化簡

Li死鎖檢有有死

Li死鎖檢化化(資源圖非完全可化簡

Li請求矩陣 分配矩陣可利用資源向量工作向量進程向量311 2 2 213 3 24 3 3Av=[2342Re2=[2134 Al2=[1234

LiIfAli=[0,0,…,0]&Rei=[0,0,…,0](i=1to PutPiToIfRei<=WorkLetAli=[0,0,…,0],Rei=[0,0,…,

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論