首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
有n个生产者进程向1个有限的缓冲区不断地发送消息,这些消息通过缓冲区分发到m个消费者,缓冲区的大小只可以存放1条消息。生产者和消费者的工作遵循如下规则: (1)生产者和消费者对缓冲区的访问互斥; (2)对每1条放入缓冲区的消息,所有消费者都
有n个生产者进程向1个有限的缓冲区不断地发送消息,这些消息通过缓冲区分发到m个消费者,缓冲区的大小只可以存放1条消息。生产者和消费者的工作遵循如下规则: (1)生产者和消费者对缓冲区的访问互斥; (2)对每1条放入缓冲区的消息,所有消费者都
admin
2013-07-12
39
问题
有n个生产者进程向1个有限的缓冲区不断地发送消息,这些消息通过缓冲区分发到m个消费者,缓冲区的大小只可以存放1条消息。生产者和消费者的工作遵循如下规则:
(1)生产者和消费者对缓冲区的访问互斥;
(2)对每1条放入缓冲区的消息,所有消费者都必须接收1次;
(3)缓冲区满时,生产者必须阻塞,缓冲区空时,消费者阻塞。
请用信号量和P、V操作组织正确的发送和接收。用类C语言进行描述。
选项
答案
本题的解答采用分离的信号量来实现,可以比较清楚地看到操作的过程。 typedef int semaphore; //定义信号量 semaphore mutex; //缓冲区互斥信号量用于读写互斥 semaphore empty[m]={1,1,…,1}; //当前缓冲区所有格子为空 serflaphore grid[m]={0,0,…,0); //缓冲区的每个格子满的信号量 void producer( ) //生产者 {int i,buffer; while(1) //并发调度 {message:produce( ); //生产者生产消息 for(i=0,i
解析
本题是经典的生产者和消费者问题的变形。在经典的生产者和消费者的模型中,生产者和消费者共用一组缓冲区,生产者向缓冲区中写入一次数据,消费者从缓冲区中读出一次数据,即写一次,读一次。本题中,生产者向缓冲区中只写一次,但是每个消费者却都要读一次。对于此类问题,可以把缓冲区看成是m格的缓冲区阵列,这样一来,生产者每写一次缓冲区,相当于填满了一块m格的缓冲区,而消费者只需要读出属于自己格子的消息即可,当所有的格子读空以后,这个缓冲区就可以接纳下一个生产者的写入。分析清楚其工作机制,我们可以从经典的生产者和消费者问题出发,来设计相应的信号量。信号量的设计可以是信号量组,也可以采用分离的信号量来实现。
转载请注明原文地址:https://kaotiyun.com/show/nuxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
“二战期间,美国研制了原子弹并用于实践;1946年美国投入的第一台电子计算机最初是用于计算炮弹弹道;德国人研制成功的远程液体火箭是用于空袭英国的。”以上史实说明()。
第一国际开展了哪些活动?其内部经历了哪些主要斗争?
下面条约没有涉及德国的赔款问题的是()。
唐朝时,中国和非洲也有来往。下列有关这方面的证据中最具说服力的是()
玛雅人的金字塔主要功能是()。
波兰三次被瓜分的时间是()
明朝灭亡后,以下南明小朝廷存在的先后顺序是()。①绍武政权②永历政权③隆武政权④弘光政权
文艺复兴时期,系统提出了国家主权理论的政治思想家是()。
西魏实际统治者宇文泰主导的诸多改革奠定了隋唐王朝的统治基础,其中影响最大的是()
一个使用选择性重传协议的数据链路层协议,如果采用了5位的帧序列号,那么可以选用的最大窗口是()。
随机试题
()是婴儿的一种常见病,多在六个月左右发生。
下列哪项不是急性肾炎的临床特征
水肿的调摄护理最为重要的是
使用牙挺时,牙挺的挺刃一般应插入牙槽嵴的
(2008年)面积相等的两个图形分别如图5—25(a)和图5—25(b)所示。它们对对称轴y、z轴的惯性矩之间的关系为()。
工程勘察报告《不良地质作用和特殊性岩土的描述和评价》中特殊岩土主要包括()。
错账更正的主要方法有()。
设函数f(x)连续,下列变上限积分函数中,必为偶函数的是().
软件生命周期中花费时间最多的阶段是()。
A、I’msorry.Idon’tknow.B、I’mstillthinkingaboutit.C、I’mgladaboutit.A此句意为:对不起,请问去火车站怎么走?肯定的应答应具体告知怎么走,否定的应答可说“对不起,我不
最新回复
(
0
)