假定顧客分成若干次進行貸款,並在第一次貸款時候說明他的最大借款額(亦即是這個進程一共需要多少資源)。具體算法如下:
1) 顧客的貸款操作依次順序進行,直到全部操作完成。
2) 銀行家對當前顧客的貸款操作進行判斷,以確定其安全性,看能否支持客戶貸款,即該客戶能否運行完成。
3) 安全時,貸款;否則,暫不貸款
銀行家算法實現:
1.進程申請資源的情況
Requesti是進程Pi的請求向量,如果Requesti[j]=K,表示進程Pi需要Rj類資源個數爲K。Requesti與Need[i]的關係可能爲一下3種情況:
1) Requesti>Need[i].這種情況表示該進程的資源需求超過系統所宣佈的最大值,因此認爲出錯。
2) Requesti=Need[i].這種情況表示該進程現在對它所需的全部資源一次申請完成。
3) Requesti<Need[i]. 這種情況表示該進程現在對它所需要的資源進行部分申請,剩餘的資源以後可再次申請。
銀行家算法的描述