copyright© Author: skysys 僅發於CSDN: skysys.blog.csdn.net
題目2 銀行家算法編程
目的:
熟悉銀行家算法,加深死鎖有關概念的理解。
內容:
編制銀行家算法通用程序,並檢測思考題中所給狀態的安全性。
要求:
(1) 下列狀態是否安全?(三個進程共享12個同類資源)
進程 已分配資源數 最大需求數
1 1 4 (狀態a)
2 4 4
3 5 8
1 1 4
2 4 6 (狀態b)
3 6 8
(2) 考慮下列系統狀態
分配矩陣 最大需求矩陣 可用資源矩陣
0 0 1 2 0 0 1 2 1 5 2 0
1 0 0 0 1 7 5 0
1 3 5 4 2 3 5 6
0 6 3 2 0 6 5 2
0 0 1 4 0 6 5 6
問系統是否安全?若安全就給出所有的安全序列。若進程2請求(0420),可否立即分配?
自編算法僞碼(書上的僞碼感覺emm很奇怪,也可能是我奇怪吧)
Available[j] K
Max[i,j] process i need resource j
Allocation[i,j] process i allocated resource j
Need[i,j] = max[i,j] - allocation[i,j]
when request[i] arrived then
for each request[i,j]
if request