首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
有n个生产者进程向1个有限的缓冲区不断地发送消息,这些消息通过缓冲区分发到m个消费者,缓冲区的大小只可以存放1条消息。生产者和消费者的工作遵循如下规则: (1)生产者和消费者对缓冲区的访问互斥; (2)对每1条放入缓冲区的消息,所有消费者都
有n个生产者进程向1个有限的缓冲区不断地发送消息,这些消息通过缓冲区分发到m个消费者,缓冲区的大小只可以存放1条消息。生产者和消费者的工作遵循如下规则: (1)生产者和消费者对缓冲区的访问互斥; (2)对每1条放入缓冲区的消息,所有消费者都
admin
2012-06-26
85
问题
有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
学硕统考专业
相关试题推荐
下列近代社会思潮产生的先后顺序排列正确的是()①人文主义②自由主义③理性主义④重商主义
日本占领下列城市的先后顺序是()①上海②北京③天津④南京⑤武汉⑥广州
1966年至1976年间在我国发生的全局性、长时间的“左”倾严重错误是()。
美国首次提出争夺世界霸权的纲领性文件是()。
二战后的半个世纪中,资本主义各国经济史上的五个周期阶段。
第一次世界大战后。《凡尔赛条约》规定了国际联盟管理15年的德国地区是()。
试述中国共产党诞生的历史条件和意义。
阅读下列史料,并回答问题:在琶勒尼斯(注:地名)一役获胜后,他(庇西特拉图)便占领政府,并解除人民武装;现在他已能稳定地握住僭主政权,并且取得那克索斯。以吕格达密斯为统治者。他解除人民武装的方法是这样的:他在塞修斯庙举行了一个武装的阅兵式,同时举行一次民
北宋在统一南方割据势力的过程中特设(),把征南所得的财富统一存放,以作日后恢复幽燕之费。
字长16位的补码定点小数的表示范围是()。
随机试题
A、75%乙醇B、2%过氧乙酸C、0.5%碘伏D、10mg/L二溴海因E、2%戊二醛可用于胃镜消毒的是
干烤法杀灭芽胞的条件是
治疗心源性哮喘的药物是
女孩,3岁,智能落后,表情呆滞,眼距宽,眼裂小,鼻梁低,口半张,舌伸出口外,皮肤细嫩,肌张力低下,右侧通贯手,最可能的诊断是
子分部工程完成并做检查评定时应参加的单位有()单位。
M公司5月3日购入甲公司债券20000元,购入A公司股票115000元,作为短期投资。6月30日,所购入甲公司债券市价为20100元,所购A公司股票市价为105000元。则M公司中期期末按投资总体计提跌价准备数应为()元。
一、注意事项1.申论考试是对应考者阅读理解能力、综合分析能力、提出和解决问题能力、文字表达能力和贯彻执行能力的测试。2.仔细阅读给定资料,按照后面提出的“作答要求”依次作答。二、给定资料1.2008年红网的“百姓呼声”,2009
(1)考生文件夹下有一个工程文什sjt3.vbp。程序的功能是:通过键判向文本框中输入数字,如果输入的是非数字字符,则提示输入错误,且文本框中不显示输入的字符。单击名称为Command1、标题为“添加”的命令按钮,则将文本框中的数字添加到名称为Combo1
下列关于文件流的描述中,正确的是()。
NothingislesssensiblethantheadviceoftheDukeofCambridgewhoistobereportedtohavesaid:"Anychange,atanytime,
最新回复
(
0
)