作業系統死鎖的必要條件

  作業系統中死鎖產生是需要條件的,這幾個條件缺一不可,是必要條件。下面由小編為大家整理了作業系統的死鎖產生的必要條件相關知識,希望對大家有幫助!

  一、作業系統死鎖產生的必要條件

  產生死鎖的四個必要條件

  -----互斥條件:一個資源每次只能被一個程序***執行緒***使用。

  -----不可剝奪條件:一個程序***執行緒***對已獲得的資源在未使用完畢之前,不能被其他程序強行剝奪,而只能又該程序自願釋放。

  -----請求保持條件條件: 程序***執行緒***每次申請它所需要的一部分資源,在申請新資源的同時繼續佔用已分配的資源。

  -----循壞等待條件: 多個程序***執行緒***之間形成一種頭尾相接的迴圈等待資源關係,即前一個程序佔有後一個程序所請求的資源。

  注:這四個條件是死鎖的必要條件,只要系統發生死鎖,這些條件必然成立,而只要上述條件之 一不滿足,就不會發生死鎖。

  二、參考:解決死鎖的方法

  -----預防死鎖***破壞產生死鎖的條件***

  -----避免死鎖***銀行家演算法***

  -----檢測死鎖***資源分配圖***

  -----解除死鎖

  注:第三條與第四條一般聯合使用

  預防死鎖的策略

  -----破壞互斥條件***SPOOLing***

  ----- 允許剝奪其他程序的資源***破壞不可剝奪條件***

  -----一次性分配所有的資源***破壞請求與保持條件***

  -----有序分配資源***破壞請求與保持條件***

  檢測死鎖的策略

  資源分配圖

  解除死鎖的策略

  -----撤銷程序

  -----撤消陷於死鎖的全部程序

  -----逐個撤消陷於死鎖的程序,直到死鎖不存在

  -----剝奪資源

  -----將陷於死鎖的程序所佔用的資源逐個強迫放棄,直至死鎖消失

  -----從另外一些程序那裡強行剝奪足夠數量的資源分配給死鎖程序,以解除死鎖狀態