某系统有四个并发进程P1、P2、P3、P4,它们合作共同完成某一任务,其执行情况如下:
P1先执行;P1执行结束后,P2、P3同时开始执行;P2、P3都执行结束后,P1才能继续下一次执行;P4才能开始执行。
试用PV操作实现它们之间的同步。
某系统有四个并发进程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操作
Top