问答题 P1、P2、P3、P4、P5、P6为一组合作进程,其前趋图如图所示,试用P、V操作完成这6个进程的同步。
【正确答案】图中说明任务启动后P1先执行,当其结束后P2、P3、P4可以开始执行,P2完成后P5可以开始执行,仅当P3、P4、P5都执行完后,P6才能开始执行。为了确保这一执行顺序,设5个同步信号量f1、f2、f3、f4、f5分别表示进程P1、P2、P3、P4、P5是否执行完成,其初值均为0。这6个进程的同步描述如下: Semaphore f1=f2=f3=f4=f5=0; P1() { … V(f1); V(f1); V(f1); } P2() { P(f1); … V(f2); } P3() { P(f1); … V(f3); } P4() { P(f1); … V(f4); } P5() { P(f2); … V(f5); } P6() { P(f3); P(f4); P(f5); … }
【答案解析】