什么是死鎖和如何解決死鎖

如果一組進(jìn)程中每一個(gè)進(jìn)程都在等待僅由該組進(jìn)程中的其他進(jìn)程才能引發(fā)的事件,那么該組進(jìn)程是死鎖的。

舉例來(lái)說(shuō):有兩個(gè)進(jìn)程A和B,A持有資源a等待b資源,B持有資源b等待a資源,兩個(gè)進(jìn)程都在等待另一個(gè)資源的同時(shí)不釋放資源,就形成死鎖。

形成死鎖的四個(gè)必要條件:

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

(2) 請(qǐng)求與保持條件:一個(gè)進(jìn)程因請(qǐng)求資源而阻塞時(shí),對(duì)已獲得的資源保持不放。

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

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

處理死鎖的思路如下:

預(yù)防死鎖:破壞四個(gè)必要條件中的一個(gè)或多個(gè)來(lái)預(yù)防死鎖

避免死鎖:在資源動(dòng)態(tài)分配的過(guò)程中,用某種方式防止系統(tǒng)進(jìn)入不安全的狀態(tài)。

檢測(cè)死鎖:運(yùn)行時(shí)產(chǎn)生死鎖,及時(shí)發(fā)現(xiàn)思索,將程序解脫出來(lái)。

解除死鎖:發(fā)生死鎖后,撤銷進(jìn)程,回收資源,分配給正在阻塞狀態(tài)的進(jìn)程。

預(yù)防死鎖的辦法:

破壞請(qǐng)求和保持條件:1.一次性的申請(qǐng)所有資源。之后不在申請(qǐng)資源,如果不滿足資源條件則得不到資源分配。2.只獲得初期資源運(yùn)行,之后將運(yùn)行完的資源釋放,請(qǐng)求新的資源。

破壞不可搶占條件:當(dāng)一個(gè)進(jìn)程獲得某種不可搶占資源,提出新的資源申請(qǐng),若不能滿足,則釋放所有資源,以后需要,再次重新申請(qǐng)。

破壞循環(huán)等待條件:對(duì)資源進(jìn)行排號(hào),按照序號(hào)遞增的順序請(qǐng)求資源。若進(jìn)程獲得序號(hào)高的資源想要獲取序號(hào)低的資源,就需要先釋放序號(hào)高的資源。


死鎖的解除辦法:

1、搶占資源。從一個(gè)或多個(gè)進(jìn)程中搶占足夠數(shù)量的資源,分配給死鎖進(jìn)程,以解除死鎖狀態(tài)。

2、終止(撤銷)進(jìn)程:將一個(gè)或多個(gè)思索進(jìn)程終止(撤銷),直至打破循環(huán)環(huán)路,使系統(tǒng)從死鎖狀態(tài)解脫。



個(gè)人公號(hào):【排骨肉段】,可以關(guān)注一下。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 資源問(wèn)題 在系統(tǒng)中有許多不同類型的資源,其中可以引起死鎖的主要是,需要采用互補(bǔ)訪問(wèn)方式的、不可以被搶占的資源,即臨...
    NoFacePeace閱讀 1,146評(píng)論 0 0
  • 一.死鎖的概念以及產(chǎn)生死鎖的原因 1.死鎖的定義 在多道程序系統(tǒng)中,由于多個(gè)進(jìn)程的并發(fā)執(zhí)行,改善了系統(tǒng)資源的利用率...
    Chasel_H閱讀 1,296評(píng)論 0 4
  • 1、競(jìng)態(tài)條件: 定義:競(jìng)態(tài)條件指的是一種特殊的情況,在這種情況下各個(gè)執(zhí)行單元以一種沒(méi)有邏輯的順序執(zhí)行動(dòng)作,從而導(dǎo)致...
    Hughman閱讀 1,428評(píng)論 0 7
  • 死鎖概念和產(chǎn)生原因 死鎖是指多個(gè)進(jìn)程循環(huán)等待彼此占有的資源而無(wú)限期的僵持等待下去的局面。原因是: 系統(tǒng)提供的資源太...
    heamon7閱讀 10,732評(píng)論 2 9
  • 別離處 煙雨起蒼茫 擊筑聲猶在 易水寒且長(zhǎng) 君遠(yuǎn)去 拔劍刎頸項(xiàng) 不祭蒼天不祭地 血灑淚兩行
    藍(lán)潭星海閱讀 332評(píng)論 1 5

友情鏈接更多精彩內(nèi)容