zoukankan      html  css  js  c++  java
  • 银行家算法实例(转)

    例1.设系统中有三种类型的资源(A,B,C)和五个进程(P1,P2,P3,P4,P5),A资源的数量是17,B资源的数量是6,C资源的数量为19。在T0时刻系统的状态如下表:

     

    最大资源需求量

    已分配资源量

     

    A,B,C

    A,B,C

    P1

    4,0,11

    4,0,5

    P2

    5,3,6

    4,0,2

    P3

    4,2,5

    2,1,4

    P4

    5,5,9

    2,1,2

    P5

    4,2,4

    3,1,3

    系统采用银行家算法实施死锁避免策略,若当前系统剩余资源(A,B,C)分别为(2,3,3),下列哪一个序列是安全序列?

    A.P3,P1,P4,P2,P5

    B.P1,P3,P5,P2,P4

    C.P4,P2,P3,P5,P1

    D.P2,P3,P1,P4,P5

    几乎所有关于银行家算法的单选题的数据都差不多,在解这道题之前先来解释一下什么是安全序列。安全序列是指一个进程序列{P1,…,Pn}是安全的,即对于每一个进程Pi(1≤i≤n),它以后尚需要的资源量不超过系统当前剩余资源量与所有进程Pj (j < i )当前占有资源量之和。这句话说得比较抽象,在解析过程中我们进行理解。

    解析:我们首先算出各个进程尚需要的资源量,尚需要的资源量=最大资源需求量-已分配资源量,由此可得各进程尚需要的资源量为

      P1 P2 P3 P4 P5
    A,B,C 0,0,6 1,3,4 2,1,1 3,4,7 1,1,1

    接下来,我们分析选项A,P3需要的资源量为(2,1,1),而系统剩余资源为(2,3,3),因此进程P3进程得以完成,并且释放它占有的资源量,即已分配资源量,此时系统剩余资源量为(2+2,3+1,3+4)=(4,4,7),(4,4,7)大于(或等于)其它所有进程(即P1,P1,P2,P4,P5)尚需要的资源量(注意,这里的“大于”指的是A,B,C三类分别大于),因此选项A的序列是安全序列

    选项B:P1需要的资源为(0,0,6),显然系统剩余资源不满足条件,B为不安全序列。

    选项C:P4需要的资源为(3,4,7),显然系统剩余资源不满足条件,C为不安全序列。

    选项D:P2需要的资源为(1,3,4),显然系统剩余资源部满足条件,D为不安全序列。

    几乎所有银行家算法的单选题都可以用上述方法一眼秒杀,当然这只是计算机四级的前奏,在单选题中,我们可以通过排除法轻松地选出答案,但是计算机四级是有多选题的,多选题的银行家算法可能就得花上一分多钟去判断出正确选项,一定要仔细再仔细,脑袋转不过来极有可能出错。以下是一道关于银行家算法的多选题,自己感受一下吧,也是so easy的。

    例2.某操作系统的当前资源分配如下表所示。

    进程

    最大资源需求

    已分配资源数量

     

    R1 R2 R3

    R1 R2 R3

    P1

    7 5 3

    0 1 0

    P2

    3 2 2

    2 0 0

    P3

    9 0 2

    3 0 2

    P4

    2 2 2

    2 1 1

    P5

    4 3 3

    0 0 2

    假设当前系统可用资源R1、R2和R3的数量为(3,3,2),且该系统目前处于安全状态,那么下列哪些是安全序列?

    A.P2P4P5P1P3

    B.P2P4P5P3P1

    C.P4P1P2P3P5

    D.P3P2P5P4P1

    E.P4P2P3P5P1

    解析:方法参见例1.

    答案:ABE

  • 相关阅读:
    SQL Server 连接字符串和身份验证
    常用jQuery选择器总结【转】
    javascript深入理解js闭包[转]
    JS鼠标事件大全
    JS 获取各个宽度和高度
    移动设备屏幕缩放
    面向对象学习【类-匿名类】
    Java学习笔记之log4j与commons-logging<转>
    Java数据库连接——JDBC基础知识(操作数据库:增删改查)【转】
    静态方法和非静态方法的区别
  • 原文地址:https://www.cnblogs.com/zouhong/p/15323629.html
Copyright © 2011-2022 走看看