栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

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

四个必要条件:

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

简明规则:

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

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

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

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

3、系统在某一时刻的状态如下表所示,使用银行家算法回答下列问题。

(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=Max−Allocation=⎣⎢⎢⎢⎢⎡​00100​07006​05024​00202​⎦⎥⎥⎥⎥⎤​

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

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

系统安全性分析:

因为存在一个安全序列,所以系统处于安全状态

(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)

系统状态变化为:

再对系统进行安全性分析:

因为存在一个安全序列,所以系统仍然处于安全状态

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

4.化简下面的资源分配图,并判断系统中是否存在死锁。

尝试化简的资源分配图如下:

这个资源图不可完全简化,系统会发生死锁

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/712822.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号