【答案解析】[解析] 根据前驱图P2进程需要等待P1进程的通知,故需要利用P(S1)操作测试P1进程是否运行完,P2进程运行结束需要利用V操作分别通知P4进程,所以空a应填V(S2)用以通知P4进程可以执行;前驱图P3进程开始运行前必须等待P1进程的通知,需要用P操作测试P1进程是否运行完,所以空b应填P(S2)操作测试P1进程是否运行完;P3进程运行结束需要利用V(S4)V(S5)操作通知P4和P5进程可以开始运行,故空C应填V(S4)V(S5)。
根据前驱图P4进程开始运行前必须等待P2和P3进程的通知,需要用P(S3)操作测试P2进程是否运行完,用P(S4)操作测试P3进程是否运行完,所以空d应填P(S3)P(S4),P4进程运行结束需要利用V(S6)操作通知P5进程,所以空e应填V(S6)。
根据前驱图P5进程开始运行前必须等待P3进程的通知,需要用P(S5)操作测试P3进程是否运行完,故空f应填写P(S5);P5进程运行结束需要利用V操作通知P6进程,故空g应填写V(S7)。
根据上述分析,用PV操作控制这6个进程的同步与互斥的程序如下:
