银行家算法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了银行家算法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2238字,纯文字阅读大概需要4分钟。
内容图文
![银行家算法](/upload/InfoBanner/zyjiaocheng/635/09243228e7484ab18f92100e47ae4f13.jpg)
题
- 列表画出T0时刻的资源分配状态表,在表中显示进程含需要的资源数量和系统可用资源数量
- T0时刻的是否为安全状态?若是请给出安全序列
- 在t0时刻进程p1请求资源为(3,0,3),是否能实施资源分配?为什么?
- 在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)依次类推
-
p3:(2,5,2)-(0,0,1) +(3,0,5)=(5,5,7)
-
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,狭路相逢,勇者胜。而这俩货都比较怂,就一直等着对方把资源释放出来,这样就产生了死锁。
这时候银行家算法产生了,它是借助于银行家借贷时的策略而产生的一种算法,基本思想为两个模块,一个是主模块即银行家算法模块,第二个是安全性检查模块,银行家算法模块要做的是当又进程申请资源时,先检查当前系统是否能够满足进程的需求,如果能满足就试分配,程序进入安全性检查模块,如果不能满足就拒绝申请,从而保证资源不会被“空手套白狼。再有一点就是银行家算法的数据结构是数组。
内容总结
以上是互联网集市为您收集整理的银行家算法全部内容,希望文章能够帮你解决银行家算法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。