操作系统 第二章【记录型信号量机制、独木桥问题】【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

智能推荐

【每日一题】Day0012:力扣题库NO.1044. 最长重复子串_vwnexev-程序员宅基地

文章浏览阅读544次。今天的题虽然通过自己的思路应该是能够解出答案,但是提交超时;去学习别人的思路和解法,因为没有算法基础也难懂,不过姑且先将自己的思路述出。题目链接:力扣1044最长重复子串https://leetcode-cn.com/problems/longest-duplicate-substring/思路很简单,都在注释里直接看代码:package cn.daycode.leetcode;public class LongestDupSubstring { public static voi_vwnexev

103-MHA 高可用mysql集群-程序员宅基地

文章浏览阅读83次。一.MHA简介1.1.简介 MHA(Master HA ) 是一款开源的 MySQL高可用程序,它为MYSQL 主从复制架构提供了automating master failover主节点自动迁移功能.MHA在监控到master节点故障时候,会自动提升拥有的数据最近进于主节点的其他从节点为主节点,并且在此期间,会通过其他节点获取额外的信息来避免数据不一致性的问题..._高可用报错,fri may 22 20:13:46 2020 - [warning] sql thread is stopped(no err

解决添加codova plugin 编译出现问题:Execution failed for task ':processDebugManifest'.-程序员宅基地

文章浏览阅读310次。问题背景: ionic3项目上,添加cordova-plugin-cszbar,编译运行在android平台上 ,结果编译不成功。出现以下问题。 Element uses-feature#android.hardware.camera at AndroidManifest.xml:23:5-84 duplicated with element declared at AndroidManif..._cordova-plugin- duplicated w

Python利用abaqus2dyna将Abaqus关键字输入文件优雅地转换为LS-DYNA关键字输入文件的详细解析与实践_abaqus怎么和lsdyna连接-程序员宅基地

文章浏览阅读932次。在开始具体介绍如何使用 abaqus2dyna 之前,我们首先需要了解一些基础知识。1.1 Abaqus 关键字输入文件Abaqus 关键字输入文件(*.inp)是一个文本文件,包含了用于有限元分析的所有信息。它主要由头部、模型定义、加载、输出请求和结束四个部分组成。1.2 LS-DYNA 关键字输入文件LS-DYNA 关键字输入文件(*.k 或 *.key)也是一个文本文件,它包含了用于分析的所有信息。它的结构和 Abaqus 关键字输入文件类似,但关键字定义和参数设置有一定的差异。_abaqus怎么和lsdyna连接

java adsl 拨号_Java实现ADSL拨号上网-程序员宅基地

文章浏览阅读330次。import java.io.BufferedReader;import java.io.InputStreamReader;public class ConnectNetWork {/*** 执行CMD命令,并返回String字符串** @param strCmd* @return* @throws Exception*/public static String exeCmd(String st..._java adsl拨号

VAssistX 快捷键-程序员宅基地

文章浏览阅读303次。本文转自 VAssistX 常用快捷键函数跳转Alt + G - 函数定义和声明的跳转Alt + O - 在.h与.cpp文件中实现相互转换Alt + M - 列出当前文件所有的函数Ctrl + Tab - 切换标签查找Ctrl + F - 查找Ctrl + Shift + F - 在文件中查找F3 - 查找下一个Shift + F3 - 查找上一个Shift + Alt + O - 查找文件 (直接定位,更是对项目了心应手的表现)Shift + Alt + S - 查找符号 .

随便推点

Pandas基础介绍-程序员宅基地

文章浏览阅读945次,点赞19次,收藏20次。Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。Pandas官网地址Pandas文档。_pandas

mac webrtc android,WebRTC 开发(五)编译与运行 Mac 工程-程序员宅基地

文章浏览阅读151次。Last login: Fri Oct 18 20:59:20 on ttys000The default interactive shell is now zsh.To update your account to use zsh, please run `chsh -s /bin/zsh`.For more details, please visit https://support.apple..._ardexternalsamplecapturer

::在C++中的意思_c++ ::代表-程序员宅基地

文章浏览阅读934次。::表示作用域,和所属关系。class Aint A::test() //表示test是属于A类的。关于::的具体解析:::是运算符中等级最高的,它分为三种:1)global scope(全局作用域符),用法(::name)。2)class scope(类作用域符),用法(class::name)。3)namespace scope(命名空间作用域符),用法(namespace::n..._c++ ::代表

如何在Arcgis中对图斑进行自上而下,从左往右地编号_arcgis编号号从上到下,从左到右-程序员宅基地

文章浏览阅读3w次,点赞20次,收藏90次。在实际项目中,需要我们按照自上而下,从左往右的顺序为图斑编号,并且多数时候序号位数是确定的,针对这个问题我总结了一个自认为还算简便的方法。下面是具体的方法步骤:1、计算Xmin与Ymax。利用坐标进行排序,首先要算出坐标值。需要说明的是这里没有直接利用质心坐标而采用Xmin、Ymax进行排序,是因为质心坐标会遇到一种情况,就是当这个图斑很长或者很宽时,本应排在前面的序号,而因为质心靠后不得不被..._arcgis编号号从上到下,从左到右

mysql 数据类型_mysql表格的数据类型-程序员宅基地

文章浏览阅读1k次,点赞28次,收藏14次。选择合适的数据类型是很重要的。如要求存储精度较高时,应选择 DOUBLE类型。如果进行数值比较,最好使用 DECIMAL类型。 如果字符串是固定长度的,使用char,日期类型,就不适合字符串存储。TEXT 存储纯文本文件。BLOB主要存储图片、音频信息等_mysql表格的数据类型

Mac OS X 10.5 Leopard: Direcory Utility, The end of Netinfo-程序员宅基地

文章浏览阅读81次。其实,在OS X Tiger 10.4中,原来有两个应用程序一个叫NetInfo,一个是Directory Access一个主要用于管理本地用户的,另一个用来设置绑定网络Directory服务的,这次的Directory Utility是把这两个的功能合并了。 ...