死鎖

當(dāng)一個進程想要申請資源A,擁有資源B垒玲,而另一個進程想申請資源B陆馁,但是擁有資源A,那么就會產(chǎn)生死鎖合愈。

死鎖的必要條件:

1.互斥叮贩。即資源不能被多個進程所占有。這點其實除了只讀文件想暗,其他基本都滿足妇汗。
2.占有并等待:進程占有一些資源,還需要的一些資源被其他進程占有说莫,所以處在等待狀態(tài)杨箭。
3.非搶占:資源不能被中途搶占。
4.循環(huán)等待:
只要4個條件滿足储狭,則說明必定死鎖互婿。

死鎖處理:

死鎖預(yù)防。

通過不滿足四個必要條件之一辽狈。
(1)互斥:很難不滿足慈参。
(2)占有并等待:第一,可要求進程創(chuàng)建就要申請好全部的資源刮萌;或第二驮配,進程申請資源時要釋放占有的資源。
但是第一種情況會發(fā)生饑餓。因為如果一個進程需要很多很多進程壮锻,這些資源幾乎不會同時有琐旁,則這個進程永遠不會執(zhí)行。
(3)非搶占:如果A進程想要申請資源a猜绣,但是a被B進程占有灰殴,且B進程在等待資源b,則A進程可以搶占B進程的資源a執(zhí)行掰邢。等到B進程得到原本擁有的資源a和申請的b牺陶,則執(zhí)行。 搶占和被搶占
(4)循環(huán)等待:規(guī)定資源被申請的順序辣之,每個進程申請資源的順序被規(guī)定了掰伸。如果需要Rj(j<i)則需要先釋放Ri。

死鎖避免召烂。

前面討論的預(yù)防死鎖的解決方案中包括限制資源的申請碱工,但是這對資源的利用率來說下降太多了。
所以引出了死鎖避免:要求事先得到進程申請資源和擁有的資源的信息 來判定是否值得等待奏夫。

最簡單的方法是事先告訴每個進程對于每個資源類型的最大需求怕篷。從而使得循環(huán)等待不成立
(1)安全狀態(tài):能確定一個進程序列<p1,p2...>酗昼,按照這種順序執(zhí)行進程就不會死鎖(一個結(jié)束一個開始)廊谓。使得當(dāng)Pi申請資源時,申請的資源一定要小于剩余可用資源+pi隊列前面的進程所占有的資源麻削,則稱為安全的蒸痹。因為你想,Pi最多就等的長一點時間呛哟,但是最終還是能行的叠荠。
安全則不會死鎖。不安全不一定會死鎖扫责。
只有資源分配后能安全狀態(tài)榛鼎,才允許申請。

銀行家算法

(1)可利用資源向量Available鳖孤。這是一個含有m個元素的數(shù)組者娱,其中的,每一個元素代表一類可利用的資源數(shù)目苏揣,其初始值是系統(tǒng)中所配置的該類全部可用資源的數(shù)目黄鳍,其數(shù)值隨該類資源的分配和回收而動態(tài)地改變。如果Available[j]=K平匈,則表示系統(tǒng)中現(xiàn)有Rj類資源K個框沟。
(2)最大需求矩陣Max藏古。這是一個nm的矩陣,它定義了系統(tǒng)中n個進程中的每一個進程對m類資源的最大需求忍燥。如果Max[i,j]=K校翔,則表示進程i需要Rj類資源的最大數(shù)目為K。
(3)分配矩陣Allocation灾前。這也是一個n
m的矩陣,它定義了系統(tǒng)中每一類資源當(dāng)前已分配給每一進程的資源數(shù)孟辑。如果Allocation[i,j]=K哎甲,則表示進程i當(dāng)前已分得Rj類資源的數(shù)目為K。
(4)需求矩陣Need饲嗽。這也是一個n*m的矩陣炭玫,用以表示每一個進程尚需的各類資源數(shù)。如果Need[i,j]=K貌虾,則表示進程i還需要Rj類資源K個吞加,方能完成其任務(wù)。

算法描述

設(shè)進程i提出請求Request[j]尽狠,則銀行家算法按如下規(guī)則進行判斷衔憨。
(1) 如果Request[j]≤Need[i,j],則轉(zhuǎn)向(2)袄膏,否則認為出錯践图。
(2) 如果Request[j]≤Available[j],則轉(zhuǎn)向(3)沉馆;否則表示尚無足夠資源码党,Pi需等待。
(3) 假設(shè)進程i的申請已獲批準(zhǔn)斥黑,于是修改系統(tǒng)狀態(tài):

Available[j]=Available[j]-Request[i]
Allocation[i,j]=Allocation[i,j]+Request[j]
Need[i,j]=Need[i,j]-Request[j]
(4) 系統(tǒng)執(zhí)行安全性檢查揖盘,如安全,則分配成立锌奴;否則試探險性分配作廢兽狭,系統(tǒng)恢復(fù)原狀,進程等待缨叫。

2.安全性檢查
(1) 設(shè)置兩個工作向量Work=Available椭符;Finish[i]=False
(2) 從進程集合中找到一個滿足下述條件的進程,
Finish [i]=False耻姥;
Need[i,j]≤Work[j];
如找到销钝,執(zhí)行(3);否則琐簇,執(zhí)行(4)
(3) 設(shè)進程獲得資源蒸健,可順利執(zhí)行座享,直至完成,從而釋放資源似忧。
Work[j]=Work[i]+Allocation[i,j];
Finish[i]=True;
go to step 2;
(4) 如所有的進程Finish[i]=true渣叛,則表示安全;否則系統(tǒng)不安全盯捌。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末淳衙,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子饺著,更是在濱河造成了極大的恐慌箫攀,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件幼衰,死亡現(xiàn)場離奇詭異靴跛,居然都是意外死亡,警方通過查閱死者的電腦和手機渡嚣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門梢睛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人识椰,你說我怎么就攤上這事绝葡。” “怎么了裤唠?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵挤牛,是天一觀的道長。 經(jīng)常有香客問我种蘸,道長墓赴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任航瞭,我火速辦了婚禮诫硕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘刊侯。我一直安慰自己章办,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布滨彻。 她就那樣靜靜地躺著藕届,像睡著了一般。 火紅的嫁衣襯著肌膚如雪亭饵。 梳的紋絲不亂的頭發(fā)上休偶,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機與錄音辜羊,去河邊找鬼踏兜。 笑死词顾,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的碱妆。 我是一名探鬼主播肉盹,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼疹尾!你這毒婦竟也來了上忍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤纳本,失蹤者是張志新(化名)和其女友劉穎睡雇,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體饮醇,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年秕豫,在試婚紗的時候發(fā)現(xiàn)自己被綠了朴艰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡混移,死狀恐怖祠墅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情歌径,我是刑警寧澤毁嗦,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站回铛,受9級特大地震影響狗准,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜茵肃,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一腔长、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧验残,春花似錦捞附、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至氨鹏,卻和暖如春欧募,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背喻犁。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工槽片, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留何缓,地道東北人。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓还栓,卻偏偏與公主長得像碌廓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子剩盒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容