計算機操作系統實驗報告
一、實驗名稱:銀行家算法
二、實驗目的:銀行家算法是避免死鎖的一種重要方法,通過編寫
一個簡單的銀行家算法程序,加深了解有關資源申請、避免死鎖等概念,并體會和了解死鎖和避免死鎖的具體實施方法。
三、問題分析與設計:
1、算法思路:先對用戶提出的請求進行合法性檢查,即檢查請
求是否大于需要的,是否大于可利用的。若請求合法,則進行預分配,對分配后的狀態調用安全性算法進行檢查。若安全,則分配;若不安全,則拒絕申請,恢復到原來的狀態,拒絕申請。
2、銀行家算法步驟:(1)如果Requesti<or =Need,則轉向步
驟(2);否則,認為出錯,因為它所需要的資源數已超過它所宣
布的最大值。
(2)如果Request<or=Available,則轉向步驟(3);否則,表示
系統中尚無足夠的資源,進程必須等待。
(3)系統試探把要求的資源分配給進程Pi,并修改下面數據結構
中的數值:
Available=Available-Request[i];
Allocation=Allocation+Request;