首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
有n个生产者进程向1个有限的缓冲区不断地发送消息,这些消息通过缓冲区分发到m个消费者,缓冲区的大小只可以存放1条消息。生产者和消费者的工作遵循如下规则: (1)生产者和消费者对缓冲区的访问互斥; (2)对每1条放入缓冲区的消息,所有消费者都
有n个生产者进程向1个有限的缓冲区不断地发送消息,这些消息通过缓冲区分发到m个消费者,缓冲区的大小只可以存放1条消息。生产者和消费者的工作遵循如下规则: (1)生产者和消费者对缓冲区的访问互斥; (2)对每1条放入缓冲区的消息,所有消费者都
admin
2012-06-26
44
问题
有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://kaotiyun.com/show/hyxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
在半殖民地半封建社会条件下,由于经济地位决定了在政治上带有两重性的阶级是()。
《马关条约》中最能体现列强对华侵略进入新阶段的内容是()。
关于美国内战,不正确的说法是()。
中国境内已发现的猿人化石不包括()。
概括指出新民主主义革命各个阶段中国社会的主要矛盾及其表现形式的演变,说明中共根据上述变化对政策的调整及其结果。
论述近代西欧海上霸权的更迭
论述英国都铎王朝加强专制统治的过程及措施
以德国宗教改革为例分析宗教改革产生的原因和作用。
下面条约没有涉及德国的赔款问题的是()。
元代对边疆地区的统治方式不同于其他三地的一地是()。
随机试题
不符合先天性眼睑缺损的临床表现的是
下列属于慢惊风的病因病机的是
下列关于网络犯罪管辖的选项正确的是:()
转动目镜调焦螺旋的目的是使十字丝分划板成像清晰。()
计算全厂串级用水量(循环系统水使用后复用于其他水系统的水量)、水循环率、生产水复用率、吨钢新水消耗、吨钢外排废水量、吨钢烟粉尘和SO2排放量、吨钢CODCr和石油排放量。简要说明选用的水环境影响预测模式。
违反《物业管理条例》规定,未经业主大会同意,物业服务企业擅自改变物业管理用房的用途的,由县级以上地方人民政府房地产行政主管部门责令限期改正,给予警告,并处()的罚款;有收益的,所得收益用于物业管理区域内物业共用部位、共用设施设备的维修、养护,剩余部
与2008年相比,2009年城镇非私营单位在岗职工各行业年平均工资都有不同幅度的增长,绝大部分行业增长超过2000元。年平均工资最高的行业是金融业70265元,是全国平均水平的2.1倍;年平均工资最低的行业是农、林、牧、渔业14911元,只有全国平均水平的
()所谓被认可的侵犯行为,是指不但不违背社会准则,还可以为维护社会准则而服务的侵犯行为。
在VisualFoxPro中,通用型字段C和备注型字段L,在表中的宽度都是()。
一个字长为8位的无符号二进制整数能表示的十进制数值范围是______。
最新回复
(
0
)