操作系统习题4—进程死锁

操作系统习题4—进程死锁

1、试解释在十字路口产生的交通死锁现象中包括了死锁产生的 4 个必要条件,并给出避免产生交通死锁的简要规则。

四个必要条件:

  • ① 互斥:同一时刻只能有一辆车占据道路上的同一个空间位置
  • ② 占有等待:一辆车占据道路上的一个空间位置并等待着前进
  • ③ 非剥夺:一辆车不能从道路上当前空间位置挪走
  • ④ 循环等待:每辆车都等待着前面的车辆前进,形成一个循环

简明规则:

在十字路口设立一组红绿灯,前两分钟只允许南北方向的车辆同行,后两分钟只允许东西方向的车辆同行。每两分钟切换一次红绿灯,可以避免这个交通死锁。

2、设三个进程共享四个资源,每次资源分配与请求只能以一个单位进行。已知每一进程最多需要 2 个单位的资源,那么系统中会发生死锁现象吗?试说明原因。

系统中不会出现死锁现象。

四个单位资源分配给三个进程,根据抽屉原理,至少会有一个进程分配到两个单位资源。因为一个进程最多需要两个单位资源,这个进程可以顺利执行完毕,然后此进程将资源释放出去,其他进程得到了资源就能够继续执行,所有的进程都能在有限时间内得到所需资源而执行完毕。

3、系统在某一时刻的状态如下表所示,使用银行家算法回答下列问题。
表1
(1)请给出 Need 矩阵。
N e e d = M a x − A l l o c a t i o n = [ 0 0 0 0 0 7 5 0 1 0 0 2 0 0 2 0 0 6 4 2 ] Need = Max-Allocation =\begin{bmatrix} 0&0&0&0\\ 0&7&5&0\\ 1&0&0&2\\ 0&0&2&0\\ 0&6&4&2\\ \end{bmatrix} Need=MaxAllocation=00100070060502400202

(2)当前系统是否处于安全状态?

初始化矢量 Work=Available(1,5,2,0)

系统安全性分析:
表2
因为存在一个安全序列<P0、P3、P2、P1、P4>,所以系统处于安全状态

(3)如果从进程 P1发来一个请求(0,4,2,0),这个请求能否立刻满足?

Request1(0,4,2,0) < Need1(0,7,5,0)
Request1(0,4,2,0) < Available(1,5,2,0)

假设先试着满足进程 P1 点这个请求,则 Available 变为(1,1,0,0)

系统状态变化为:
表3
再对系统进行安全性分析:
表4
因为存在一个安全序列<P0、P2、P3、P1、P4>,所以系统仍然处于安全状态

进程 P1 这个请求应该马上被满足

4.化简下面的资源分配图,并判断系统中是否存在死锁。
资源分配图
尝试化简的资源分配图如下:
化简图
这个资源图不可完全简化,系统会发生死锁

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值