问答题
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);
…
}
【答案解析】