作業系統 第三章 4 死鎖
阿新 • • 發佈:2018-11-25
1、死鎖(Deadlock):
指多個程序在執行過程中,因爭奪資源而造成的一種僵局。當程序處於這種狀態時,若無外力作用,它們都將無法再向前推進。
死鎖 : 指程序之間無休止地互相等待!
飢餓 :指一個程序無休止地等待!
2、產生死鎖的原因
- 競爭資源
- 程序間推進順序非法
3、產生死鎖的必要條件 (四個條件都具備就會死鎖,缺一就不會死鎖)
- 互斥條件
- 請求和保持條件
- 不剝奪條件
- 環路等待條件
4、處理死鎖的基本方法:
1)事先預防:預防死鎖、避免死鎖
2)事後處理: 檢測死鎖、解除死鎖
5、預防死鎖的方法:
- 摒棄“請求和保持”條件
- 摒棄“不剝奪”條件: 允許程序先執行,但當提出的新要求不被滿足時必須釋放它已保持的所有資源,待以後需要時再重新申請。
- 摒棄“環路等待”條件
6、避免死鎖:
只要使系統始終處於安全狀態,便可避免發生死鎖。
安全狀態:系統能按某種程序順序為每個程序分配所需資源,直至滿足每個程序對資源的最大需求,並能順利完成。
不安全狀態:系統無法找到一種使多個程序能夠順利分配資源執行完的安全序列。
不是所有的不安全狀態都是死鎖狀態
7、死鎖處理方法比較: