首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
某工厂有一个仓库可以存放甲、乙两种零部件,甲零件可以存放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
2013-12-31
81
问题
某工厂有一个仓库可以存放甲、乙两种零部件,甲零件可以存放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); //仓库可以进入吗? item1=get(甲,2); //取出2个零件甲 item2=get(乙); //取出1个零件乙 V(mutex); //释放仓库互斥量 V(positionA); //增加零件甲的第一空位信号量 V(positionA); //增加零件甲的第二空位信号量 V(positionB); //增加零件乙的空位信号量 assemble(iteml,item2); //总装 } //离开 }
解析
转载请注明原文地址:https://kaotiyun.com/show/6vxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
论述20世纪30年代关于社会史的论战。(安徽师范大学2003年中国近代史真题;北京师范大学2006年中国通史真题)
论述西晋占田制的实行及其意义。(兰州大学2001年中国古代史真题;北京师范大学2004年历史学综合真题)
简述《资政新篇》的内容与意义。(安徽师范大学2004年中国近代史真题)
19世纪末20世纪初垄断组织产生的原因及其在各主要资本主义国家发展变化的动向。
简述战后西欧经济的变化过程。
1848年2月,马克思、恩格斯为国际无产阶级组织——共产主义者同盟起草的纲领()在伦敦发表。
第三次科技革命初期,苏联领先于美国的新兴科学技术成就是()。
下列不是战国时代魏国李悝变法的内容的是()
试编写一个非递归算法,实现求以二叉链表存储的二叉树中q结点的祖先。
Demandpaging算法是paging算法在虚拟存储空间管理的扩展。其主要的改进是:仅当需要访问某页面时,如果它不在内存,把它调入内存。按照这个思路,将segmentation算法(段式存储管理算法)扩展到虚拟存储空间管理,也可以产生类似的算法,不妨
随机试题
企业所生产的产品有多种用途,不同用途的产品所占比重不同,就形成不同特点的_____________。
生殖器结核最先侵犯的部位是以下哪项
引起小儿支气管肺炎脓胸的病原菌主要是
关于教育税附加的说法,正确的是()。
合营企业的组织形式为有限责任公司,下列有关该类企业组织机构的表述中,符合中外合资经营企业法律制度规定的是()。
阅读下面这篇公文,回答下列问题。关于表彰实施科技兴市“1+5”工程先进单位的通报各县(市、区)委,各县(市、区)人民政府,市委各部委,市各局委办,市各直属机关:2011年以来,
优步:滴滴
Justhowdoesapersonarriveatanideaofthekindofpersonthatheis?Hedevelopsthis(1)_____ofselfthroughagraduala
以下程序的输出结果是______。main(){charst[20]="hello\0\t\\";printf("%d%d\n",strlen(st),sizeof(st));}
下列Access内置函数中,属于SQL聚合函数的是
最新回复
(
0
)