semaphore empty1,full1,empty2,full2,mutex1,mutex2;
empty1=m;empty2=n;full1=full2=0;
mutex1=mutex2=1;
parbegin
process PA{
while(1){
从输入设备上读信息;
P(empty1);
P(mutex1);
将读入的信息放入B1;
V(mutex1);
V(full1);
}
}
process PB{
while(1){
P(full1);
P(mutex1);
从B1中取出一缓冲区内容;
V(mutex1);
V(empty1);
加工内容;
P(empty2);
P(mutex2);
将加工后的内容放入B2;
V(mutex2);
V(full2);
}
}
process PC{
while(1){
P(full2);
P(mutex2);
从B2中取出内容;
V(mutex2);
V(empty2);
打印内容;
}
}
parend