首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
某工厂有一个仓库可以存放甲、乙两种零部件,甲零件可以存放m件,乙零件可以存放n件,车间A专门生产甲零件,每次1件,每生产1件存放进仓库1件;车间B专门生产零件乙,每次1件,每生产1件存放进仓库1件。总装车间每次从仓库取出2件甲零件、l件乙零件组装成成品,车
某工厂有一个仓库可以存放甲、乙两种零部件,甲零件可以存放m件,乙零件可以存放n件,车间A专门生产甲零件,每次1件,每生产1件存放进仓库1件;车间B专门生产零件乙,每次1件,每生产1件存放进仓库1件。总装车间每次从仓库取出2件甲零件、l件乙零件组装成成品,车
admin
2013-07-12
52
问题
某工厂有一个仓库可以存放甲、乙两种零部件,甲零件可以存放m件,乙零件可以存放n件,车间A专门生产甲零件,每次1件,每生产1件存放进仓库1件;车间B专门生产零件乙,每次1件,每生产1件存放进仓库1件。总装车间每次从仓库取出2件甲零件、l件乙零件组装成成品,车间A、B和总装车间必须互斥进入仓库。当仓库内甲、乙零件分别达到m、n件时,车间A、B分别停止生产。而仓库内任何一种零件为0时,总装车间停产。根据上述规则,请利用信号量机制,没计一个可以让车间A、B和总装车间协调运转的程序,并说明各个信号量的意义,用类c语言写出整个过程。
选项
答案
设信号量mutex用于车间的互斥,positionA、positionB和partA,partB为资源信号量,分别表示仓库中零件甲、乙的空位数和满位数,positionA+partA=m;positionB+partB=n;编程如下: deftype int semaphore; //定义信号量 semaphore mutex=l; //进入仓库的互斥信号量 semaphore positionA=m,positionB=n; //车间A、B生产的零件甲、乙存放的位置 semaphore partA=0,partB=0; //零件甲、乙的信号量 void workshopA ( ) //车间A进程 { while(TRUE) //并发调度 { int item; //仓库货架指针 item=produce(甲); //生产零件甲 P(positionA); //查有无零件甲的货位 P(mutex); //仓库可以进入吗? puton(item); //放置零件甲 V(mutex); //释放仓库互斥量 V(partA); //增加零件甲的资源信号量 } //离开 } void workshopB( ) //车间B进程 { while(TRUE) //并发调度 { int item; //仓库货架指针 item=produce(乙); //生产零件乙 P(positionB); //查有无零件乙的货位 P(mutex); //仓库可以进入吗? puton(item); //放置零件乙 V(mutex); //释放仓库互斥量 V(partB); //增加零件乙的资源信号量 ) //离开 ) void assembleshop( ) //总装车间进程 { while(TRUE) //并发调度 { int iteml,item2; //仓库货架指针 P(partA); //查第一个零件甲是否有? P(partA); //查第二个零件甲是否有? P(partB); //查第一个零件乙是否有? P(mutex); //仓库可以进入吗? iteml=get(甲,2); //取出2个零件甲 item2=get(乙); //取出1个零件乙 V(mutex); //释放仓库互斥量 v(positionA); //增加零件甲的第一空位信号量 V(positionA); //增加零件甲的第二空位信号量 V(positionB); //增加零件乙的空位信号量 assemble(iteml,item2); //总装 } //离开 }
解析
本题考查的是生产者和消费者问题的变形。本题中的生产者有两个,所对应的缓冲区(即仓库)是一个,但是,它们各自有自己的零件货位,甲、乙零件可以分别存放m、n件,所以可以考虑设置一个仓库的互斥量,作为车问A、B和总装车间的互斥信号量。由于已知甲、乙货架的数量分别为m、n,因此可以为车间A、B设置资源信号量positionA、positionB,它们的初值分别为m、n,表示货架为空、可以分别存放的零件数量。对于总装车间来讲,它是一个消费者,与普通消费者不同的是,它每次要取零件甲2件和零件乙1件来生产,因此可以设置资源信号量partA和partB,它们的初值为0,代表仓库中零件甲、乙的数量。总装车间每次消费2个零件甲,可以对信号量partA作2次P操作,消费零件乙1件则只作1次P操作,从而完成三个车间的同步。
转载请注明原文地址:https://kaotiyun.com/show/Vrxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
马克思说:巴黎公社“只不过是在特殊条件下的一个城市起义”。其含义是()。
关于前期罗马帝国时期的经济状况的叙述,不正确的是()。
以下古代文件起到了限制王权作用的是()。
新经济政策的实施表明苏俄()①放弃了由战时共产主义政策过渡到社会主义的设想②发展了马克思主义理论③适时调整生产关系以适应生产力发展④利用市场和商品货币关系发展经济
论述斯巴达的阶级结构、政治制度和社会风尚
解析两个战场的地位、作用及相互关系。
1948年,南斯拉夫对从苏联照搬来的“行政命令式的国家集权式”体制进行改革逐步形成有自己特色的建设社会主义的理论和方法,其核心是()。
电子计算机的发展经过了:①电子数值积分计算机(ENIAC)②集成电路计算机③大规模集成电路汁算机④晶体管计算机⑤人工智能计算机其先后顺序是()。
在西欧列强海外殖民扩张进程中,各国之间相互争夺海上霸权。18世纪末,英国在争霸中取得胜利的根本原因在于()
洪武八年,朱元璋仿照元朝的办法,印造(),命令民间通行,形成了钱、钞并用的货币制度。
随机试题
Bigcompaniesswallowlittleoneseveryday.Sothe【C1】________onMarch25thbyYahoo(annualrevenue,$5billion)ofSummly,a
A:themainfeatureoftheAudiolingualMethod①emphasisontheteachingoflisteningandspeakingbeforereadingandwritin
A、 B、 C、 D、 C
能上助心阳、中温脾阳、下补肾阳,为“回阳救逆第一品药”的是
会计职业道德规范中的强化服务,是要求会计人员具有()。
通过多次交易分步实现同一控制下企业合并的,因合并而增加的净资产在比较报表中应调整所有者权益项下的相关项目。()
审计业务涉及的三方关系人是指()。
全省2006年度农业秋熟超产增收竞赛活动先进单位通报各市县人民政府、省各委办厅局:2006年,为夺取秋熟农业丰收,实现全省秋粮总产超过2005年、棉花单产超历史、农民增收超过计划目标,省政府在全省开展了农业秋熟超产增收竞赛活动。为总结经验,表彰先进,省
《民法总则》第169条规定:“代理人需要转委托第三人代理的,应当取得被代理人的同意或者追认。转委托代理经被代理人同意或者追认的,被代理人可以就代理事务直接指示转委托的第三人,代理人仅就第三人的选任及其对第三人的指示承担责任。转委托代理未经被代理人同意或者追
Whyaren’ttheUniversityCollegesandInstitutesjustcalled"University"?Thesimpleransweristhat,withafewexceptions,t
最新回复
(
0
)