操作系统(二十九)预防死锁
生活随笔
收集整理的這篇文章主要介紹了
操作系统(二十九)预防死锁
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2.4.2 預防死鎖
? ?預防死鎖的就破壞死鎖產生的四個條件中的任意一個條件。
目錄
2.4.2 預防死鎖
2.4.2.1 破壞互斥條件
2.4.2.2 破壞不剝奪條件
2.4.2.3?破壞請求和保持條件
2.4.2.4 破壞循環等待條件
2.4.2.1 破壞互斥條件
? 互斥條件:只有對互斥資源的爭搶才有可能產生死鎖。
??如果把只能互斥使用的資源改造為允許共享使用,則系統不會進入死鎖狀態。其實我們并不能從這個地方入手,因為有些資源因為安全性問題是必須互斥訪問的,所以一般不會提這方面。
2.4.2.2 破壞不剝奪條件
? 不剝奪條件:進程所獲得的資源在未使用完之前,不能由其他進程強行奪走,只能主動釋放。
??在采用這種方法時系統規定,進程是逐個地提出對資源的要求的。當一個已經保持了某些資源的進程,再提出新的資源請求而不能立即得到滿足時,必須釋放它已經保持了的所有資源,待以后需要時再重新申請。這意味著某一進程已經占有的資源,在運行過程中會被暫時地釋放掉,也可認為是被剝奪了,從而摒棄了“不剝奪”條件。
2.4.2.3?破壞請求和保持條件
? 請求和保持條件:進程已經保持了至少一個資源,但又提出了新的資源請求,而該資源又被其他進程占有,此時請求進程被阻塞,但又對自己已有的資源保持不放。 ? 采用靜態分配方法,即進程在運行前一次申請完它所需要的全部資源,在它的資源未滿足前,不讓它投入運行。一旦投入運行后,這些資源就一直歸它所有,該進程就不會再請求別的任何資源了。 ? 這種辦法雖然很簡單就可以實現,但是資源的利用率會很低而且一次分配太多資源可能會導致某個進程饑餓。2.4.2.4 破壞循環等待條件
循環等待條件:存在一種進程資源的循環等待鏈,鏈中的每一個進程已獲得的資源同時被下一個進程所請求。 ? 順序資源分配法,首先給系統中的資源編號,規定每個進程必須按編號遞增的順序請求資源,同類資源(即編號相同的資源)一次申請完。當一個進程只有已占有小編號的資源時,才有資格申請更大編號的資源。按此規則,已持有大編號資源的進程不可能逆向地回來申請小編號的資源,這樣就破壞了環路,從而就不會產生循環等待的現象。總結
以上是生活随笔為你收集整理的操作系统(二十九)预防死锁的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从业6年,给你5点建议
- 下一篇: 操作系统(三十)避免死锁