首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
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-08-01
40
问题
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)程序如下: var 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():=eountodd()+1;V(mutex): /*释放缓冲区*/ V(empty); /*向P1发信号,多出一个空单元*/ end P3:begin P(s2) /*收到P1发来的信号,已产生一个偶数*/ P(mutex); /*缓冲区是否被占用*/ Geteven();Counteven():=courlteven()+1;V(mutex); /*释放缓冲区*/ v(empty): /*向P1发信号,多出一个空单元*/ end parend
解析
转载请注明原文地址:https://kaotiyun.com/show/6tCi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
下列说法中。全部符合历史事实的是()。①阿拉伯阿拔斯王朝的首都足麦地那②穆罕默德死后,他的继承人改称为哈里发,第三任哈里发奥斯曼时期,部分下层莫斯林组建了军事民主派,称为哈瓦立及派③阿拉伯人灭亡了具有1200年历史的波斯帝国的战役是雅穆克战役④在阿
中国政府第一次公开提出和平解决台湾问题的方针是在()。
在西亚最早创造文字的是()。
唐顺宗时,以王叔文、王侄为首的朝臣与宦官之间发生的冲突,称为()。
武则天时期,为了管理天山以北的广大区域而设立了()。
提出“天有常道,地有常数”,“制天命而用之”的思想家是()。
三国同盟和三国协约两大军事集团最终形成的时间是()。
基督教产生的时间是()。
就绪队列中有n个进程等待使用一个CPU,那么,如果采用不同的调用算法,就有()种调度顺序。
试比较脱机I//O和联机I/O。
随机试题
肾上腺素主要由哪个部分分泌
下列具有“主胞胎”功能的奇经是
在药品的标签或说明书上,必须注明的内容有
修改或删除会计科目遵循“自下而上”原则,即先修改或删除下一级科目,再次本级。()
(操作员:李会计;账套:103账套;操作日期:2014年1月31日)1月17日,由于采购A材料(已入库),欠飞虎公司货款17000元。请录入应付单。应付科目:2202金额:17000对方科目:1403一01金额:17000
以下是中国人民银行资产负债简表:整理可得:Mn(Aa-La)+(Ab-Lb)+(AC-LC)如果商业银行倒逼央行增加贷款,则货币供应量()。
收文审核时对不符合要求的公文应作()。
所谓规模经济,就是说工厂或公司的规模越大,单位成本就越低,收益就越大。()
MONGREL:
Whatisthenewsitemmainlyabout?
最新回复
(
0
)