1. 程式人生 > >作業系統第三章之死鎖的檢測和

作業系統第三章之死鎖的檢測和

死鎖的檢測與解除

*當系統為程序分配資源時,若未採取任何限制性措施,則系統必須提供檢測和解除死鎖的手段,為此係統必須:
1.儲存有關資源的請求和分配資訊;
2.提供一種演算法,以利用這些資訊來檢測系統是否已進入死鎖狀態。

資源分配圖

系統死鎖可利用資源分配圖來描述。
圓圈表示程序
方框表示一類資源,其中的一個點代表一個該類資源
請求邊由程序指向方框中的資源
分配邊則由方框中的一個點即資源。*
在這裡插入圖片描述

死鎖的檢測

檢測時機:

  • 當程序等待時檢測死鎖
  • 定時檢測
  • 系統資源利用率下降時檢測死鎖

死鎖的解除

當發現程序死鎖時,便應立即把它們從死鎖狀態中解脫出來。常採用的方法是:
剝奪資源。從其他程序剝奪足夠數量的資源給死鎖程序以解除死鎖狀態。
撤銷程序。

最簡單的是讓全部程序都死掉;溫和一點的是按照某種順序逐個撤銷程序,直至有足夠的資源可用,使死鎖狀態消除為止

死鎖處理方法比較

在這裡插入圖片描述