防止死鎖的四種辦法

2021-04-27 01:31:32 字數 1121 閱讀 4952

死鎖的防止方法:如果有死鎖形成,則4個必要條件一定同時成立,於是,只要採用的資源分配策略能使其中之一不成立,則就能防止死鎖的

發生。(1)互斥條件

要使互斥使用資源的條件不成立,唯一的資源分配策略是允許程序共享資源。

如「唯讀檔案」是一種很好的共享資源。

要破壞「互斥使用資源」的條件經常是行不通的。如:印表機不能被多個程序共享。對可共享的磁碟來說,任何時刻也只允許乙個程序啟

動它。(2)占有並等待條件

要是占有並等待資源的條件不成立,經常使用兩種資源分配策略:靜態分配資源和釋放已佔資源。

靜態分配資源策略(也稱為預分配資源)——要求每個程序在開始執行前就申請它所需要的全部資源,僅當系統能滿足程序的資源申請要

求且把資源分配給程序後,該程序才能開始執行。

特點:靜態分配資源的策略實現簡單,但降低了資源的利用率。

釋放已佔資源策略——這種分配策略是僅當程序沒有占有資源時才允許它去申請資源。如果程序已占用了某些資源而又要再申請資源,則

它應先歸還所佔的資源後再申請新資源。

特點:仍會使程序處於等待資源狀態,但不會出現占有了部分資源再等待其它資源的現象。

(3)可搶奪條件

搶占式資源分配策略:要使不可搶占其它程序占有的資源不成立,可以約定如下:如果乙個程序已經占有了某些資源又要申請新資源,而

新資源不能滿足必須等待時,系統可以搶奪該程序已有的資源。具體做法如下:

乙個程序申請的資源尚未被占用,則系統可把資源分配給該程序。

若程序a申請的資源r已被程序b占用,則檢視程序b的狀態。如果程序b處於等待另乙個資源的狀態,那麼就搶奪程序b已佔的資源r並把r

分配給程序a;如果程序b不是處於等待資源狀態,則讓程序a處於等待資源r的狀態。

乙個等待資源的程序只有再得到自己申請的新資源和所有被搶奪的老資源後才能繼續執行。

這種可搶奪的資源分配策略不是對所有資源都適用的,它只適合於主存和處理器。

例如:對印表機、磁帶機等就不能採用搶奪的方式,否則會造成混亂。

(4)迴圈等待條件

按序分配資源——要使迴圈等待條件不成立可採用按序分配的資源分配策略。具體做法是把系統中所有資源排序,對每個資源確定乙個編

號,規定任何乙個程序申請兩個以上的資源時,總是先申請編號最小的資源,再申請編號大的資源。

求逆元的四種辦法

2018 03 17 12 06 26 還有乙個半小時就開始天梯賽排位賽了 乙個小時 看看求逆元吧 在補zoj2018三月賽c題的時候遇到的 之前遇見數學題基本上都是選擇性略過的 感謝四種辦法 例如 a b p 總結一下求逆元的適用情況 是否要求a b互質 是否要求p為質數 資料多大的時候可以用 時...

VLAN技術四種劃分辦法

vlan即虛擬區域網 virtual local area network的縮寫 是一種通過將區域網內的裝置邏輯地而不是物理地劃分成乙個個網段從而實現虛擬工作組技術。vlan是為解決乙太網的廣播問題和安 全性而提出的,它在乙太網幀的基礎上增加了vlan頭,用vlan id把使用者劃分為更小的工作組,...

解決hash衝突的四種辦法

目錄 開放定址法 線性探測再雜湊 二次探測再雜湊 偽隨機探測再雜湊 再雜湊法 鏈位址法 建立公共溢位區 優缺點 開放雜湊 open hashing 拉鍊法 針對桶鏈結構 封閉雜湊 closed hashing 開放定址法 通過構造效能良好的雜湊函式,可以減少衝突,但一般不可能完全避免衝突,因此解決衝...