进程(第二部分)

进程的死锁。

只有给一个进程分配满了五个资源它才能够正常地运行完。那么系统要有多少个这样的资源才有可能不发生死锁呢?答案是13个。为什么不是15个?如果有13个就绝对不可能发生死锁了。

看一下图:

蓝色的部分就表示还未分配资源的部分。绿色是12个。倘若系统有13个资源,则把剩余的一个资源放置在任何一个蓝色块就能够满足。


解决死锁的策略:

如果C进程得不到它需要的5个资源,那么C进程就不会运行.所以C进程一开始就等待,一直要等到它资源配足的时候它才会运行,这样子效率就降低了.

判断它是不是安全序列方法非常简单.模拟这些顺序来执行这些进程就能够判断,如果说进程都能够执行完毕,那么系统就是安全的.不能够执行完毕,那系统就是不安全.做这个工作之前,我们要计算一个数据出来.现在已经分配了这么多资源出去了,系统现在剩余的资源是多少?

R1现有的资源数量:9-1-2-2-1-1=2.

现在需要判断一个序列是否可以执行,那么我们就需要了解每一个进程现在还需要多少资源?所以我们求一下还需资源的数量.

求出还需资源数的列表:

拿这个列表和系统还有的资源来比较.如果说系统现在剩余的资源个数不能够满足它还需的资源个数,那么它肯定无法完成.

这一步可以分配给P2足够数量的资源.


C选项是不是也是安全序列呢?

由于现有的资源数量比所需的资源数量要多,所以P2能够正常运行,标记为true.系统的资源数不满足P1的要求,所以P1不能够正常运行完毕.这样就说明了这个序列不是一个安全序列.

银行家算法就讲完了.

转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/7159328.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值