首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
3个进程P1、P2、P3互斥使用一个包含N个(N>0)单元的缓冲区,P1每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用getev
3个进程P1、P2、P3互斥使用一个包含N个(N>0)单元的缓冲区,P1每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用getev
admin
2019-01-16
65
问题
3个进程P1、P2、P3互斥使用一个包含N个(N>0)单元的缓冲区,P1每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用geteven()从该缓冲区中取出一个偶数并用counteven()统计偶数个数。请用信号量机制实现这3个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述。
选项
答案
(1)定义信号量s1控制P1与P2之间的同步,s2控制P1与P3之间的同步,empty控制生产者与消费者之间的同步,mutex控制进程间互斥使用缓冲区。 (2)程序如下: vat s1=0,s2=0,empty=N,mutex=1; parbegin P1:begin X=produce(): /*生成一个数*/ P(empty); /*判断缓冲区是否有空单元*/ P(mutex); /*缓冲区是否被占用*/ Put(): If X%2==0 V(s2): /*如果是偶数,向P3发出信号*/ else V(s1): /*如果是奇数,向P2发出信号*/ V(mutex): /*使用完缓冲区,释放*/ end P2:begin P(s1); /*收到P1发来的信号,已产生一个奇数*/ P(mutex): /*缓冲区是否被占用*/ Getodd();Countodd():=countodd()+1;V(mutex); /*释放缓冲区*/ V(empty); /*向P1发信号,多出一个空单元*/ end P3:begin P(s2) /*收到P1发来的信号,已产生一个偶数*/ P(mutex); /*缓冲区是否被占用*/ Geteven():Counteven():=counteven()+1;V(mutex); /*释放缓冲区*/ v(empty); /*向P1发信号,多出一个空单元*/ end parend
解析
转载请注明原文地址:https://www.kaotiyun.com/show/6iRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
两宋之交活跃于太行山一代,脸上刺有“赤心报国,誓杀金贼”的一支义军是()。
第一个五年计划的具体时间段是()。
赋税是我国古代国家宏观管理经济的重要手段。 据此回答问题:明朝推行一条鞭法中“一”的内容是()
在欧美资产阶级革命时代,最能体现出资产阶级革命要求的文献是()。
列宁称马克思、恩格斯是“19世纪人类三个最先进国家中三种主要思潮的继承人和天才的完成者”。这里“三个最先进国家”指的是()。
世界天文史上最早实地测量子午线的记录是由谁进行的?()
20世纪30年代,美国推行“中立”的外交政策。对这一政策的正确表达是()。①适应国内外形势,维护自身利益②反映国际形势走向缓和③维护凡尔赛一华盛顿体系④不利于地区冲突的缓和与解决⑤不关心美洲地区以外的事务
日本三个月亡华计划破产的标志是()。
以下()协议完成了从网卡到IP地址的映射。
分页存储管理中,页表的功能是什么?当系统中的地址空间变得非常大时(如32位地址空间),会给页表的设计带来什么样的新问题?请给出一种解决方法,分析它的优点和缺点。
随机试题
夏朝建立后设置了辅佐夏王以备咨询的四辅臣是()
下述不是宫内节育器并发症的是
渐进式延迟退休年龄是党的十八届五中全会才提出的重要改革之一。()
题8~13:某17层建筑的梁板式筏形基础,如图4-20所示。采用C35级混凝土,ft=1.57N/mm2;筏形基础底面处相应于荷载效应基本组合的地基土平均净反力设计值pi=320kPa。提示:计算时取钢筋保护层厚度as=50mm。筏板厚
在施工中为达到控制物耗的目的,最常用的办法是()。
关于风险管理和商业银行的关系,说法不正确的是()。
下列关于职工基本养老保险待遇的表述中,正确的有()。
在A市博物馆的招聘中,以下人员可以采取直接考核方式招聘的是()。
将文件bcm5700-8.3.14.tar.gz解压缩的命令是(1)。A.rpmB.tarC.unzipD.rar在计算机/etc/sysconfig/network-scripts/目录中有以下文件,运行某命
顺序执行下列程序语句后,则b的值是Stringa="Hello";Stringb=a.substring(0,2);
最新回复
(
0
)