首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
某工厂有一个仓库可以存放甲、乙两种零部件,甲零件可以存放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
59
问题
某工厂有一个仓库可以存放甲、乙两种零部件,甲零件可以存放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
学硕统考专业
相关试题推荐
《马可波罗行纪》中载:“此汗八里大城之周围,约有城市二百,位置远近不等,每城皆有商人来此买卖货物,盖此城为商业繁荣之城也。”“此城”指的是()。
“刀斧犁锄,在手即成军器;儿童妇女,喊声亦助兵威”描述的是什么事件的场面()。
“焚书坑儒”事件中,对峙的双方是博士()和丞相李斯。
试论述五四运动以后中国社会民族矛盾与阶级矛盾交替变化。
系统阐明社会主义初级阶段理论是在()。
1925年10月签订《洛迦诺公约》后,法国外长白里安认为:“我国的安全比以往任何时候都更有保障了。”对此说法不正确的一项是()。
下列关于第三次科技革命的说法,不正确的是()。
1934年9月苏联加入国联,对此说法错误的一项是()。
已知一组关键字为(26,36,41,38,44,15,68,12,6,51,25),用链地址法解决冲突。假设装填因子a=0.75,散列函数的形式为H(K)=KMODP,回答下列问题:(1)构造散列函数。(2)画出散列表。(
指令系统字长16位,每个地址码为6位,采用扩展操作码的方式,试设计14条二地址指令,100条一地址指令,100条零地址指令。(1)画出操作码的扩展形式。(2)下图为指令译码逻辑图,其中只给出了二地址指令的译码逻辑,试补全一地址指令和零地址指令的
随机试题
男性,34岁,河北人,2个月前到东北出差。返回原籍后半月,出现发热、寒战、右上腹涨痛、萎靡不振就诊。曾在东北出差时喜食生鱼片。体检:T38.4℃,巩膜黄染,心肺正常。右上腹压痛,无反跳痛和肌紧张,肝肋下2cm有触痛,脾肋下1.5cm。血常规:白细胞12乘以
患者,女,37岁。心烦不得卧,口燥咽干,舌尖红,脉细数。其诊断是
A、麦角茵科B、多孔菌科C、马尾藻科D、松萝科E、棕榈科茯苓、猪苓来源于
保险营销部门只是一个简单的保险推销部门,这是属于()营销阶段。
关于一元线性回归的正确表述有()。
以下各因素中,能够提高股东权益净利率的因素有()。
惯性思维定势:是指把判断和思考导人一定方向的先有观念或先有倾向的思维方式。下列不属于惯性思维定势的是()。
原始农业时期,黄河流域主要种植()。
我国研制的银河Ⅲ型超级计算机通过基准程序的测试,其峰值速度是()。
Thecountrywasonthevergeofbecomingprosperousandsuccessful.Theunderlinedpartmeans________.
最新回复
(
0
)