zoukankan      html  css  js  c++  java
  • 操作系统-银行家算法

    某系统有A、B、C、D四类资源可供五个进程P1、P2、P3、P4、P5共享。系统对这四类资源的拥有量为:A类3个、B类14个、C类12个、D类12个。进程对资源的需求和分配情况如下:

     

     按银家算法回答下列问题:

    (1)现在系统中的各类资源还剩余多少?(4分)

    (2)现在系统是否处于安全状态?为什么?(6分)

    (3)现在进程P2提出需要A类资源0个、B类资源4个、C类资源2个和D类资源0个,系统能否满请求?

    (1)

    A: 3-(1+1)=1

    B: 14-(3+6)=5

    C: 12-(1+5+3+1)=2

    D: 12-(2+4+2+4)=0

    Available=(1,5,2,0)

    (2)

    Need=Max-Allocation=

    Available>Need

    (1,5,2,0)>(0 0 0 0) p1

    (1,5,2,0)>(0 0 2 0) p4  p1  Available←(1 5 2 0)+(0 0 1 2)=(1 5 3 2)

    Available>Need

    (1 5 3 2)>(1 0 0 2) p3  p3  Available←(1 5 3 2)+(1 3 5 4)=(2 8 8 6)

    Available>Need

    (2 8 8 6)>(0 7 5 0) p2

    (2 8 8 6)>(0 6 4 2) p5

    存在安全序列,如P1,P3,P4,P5,P2,所以安全

    (3)

    RequestP2(0 4 2 0)<Need2(0 7 5 0)

    RequestP2(0 4 2 0)<Available(1 5 2 0)

    Available=(1 5 2 0)-(0 4 2 0)=(1 1 0 0)

    Allocation2=(1 0 0 0)+(0 4 2 0)=(1 4 2 0)

    Need=Max-Allocation=

    Available>Need

    (1 1 0 0)>(0 0 0 0) P1  Available←(1 1 0 0)+(0 0 1 2)=(1 1 1 2)

    Available>Need

    (1 1 1 2)>(1 0 0 2) P3  Available←(1 1 1 2)+(1 3 5 4)=(2 4 6 6)

    Available>Need

    (2 4 6 6)>(0 3 3 0) P2

    (2 4 6 6)>(0 0 2 0) P4  Available←(2 4 6 6)+(1 4 2 0)+(0 6 3 2)=(3 14 11 8)

    Available>Need

    (3 14 11 8)>(0 6 4 2) P5

    能,因为试探分配后,可⽤资源为1,1,0,0。可找到安全序列,所以可分配。

  • 相关阅读:
    杭电1466------简单的dp
    hdu2037-----------贪心, 活动安排问题
    两个钟表问题。
    杭电HDU1042(有点坑的高精度)
    hd1496---->这道题是水水的数论吗?
    LightOJ::1077 -----奇妙的最大公约数
    并查集练兵场
    欧拉函数
    位运算---水题
    矩阵快速幂
  • 原文地址:https://www.cnblogs.com/stevioside/p/14208874.html
Copyright © 2011-2022 走看看