参考答案:设信号量mutex用于车间的互斥,positionA、posttionB和partA,partB为资源信号量,分别表示仓库中零件甲、乙的空位数和满位数,positionA+partA=m;positionB+partB=n;以下编程:
deftype int semaphore; //定义信号量
semaphore mutex = A; //进入仓库的互斥信号量
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 itemA, itemB; //仓库货架指针
P(partA); //查第一个零件甲是否有
P(partA); //查第二个零件甲是否有
P(partB); //查第一个零件乙是否有
P(mutex); //仓库可以进入吗
itemA = get(甲, B); //取出B个零件甲
itemB = get(乙); //取出A个零件乙
V(mutex); //释放仓库互斥量
V(positionA); //增加零件甲的第一空位信号量
V(positionA); //增加零件甲的第二空位信号量
V(positionB); //增加零件乙的空位信号量
assemble(itemA, itemB); //总装
} //离开
}
答案解析:[解析] 本题考查的是生产者和消费者问题的变形。本题中的生产者有两个,所对应的缓冲区(即仓库)是一个,但是,它们各自有自己的零件货位,甲、乙零件可以分别存放m、n件,所以可以考虑设置一个仓库的互斥量,
海关商品名称:其他仅含硝基或亚硝基衍生物
海关编码:2904209090
法定单位一:千克
惠税:5.5%
普税:30%
增值税:17%
第22题:[判断题]多伦有亚洲唯一幸存下来的天然原始榆树林。
A.正确
B.错误
参考答案:A
第23题:[单选题]在倒车中,如果需要反复前进后退时,应在每次后退或前进接近停车前的一瞬间,迅速地朝向运动方向转动方向盘,以便( )。
A.迅速制动
B.立即转向
C.防止侧滑
D.下一次前进或后退
参考答案:D
第24题:[判断题]不知情定制治理指对相应违规行为进行整治,包括“事前预防管控、事中监控预警、事后考核追责”三个环节并建立相应的全流程管理体系。( )
A.正确
B.错误
参考答案:A
第25题: [多项选择]
某机电工程安装公司承包一电厂的设备安装工程,其中一项工程是直流电动机调速系统安装。机电安装公司派出一名精通机电专业知识的员工,对工程项目合理规划,根据自动控制的基本原理,选用正确的控制系统,按期完成电厂要求的工程任务。
自动控制的基本元件包括()。我来回答:
最新试题