銀行家算法例題:
在避免死鎖的方法中,所施加的限制條件較弱,有可能獲得令人滿意的系統性能。在該方法中把系統的狀態分為安全狀態和不安全狀態,只要能使系統始終都處于安全狀態,便可以避免發生死鎖。
銀行家算法的基本思想是分配資源之前,判斷系統是否是安全的;若是,才分配。它是最具有代表性的避免死鎖的算法。
設進程cusneed提出請求REQUEST [i],則銀行家算法按如下規則進行判斷。
(1)如果REQUEST [cusneed] [i]<= NEED[cusneed][i],則轉(2);否則,出錯。
(2)如果REQUEST [cusneed] [i]<= AVAILABLE[i],則轉(3);否則,等待。
(3)系統試探分配資源,修改相關數據:
AVAILABLE[i]-=REQUEST[cusneed][i];
ALLOCATION[cusneed][i]+=REQUEST[cusneed][i];
NEED[cusneed][i]-=REQUEST[cusneed][i];
(4)系統執行安全性檢查,如安全,則分配成立;否則試探險性分配作廢,系統恢復原狀,進程等待。
安全性檢查算法
(1)設置兩個工作向量Work=AVAILABLE;FINISH
(2)從進程集合中找到一個滿足下述條件的進程,
FINISH==false;
NEED<=Work;
如找到,執行(3);否則,執行(4)
(3)設進程獲得資源,可順利執行,直至完成,從而釋放資源。
Work=Work+ALLOCATION;
Finish=true;
GOTO 2
(4)如所有的進程Finish= true,則表示安全;否則系統不安全。
算法(C語言實現)
打工老板的結局
2023-10-24
洪漢義12個明星女友名單(14K洪漢義回
2023-09-11
洪漢義12個老婆名單(真正的14k老大女
2023-07-31
723甬溫高鐵為什么埋車廂
2023-10-25
上海70歲以上老人存款規定 上海老年人存
2023-11-19
瘋癲辦公室人物介紹
2023-10-20
成功開導老婆接受別的男人案例(男人如何洗
2023-09-03
九一制片廠潘甜甜個人資料(紅人潘甜甜落網
2023-09-17
大耳朵圖圖毀童年牛爺爺和圖圖媽(哪里能看
2023-09-11
山東最不易發生地震的市
2023-10-18