死鎖預(yù)防

應(yīng)用的比較多的是死鎖的檢測和預(yù)防,死鎖產(chǎn)生的有下列四個條件:

1悟泵、互斥

2、占有且等待

3闪水、不可搶占

4糕非、環(huán)路等待

這四個條件都是死鎖發(fā)生所必須的條件,只要破壞這其中的某一個條件就行了

操作系統(tǒng)中有若干進(jìn)程并發(fā)執(zhí)行球榆, 它們不斷申請朽肥、使用、釋放系統(tǒng)資源持钉,雖然系統(tǒng)的進(jìn)

程協(xié)調(diào)衡招、通信機構(gòu)會對它們進(jìn)行控制,但也可能出現(xiàn)若干進(jìn)程都相互等待對方釋放資源才能

繼續(xù)運行每强,否則就阻塞的情況始腾。此時,若不借助外界因素空执, 誰也不能釋放資源浪箭, 誰也不能解

除阻塞狀態(tài)。根據(jù)這樣的情況脆烟,操作系統(tǒng)中的死鎖被定義為系統(tǒng)中兩個或者多個進(jìn)程無限期

地等待永遠(yuǎn)不會發(fā)生的條件山林,系統(tǒng)處于停滯狀態(tài),這就是死鎖邢羔。

產(chǎn)生死鎖的原因主要是:

(1) 因為系統(tǒng)資源不足。

(2) 進(jìn)程運行推進(jìn)的順序不合適桑孩。

(3) 資源分配不當(dāng)?shù)取?br>

如果系統(tǒng)資源充足拜鹤, 進(jìn)程的資源請求都能夠得到滿足,死鎖出現(xiàn)的可能性就很低流椒, 否則

就會因爭奪有限的資源而陷入死鎖敏簿。其次,進(jìn)程運行推進(jìn)順序與速度不同宣虾,也可能產(chǎn)生死鎖惯裕。

產(chǎn)生死鎖的四個必要條件:

(1) 互斥條件:一個資源每次只能被一個進(jìn)程使用。

(2) 請求與保持條件:一個進(jìn)程因請求資源而阻塞時绣硝,對已獲得的資源保持不放蜻势。

(3) 不剝奪條件:進(jìn)程已獲得的資源,在末使用完之前鹉胖,不能強行剝奪握玛。

(4) 循環(huán)等待條件:若干進(jìn)程之間形成一種頭尾相接的循環(huán)等待資源關(guān)系够傍。

這四個條件是死鎖的必要條件, 只要系統(tǒng)發(fā)生死鎖挠铲, 這些條件必然成立冕屯, 而只要上述條件之

一不滿足,就不會發(fā)生死鎖拂苹。

死鎖的解除與預(yù)防:

理解了死鎖的原因安聘, 尤其是產(chǎn)生死鎖的四個必要條件,就可以最大可能地避免瓢棒、預(yù)防和

解除死鎖浴韭。所以, 在系統(tǒng)設(shè)計音羞、進(jìn)程調(diào)度等方面注意如何不讓這四個必要條件成立囱桨, 如何確

定資源的合理分配算法, 避免進(jìn)程永久占據(jù)系統(tǒng)資源嗅绰。此外舍肠, 也要防止進(jìn)程在處于等待狀態(tài)

1/3頁

的情況下占用資源。因此窘面,對資源的分配要給予合理的規(guī)劃翠语。

死鎖的防止方法:如果有死鎖形成,則4個必要條件一定同時成立财边,于是肌括,只要采用的資源分配策略能使其中之一不成立,則就能防止死鎖的發(fā)生酣难。

(1)互斥條件

要使互斥使用資源的條件不成立谍夭,唯一的資源分配策略是允許進(jìn)程共享資源。

如“只讀文件”是一種很好的共享資源憨募。

要破壞“互斥使用資源”的條件經(jīng)常是行不通的紧索。如:打印機不能被多個進(jìn)程共享。對可共享的磁盤來說菜谣,任何時刻也只允許一個進(jìn)程啟動它珠漂。

(2)占有并等待條件

要是占有并等待資源的條件不成立,經(jīng)常使用兩種資源分配策略:靜態(tài)分配資源和釋放已占資源尾膊。

靜態(tài)分配資源策略(也稱為預(yù)分配資源)——要求每個進(jìn)程在開始執(zhí)行前就申請它所需要的全部資源媳危,僅當(dāng)系統(tǒng)能滿足進(jìn)程的資源申請要求且把資源分配給進(jìn)程后,該進(jìn)程才能開始執(zhí)行冈敛。

特點:靜態(tài)分配資源的策略實現(xiàn)簡單待笑,但降低了資源的利用率。

釋放已占資源策略——這種分配策略是僅當(dāng)進(jìn)程沒有占有資源時才允許它去申請資源莺债。如果進(jìn)程已占用了某些資源而又要再申請資源滋觉,則它應(yīng)先歸還所占的資源后再申請新資源签夭。

特點:仍會使進(jìn)程處于等待資源狀態(tài),但不會出現(xiàn)占有了部分資源再等待其它資源的現(xiàn)象椎侠。

(3)可搶奪條件

搶占式資源分配策略:要使不可搶占其它進(jìn)程占有的資源不成立第租,可以約定如下:如果一個進(jìn)程已經(jīng)占有了某些資源又要申請新資源,而新資源不能滿足必須等待時我纪,系統(tǒng)可以

2/3頁

搶奪該進(jìn)程已有的資源慎宾。具體做法如下:

一個進(jìn)程申請的資源尚未被占用,則系統(tǒng)可把資源分配給該進(jìn)程浅悉。

若進(jìn)程A申請的資源R已被進(jìn)程B占用趟据,則查看進(jìn)程B的狀態(tài)。如果進(jìn)程B處于等待另一個資源的狀態(tài)术健,那么就搶奪進(jìn)程B已占的資源R并把R分配給進(jìn)程A;如果進(jìn)程B不是處于等待資源狀態(tài)汹碱,則讓進(jìn)程A處于等待資源R的狀態(tài)。

一個等待資源的進(jìn)程只有再得到自己申請的新資源和所有被搶奪的老資源后才能繼續(xù)執(zhí)行荞估。

這種可搶奪的資源分配策略不是對所有資源都適用的咳促,它只適合于主存和處理器。

例如:對打印機勘伺、磁帶機等就不能采用搶奪的方式跪腹,否則會造成混亂。

(4)循環(huán)等待條件

按序分配資源——要使循環(huán)等待條件不成立可采用按序分配的資源分配策略飞醉。具體做法是把系統(tǒng)中所有資源排序冲茸,對每個資源確定一個編號,規(guī)定任何一個進(jìn)程申請兩個以上的資源時缅帘,總是先申請編號最小的資源轴术,再申請編號大的資源。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末钦无,一起剝皮案震驚了整個濱河市膳音,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌铃诬,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件苍凛,死亡現(xiàn)場離奇詭異趣席,居然都是意外死亡,警方通過查閱死者的電腦和手機醇蝴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進(jìn)店門宣肚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人悠栓,你說我怎么就攤上這事霉涨“醇郏” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵笙瑟,是天一觀的道長楼镐。 經(jīng)常有香客問我,道長往枷,這世上最難降的妖魔是什么框产? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮错洁,結(jié)果婚禮上秉宿,老公的妹妹穿的比我還像新娘。我一直安慰自己屯碴,他們只是感情好描睦,可當(dāng)我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著导而,像睡著了一般忱叭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嗡载,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天窑多,我揣著相機與錄音,去河邊找鬼洼滚。 笑死埂息,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的遥巴。 我是一名探鬼主播千康,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼铲掐!你這毒婦竟也來了拾弃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤摆霉,失蹤者是張志新(化名)和其女友劉穎豪椿,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體携栋,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡搭盾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了婉支。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸯隅。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖向挖,靈堂內(nèi)的尸體忽然破棺而出蝌以,到底是詐尸還是另有隱情炕舵,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布跟畅,位于F島的核電站咽筋,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏碍彭。R本人自食惡果不足惜晤硕,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望庇忌。 院中可真熱鬧舞箍,春花似錦、人聲如沸皆疹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽略就。三九已至捎迫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間表牢,已是汗流浹背窄绒。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留崔兴,地道東北人彰导。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像敲茄,于是被迫代替她去往敵國和親位谋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,969評論 2 355

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

  • 死鎖預(yù)防 預(yù)防死鎖的方法是破壞死鎖必要條件中的一個堰燎。由于互斥條件是由設(shè)備的固有特性決定的掏父,如打印機等臨界資源只能互...
    saviochen閱讀 641評論 0 4
  • 參考http://blog.sina.com.cn/s/blog_5e3604840100ddgq.html de...
    魚仔_1625閱讀 271評論 0 0
  • 死鎖的概念 死鎖的定義 在多道程序系統(tǒng)中,由于多個進(jìn)程的并發(fā)執(zhí)行秆剪,改善了系統(tǒng)資源的利用率并提高了系統(tǒng)的處理能力赊淑。然...
    CodeKing2017閱讀 1,446評論 0 4
  • 一.死鎖的概念以及產(chǎn)生死鎖的原因 1.死鎖的定義 在多道程序系統(tǒng)中,由于多個進(jìn)程的并發(fā)執(zhí)行仅讽,改善了系統(tǒng)資源的利用率...
    Chasel_H閱讀 1,098評論 0 4
  • 你選擇放棄膏燃,別人未必離開。 你選擇背棄何什,別人沒有理由安慰。 你選擇后退等龙,就無法阻止別人前進(jìn)处渣。 你選擇隱藏伶贰,別人依舊...
    豫視西影閱讀 307評論 0 0