Operating System-work5

请判断系统是否处于安全状态。需要完整的解题过程。
Suppose we have four resources, RA, RB, RC and RD.
Given below allocation matrix, available vector and maximal requirement matrix.
Max
RA RB RC RD
P0 3 2 1 4
P1 0 2 5 2
P2 5 1 0 5
P3 1 5 3 0
P4 3 0 3 3
Allocation
RA RB RC RD
P0 1 0 1 1
P1 0 1 2 1
P2 4 0 0 3
P3 1 2 1 0
P4 1 0 3 0
Available
RA RB RC RD
1 2 2 2

A:处于安全感状态:
过程:
判断条件:Need[i]<=work —>work =work + allocation
判断顺序:

  • P0:2203 <= 1222 不成立
  • P1:0131 <= 1222 不成立,为什么呢,两组中的第三个数前面的3>后面的2,所以不成立
  • P2:1102 <= 1222 成立;avail =1222 + 4003 = 5225;safe_seq:P2
  • P3:0320 <= 5225(及时跟新) 不成立;同理第二个数
  • P4:2003 <= 5225 成立;avail = 5225+1030 = 6255;safe_seq:P2,P4


一轮之后如果没有全部通过,则去掉一再safe_seq中的再次顺序判断

  • P0:2203 <= 6255 成立;avail = 6255 +1011 =7266;
  • P1:0131 <= 7266 成立;avail = 7266 +0121 =7387;
  • P3:0320 <= 7387 成立;avail = 7387 + 1210 = 8597;

最终:
res:safe_seq:P2->P4->P0->P1->P3
∴处于安全状态

关于银行家算法详细理解:

Operating System——图解 + 代码理解好操作系统中的" 银行家算法 "

发布了72 篇原创文章 · 获赞 10 · 访问量 5840

猜你喜欢

转载自blog.csdn.net/weixin_44198992/article/details/105497866