┆ ┆
P(S); P(S);
进程P1的临界区; 进程P2的临界区;
V(S); V(S);
┆ ┆
互斥信号量的取值范围
若2个进程共享一个临界资源,信号量的取值范围是:
利用信号量实现前驱关系
例如:P1、P2、P3、P4、P5、P6为一组合作进程,其前驱图如下所示,试用P、V操作完成这六个进程的同步。
解法1
设七个同步信号量a、b、c、d、e、f、g分别表示进程之间的前驱关系,如图所示,其初值均为0。这六个进程的同步描述如下:
解法1(1)
P1()
{
┆
v(a);
v(b);
}
解法1(2)
P2()
{
p(a);
┆
v(c);
v(d);
}
解法1(3)
P3()
{
p(b);
┆
v(e);
}
解法1(4)
P4()
{
p(c);
┆
v(f);
}
解法1(5)
P5()