作業系統之死鎖

2021-10-02 10:35:33 字數 975 閱讀 4068

目錄

1.必要條件

2.處理方法

3.鴕鳥策略

4.死鎖檢測與死鎖恢復

(1)每種型別乙個資源的死鎖檢測

(2)每種型別多個資源死鎖檢測​

(3)死鎖恢復

5.死鎖預防

(1)破壞互斥條件

(2)破壞占有和等待條件

(3)破壞不可搶占條件

(4)破壞環路等待

6.死鎖避免

(1)安全狀態

(2)銀行家演算法

主要有以下四種方法:

假裝根本沒有發生。

當發生死鎖時不會對使用者造成多大影響,或發生死鎖的概率很低,可以採用鴕鳥策略。

大多數作業系統,包括 unix,linux 和 windows,處理死鎖問題的辦法僅僅是忽略它。

不試圖阻止死鎖,而是當檢測到死鎖發生時,採取措施進行恢復。

通過檢測有向圖是否存在環來實現,從乙個節點出發進行深度優先搜尋,對訪問過的節點進行標記,如果訪問了已經標記的節點,就表示有向圖存在環,也就是檢測到死鎖的發生。

每個程序最開始時都不被標記,執行過程有可能被標記。當演算法結束時,任何沒有被標記的程序都是死鎖程序。

尋找乙個沒有標記的程序 pi,它所請求的資源小於等於 a。

如果找到了這樣乙個程序,那麼將 c 矩陣的第 i 行向量加到 a 中,標記該程序,並轉回 1。

如果沒有這樣乙個程序,演算法終止。

在程式執行之前預防發生死鎖。

一種實現方式是規定所有程序在開始執行前請求所需要的全部資源。

給資源統一編號,程序只能按編號順序來請求資源。

在程式執行時避免發生死鎖。

定義:如果沒有死鎖發生,並且即使所有程序突然請求對資源的最大需求,也仍然存在某種排程次序能夠使得每乙個程序執行完畢,則稱該狀態是安全的。

安全狀態的檢測與死鎖的檢測類似,因為安全狀態必須要求不能發生死鎖。

如果乙個狀態不是安全的,需要拒絕進入這個狀態

作業系統之死鎖

一組程序中,每個程序都無限等待被該組程序中另一程序所占有的資源,因而永遠無法得到的資源,這種現象稱為程序死鎖,這一組程序就稱為死鎖程序,如果死鎖發生,會浪費大量系統資源,甚至導致系統崩潰。死鎖產生的必要條件 產生死鎖必須同時滿足以下四個條件,只要其中任一條件不成立,死鎖就不會發生。死鎖預防 防止死鎖...

作業系統之死鎖

通俗的講,死鎖是指多個程序因競爭資源而造成的一種僵局 互相等待 無外力作用,這些程序都將無法向前推進。死鎖產生的原因如下 1.系統資源的競爭 2.程序推進順序非法 死鎖產生的必要條件 產生死鎖必須同時滿足以下四個條件,只要其中乙個條件不成立,死鎖就不會發生 1.互斥條件 程序要求對所分配的資源進行排...

作業系統之死鎖

所謂死鎖,是指多個程序在執行過程中因爭奪資源而造成的一種僵局,當程序處於這種僵持狀態時,若無外力作用,它們都將無法再向前推進。因此我們舉個例子來描述,如果此時有乙個執行緒a,按照先鎖a再獲得鎖b的的順序獲得鎖,而在此同時又有另外乙個執行緒b,按照先鎖b再鎖a的順序獲得鎖。a.競爭資源 系統中的資源可...