首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
某工厂有一个仓库可以存放甲、乙两种零部件,甲零件可以存放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
70
问题
某工厂有一个仓库可以存放甲、乙两种零部件,甲零件可以存放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
学硕统考专业
相关试题推荐
清朝,各地督抚将重大问题径寄军机处交皇帝审批,称为()。
科学技术革命包括三个既有联系又有区别的过程,下列不属于三个过程的是()。
利玛窦与李之藻合译的()一书,介绍了西方数学中的算术知识,尤为可贵的是,其传入了中国所没有的西洋笔算法。
抗战以来文艺战线上思想斗争中最重要的问题是()。
下列各项内容和王羲之的书法成就有关的是()。①开始把字体由隶书转化为楷书②书法代表作有《兰亭序》、《黄庭经》等③他博采众长,世称“书圣”④其子王献之书法造诣也极高,父子合称“二王”
试析凡尔赛一华盛顿体系的实质及其对一战后国际关系的影响。
美国的垄断组织主要采取的形式是()。
1854年,英国外交大臣致函英国驻华公使说:“为了适应外商对农业产品已增加了的需要,新的贸易市场尚待开辟。”1856年,法国外长则指令法国驻华代办强调“商业关系的推广”,并强调“这是一个关系到至高无上权益的问题”。这说明()。
荷兰国旗问题:设有一个仅红、白、蓝三种颜色的条块组成的条块序列,请编写一个时间复杂度为O(n)的算法,使得这些条块按红、白、蓝的顺序排好,即排成荷兰国旗图案。
在因特网中,IP数据报的传输需要经由源主机和中途路由器到达目的主机,下面说法正确的是()。
随机试题
关于产气荚膜梭菌的致病性的叙述正确的是()
装配质量的好坏直接影响到焊接工艺和产品质量。()
患者,男性,55岁。活动时心前区疼痛1年余,1个月来,发作次数增多,每天3~5次,多在午睡、夜间睡眠时或晨起发作,持续20分钟以上缓解,含服硝酸甘油2—5分钟后缓解。临床诊断为变异型心绞痛。可以首选的治疗药物是
关于骨肉瘤一般概述错误的是()
将一般的成倍节拍流水施工改变为加快的成倍节拍流水施工时,所采取的措施是( )。
某公司生产单一产品,实行标准成本管理。每件产品的标准工时为3小时,固定制造费用的标准成本为6元,企业生产能力为每月生产产品400件。7月份公司实际生产产品350件,发生固定制造成本2250元,实际工时为1100小时。根据上述数据计算,7月份公司同定制造费用
控制和降低风险的手段有()
下列关于CiscoAironet1100进入快速配置步骤的描述中,错误的是()。
Thepoetcomparesherdreamtokettle-steambecause______.WhichofthefollowingstatementsisNOTtrue?
A、Theageofmentors.B、Therankoftheminthefield.C、Theamountoftrainingtime.D、Thetalentofmentors.C事实细节题。短文最后提到,Mal
最新回复
(
0
)