首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
某工厂有一个仓库可以存放甲、乙两种零部件,甲零件可以存放m件,乙零件可以存放n件,车间A专门生产甲零件,每次1件,每生产1件存放进仓库1件;车间B专门生产零件乙,每次1件,每生产1件存放进仓库1件。总装车间每次从仓库取出2件甲零件、1件乙零件组装成成品,车
某工厂有一个仓库可以存放甲、乙两种零部件,甲零件可以存放m件,乙零件可以存放n件,车间A专门生产甲零件,每次1件,每生产1件存放进仓库1件;车间B专门生产零件乙,每次1件,每生产1件存放进仓库1件。总装车间每次从仓库取出2件甲零件、1件乙零件组装成成品,车
admin
2012-06-26
83
问题
某工厂有一个仓库可以存放甲、乙两种零部件,甲零件可以存放m件,乙零件可以存放n件,车间A专门生产甲零件,每次1件,每生产1件存放进仓库1件;车间B专门生产零件乙,每次1件,每生产1件存放进仓库1件。总装车间每次从仓库取出2件甲零件、1件乙零件组装成成品,车间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=1; //进入仓库的互斥信号量 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/K8xi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
春秋后期的()用望、闻、问、切的方法诊断病人。
在巴黎和会上获利最大的两个国家是()。
19世纪中期,德意志资产阶级迫切要求实现国家的统一,其首要的目的是()。
利玛窦与李之藻合译的()一书,介绍了西方数学中的算术知识,尤为可贵的是,其传入了中国所没有的西洋笔算法。
抗战以来文艺战线上思想斗争中最重要的问题是()。
下列政权中,控制西域的政权是()。
与前两次工业革命相比,第三次科技革命在能源结构上的主要变化是()
下列内容,哪些与垄断组织出现有关?()①控制一个或几个部门商品的生产、价格和市场②促进了大工业的发展,在某种程度上适应了生产力发展的需要③干预、控制国家的政治和经济生活④积极向外扩张,从经济上瓜分世界
已知一组关键字为(26,36,41,38,44,15,68,12,6,51,25),用链地址法解决冲突。假设装填因子a=0.75,散列函数的形式为H(K)=KMODP,回答下列问题:(1)构造散列函数。(2)画出散列表。(
在图B-3所示的采用“存储.转发”方式的分组交换网络中,所有链路的数据传输速率为100Mbit/s,分组大小为1000B,其中分组头大小为20B。若主机H1向主机H2发送一个大小为980000B的文件,则在不考虑分组拆装时间和传播延迟的情况下,从H1发送开
随机试题
设z=xf(,y),其中函数f具有二阶连续偏导数,求
麻子仁丸的功用是
下列哪些临床表现是因骨髓瘤细胞分泌大量M蛋白引起的
老年人口腔保健受到乡政府的高度重视,请来口腔保健专家指导卫生院的工作。经过讨论研究,全乡1000多名60岁以上老年人口腔保健的详细计划方案形成了。调查结果显示,老年人牙周健康问题主要是
在中国境内无住所,但是在一个纳税年度中在中国境内连续或者累计居住不超过90日的个人.其来源于中国境内的所得,由境外雇主支付并且不由该雇主在中国境内的机构、场所负担的部分,免予缴纳个人所得税。()
图3为高中物理某教材中的实验装置示意图,注射器针头下端的开口有橡胶囊,它和柱塞一起把一段空气柱封闭在玻璃管中,实验过程中空气柱的体积缓慢变化。空气柱的压强可以从仪器上方的压力表中读出,空气柱的长度可以从玻璃管侧的刻度尺上读出,该装置可以用来验证()
设f(x)是R上的函数,则下列叙述正确的是()。
现在的许多文章因为涂饰太厚,废话太多,所以很不容易觉察出底细来。正如透过密叶投射在地面上的月光,看到的只是点点的碎影。这段话中被比作文章“真正观点”的是()。
①倘若任由投机取巧者获利,诚信经营者吃亏②刷单,本质上属于商业欺诈③会造成网络经济的“信任危机”,“劣币驱逐良币”的恶果显而易见④更破坏了电商信用评价机制,扰乱市场竞争秩序⑤既剥夺了消费者对商家信誉和商品质量的知情权,损坏消费者切身利益⑥但由于“
市场跟随者战略的类型主要有()。
最新回复
(
0
)