作業系統原理 06 作業管理之死鎖

2021-10-04 17:54:22 字數 950 閱讀 6865

死鎖是指兩個或兩個以上的程序在執行過程 中,由於競爭資源或者由於彼此通訊而造成 的一種阻塞的現象,若無外力作用,它們都 將無法推進下去。此時稱系統處於死鎖狀態 或系統產生了死鎖,這些永遠在互相等待的 程序稱為死鎖程序。

1.競爭資源

◆ 共享資源數量不滿足各個程序需求

◆ 各個程序之間發生資源程序導致死鎖

◆ 等待請求的資源被釋放

◆ 自身占用資源不釋放

2.程序排程順序不當

a→b→c→d

a→d→b→c

3.死鎖的四個必要條件

(1)互斥條件

◆ 程序對資源的使用是排他性的使用

◆ 某資源只能由乙個程序使用,其他程序需要使用只能等待

(2)請求保持條件

◆ 程序至少保持乙個資源,又提出新的資源請求

◆ 新資源被占用,請求被阻塞

◆ 被阻塞的程序不釋放自己保持的資源

(3) 不可剝奪條件

◆ 程序獲得的資源在未完成使用前不能被剝奪

◆ 獲得的資源只能由程序自身釋放

(4) 環路等待條件

◆ 發生死鎖時,必然存在程序-資源環形鏈

預防死鎖的方法

1.摒棄請求保持條件

◆ 系統規定程序執行之前,一次性申請所有需要的資源

◆ 程序在執行期間不會提出資源請求,從而摒棄請求保持條件

2.摒棄不可剝奪條件

◆ 當乙個程序請求新的資源得不到滿足時,必須釋放占有的資源

◆ 程序執行時占有的資源可以被釋放,意味著可以被剝奪

3.摒棄環路等待條件

◆ 可用資源線性排序,申請必須按照需要遞增申請

◆ 線性申請不再形成環路,從而摒棄了環路等待條件

銀行家演算法

◆ 客戶申請的貸款是有限的,每次申請需宣告最大資金量

◆ 銀行家在能夠滿足貸款時,都應該給使用者貸款

◆ 客戶在使用貸款後,能夠及時歸還貸款

作業系統之死鎖

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

作業系統之死鎖

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

作業系統之死鎖

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