作業系統之死鎖

2021-08-22 13:19:50 字數 721 閱讀 9323

通俗的講,死鎖是指多個程序因競爭資源而造成的一種僵局(互相等待),無外力作用,這些程序都將無法向前推進。

死鎖產生的原因如下:

1. 系統資源的競爭

2.程序推進順序非法

死鎖產生的必要條件:

產生死鎖必須同時滿足以下四個條件,只要其中乙個條件不成立,死鎖就不會發生

1. 互斥條件:程序要求對所分配的資源進行排他性控制,即在一段時間內某資源僅為乙個程序所占有,此時若有其他程序請求該資源,則請求程序智慧型等待。

2. 不剝奪條件:程序所獲得的資源在未使用完畢之前,不能被其他程序強行奪走,即只能由獲得該資源的程序自己來釋放。

3. 請求和保持條件:又稱為部分分配條件。程序每次申請他所需要的一部分資源,在等待新資源的同時,程序繼續占有已分配到的資源。

死鎖處理策略:

1. 預防死鎖:設定某些限制條件,破壞產生死鎖的四個必要條件乙個或幾個

2. 避免死鎖:在資源的動態分配過程中,用某種方法防止系統進入不安全狀態。銀行家演算法是著名的死鎖避免演算法。

3. 死鎖的檢測與解除:允許系統產生死鎖,然後產生死鎖後檢測死鎖產生,解除死鎖。

解除死鎖方法如下

(1)資源剝奪法

(2)撤銷程序法

(3)程序回退法

作業系統之死鎖

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

作業系統之死鎖

目錄 1.必要條件 2.處理方法 3.鴕鳥策略 4.死鎖檢測與死鎖恢復 1 每種型別乙個資源的死鎖檢測 2 每種型別多個資源死鎖檢測 3 死鎖恢復 5.死鎖預防 1 破壞互斥條件 2 破壞占有和等待條件 3 破壞不可搶占條件 4 破壞環路等待 6.死鎖避免 1 安全狀態 2 銀行家演算法 主要有以下...

作業系統之死鎖

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