操作系统 第二章【记录型信号量机制、独木桥问题】【MOOC答案】_简述生产者消费者问题的解决方案,并说明用记录型信号量机制解决生产者消费者-程序员宅基地

技术标签: 生产者消费者问题  记录型信号量机制  独木桥问题  操作系统  哲学家进餐问题  

目录

第1题

第2题

第3题

第4题


第1题

1( 30分 )

简述生产者消费者问题的解决方案,并说明用记录型信号量机制解决生产者消费者问题时Wait()操作的次序不当会在什么情况下引发死锁。

得分指导:

关键点:wait(  )次序不当时,mutex.value=1,empty.value=n,full.value=0时,先调度消费者,再调度生产者死锁;mutex.value=1,empty.value=0,full.value=n时,先调度生产者,再调度消费者死锁。

问题描述15分;死锁情况15分。

第2题

2( 30分 )

讨论用记录型信号量机制实现的不会出现死锁的哲学家进餐问题的解决关键,并给出一种解决方案。

得分指导:

答案提示:

问题解决的关键在于如何通过直接或间接的方式让申请并得到第一根筷子的哲学家的人数<=4。

解决关键:10分

实现方案:20分

第3题

3( 30分 )    

独木桥问题:有一座东西方向的独木桥(W-E),若桥有一定的承载能力,允许同方向的行人同时通过桥,如何用信号量机制实现东西两个方向上两类行人PWEi(  )和 PEWj(  )对桥的使用?

得分指导:

答案提示:

就是读者写者问题的同类问题,每个方向上第一个上桥的人申请桥的使用权,最后一个下桥的人释放桥的使用权。为了判断谁是行走方向上的第一个和最后一个,为每个方向设置一个计数器,但对每个方向的行人而言,计数器需要互斥访问,因此,需要为每个方向的计数器再设置信号量。信号量共有3个。

信号量设置5分,计数器设置3分,每个方向的实现代码11分。

第4题

4( 10分 )

一个最多可以同时容纳N名顾客同时购物的超市有一个出口和一个入口,若出口和入口一次均只能允许一名顾客出入。如何用信号量机制实现顾客进程之间的同步?

得分指导:

答案提示:

三个信号量:进入的名额s,入口in,出口out,初始值分别为n、1、1;

Pi( ){

     P(s);

     P(in);

     通过入口;

    V(in);

    购物……;

    P(out);

    通过出口;

   V(out);

   V(s);

}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44949135/article/details/115872920

智能推荐

tableau如何生成HTML文件,Tableau 入门-程序员宅基地

文章浏览阅读1.9k次。在本教程中,我们将在 Tableau 中进行一些基本操作,以熟悉其界面。创建任何 Tableau 数据分析报告涉及三个基本步骤。它们在下面给出。连接到数据源:它涉及定位数据并使用适当类型的连接来读取数据。选择尺寸和度量:这包括从源数据中选择所需的列进行分析。应用可视化技术:这涉及将所需的可视化方法(如特定图表或图形类型)应用于正在分析的数据。在本教程中,我们将使用 Tableau 安装附带的..._tableau 可以生成html

linux 编译测试程序,编译测试程序  |  Android 开源项目  |  Android Open Source Project...-程序员宅基地

文章浏览阅读151次。相关人员在设计测试框架时考虑到了可移植性。仅有的强制性要求是针对 I/O、线程和套接字的全面 C++ 支持和标准系统库。CMake 编译系统deqp 来源具有适用于 CMake 的编译脚本,这是编译测试程序的首选工具。CMake 是一个开放源代码编译系统,支持多种平台和工具链。CMake 从与目标无关的配置文件生成原生 Makefile 或 IDE 项目文件。要详细了解 CMake,请参阅 CMa..._linux编译测试程序

ConcurrentHashMap 详解-程序员宅基地

文章浏览阅读3.8k次,点赞3次,收藏6次。以hashmap这一篇为基础,分析一下ConcurrentHashMap。hashmap是线程不安全的,而hashtable性能低下,所以concurrentHashMap应运而生。ConcurrentHashMap使用锁分段技术,首先将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。有些方法需要跨段,比如size()..._concurrenthashmap

前端页面跳转测试_浏览器测试跳转-程序员宅基地

文章浏览阅读9.7k次。前端页面跳转测试前端页面跳转分析处于什么环境对于测试人员来说,在进行交互评审的时候,就可以开始基于交互文档以及接口文档进行页面跳转的分析了。 注意:全篇的前端包含APP、H5以及中间的接口路由层。如何做页面跳转分析设计分析1、交互层面的分析协议分析1、协议层面的分析通用分析1、跳转页面的类型2、页面跳转的交互范围3、页面跳转通用测试方法..._浏览器测试跳转

Vscode SSH连接远端出的“过程试图写入的管道不存在”解决办法_vscode ssh 过程试图写入的管道不存在-程序员宅基地

文章浏览阅读2.1k次。SSH连接远端时失败_vscode ssh 过程试图写入的管道不存在

随便推点

50道C/C++编程练习题 复习必备(11-20)_求pi值c语言,pi/2=1+1/3+1/3*2/5-程序员宅基地

文章浏览阅读5.1k次,点赞10次,收藏105次。C/C++编程练习题 (11-20)11. 求 e=1 + 1/1! + 1/2! + 1/3! + ...12. 求PI值,PI/4 = 1 - 1/3 + 1/5 - 1/7 + ...13. 求PI值,PI/2 = 1 + 1/3 + 1/3*2/5 + 1/3*2/5*3/7 + ...14. 输入20个数,统计其中正数、负数和零的个数。15. 输入若干个整数,计算其中的奇数之和与偶数之和,假设输入0表示结束。16. 写一函数,计算x的y次方(假设x、y都为正整数)使用C/C++两种语言完成50道_求pi值c语言,pi/2=1+1/3+1/3*2/5

Flutter Windows开发环境搭建教程与学习资料推荐-程序员宅基地

文章浏览阅读2.3k次,点赞2次,收藏9次。Flutter是谷歌推出的一种移动应用开发框架,使用Dart语言编写。更多Flutter资料大家可参考Flutter官网:。Flutter 2.10 起,Windows 的支持已进入 stable 渠道!本篇介绍Flutter Windows开发环境搭建,以及如何使用Flutter进行Windows应用软件开发。_flutter windows

By Yupei Zhang_emergence of simple-cell receptive field propertie-程序员宅基地

文章浏览阅读394次。Sparse Learning:i) Sparsity Learning (foundation)ii) Sparsity Learning for Clustering (1) sparse subspace clustering: Algorithm, Theory and Applications[PDF] The collection of data f_emergence of simple-cell receptive field properties by learning a sparse cod

Linux重启mysql_linux mysql 重启-程序员宅基地

文章浏览阅读7.7k次。linux启动mysql服务_linux mysql 重启

各品牌电脑PE中找不到硬盘的解决方法/bios设置_联想ideapad710s进pe找不到硬盘-程序员宅基地

文章浏览阅读1.3w次。  大部分小伙伴遇到系统坏了之后,都会自己用U盘装系统,但是在u盘装系统过程中却容易遇到问题,特别是PE中找不到硬盘的情况,大家遇到这种情况该怎么解决呢,所以今天跟着快启动小编的脚步一起来详细了解一二吧。  首先,我们要了解硬盘的两种模式,一种是比较新的SATA模式,现在的新电脑大多采用此模式,而另一种则是比较旧的PATA模式,而这两种模式都需要配置驱动程序,但它们的驱动程序是不一样的。  然而,..._联想ideapad710s进pe找不到硬盘

2021-08-09 layui中使用js修改css样式_layui 在某个页面修改全局css-程序员宅基地

文章浏览阅读1.2k次。修改已有的css样式//test是html中需要修改的样式的id $("#test").css('border-right', '0px');//test是html中需要修改的样式的class $(".test").css('border-right', '0px');_layui 在某个页面修改全局css

推荐文章

热门文章

相关标签