首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
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
67
问题
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
学硕统考专业
相关试题推荐
印度种姓制度中,处于被剥削被压迫地位的两个瓦尔那是()①婆罗门②刹帝利③首陀罗④吠舍
1543年发表解剖学专著《人体结构论》的是()。
标志着整风运动开始向反“右派”斗争转变的重要文件是()。
下列不是开始于战国时期的制度是()。
在华盛顿会议上,美英支持中国要求的意图是()
三国时期,魏、蜀、吴三国灭亡的历史顺序是()。
北宋在统一南方割据势力的过程中特设(),把征南所得的财富统一存放,以作日后恢复幽燕之费。
春秋时期,提出“天道远,人道迩,非所及也”重要思想的是()。
()是清代管理边疆少数民族地区事务的机关,也掌管一部分外交事务。
假脱机技术(SPOOLing)中,被利用来做虚拟设备的是()。
随机试题
小儿囟门高突,多因
患者,女,56岁,素有“冠心病”史,但无心胸疼痛,近因过劳出现心胸隐痛,时作时止,活动时易发,伴倦怠乏力,语声低怯,面色咣白,自汗。诊见舌质淡红,苔花剥,舌体胖大,脉细而有时间歇。应首选
第二乳磨牙与第一恒磨牙的区别要点中哪一点是错误的()
寒证泄泻的主症是实证泄泻的主症是
隧道衬砌背后不密实,超声波反射信号同相轴呈绕射弧形,且不连续,较分散。()
报检人在向检验检疫机构办理了报检手续,并领取了检验检疫证单后,凡有下列情况之一的应重新报检:( )
下列()属于预算管理的原则。
A、 B、 C、 D、 D
Shouldwecareifover150knownspeciesofanimalshave【1】fromtheearthinthelastfiftyyears?Shouldwebeconcernedthatt
Mostworthwhilecareersrequiresomekindofspecializedtraining.Ideally,therefore,thechoiceofan【C1】______shouldbemade
最新回复
(
0
)