• 操作系统-银行家算法


    某系统有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。可找到安全序列,所以可分配。

  • 相关阅读:
    Solution to LeetCode Problem Set
    《Cracking the Coding Interview》读书笔记
    诗词收集——用于人文素养扫盲
    2015年清华大学计算机系考研总结
    编程知识大杂烩
    hihoCoder 1175:拓扑排序二
    Hackerrank
    Hackerrank
    LeetCode
    LeetCode
  • 原文地址:https://www.cnblogs.com/stevioside/p/14208874.html
Copyright © 2020-2023  润新知