什么是死鎖?如何避免死鎖否过?

所謂死鎖:是指兩個(gè)或兩個(gè)以上的進(jìn)程在執(zhí)行過程中午笛,因爭奪資源而造成的一種互相等待的現(xiàn)象惭蟋,若無外力作用,它們都將無法推進(jìn)下去药磺。此時(shí)稱系統(tǒng)處于死鎖狀態(tài)或系統(tǒng)產(chǎn)生了死鎖告组,這些永遠(yuǎn)在互相等待的進(jìn)程稱為死鎖進(jìn)程。由于資源占用是互斥的癌佩,當(dāng)某個(gè)進(jìn)程提出申請資源后木缝,使得有關(guān)進(jìn)程在無外力協(xié)助下,永遠(yuǎn)分配不到必需的資源而無法繼續(xù)運(yùn)行围辙,這就產(chǎn)生了一種特殊現(xiàn)象死鎖我碟。

雖然進(jìn)程在運(yùn)行過程中,可能發(fā)生死鎖酌畜,但死鎖的發(fā)生也必須具備一定的條件怎囚,死鎖的發(fā)生必須具備以下四個(gè)必要條件。

1)互斥條件:指進(jìn)程對所分配到的資源進(jìn)行排它性使用桥胞,即在一段時(shí)間內(nèi)某資源只由一個(gè)進(jìn)程占用恳守。如果此時(shí)還有其它進(jìn)程請求資源,則請求者只能等待贩虾,直至占有資源的進(jìn)程用畢釋放催烘。

2)請求和保持條件:指進(jìn)程已經(jīng)保持至少一個(gè)資源,但又提出了新的資源請求缎罢,而該資源已被其它進(jìn)程占有伊群,此時(shí)請求進(jìn)程阻塞,但又對自己已獲得的其它資源保持不放策精。

3)不剝奪條件:指進(jìn)程已獲得的資源舰始,在未使用完之前,不能被剝奪咽袜,只能在使用完時(shí)由自己釋放丸卷。

4)環(huán)路等待條件:指在發(fā)生死鎖時(shí),必然存在一個(gè)進(jìn)程——資源的環(huán)形鏈询刹,即進(jìn)程集合{P0谜嫉,P1,P2凹联,···沐兰,Pn}中的P0正在等待一個(gè)P1占用的資源;P1正在等待P2占用的資源蔽挠,……住闯,Pn正在等待已被P0占用的資源。

在系統(tǒng)中已經(jīng)出現(xiàn)死鎖后,應(yīng)該及時(shí)檢測到死鎖的發(fā)生寞秃,并采取適當(dāng)?shù)拇胧﹣斫獬梨i定庵。目前處理死鎖的方法可歸結(jié)為以下四種:

  1. 預(yù)防死鎖饭尝。

這是一種較簡單和直觀的事先預(yù)防的方法昼汗。方法是通過設(shè)置某些限制條件尸诽,去破壞產(chǎn)生死鎖的四個(gè)必要條件中的一個(gè)或者幾個(gè),來預(yù)防發(fā)生死鎖绑改。預(yù)防死鎖是一種較易實(shí)現(xiàn)的方法谢床,已被廣泛使用。但是由于所施加的限制條件往往太嚴(yán)格厘线,可能會導(dǎo)致系統(tǒng)資源利用率和系統(tǒng)吞吐量降低识腿。

  1. 避免死鎖。

該方法同樣是屬于事先預(yù)防的策略造壮,但它并不須事先采取各種限制措施去破壞產(chǎn)生死鎖的的四個(gè)必要條件渡讼,而是在資源的動態(tài)分配過程中,用某種方法去防止系統(tǒng)進(jìn)入不安全狀態(tài)耳璧,從而避免發(fā)生死鎖成箫。

3)檢測死鎖。

這種方法并不須事先采取任何限制性措施旨枯,也不必檢查系統(tǒng)是否已經(jīng)進(jìn)入不安全區(qū)蹬昌,此方法允許系統(tǒng)在運(yùn)行過程中發(fā)生死鎖。但可通過系統(tǒng)所設(shè)置的檢測機(jī)構(gòu)攀隔,及時(shí)地檢測出死鎖的發(fā)生皂贩,并精確地確定與死鎖有關(guān)的進(jìn)程和資源,然后采取適當(dāng)措施昆汹,從系統(tǒng)中將已發(fā)生的死鎖清除掉明刷。

4)解除死鎖。

這是與檢測死鎖相配套的一種措施满粗。當(dāng)檢測到系統(tǒng)中已發(fā)生死鎖時(shí)遮精,須將進(jìn)程從死鎖狀態(tài)中解脫出來。常用的實(shí)施方法是撤銷或掛起一些進(jìn)程败潦,以便回收一些資源,再將這些資源分配給已處于阻塞狀態(tài)的進(jìn)程准脂,使之轉(zhuǎn)為就緒狀態(tài)劫扒,以繼續(xù)運(yùn)行。死鎖的檢測和解除措施狸膏,有可能使系統(tǒng)獲得較好的資源利用率和吞吐量沟饥,但在實(shí)現(xiàn)上難度也最大。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市贤旷,隨后出現(xiàn)的幾起案子广料,更是在濱河造成了極大的恐慌,老刑警劉巖幼驶,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艾杏,死亡現(xiàn)場離奇詭異,居然都是意外死亡盅藻,警方通過查閱死者的電腦和手機(jī)购桑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來氏淑,“玉大人勃蜘,你說我怎么就攤上這事〖俨校” “怎么了缭贡?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長辉懒。 經(jīng)常有香客問我阳惹,道長,這世上最難降的妖魔是什么耗帕? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任穆端,我火速辦了婚禮,結(jié)果婚禮上仿便,老公的妹妹穿的比我還像新娘体啰。我一直安慰自己,他們只是感情好嗽仪,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布荒勇。 她就那樣靜靜地躺著,像睡著了一般闻坚。 火紅的嫁衣襯著肌膚如雪沽翔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天窿凤,我揣著相機(jī)與錄音仅偎,去河邊找鬼。 笑死雳殊,一個(gè)胖子當(dāng)著我的面吹牛橘沥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播夯秃,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼座咆,長吁一口氣:“原來是場噩夢啊……” “哼痢艺!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起介陶,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤堤舒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后哺呜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舌缤,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年弦牡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了友驮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡驾锰,死狀恐怖卸留,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情椭豫,我是刑警寧澤耻瑟,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站赏酥,受9級特大地震影響喳整,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜裸扶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一框都、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧呵晨,春花似錦魏保、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至季二,卻和暖如春檩咱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背胯舷。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工刻蚯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人桑嘶。 一個(gè)月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓炊汹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親不翩。 傳聞我的和親對象是個(gè)殘疾皇子兵扬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345

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

  • 死鎖是指兩個(gè)或兩個(gè)以上的進(jìn)程在執(zhí)行過程中器钟,因爭奪資源而造成的一種互相等待的現(xiàn)象,若無外力作用妙蔗,它們都將無法推進(jìn)下去...
    MrWater_7b29閱讀 1,262評論 0 1
  • 1傲霸、競態(tài)條件: 定義:競態(tài)條件指的是一種特殊的情況,在這種情況下各個(gè)執(zhí)行單元以一種沒有邏輯的順序執(zhí)行動作眉反,從而導(dǎo)致...
    Hughman閱讀 1,283評論 0 7
  • 又來到了一個(gè)老生常談的問題昙啄,應(yīng)用層軟件開發(fā)的程序員要不要了解和深入學(xué)習(xí)操作系統(tǒng)呢? 今天就這個(gè)問題開始寸五,來談?wù)劜?..
    tangsl閱讀 4,088評論 0 23
  • 總有那么一段時(shí)間梳凛,一貫高傲、堅(jiān)強(qiáng)的自己竟會如此的脆弱梳杏,一向理性韧拒、堅(jiān)韌的自己卻會這般茫錯,一直自信十性、冷靜的...
    鈴楓閱讀 169評論 0 0
  • LBS的應(yīng)用在生活中已經(jīng)非常常見叛溢,我們打車,叫外賣劲适,查個(gè)地圖之類的都會查詢附近的相關(guān)坐標(biāo)位置楷掉,mongodb提供了...
    whthomas閱讀 2,907評論 1 3