首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
三个进程P1、P2、P3互斥使用一个包含N(N>O)个单元的缓冲区。P1每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用getev
三个进程P1、P2、P3互斥使用一个包含N(N>O)个单元的缓冲区。P1每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用getev
admin
2012-06-21
90
问题
三个进程P1、P2、P3互斥使用一个包含N(N>O)个单元的缓冲区。P1每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用geteven()从该缓冲区中取出一个偶数并用counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述。
选项
答案
定义信号量S1控制P1与P2之间的同步;S2控制P1与P3之间的同步;:empty控制生产者与消费者之间的同步;mutex控制进程间互斥使用缓冲区。程序如下: 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():=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://kaotiyun.com/show/HNxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
试述从五四运动到中国共产党成立,马克思主义在中国传播的情况及其原因。
东汉时期,一再削弱地方的军权,强化中央控制下的军队,在下列中央控制的军队中,主要负责保卫京师的是()
20世纪30年代的国联的所作所为,反映的实质问题是国联()
下列内容,哪些与垄断组织出现有关?()①控制一个或几个部门商品的生产、价格和市场②促进了大工业的发展,在某种程度上适应了生产力发展的需要③干预、控制国家的政治和经济生活④积极向外扩张,从经济上瓜分世界
西汉诸侯国的政权机构和中央基本上相同,其中需要中央直接任命的有()
到1869年为止,人类已发现了多少种化学元素()。
我国第一部系统的史学理论著作是()。
近现代以来,国际关系中先后出现了维也纳体系、凡尔赛一华盛顿体系和雅尔塔体系。关于这三个体系共同点的表述不正确的是()。
最早以立法形式巩固大化改新成果的法令是()。
1217年,英格兰的《森林宪章》允许平民百姓在王室森林中放牧牲畜、挖掘水渠并从事其他农业活动。颁布该宪章的主要目的在于()
随机试题
信息的加工
马克思主义哲学的创立意味着()
男,30岁,右肾结石行ESWL。碎石颗粒成分分析为磷酸镁铵结石,为预防结石的复发哪一项是错的
患者,男性,28岁。施工时不慎从4米高处跌下,半小时后被送入急诊室。体检:血压4/2kPa(30/15mmHg),神清、气促、面色苍白、四肢发凉、脉细弱,左侧胸压痛明显,胸廓塌陷、有骨擦感及反常呼吸征,左胸有一2cm×2.5cm创口,可听到气体出入创口响声
不属于设备及安装工程概算的是()。
下列各项属于市场商品供应与需求的形势动态内容的有()。
售后租回交易形成融资租赁,售价与资产账面价值之间的差额应该计入()。
会议结束后,应注意避免的情况有()。
人民警察纪律和义务是有区别的:纪律是人民警察必须履行的,而义务则不是强制的。()
[*]
最新回复
(
0
)