银行家算法资源分配问题(例子!!!)
Posted Jing Sir
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了银行家算法资源分配问题(例子!!!)相关的知识,希望对你有一定的参考价值。
在银行家算法中,若出现表2-4所示的资源分配情况,试问:
- 该状态是否安全?
- 如果进程P2提出请求Request2(1,2,2,2)后,系统能否将资源分配给它。
表2-4 资源分配表
| Allocation | Need | Available |
A B C D | A B C D | A B C D | |
P0 | 0 0 3 2 | 0 0 1 2 | 1 6 2 2 |
P1 | 1 0 0 0 | 1 7 5 0 | |
P2 | 1 3 5 4 | 2 3 5 6 | |
P3 | 0 3 3 2 | 0 6 5 2 | |
P4 | 0 0 1 4 | 0 6 5 6 |
解答:
(1)利用银行家算法对此时刻的资源分配情况进行分析,可得表2-5所示的安全性分析情况。
表2-5 安全性检查表
| Work | Need | Allocation | Work+Allocation | Finish |
A B C D | A B C D | A B C D | A B C D | ||
P0 | 1 6 2 2 | 0 0 1 2 | 0 0 3 2 | 1 6 5 4 | true
true
true
true
true |
P3 | 1 6 5 4 | 0 6 5 2 | 0 3 3 2 | 1 9 8 6 | |
P4 | 1 9 8 6 | 1 7 5 0 | 0 0 1 4 | 1 9 9 10 | |
P1 | 1 9 9 10 | 0 6 5 6 | 1 0 0 0 | 2 9 9 10 | |
P2 | 2 9 9 10 | 2 3 5 6 | 1 3 5 4 | 3 12 14 14 |
从以上情况分析可以看出,此时存在一个安全序列p0,p3,p4,p1,p2,故该状态是安全的。
(2)P2提出请求Request2(1,2,2,2)。按银行家算法进行检查:
Request2(1,2,2,2)<=need(2,3,5,6)
Request2(1,2,2,2)<=available(1,6,2,2)
试分配并修改相应数据结构,资源分配情况如表2-6所示。
表2-6 P2申请资源后的资源分配表
| Allocation | Need | Available |
A B C D | A B C D | A B C D | |
P0 | 0 0 3 2 | 0 0 1 2 | 0 4 0 0 |
P1 | 1 0 0 0 | 1 7 5 0 | |
P2 | 1 3 5 4 | 1 1 3 4 | |
P3 | 0 3 3 2 | 0 6 5 2 | |
P4 | 0 0 1 4 | 0 6 5 6 |
再利用安全性检查算法检查系统是否安全,可用资源available(0,4,0,0)已不能满足任何进程的需要,此时系统不能将资源分配给P2。
以上是关于银行家算法资源分配问题(例子!!!)的主要内容,如果未能解决你的问题,请参考以下文章