首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
自考
有一个可以存放n件产品的缓冲器,今有m个生产者,每个生产者每次生产一件物品放入缓冲器中;还有k个消费者,每个消费者每次可从缓冲器中取出一件物品去消费;不允许有两个或两个以上的生产者(或消费者)同时去存物品(或取物品),但允许有一个生产者(或消费者)在存物品
有一个可以存放n件产品的缓冲器,今有m个生产者,每个生产者每次生产一件物品放入缓冲器中;还有k个消费者,每个消费者每次可从缓冲器中取出一件物品去消费;不允许有两个或两个以上的生产者(或消费者)同时去存物品(或取物品),但允许有一个生产者(或消费者)在存物品
admin
2017-10-26
65
问题
有一个可以存放n件产品的缓冲器,今有m个生产者,每个生产者每次生产一件物品放入缓冲器中;还有k个消费者,每个消费者每次可从缓冲器中取出一件物品去消费;不允许有两个或两个以上的生产者(或消费者)同时去存物品(或取物品),但允许有一个生产者(或消费者)在存物品(或取物品)时有一个消费者(或生产者)可以去取物品(或存物品)。试用PV操作来协调它们的工作。
选项
答案
可以定义如下4个信号量: S1:生产者之间的互斥,由于只允许一个生产者存物品时有一个消费者取物品,故它的初值取为“1”。 S2:消费者之间的互斥,同理,它的初值取为“1”。 SP:表示是否可以把物品存入缓冲器,由于缓冲器容量为n,故SP的初值取为n。 SG:表示缓冲器中是否存有物品,显然,它的初值应该为“0”,表示还没有物品。 于是每个生产者Prodllcer i(i=1,2,…,m)和每个消费者Consumer j(j=1,2,…,k)可如下并发执行: begin B:array[0,…,n-1]of integer; k:=t:=0; S1:=S2:=1;SP:=n;SG=0; cobegin process producer i(i=1,2,…,m) begin L1:produce a producer; P(SP); P(S1); B[k]:=product; k:=(k+1)mod n; V(SG); V(S1); goto L1 end; process consiamer j(j=1,…,k) begin L2:P(SG); P(S2); take a product from B[t]; t:=(t+1)mod n: V(SP); V(S2); consume; goto L2; end; coend; end;
解析
转载请注明原文地址:https://www.kaotiyun.com/show/Bikx777K
本试题收录于:
操作系统概论题库理工类分类
0
操作系统概论
理工类
相关试题推荐
输入是进入系统的________、________、________,这时的系统可因此而有所改变。
小组教学中“献计献策”活动时间最长限制是【】
古老的完全依赖回答技巧的教学方式来自【】
应用课题组教学方法的好处有【】
下列各项中不属于心绞痛的常见诱因是()
患者,男性,61岁,高血压史10年,伴头晕、头痛、心慌、气急,尤以上楼梯、干活时明显。一个月来因疲劳过度和情绪不佳而感上述症状加剧,数次夜间因气憋而惊醒坐起,同时感到视力明显减退,经常发生无原因的恶心。一天来因情绪激动感剧烈头痛,伴喷射状呕吐3次,气急加剧
一女性病人,21岁。因自服“敌敌畏”约20ml,2小时后入院。曾呕吐少量胃内容物1次,余无特殊。体温37℃,脉搏86次/分,呼吸28次/分,血压110/70mmHg。呼之不应,面色苍白,呼气中带大蒜气味,手足抽动,皮肤及四肢湿冷,瞳孔针尖大小、等圆,心率
肥胖症患儿在饮食管理方面为了满足小儿食欲,可给予()
经典精神分析技术治疗的主要技术有哪几种?
中央处理器是通过执行()来启动通道进行工作的。
随机试题
福明公司为在上海证券交易所主板挂牌的上市公司。2018年1月25日,福明公司实际控制人、董事长李某根据公司2017年度业绩情况,向董事会秘书赵某提出在当期实施股票“高送转”的利润分配动议。赵某起草了《高送转预期利润分配预案》等文件提交董事会审议,但由于董事
胃癌的癌前期病变是
关于生物-心理-社会医学模式说法错误的是
根据所给资料,回答下列小题。2012年末福建省常住人口3748万人,比上年增长7.01%。农村居民人均纯收入9967元,比上年增长13.5%,扣除价格因素,实际增长10.8%,城镇居民人均可支配收入28055元,比上年增长。12.6%,扣除价格因素,实际
在互联网时代,__________要鼓励技术创新和盈利模式创新,但基本的前提是不能__________原创动力之源,更不能把别人的头条改头换面抄袭成自己的头条。填入画横线部分最恰当的一项是:
辩证唯物主义的认识论在继承了旧唯物主义的反映论的合理前提的同时,又克服了它的严重缺陷。表现在
下列的()赋值语句是不正确的。
有以下程序#include<stdio.h>voidfun(int*s,intn1,intn2){inti,j,t;i=n1j=n2;while(i<j){t=s[i]
HowlongdoesittaketheUSwomentofightandgainequality?
Oneofthequalitiesthatmostpeopleadmireinothersisthewillingnesstoadmitone’smistakes.Itisextremelyhardsometime
最新回复
(
0
)