作業系統之 死鎖

2021-10-10 08:23:54 字數 831 閱讀 2638

死鎖(deadlock): 指程序之間無休止地互相等待!

飢餓(starvation):指乙個程序無休止地等待!

多個程序因資源競爭而造成的一種僵局,相互等待,若無外力作用,這些程序都將無法向前推進。

競爭資源

資源型別:

程序間推進順序非法

程序通訊使用的信件是一種臨時性資源,如果對信件的傳送和接收不加限制,可能引起死鎖。

死鎖的程序推進順序:

p1: request(s3); release(s1);……

p2: request(s1); release(s2);……

p3: request(s2); release(s3);……

互斥條件

需要保護,不能破壞

請求和保持條件

指程序已經保持了至少乙個資源,但又提出了新的資源請求;而該資源又被其他程序占有;此時請求程序阻塞,但又對自己已獲得的資源保持不放。

不剝奪條件

指程序已獲得的資源,在未使用完之前,不能被剝奪;只能在使用完時由自己釋放迴圈等待

指在發生死鎖時,必然存在乙個「程序—資源」的環形鏈;

消除產生死鎖的必要條件

破壞請求和保持條件

破壞不剝奪條件

破壞迴圈等待條件

申請編號次序

方法:分配資源時防止進入不安全狀態

方法:

優點:

缺點:不預防死鎖,隨時檢測死鎖

策略:出現死鎖就解除

方法:

作業系統之死鎖

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

作業系統之死鎖

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

作業系統之死鎖

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