银行家算法

⑴ 系统此时是否处于安全状态?

①, 初始化,令Work = Available, Finish列全为false

 进程Max  AllocationNeedWorkFinish
R1  R2  R3  R4 R1  R2  R3  R4R1  R2  R3  R4R1  R2  R3  R4R1  R2  R3  R4
P0 0    0    4    40    0    3    20    0    1    21    6    2    2false
P12    7    5    01    0    0    01    7    5    0 false
P23    6  10  101    3    5    42    3    5    6 false
P30    9    8    40    3    3    20    6    5    2 false
P40    6    6  100    0    1    40    6    5    6 false

② Need1 ≤ Work, 所以将资源分配给P0,同时将Finish[0]改为true, 如下图:

 进程Max  AllocationNeedWorkFinish
R1  R2  R3  R4 R1  R2  R3  R4R1  R2  R3  R4R1  R2  R3  R4R1  R2  R3  R4
P0 0    0    4    40    0    3    20    0    1    21    6    6    6true
P12    7    5    01    0    0    01    7    5    0 false
P23    6  10  101    3    5    42    3    5    6 false
P30    9    8    40    3    3    20    6    5    2 false
P40    6    6  100    0    1    40    6    5    6 false

③ Need3 ≤ Work,所以将资源分配给P3,同时将Finish[3]改为true, 如下图:

 进程Max  AllocationNeedWorkFinish
R1  R2  R3  R4 R1  R2  R3  R4R1  R2  R3  R4R1  R2  R3  R4R1  R2  R3  R4
P0 0    0    4    40    0    3    20    0    1    2 true
P12    7    5    01    0    0    01    7    5    0 false
P23    6  10  101    3    5    42    3    5    6 false
P30    9    8    40    3    3    20    6    5    21   15  14  10true
P40    6    6  100    0    1    40    6    5    6 false

④ Need1 ≤ Work,所以将资源分配给P1,同时将Finish[1]改为true, 如下图:

 进程Max  AllocationNeedWorkFinish
R1  R2  R3  R4 R1  R2  R3  R4R1  R2  R3  R4R1  R2  R3  R4R1  R2  R3  R4
P0 0    0    4    40    0    3    20    0    1    2 true
P12    7    5    01    0    0    01    7    5    03   22   19   10true
P23    6  10  101    3    5    42    3    5    6 false
P30    9    8    40    3    3    20    6    5    2 true
P40    6    6  100    0    1    40    6    5    6 false

⑤ Need2 ≤ Work,所以将资源分配给P2,同时将Finish[2]改为true, 如下图:

 进程Max  AllocationNeedWorkFinish
R1  R2  R3  R4 R1  R2  R3  R4R1  R2  R3  R4R1  R2  R3  R4R1  R2  R3  R4
P0 0    0    4    40    0    3    20    0    1    2 true
P12    7    5    01    0    0    01    7    5    0 true
P23    6  10  101    3    5    42    3    5    66   28   29   20true
P30    9    8    40    3    3    20    6    5    2 true
P40    6    6  100    0    1    40    6    5    6 false

⑥ Need4 ≤ Work,所以将资源分配给P4,同时将Finish[4]改为true, 如下图:

 进程Max  AllocationNeedWorkFinish
R1  R2  R3  R4 R1  R2  R3  R4R1  R2  R3  R4R1  R2  R3  R4R1  R2  R3  R4
P0 0    0    4    40    0    3    20    0    1    2 true
P12    7    5    01    0    0    01    7    5    0 true
P23    6  10  101    3    5    42    3    5    6 true
P30    9    8    40    3    3    20    6    5    2 true
P40    6    6  100    0    1    40    6    5    66   34   35   30true

⑵ 若此时P进程发出Request[1,2,2,2],系统能否将资源分配给它?

假设可以分配, 分配后如下图:

 进程Max  AllocationNeedWorkFinish
R1  R2  R3  R4 R1  R2  R3  R4R1  R2  R3  R4R1  R2  R3  R4R1  R2  R3  R4
P0 0    0    4    40    0    3    20    0    1    2 false
P12    7    5    02    2    2    20    5    3    00    4    0    0false
P23    6  10  101    3    5    42    3    5    6 false
P30    9    8    40    3    3    20    6    5    2 false
P40    6    6  100    0    1    40    6    5    6 false

这时候, 剩余资源不能满足P0~04任意进程所需要的资源,所以进入死锁状态。 所以:不能分配!


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值