某系统有四个并发进程P1、P2、P3、P4,它们合作共同完成某一任务,其执行情况如下:
P1先执行;P1执行结束后,P2、P3同时开始执行;P2、P3都执行结束后,P1才能继续下一次执行;P4才能开始执行。
试用PV操作实现它们之间的同步。
【正确答案】:由题意,可知:P1和P2要同步,P1和P3要同步,P2和P4要同步,P3和P4要同步。故需设置如下同步信号量:
SA12,SB12:P1和P2的同步信号量
SA13,SB13:P1和P3的同步信号量
SA24,SB24:P2和P4的同步信号量
SA34,SB34:P3和P4的同步信号量
其中SA类的初值为1,SB类的初值为0。程序如下:
begin
SA12,SB12,SA13,SB13,SB24,SB34:semaphore
SA12:=SAl 3:=1;
SB12:=SBl 3:=SB2 4:=SB3 4:=0;
cobegin
process PA processPB process PC
begin begin begin begin
P(SA12); P(SB12); P(SB13);
P(SB24): P(SA13); P(SB34);
执行P1; 执行P2; 执行P3;
V(SB13); V(SB24); V(SB34);
V(SB12); V(SA12); V(SA13);
end;(PA) end; (PB) end;(PC)
process PD
begin
P(SB24):
P(SB34);
执行P4;
V(SA34);
V(SA24);
end;(PD)
coend;
end;
【题目解析】:考点:并发进程的PV操作