操作系统 第六章 作业

多选题

  1. 关于死锁的说法,正确的是?
    A. 单独一个进程就可能导致死锁
    B. 死锁可发生在任意进程之间
    C. 死锁只发生在无关进程之间
    D. 参与死锁的所有进程中至少有两个进程占有资源
    E. 参与死锁的所有进程都占有资源

D. 参与死锁的进程至少有两个,设为p1,p2,p1 占有资源 r1 而等待资源 r2,p2 占有资源 r2 而等待资源 r1;
E. 参与死锁的所有进程都等待资源;

主观题

  1. 有5个进程P1、P2、P3、P4、P5共用三类资源A(17个)、B(5个)、C(20个),T0时刻系统状态如下:
    在这里插入图片描述
    请问

(1) T0时刻是否为安全状态,若安全请给出安全系列。

(2) T0时刻,P2:Request(0,3,4),能否分配,为什么?

(3) 在(2)的基础上P4:Request(2,0,1),能否分配,为什么?

(4) 在(3)的基础上P1:Request(0,2,0),能否分配,为什么?

知识补充:
Available(可用剩余资源)= 总资源 - Allocation(已分配资源);
列表时列出(MANA):Max【最大需求】、Allocation【已分配资源】、Need【需求(缺少)资源】、Available【可用剩余资源】;
Request(x,x,x)之后要把相应的Need里的值转移到Allocation;

答:
(1) 安全 安全系列为{p4,p5,p2,p1,p3} (提示:实际做题时,添加两栏 一栏为 还需资源数 一栏为 剩余可用资源数,运用银行家算法逐一分析)
(2) 不能分配 因为:可用资源数只剩2 3 3,不足以分配
(3) 能分配 因为:请求的资源数不超过剩余可用资源数,且分配后不与设定的最大需求冲突,分配完毕后有安全系列{p4,p5,p2,p1,p3}不会死锁
(4) 不能分配 因为:虽然请求的资源数不超过剩余可用资源数,且分配后不与设定的最大需求冲突,但分配完后不再存在安全系列,会导致后续死锁
.
详解:
在这里插入图片描述
先对request和need做比较,request<=need则成立,否则不成立
request和available作比较,request<=available则成立,否则不成立
在这里插入图片描述
先对request和need做比较,request<=need则成立,否则不成立
request和available作比较,request<=available则成立,否则不成立
若两者都成立,要对之前值做修改
available=available-request
allocation=allocation+request
need=need-request
在这里插入图片描述
在这里插入图片描述

  1. 试化简下图中的资源分配图,并利用死锁定理给出结论
    在这里插入图片描述

知识补充(P184):
化简:
① 找一个非孤立进程结点且只有分配边,去掉分配边,将其变为孤立结点;
② 再把相应的资源分配给一个等待该资源的进程,即将某进程的申请边变为分配边;
③ 重复;
在这里插入图片描述

答:
先进行化简,如下图所示(标记了先后顺序),
最后剩下右边部分存在一个有环路径,且每类资源只有一个,
所以P1、P4会因为对R3、R4资源造成死锁(当然由于P3无法得到R3,P3也会被影响进入死锁)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Jessieeeeeee/article/details/109235550