操作系统综合题之“银行家算法,计算各资源总数和Need还需要数量和解释什么是安全状态以及银行家进阶题(额外提出资源请求计算是否满足)”
一、问题:某系统在某时刻的进程和资源状态如下表所示:
进程 |
Allocation(已分配资源数) (A B C D) |
Max(最大需要资源数) (A B C D) |
Avaliable(可用资源数) (A B C D) |
P1 | 0 0 1 1 | 0 2 2 2 | 1 5 2 0 |
P2 | 1 1 2 0 | 1 5 4 1 | |
P3 | 1 3 5 4 | 1 3 6 4 | |
P4 | 1 3 2 1 | 2 6 4 2 | |
P5 | 0 0 2 3 | 1 5 4 4 |
用银行家算法回答下列问题:
1.计算该系统中个资源的总数
2.计算Need矩阵的内容
3.解释什么是安全状态
4.如果进程P5提出资源请求(0,4,2,1),这个请求能否被满足?为什么?
5.如果进程P2提出资源请求(0,3,1,0),这个请求能否被满足?为什么?
二、参考答案
1.(A,B,C,D)的总数为(4,12,14,9)
A = 1+1+1+1 =4
B = 1+3+3+5=12
C=1+2+5+2+2+2=14
D=1+4+1+3=9
2.
进程 |
Need(还需要资源数) (A B C D) |
P1 | 0 2 1 1 |
P2 | 0 4 2 1 |
P3 | 0 0 1 0 |
P4 | 1 3 2 1 |
P5 | 1 5 2 1 |
3.安全状态::若系统能够找到一个进程执行序列,使得系统只要按此序列为每个进程分配资源,就可以保证进程的资源分配和执行顺序完成,此时称系统处于安全状态
4.不能满足,因为P5请求的资源比系统可用资源多,D资源没有
5.能满足,系统为P2分配资源后,仍然可以找到一个安全序列:P3、P1、P2、P4、P5
因为满足了请求所以P2变化了已分配资源数等
进程 |
Allocation(已分配资源数) (A B C D) |
Max(最大需要资源数) (A B C D) |
Need(还需要资源数) (A B C D) |
Avaliable(可用资源数) (A B C D) |
顺序 |
P1 | 0 0 1 1 | 0 2 2 2 | 0 2 1 1 | 3 9 9 4 | 3 |
P2 | 1 4 3 0 | 1 5 4 1 | 0 1 1 1 | 2 5 6 4 | 2 |
P3 | 1 3 5 4 | 1 3 6 4 | 0 0 1 0 | 1 5 2 0 | 1 |
P4 | 1 3 2 1 | 2 6 4 2 | 1 3 2 1 | 3 9 10 5 | 4 |
P5 | 0 0 2 3 | 1 5 4 4 | 1 5 2 1 | 3 9 12 8 | 5 |
* 博客文章部分截图及内容来自于学习的书本及相应培训课程,仅做学习讨论之用,不做商业用途。
* 如有侵权,马上联系我,我立马删除对应链接。
* 备注:王子威
* 我的网易邮箱:wzw_1314_520@163.com