死鎖

出現(xiàn)死鎖的必要條件
  • 互斥:任何時刻只能有一個進(jìn)程使用一個資源實例
  • 持有并等待:進(jìn)程保持至少一個資源,并正在等等獲取其他進(jìn)程持有的資源
  • 非搶占:資源只能在進(jìn)程使用后自愿釋放
  • 循環(huán)等待:出現(xiàn)環(huán)形等待
死鎖的處理方法
  • ** 死鎖預(yù)防:確保系統(tǒng)永遠(yuǎn)不會進(jìn)入死鎖狀態(tài)**

預(yù)防是采用某種策略,限制并發(fā)進(jìn)程對資源的請求,使系統(tǒng)在任何時刻都不滿足死鎖的必要條件

a. 互斥:

  • 把互斥的共享資源封裝為可同時訪問

b. 持有并等待:

  • 進(jìn)程請求資源時,要求它不持有任何其他資源
  • 僅允許進(jìn)程在開始執(zhí)行時,一次請求所有需要的資源
  • 資源利用率低

c. 非搶占

  • 如進(jìn)程請求不能立即分配的資源,則釋放已占有資源
  • 只在能夠同時獲得所有需要資源時,才執(zhí)行分配操作

d. 循環(huán)等待

  • 對資源排序,要求進(jìn)程按順序請求資源

  • 死鎖避免:在使用前進(jìn)行判斷,只允許不會出現(xiàn)死鎖的進(jìn)程請求資源

利用額外的先驗信息,在分配資源時判斷是否會出現(xiàn)死鎖,只在不會死鎖時分配資源

  • a.要求進(jìn)程聲明需要資源的最大數(shù)目

  • b. 限定提供與分配的資源數(shù)量,確保滿足進(jìn)程的最大需求

  • c. 動態(tài)檢查資源分配狀態(tài),確保不會出現(xiàn)環(huán)形等待

  • 死鎖檢測和恢復(fù):在檢測到運(yùn)行系統(tǒng)進(jìn)入死鎖狀態(tài)后,進(jìn)行恢復(fù)

  • 通常操作系統(tǒng)會忽略死鎖

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 1、競態(tài)條件: 定義:競態(tài)條件指的是一種特殊的情況,在這種情況下各個執(zhí)行單元以一種沒有邏輯的順序執(zhí)行動作,從而導(dǎo)致...
    Hughman閱讀 1,326評論 0 7
  • 20.1死鎖概念 由于競爭資源或者通信關(guān)系,兩個或更多線程在執(zhí)行中出現(xiàn),永遠(yuǎn)相互等待只能由其他進(jìn)程引發(fā)的事件 進(jìn)程...
    龜龜51閱讀 656評論 0 1
  • 死鎖產(chǎn)生的原因和解鎖的方法 產(chǎn)生死鎖的四個必要條件: (1) 互斥條件:一個資源每次只能被一個進(jìn)程使用。 (2) ...
    憩在河岸上的魚丶閱讀 1,494評論 0 4
  • 資源問題 在系統(tǒng)中有許多不同類型的資源,其中可以引起死鎖的主要是,需要采用互補(bǔ)訪問方式的、不可以被搶占的資源,即臨...
    NoFacePeace閱讀 1,113評論 0 0
  • 年輕的資本在于荷爾蒙和來自書本世界的羅曼蒂克。 今天分享個小故事,就像隨風(fēng)逝去的青春一般,我們老去的時候,有過往回...
    有心知心閱讀 294評論 1 1