需求如图
image.png
完整代码如下: 6个进程P1-P6
P() - wait原语
V() - signal原语
semaphore 记录型信号量
同步信号量 定义
semaphore s1s2 = 0;
semaphore s1s3 = 0;
semaphore s2s4 = 0;
semaphore s2s5 = 0;
semaphore s3s6 = 0;
semaphore s4s6 = 0;
semaphore s5s6 = 0;
P1(){
代码s1;
V(s1s2);
V(s1s3);
}
P2(){
P(s1s2);
代码s2;
V(s2s4);
V(s2s5);
}
P3(){
P(s1s3);
代码s3;
V(s3s6);
}
P4(){
P(s2s4);
代码s4;
V(s4s6);
}
P5(){
P(s2s5);
代码s5;
V(s5s6);
}
P6(){
P(s4s6);
P(s5s6);
P(s3s6);
代码s6
}
网友评论