[操作系统] 进程管理(2)

银行家算法-避免死锁的算法之一

设系统中有三种类型的资源(A,B,C)和五个进程(P1,P2,P3,P4,P5),A资源的数量是17,B资源的数量是6,C资源的数量为19。在T0时刻系统的状态如下表:

 最大资源需求量已经分配资源量
 A,B,CA,B,C
P14,0,114,0,5
P25,3,64,0,2
P34,2,52,1,4
P45,5,92,1,2
P54,2,43,1,3

系统采用银行家算法实施死锁避免策略,下列哪一个序列是安全序列?

A.P3,P1,P4,P2,P5

B.P1,P3,P5,P2,P4

C.P4,P2,P3,P5,P1

D.P2,P3,P1,P4,P5

 

A总数是17个,已经分配出去了4+4+2+2+3=15个,还剩2个,同理B还剩下6-(1+1+1)=3个,C还剩下19-(5+2+4+2+3)=3个,所以在T0时刻,A,B,C三个资源能够自由分配的只有(2,3,3)个了,再看五个进程还差多少,P1还差0个A,0个B,6个C,其他进程还需要分配的资源看下表

 P1P2P3P4P5
A,B,C0,0,61,3,42,1,13,4,71,1,1

再看,我只有(2,3,3)个资源,可以分配给P3或者P6,都分配给他们之后,他们执行完之后还会主动释放资源。看选项A,先分配给P3,P3得到这些资源后能完全执行下去,执行完毕后释放自己的资源,P3释放后总共资源个数为(4,4,7)这些资源分配给哪个进程都能执行完毕,所以A是安全序列,不会出现死锁。其他选项在第一步就不行,因为资源给他们,那些进程也执行不下去。

 

资源分配图怎么看

先看资源还剩多少个,R1、R2、R3是资源,分别有2,3,2个。从R1开始的箭头有俩,分别指向P1和P3,说明给了P1和P3一人一个(所以还剩下0个);同理,R2给了P1一个,P3一个,P2一个(还剩下0个),R3给了P2一个(还剩下1个)。

再看进程还需要多少资源,有个从P1到R2的线,说明P1还需要一个R2,同理,P2还需要一个R1,P3还需要一个R3.

因为只有R3还剩一个,所以只能分配给P3,所以P3是非堵塞结点。

化简的问题,就把非堵塞结点周围所有的边(因为非阻塞结点执行完之后就释放资源了,所以线没用了),看看剩下资源按照上述步骤是否能够分配,若最后只能下孤立的点,说明这个图可以化简的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值