多個程序併發執行
多個程序掙資源造成的相互等待
產生的原因
(1)系統資源的爭搶
不可剝奪資源的競爭
(2)程序推進順序非法
競爭同一資源
等待對方資源
(3)產生的必要條件
互斥條件
不可剝奪條件(只能主動釋放)
請求並保持條件
迴圈等待條件
處理策略
破壞產生死鎖的四個必要條件
允許死鎖產生,發生的時候能檢測到,並能恢復
1、死鎖預防
2、避免死鎖
3、死鎖的檢測
三種策略
(1)資源配置
(2)各種可能模式
(3)主要優點
(4)主要缺點
死鎖預防
1、破壞互斥條件
印表機只能互斥使用
有時應保護這種互斥性
2、破壞不剝奪條件
占有的資源會被暫時釋放,或者說被剝奪
用於狀態易儲存和恢復的資源
3、破壞請求並保持條件
資源未滿足之前,不投入執行
資源一旦歸他所有,不再提出請求
4、破壞等待條件
按順序資源分配
死鎖避免
在動態分配過程中
防止系統進入不安全狀態
1、系統安全狀態
不安全狀態,可能進入死鎖
處於安全狀態,可避免死鎖
2、銀行家演算法
先測試已佔資源+申請資源是否超過最大需求量
若超過,拒絕分配
若未超過,測試是否滿足程序測試能否滿足最大資源量
若滿足,按當前申請量分配資源,否則要推遲
(1)資料結構描述
可利用資源向量
最大需求矩陣
分配矩陣
需求矩陣
(2)銀行家演算法描述
(3)安全性演算法
3、安全性演算法舉例
4、銀行家演算法舉例
安全性演算法是銀行家演算法的核心
死鎖檢測與排除
若系統為程序分配資源時不採用任何措施
應提供死鎖檢測和解除措施
1、資源分配圖
2、死鎖定理
判斷資源是否有空間,用它的資源數-資源分配圖中的出度
s為死鎖的條件
當僅當s狀態的資源分配圖是
不可完全簡化 死鎖定理
死鎖解除
1、資源剝奪法
2、撤銷程序法
程序優先順序,撤銷程序代價高低
3、程序回退法
自願釋放,而非剝奪
設定還原點
作業系統 死鎖 筆記
互斥條件 必須至少有乙個資源以非共享的方式被程序持有 更確切的說,同時只有乙個程序可以使用該資源。如果另乙個程序請求這個資源,那麼該程序必須等待這個資源被釋放。持有並等待條件 程序必須持有至少乙個資源且等待獲取另外的當前被其它程序持有的資源。不可搶占條件 不可以搶占資源 也就是說,資源的釋放只可以是...
作業系統死鎖
作業系統死鎖,在作業系統課程當中屬於比較關注的乙個知識點,在這裡做個簡單的梳理。死鎖的四個必要條件 作業系統中有若干程序併發執行,它們不斷申請 使用 釋放系統資源,雖然系統的進 程協調 通訊機構會對它們進行控制,但也可能出現若干程序都相互等待對方釋放資源才能 繼續執行,否則就阻塞的情況。此時,若不借...
作業系統 死鎖
多執行緒以及多程序改善了系統資源的利用率並提高了系統 的處理能力。然而,併發執行也帶來了新的問題 死鎖。死鎖是指多個程序在執行過程中因爭奪資源而造成的一種僵局,當前程序處於這種狀態時,若無外力作用,它們都將無法再向前推進。關於死鎖的一些結論 競爭資源 當系統中供多個程序共享的資源如印表機 公用佇列等...