1. 程式人生 > 其它 >作業系統——程序管理——概念:死鎖

作業系統——程序管理——概念:死鎖

死鎖:
死鎖的原因:
(1) 因為系統資源不足。
(2) 程序執行推進的順序不合適,保證有先後順序。
(3) 資源分配不當等。

死鎖的必要條件.
產生死鎖的四個必要條件:
(1) 互斥條件:一個資源每次只能被一個程序使用。
(2) 請求與保持條件:一個程序因請求資源而阻塞時,對已獲得的資源保持不放。
(3) 不剝奪條件: 程序已獲得的資源,在末使用完之前,不能強行剝奪。
(4) 迴圈等待條件:若干程序之間形成一種頭尾相接的迴圈等待資源關係。存在一個程序等待序列{P1,P2,…,Pn},其中P1等待P2所佔有的某一資源,P2等待P3所佔有的某一 源,……,而Pn等待P1所佔有的的某一資源,形成一個程序迴圈等待環。

解決死鎖的四個方式.
1)忽略該問題。例如鴕鳥演算法,該演算法可以應用在極少發生死鎖的的情況下。為什麼叫鴕鳥演算法呢,(鴕鳥策略)
2)檢測死鎖並且恢復。(檢測與解除策略)
3)仔細地對資源進行動態分配,以避免死鎖。(避免策略)
4)通過破除死鎖四個必要條件之一,來防止死鎖產生。(預防策略)