天天看點

重學作業系統原理系列 - 程序管理(四)六、死鎖檢測與解除

六、死鎖檢測與解除

  • 死鎖檢測
允許死鎖發生,但是作業系統會不斷監視系統進展情況,判斷死鎖是否真的發生。一旦死鎖發生則采取專門的措施,解除死鎖并以最小的代價恢複作業系統運作。
      
  • 檢測時機
1、當程序由于資源請求不滿足而等待時檢測死鎖。這裡缺點是系統開銷較大。
      
2、定時檢測
      
3、系統資源使用率下降時檢測死鎖
      

6.1 一個簡單的死鎖檢測算法

重學作業系統原理系列 - 程式管理(四)六、死鎖檢測與解除

6.2 死鎖的解除

發生死鎖後重要的是以最小的代價恢複系統的運作。方法如下:

  • 撤銷所有死鎖程序,代價較大。
  • 程序回退再啟動,代價也較大
  • 按照某種原則逐一死鎖程序,直到不發生死鎖
  • 按照某種原則逐一搶占資源(資源被搶占的程序必須回退到之前的對應狀态),直到不發生死鎖 。
重學作業系統原理系列 - 程式管理(四)六、死鎖檢測與解除
重學作業系統原理系列 - 程式管理(四)六、死鎖檢測與解除
重學作業系統原理系列 - 程式管理(四)六、死鎖檢測與解除
重學作業系統原理系列 - 程式管理(四)六、死鎖檢測與解除
重學作業系統原理系列 - 程式管理(四)六、死鎖檢測與解除
重學作業系統原理系列 - 程式管理(四)六、死鎖檢測與解除
重學作業系統原理系列 - 程式管理(四)六、死鎖檢測與解除
重學作業系統原理系列 - 程式管理(四)六、死鎖檢測與解除
重學作業系統原理系列 - 程式管理(四)六、死鎖檢測與解除
重學作業系統原理系列 - 程式管理(四)六、死鎖檢測與解除
重學作業系統原理系列 - 程式管理(四)六、死鎖檢測與解除

繼續閱讀