题目一:

考虑下图所示的交通死锁的情况:

(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分配资源

操作系统概念第七章部分作业题答案相关推荐

  1. 江苏自考计算机组成原理多少分及格,自考《计算机组成原理》基本概念第七章...

    1. CRT:阴极射线管,显示器的一种. 2. LCD:液晶显示器. 3. CCD:电荷耦合器件,用于图像输入. 4. MIDI:音乐器材数字化接口,规定电子乐器与计算机之间传递信息的方式. 5. 分 ...

  2. 郑莉版java第三章答案_java语言程序设计(郑莉)第七章课后习题答案.docx

    java语言程序设计(郑莉)第七章课后习题答案.docx 还剩 10页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: if (matrix.isTria ...

  3. matlab使用矩形窗设计一个具有线性相位的低通数字滤波器,第七章习题与答案用矩形窗设计一个fir线性相位低通数字滤波器。已.doc...

    第七章习题与答案用矩形窗设计一个fir线性相位低通数字滤波器.已 第七章习题与答案 用矩形窗设计一个FIR线性相位低通数字滤波器.已知 .求出并画出曲线. 分析:此题给定的是理想线性相位低通滤波器,故 ...

  4. 操作系统原理第七章:死锁

    目录 1 死锁的基本概念 2 死锁的必要条件 3 死锁预防 3.1 抑制死锁发生的必要条件 4 死锁避免 4.1 资源分配图法 4.2 银行家算法 5 死锁的检测 5.1 每一种资源类型只有一个实例 ...

  5. 计算机系统结构树形流程图,计算机系统结构 第七章自考练习题答案

    计算机系统结构自考复习资料 第七章 多处理机 历年真题精选 1. 在多处理机上,两个程序段既能顺序串行.交换串行,又能并行,则这两个程序段之间 必须是( B ) . A. 只有数据相关 B. 只有源数 ...

  6. 中国大学mooc 慕课 管理信息系统(同济大学)第六章 第七章 习题 测试答案

    1.以下不属于大数据的4V特征的是 A.Volume B.Variety C.Validity D.Velocity 正确答案:C 2. 以下说法正确的是 A.数据是对事物描述的符号 B.通过一定的技 ...

  7. C++ Primer(第五版)第七章 类 部分答案

    第七章 类 练习7.2 练习7.3 练习7.4 练习7.6 练习7.7 练习7.9 练习7.14.7.15.7.22 练习7.23.7.24.7.26 练习7.27 练习7.2 曾在 2.6.2 节的 ...

  8. 《Python语言程序设计》王恺 机械工业出版社 第七章课后习题答案

    第七章 I/O编程与异常 7.7 课后习题 (1)利用 os 模块查看当前系统的名字,应当使用 os.name . (2)利用 os 模块获取当前系统平台路径的分隔符,应当使用 os.sep . (3 ...

  9. 《大数据技术原理与应用》(第七章 MapReduce 课后答案)

    第七章 MapReduce  参考资料 1.林子雨_大数据技术原理与应用课后习题_NPU_阿夏的博客-CSDN博客 2.林子雨编著<大数据技术原理与应用(第3版)>教材官网_厦门大学数据库 ...

  10. 操作系统概念 第六章 同步

    第六章 同步 协作进程需考虑数据同步问题,本章讨论多种机制,确保共享同一逻辑地址空间的协作进程有序执行,维护数据的一致性. 6.1 背景 以之前消费者-生产者的例子来说明.使用一个整形变量counte ...

最新文章

  1. Wireless-N Configuration
  2. python怎么导入csv文件-python读取CSV文件
  3. 人工智能学习--文本识别实践-tesseract-ocr
  4. 互动直播的视频录制与合成—支持多人离线重入
  5. LeetCode-外观数列-纯C递归
  6. 苹果mac系统监控工具:iStat Menus
  7. 12.微服务设计 --- 总结
  8. Java并发编程中锁的正确使用方法
  9. RHEL常用Linux命令操作 第四章实验报告
  10. input file 文件转base64
  11. bc547可以用8050代换吗_常用三极管代换型号
  12. 微信群总是有人发广告?我用Python写个机器人消灭他!
  13. 上位机和FPGA开发板--串口通信实验
  14. INT_MAX和INT_MIN的含义和用法
  15. Mac Gradle 5.0安装
  16. linux中IGV的运行,科学网—使用UCSC和IGV查看reads在基因组上分布情况 - 熊朝亮的博文...
  17. JavaScript实现动态写入表格
  18. 两款移相振荡器的对比
  19. [离散数学]谓词逻辑与推理演算
  20. 【Jsp】第六课 Jsp简介和初步使用

热门文章

  1. 计算机VFP试题答案,2010全国计算机vfp二级笔试试题及答案
  2. java ee 设计模式解析与应用_《Java EE 设计模式解析与应用》PDF 下载
  3. 读取敏感词库内容,讲某段字符里面的敏感词替换成*
  4. Unity之读取身份证信息
  5. Chrome最新版本如何通过JS设置支持自动播放音频
  6. 五一单片机将歌谱转换为c语言,51单片机蜂鸣器音乐简谱转换工具
  7. 开源项目推荐:3D点云处理软件CloudCompare,基于Qt和OpenGL
  8. ILSpy 反编译的一个工具,用于以后的使用
  9. c语言程序设计实例220,C语言程序设计实例大全(220个例子)
  10. 【Qt】arm-none-eabi-gdb-py.exe由于找不到python27.dll 无法继续执行代码