首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
有n个生产者进程向1个有限的缓冲区不断地发送消息,这些消息通过缓冲区分发到m个消费者,缓冲区的大小只可以存放1条消息。生产者和消费者的工作遵循如下规则: (1)生产者和消费者对缓冲区的访问互斥; (2)对每1条放入缓冲区的消息,所有消费者都
有n个生产者进程向1个有限的缓冲区不断地发送消息,这些消息通过缓冲区分发到m个消费者,缓冲区的大小只可以存放1条消息。生产者和消费者的工作遵循如下规则: (1)生产者和消费者对缓冲区的访问互斥; (2)对每1条放入缓冲区的消息,所有消费者都
admin
2012-06-26
88
问题
有n个生产者进程向1个有限的缓冲区不断地发送消息,这些消息通过缓冲区分发到m个消费者,缓冲区的大小只可以存放1条消息。生产者和消费者的工作遵循如下规则:
(1)生产者和消费者对缓冲区的访问互斥;
(2)对每1条放入缓冲区的消息,所有消费者都必须接收1次;
(3)缓冲区满时,生产者必须阻塞,缓冲区空时,消费者阻塞。
请用信号量和P、V操作组织正确的发送和接收。用类C语言进行描述。
选项
答案
本题的解答采用分离的信号量来实现,可以比较清楚地看到操作的过程。 typedef int semaphorle; //定义信号量 semaphore mutex; //缓冲区互斥信号量用于读写互斥 semaphore empty[m]={1,1…,1}; //当前缓冲区所有格子为空 semaphore grid[m]={0,0…,0}; //缓冲区的每个格子满的信号量 void producer() //生产者 {int i,buffer; while(1) //并发调度 { message=produce(); //生产者生产消息 for(i=0,i
解析
本题是经典的生产者和消费者问题的变形。在经典的生产者和消费者的模型中,生产者和消费者共用一组缓冲区,生产者向缓冲区中写入一次数据,消费者从缓冲区中读出一次数据,即写一次,读一次。本题中,生产者向缓冲区中只写一次,但是每个消费者却都要读一次。对于此类问题,可以把缓冲区看成是m格的缓冲区阵列,这样一来,生产者每写一次缓冲区,相当于填满了一块m格的缓冲区,而消费者只需要读出属于自己格子的消息即可,当所有的格子读空以后,这个缓冲区就可以接纳下一个生产者的写入。分析清楚其工作机制,我们可以从经典的生产者和消费者问题出发,来设计相应的信号量。信号量的设计可以是信号量组,也可以采用分离的信号量来实现。
转载请注明原文地址:https://www.kaotiyun.com/show/hyxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
19世纪中期,德意志资产阶级迫切要求实现国家的统一,其首要的目的是()。
德国法西斯能够通过合法方式夺取政权,主要原因有()。①垄断资产阶级要求建立极权统治②纳粹党利用了人民对现状的不满③骗人的宣传欺骗了社会的信任④通过国会纵火案打击了共产党
圣德太子“宪法十七条”规定的是()
试析凡尔赛一华盛顿体系的实质及其对一战后国际关系的影响。
19世纪末20世纪初垄断组织产生的原因及其在各主要资本主义国家发展变化的动向。
试论述五四运动以后中国社会民族矛盾与阶级矛盾交替变化。
下列有关曲辕犁的表述正确的是()①曲辕犁早在中国汉代即已使用了②曲辕犁在中国出现至少比欧洲早一千多年③我国古代的农业工具和农耕技术曾长期居世界领先地位④处于“蒸汽时代”的欧洲农业技术革新,滞后于同时代工业的发
晚清时期清帝年号的正确排序是
设计一个算法,求无向图G(采用邻接表存储)的连通分量个数。
定点加法器完成加法操作时,若次高位的进位与最高位的进位不同,即这两个进位信号“异或”运算的结果为l,则称发生了()。
随机试题
增液承气汤用于治疗哪一型急性胰腺炎
肾在志为
木楼梯工程量,按水平投影面积计量,应扣除()楼梯井所占面积。
依据()的不同,债券分为附息债券、一次还本付息债券和贴现债券。
Everyday25millionU.S.childrenrideschoolbuses.Thesafetyrecordforthesebusesismuchbetterthanforpassengercars;
在下面的横线上填上相应的古诗文名句。杜甫在《登高》诗中说:“无边落木萧萧下,________。”李煜则在《虞美人》词中感慨:“问君能有几多愁?________。”李清照则在《声声慢》中一声长叹:“这次第,________?”
根据以下资料,回答下列问题。1952年,我国国内生产总值(GDP)仅为300亿美元。1960年,达到614亿美元。之后,每年的GDP总量呈稳步小幅上升态势。1972年突破1000亿美元,之后用了10年的时间达到2021亿美元(1982年)。从此以后,我国
厨房:电磁炉:做饭
面向对象系统由对象及其相互间的通信构成。一般来说,面向对象软件的测试可以分为4个层次进行。其中,(3)测试,测试类中定义的每个方法,基本上相当于传统软件测试中的(4);(5)测试,测试一组协同工作的类之间的相互作用。
A、Theinterpersonalrelationship.B、Thehighpressure.C、Theservantsystem.D、Therapidprogress.B原文提到美国人对时间又爱又十艮,后面具体解释原因,答案依
最新回复
(
0
)