某产品使用A、B、C三种零件组装而成,三种零件分别由三个相应的零件车间生产。零件组装则由装配车间完成,装配车间有三个分别存放三种零件的货架S1,S2,S3,分别可存放最多m个A零件,n个B零件,k个C


某产品使用A、B、C三种零件组装而成,三种零件分别由三个相应的零件车间生产。零件组装则由装配车间完成,装配车间有三个分别存放三种零件的货架S1,S2,S3,分别可存放最多m个A零件,n个B零件,k个C零件,每件产品分别使用A,B,C三种零件各一个装配而成,请采用信号量和PV操作描述两件生产装配的同步算法。


1) 定义数据结构
定义共享数据变量(临界资源)及私有变量

int S1[m];//零件A的存储空间
int S2[n];//零件B的存储空
int s3k];//零件C的存储空间
int inS1=0,outS1=0;//零件A的投放和存取指针
int inS2=0,outS2=0;//零件B的投放和存取指针
int inS3=0,outS3=0;//零件C的投放和存取指针

2) 定义进程
零件装配进程
取出一个零件A
取出一个零件B
取出一个零件C
装配成一个产品
3) 进程操作伪代码实现

#define m 10
#define n 20
#define k 30
int S1[m];//零件A的存储空间
int S2[n];//零件B的存储空间
int S3[k];//零件C的存储空间
int inA=0,inB=0,inC=0;/零件投放指针
int outA=0,outB=0,outC=0;//零件取出指针
semaphore  Rs1=m;//零件A货架空位可用量
semaphore  Rs2=n;//零件B货架空位可用量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值