操作系統(tǒng)原理與Linux實(shí)踐教程(第2版)課件 第38講 死鎖的概念與死鎖防止_第1頁
操作系統(tǒng)原理與Linux實(shí)踐教程(第2版)課件 第38講 死鎖的概念與死鎖防止_第2頁
操作系統(tǒng)原理與Linux實(shí)踐教程(第2版)課件 第38講 死鎖的概念與死鎖防止_第3頁
操作系統(tǒng)原理與Linux實(shí)踐教程(第2版)課件 第38講 死鎖的概念與死鎖防止_第4頁
操作系統(tǒng)原理與Linux實(shí)踐教程(第2版)課件 第38講 死鎖的概念與死鎖防止_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

死鎖的概念與死鎖防止主要內(nèi)容一、死鎖的概念二、死鎖產(chǎn)生的原因三、死鎖產(chǎn)生的必要條件四、死鎖防止一、死鎖的概念如果在一個進(jìn)程集合中的每個進(jìn)程都在等待只能由該集合中的其它進(jìn)程才能引發(fā)的事件,而無限期陷入僵持的局面稱為死鎖。操作系統(tǒng)中的死鎖是指:P1P3P2等待等待等待itemB[k];semaphoreempty;empty=k; //可以使用的空緩沖區(qū)數(shù)semaphorefull;full=0;//緩沖區(qū)內(nèi)可以使用的產(chǎn)品數(shù)semaphoremutex;mutex=1; //互斥信號量intin=0; //寫緩沖區(qū)指針intout=0;//讀緩沖區(qū)指針生產(chǎn)者-消費(fèi)者P操作順序顛倒cobeginprocessproducer_i()//生產(chǎn)者進(jìn)程{while(true){

produce();

P(empty);

P(mutex);

appendtoB[in];

in=(in+1)%k;

V(mutex);

V(full);

}}processconsumer_j()//消費(fèi)者進(jìn)程{

while(true)

{ P(mutex); P(full); take()fromB[out]; out=(out+1)%k; V(mutex); V(empty); consume();

}}coend顛倒并發(fā)進(jìn)程共享變量P1C110mutex.value=mutex.list=0-1full.value=C1full.list=21empty.value=empty.list=produce();//產(chǎn)生’A’P(mutex);P(empty);P(mutex);//阻塞-1P(full);//阻塞P1死鎖如果此時繼續(xù)啟動更多的生產(chǎn)者進(jìn)程和消費(fèi)者進(jìn)程,結(jié)果會怎樣?二、死鎖產(chǎn)生的原因死鎖產(chǎn)生因素系統(tǒng)擁有的資源數(shù)量進(jìn)程對資源的使用要求資源分配策略并發(fā)進(jìn)程的推進(jìn)順序三、死鎖產(chǎn)生的必要條件(1)互斥條件(3)不剝奪條件(2)占有和等待條件(部分分配條件)(4)循環(huán)等待條件(環(huán)路條件)進(jìn)程互斥使用資源,一旦某個資源被占用,欲使用該資源的進(jìn)程必須等待進(jìn)程申請新資源得不到滿足而等待時,不釋放已占有資源(1)互斥條件(3)不剝奪條件(2)占有和等待條件(部分分配條件)(4)循環(huán)等待條件(環(huán)路條件)進(jìn)程所占有的資源不能被剝奪,只能由進(jìn)程自己釋放。存在一組進(jìn)程循環(huán)等待資源的現(xiàn)象前三個條件是死鎖產(chǎn)生的必要條件,不是充分條件。第四個條件是前三個條件同時存在時產(chǎn)生的結(jié)果,只要破壞這四個條件之一,死鎖就可防止。四、死鎖防止死鎖防止通過破壞產(chǎn)生死鎖的四個條件之一來實(shí)現(xiàn)1、破壞互斥條件3、破壞不剝奪條件2、破壞占有和等待條件4、破壞循環(huán)等待條件使資源可同時訪問而不是互斥使用。該辦法對于磁盤、CPU適用,對于磁帶機(jī)、打印機(jī)等多數(shù)資源不僅不能破壞互斥使用條件,還要加以保證。死鎖防止方法1、破壞互斥條件3、破壞不剝奪條件2、破壞占有和等待條件4、破壞循環(huán)等待條件靜態(tài)分配可以破壞占有和等待條件。靜態(tài)分配是指一個進(jìn)程必須在執(zhí)行前就申請它所需要的全部資源,并且直到它所需要的資源都得到滿足后才開始執(zhí)行。資源利用率低。死鎖防止方法1、破壞互斥條件3、破壞不剝奪條件2、破壞占有和等待條件4、破壞循環(huán)等待條件即采用剝奪式調(diào)度方法。當(dāng)進(jìn)程申請的資源不能滿足時,需要收回某些進(jìn)程已經(jīng)獲得的資源,分配給需要該資源的進(jìn)程。剝奪調(diào)度方法目前只適用于內(nèi)存資源和處理器資源。死鎖防止方法1、破壞互斥條件3、破壞不剝奪條件2、破壞占有和等待條件4、破壞循環(huán)等待條件采用層次分配策略可以破壞循環(huán)等待條件。層次分配策略將資源被分成多個層次,進(jìn)程按照由低到高的層次順序申請和得到資源

溫馨提示

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

最新文檔

評論

0/150

提交評論