需求如圖

image.png
完整代碼如下: 6個(gè)進(jìn)程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
}