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