操作系统概念第七章部分作业题答案

操作系统概念第七章部分作业题答案题目一:考虑下图所示的交通死锁的情况:(1)请说明这个实例中死锁的4个必要条件(2)请设计一条简单的规则来避免产生死锁解答:(1):死锁的四个必要条件是:①互斥:至少一个资源非共享,即一次只能有一个进程使用②占有并等待:一个进程至少占有一个资源,并等待另一个资源,而该资源被其他进程所占有③非抢占:资源非抢占,只有当前进程完成任务才能被释放④循环等待:有一组等待进城P0…P…

大家好,又见面了,我是你们的朋友全栈君。

题目一:

考虑下图所示的交通死锁的情况:
在这里插入图片描述
(1)请说明这个实例中死锁的 4 个必要条件
(2)请设计一条简单的规则来避免产生死锁
解答:
(1):
死锁的四个必要条件是:
①互斥:至少一个资源非共享,即一次只能有一个进程使用
②占有并等待:一个进程至少占有一个资源,并等待另一个资源,而该资源被其他进程所占有
③非抢占:资源非抢占,只有当前进程完成任务才能被释放
④循环等待:有一组等待进城P0…Pn,P0等待的资源被P1所占有…Pn所等待的资源被P0所占有
依次对应图中的:
①每个路口只能在一个时间点通过一辆车
②一辆车在一个时间点通过一个路口的时候,其他车不允许同时通过
③只有当一辆车完全通过一个路口的时候,下一辆车才能使用这个路口
④左上路口的车在等待左下路口的车通过;左下路口的车在等待右下路口的车通过;右下路口的车在等待右上路口的车通过;右上路口的车在等待左上路口的车通过
(2):
在四个路口均设立红绿信号灯,要求在前30秒仅允许横向车辆通过,后30秒仅允许纵向车辆通过,然后以此顺序进行轮转

题目二:

考虑如下系统:该系统包含 3 个进程,共享同一类型的资源 4 个,每一个进程最多需要 2 个该类型的资源,试说明为什么该系统不会发生死锁
解答:
不会. 4份资源, 3个进程, 每个进程只要2份资源, 那么无论怎样, 总有一个进程可以得到2份资源, 这样就不需要等待别的进程释放资源而能顺利地执行, 然后就会释放这2份资源, 接下来后面2个进程就更可以顺利执行了.
这类问题的计算方法是: a份资源, b个进程, 每个进程最多要c份资源.
我们能够处理的极限情况是,有一个进程被分配了c份资源,而其余的被分配了c-1份资源(类似于抽屉原理),这样总能有一个进程结束,释放资源。
如果不是上面这种情况,那么就有可能有一个进程被分配了c份资源,有一个被分配了c-2份资源,其余的被分配了c-1份资源,这时看起来不会发生死锁,但是不要忘了,资源的分配是随机的,所以,更多的情况会是所有的进程都被分配了c-1份资源,此时所有进程就陷入了某种顺序的循环等待,造成死锁。
由此我们可以得到公式a需要≥c+(b-1)*(c-1)=c+bc-c-b+1=b(c-1)+1
即最终的公式:

a≥b*(c-1)+1时,不会造成死锁

题目三:

现有单实例资源系统:进程 P1 占有资源 R2,请求资源 R1;进程 P2 占有资源 R1,请求资源 R3 R4 R5;进程 P3 占有资源 R4,请求资源 R5;进程 P4 占有资源 R5,请求资源 R2;进程 P5 占有资源 R3,请求资源 R1;
(1)请画出对应的资源分配图和资源等待图;
(2)请问该系统中存在死锁吗?并请给出解释。;
解答:
(1):
资源分配图
在这里插入图片描述
资源等待图
在这里插入图片描述
(2):
存在死锁,因为每个资源只有单个实例,所以只要资源分配图中存在环则会发生死锁,看图,可以发现,P1-R1-P2-R4-P3-R5-P4-R2-P1构成了一个大环,同时还有P2-R3-P5-R1-P2构成一个小环,所以可以得到,进程P1,P2,P3,P4构成了一个循环等待的死锁,同时P2与P5构成了一对死锁

题目四:

考虑系统的情况如下图所示,请依据银行家算法回答如下问题:
在这里插入图片描述
(1)请给出 Need 矩阵。
(2)该系统目前是否是安全的?
(3)如果 P1 请求资源 (0, 4, 2, 0),是否应该给该进程立即分配资源?
解答:
0 0 0 0
0 7 5 0
1 0 0 2
0 0 2 0
0 6 4 2
(1):
Need=Max-Allocation,即:
在这里插入图片描述

(2):
我们可以测试一下,能不能计算出一个安全序列。从P0开始,
对P0,可以给,然后收回,此时Available={1,5,3,2}
对P1,给不起,跳过
对P2,可以给,然后收回,此时Available={2,8,8,6}
对P3,可以给,然后收回,此时Available={2,14,11,8}
对P4,可以给,然后收回,此时Available={2,14,12,12}
对P1,可以给,然后收回,此时Available={3,14,12,12}
最终,我们可以得到一个安全序列{P0,P2,P3,P4,P1}
证明当前系统是安全的
(3):
如果P1请求资源(0,4,2,0),那么此时的allocation矩阵和need矩阵是这样的:
在这里插入图片描述

来看看这个时候怎么进行分配:
对P0,可以给,然后收回,此时Available={2,1,1,2}
对P1,给不起,跳过
对P2,可以给,然后收回,此时Available={3,4,6,6}
对P3,可以给,然后收回,此时Available={3,10,9,8}
对P4,给不起,跳过
对P1,可以给,然后收回,此时Available={3,14,11,8}
对P4,可以给,然后收回,此时Avialable={3,14,12,12}
最终,我们可以得到一个安全序列{P0,P2,P3,P1,P4}
尽管可以有一个安全序列,系统是安全的,但不能立即给进程P1分配资源

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159068.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • CentOS rpm安装Nginx和配置

    CentOS rpm安装Nginx和配置CentOSrpm安装Nginx和配置官方下载地址:http://nginx.org/en/download.html介绍Nginx(“enginex”)是一款由俄罗斯的程序设计师IgorSysoev所开发高性能的Web和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。rpm包安装#安装nginx,rpm安装#rpm安装nginx包rpm-Uvh–force–nodepsnginx-1.16.1-1.el7.ngx.x86_64.rpm#查看启

  • prototype.js中的class.create()方法

    prototype.js中的class.create()方法Class.createClass.create([superclass][,methods…])→Classsuperclass (Class) –Theoptionalsuperclasstoinheritmethodsfrom.methods (Object) –Anobjectwhosepropertiesw

  • 数据挖掘应用案例

    数据挖掘应用案例1.哪些商品放在一起比较好卖?  这是沃尔玛的经典案例:一般看来,啤酒和尿布是顾客群完全不同的商品。但是沃尔玛一年内数据挖掘的结果显示,在居民区中尿布卖得好的店面啤酒也卖得很好。原因其实很简单,一般太太让先生下楼买尿布的时候,先生们一般都会犒劳自己两听啤酒。因此啤酒和尿布一起购买的机会是最多的。这是一个现代商场智能化信息分析系统发现的秘密。这个故事被公认是商业领域数据挖掘的诞生。

  • 无人机应用参考文献_无人机应用论文3000字

    无人机应用参考文献_无人机应用论文3000字2019年以后的,相对较新,值得参考

  • bs架构和cs架构的比对方法_cs架构嵌入BS

    bs架构和cs架构的比对方法_cs架构嵌入BS1、CS、BS架构定义  CS(Client/Server):客户端—-服务器结构。C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。因为客户端要负责绝大多数的业务逻辑和UI展示,又称为胖客户端。它充分利用两端硬件,将任务分配到Client和Server两端,降低了系统的通讯开销。C/S结构的软件需要针对不同

    2022年10月16日
  • C语言获取系统当前时间转化成时间字符串「建议收藏」

    C语言获取系统当前时间转化成时间字符串

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号