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

6.2 死鎖的解除
發生死鎖後重要的是以最小的代價恢複系統的運作。方法如下:
- 撤銷所有死鎖程序,代價較大。
- 程序回退再啟動,代價也較大
- 按照某種原則逐一死鎖程序,直到不發生死鎖
- 按照某種原則逐一搶占資源(資源被搶占的程序必須回退到之前的對應狀态),直到不發生死鎖 。