银行家算法

在这里插入图片描述

  1. 列表画出T0时刻的资源分配状态表,在表中显示进程含需要的资源数量和系统可用资源数量
  2. T0时刻的是否为安全状态?若是请给出安全序列
  3. 在t0时刻进程p1请求资源为(3,0,3),是否能实施资源分配?为什么?
  4. 在T0时刻若进程p4请求资源为(2,0,1),则是否能实现资源分配?为什么

解:

​ 1.

T0分配资源(Allcation)最大资源(Claim)含需要(Need)可用资源
P1(2、1、2)(5、4、9)(3、3、7)(2、5、2)
P2(3、0、2)(4、3、5)(1、3、3)
P3(3、0、4)(3、0、5)(0、0、1)
P4(2、0、4)(5、2、5)(3、2、1)
P5(3、1、4)(4、2、4)(1、1、0)

计算过程:

分配资源和最大资源题中以告知,需要计算的是含需要和可用资源

含需要:最大资源-分配资源=含需要 和计算向量一样可以把他们对应的值想象成坐标系中的(x、y、z)。

​ 例如–P1: (5-2,4-1,9-2)计算出来的结果就是含需要的资源

可用资源:总的资源-分配资源和=可用资源

​ 列如:(15-2-3-3-2-3,7-1-1,18-2-2-4-4-4)=(2,5,2)

2.是安全状态

过程:

我们现在可以使用的资源是(2,5,2)我们开始分配资源可以看到p3和p5都可以分配(就是可用资源-含需要! =0 )一般是从最少的开始计算开始计算p3:(2,5,2)-(0,0,1) =(2,5,1) p3得到了资源就可以运行了,运行完成后就需要归还资源所以我们用剩下的资源+它归还的资源(满足最大资源就可以运行)(2,5,2)+(3,0,5)=(5,5,7)依次类推

  1. p3:(2,5,2)-(0,0,1) +(3,0,5)=(5,5,7)

  2. p4: (5,5,7)-(3,2,1)+(5,2,5)=(7,5,11)

这样我们可以得到安全序列为:p3 p4 p5 p1 p2

3.、不能

理解:

t0时刻它请求资源这时它所需资源为(3,0,3)而可用资源为(2,5,2)相减小于0

所以不能

4.可以 可以得到安全序列为 p3 p4 p5 p1 p2

和第一题一样看它是否可以得到安全序列,若有安全序列则可以实施资源分配否则不可以

银行家算法

什么是银行家算发?

简单来说他是模拟了银行的借贷系统、解决死锁问题的算法,是由艾兹格·迪杰斯特拉在1965年为T.H.E系统设计的

,保证了系统的安全运行。

什么是死锁?

比如进程A占了一个资源1,他需要资源2,这时资源2被进程B占领而他需要资源1,狭路相逢,勇者胜。而这俩货都比较怂,就一直等着对方把资源释放出来,这样就产生了死锁。

这时候银行家算法产生了,它是借助于银行家借贷时的策略而产生的一种算法,基本思想为两个模块,一个是主模块即银行家算法模块,第二个是安全性检查模块,银行家算法模块要做的是当又进程申请资源时,先检查当前系统是否能够满足进程的需求,如果能满足就试分配,程序进入安全性检查模块,如果不能满足就拒绝申请,从而保证资源不会被“空手套白狼。再有一点就是银行家算法的数据结构是数组。

  • 7
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值