进程P1、P2、P3、P4和P5前趋图如下图所示:
若用PV操作控制进程P1、P2、P3、P4和P5并发执行过程,则需要设置5个信号量S1.S2.S3.S4和S5,且信号量S1~S5初值都等于零。下图中a和b处应分别填写(请作答此空);c和d处应分别填写( ),e和f处应分别填写( )。
- A.V(S1)、P(S2)和V(S3)
- B.P(S1)、V(S2)和V(S3)
- C.V(S1)、V(S2)和V(S3)
- D.P(S1)、P(S2)和V(S3)
正确答案及解析
正确答案
C
解析
根据前驱图,P1进程执行完需要通知P2和P3进程,故需要利用V(S1)V(S2)操作通知P2和P3进程,所以空a应填V(S1)V(S2);P2进程执行完需要通知P4进程,所以空b应填V(S3)。根据前驱图,P3进程运行前需要等待P1进程结果,故需执行程序前要先利用1个P操作,而P3进程运行结束需要通知P5进程。根据排除法可选项只有选项B和选项C。又因为P3进程运行结束后需要利用1个V操作通知P5进程,根据排除法可选项只有选项B满足要求。根据前驱图,P4进程执行结束需要利用1个V操作通知P5进程,故空e处需要1个V操作;P5进程执行前需要等待P3和P4进程结果,故空f处需要2个P操作。根据排除法可选项只有选项B和选项C能满足要求。根据分析可知,P3进程运行结束是利用V(S4)通知P5进程,故P4进程运行结束是利用V(S5)通知P5进程。