若用PV操作控制进程P1~P5并发执行的过程,则需要设置5个信号量S1、S2、S3、S4和S5,进程间同步所使用的信号量标注在上图中的边上,且信号量S1~S5的初值都等于零,初始状态下进程P1开始执行。下图中a、b和c处应分别填写(2);d和e处应分别填写

admin2012-06-19  26

问题 若用PV操作控制进程P1~P5并发执行的过程,则需要设置5个信号量S1、S2、S3、S4和S5,进程间同步所使用的信号量标注在上图中的边上,且信号量S1~S5的初值都等于零,初始状态下进程P1开始执行。下图中a、b和c处应分别填写(2);d和e处应分别填写(3),f和g处应分别填写(4)。
4

选项 A、P(S3)和V(S4)V(S5)
B、P(S3)和P(S4) P(S5)
C、V(S3)和V(S4)V(S5)
D、V(S3)和P(S4) P(S5)

答案B

解析 本题考查PV操作方面的基本知识。因为P1是P2和P3的前驱,当P1执行完应通知P2和P3,应采用V(S1) V(S2)操作分别通知P2和P3,故图中的a处应填写V(S1) V(S2);又因为P2是P1的后继,当P2执行前应测试P1是否执行完,应采用P(S1)操作测试P1是否执行完,故b处应填写P(S1);同理,P2是P4和P5的前驱,当P2执行完应通知P4和P5,应使用V(S3) V(S4)操作分别通知P4和P5,故c处应填写V(S3) V(S4)。因为P3是P1的后继,当P3执行前应测试P1是否执行完,应采用P(S2)操作测试P1是否执行完,故d应填写P(S2);又因为P3是P5的前驱,当P3执行完应通知P5,应采用V(S5)操作通知P5,故e处应填写V(S5)。因为P4是P2的后继,当P4执行前应测试P2是否执行完,应采用P(S3)操作分别测试P2是否执行完,故f处应填写P(S3);又因为P5是P2和P3的前驱,当P5执行前应测试P2和P3是否执行完,应采用P(S4) P(S5)操作分别测试P2和P3是否执行完,故g处应填写P(S4) P(S5)。
转载请注明原文地址:https://kaotiyun.com/show/wfQZ777K
0

最新回复(0)