进程P1、P2、P3和P4前趋图如下所示

若用PV操作控制进程P1~P4并发执行过程,则需要设置5个信号量S1、S2、S3、S4和S5,且信号量S1~S5初值都等于0。下图中a、b和c处应分别填写(请作答此空);d、e和f处应分别填写( )。

- A.V(S1)V(S2)、P(S1)V(S3)和V(S4)
- B.P(S1)V(S2)、P(S1)P(S2)和V(S1)
- C.V(S1)V(S2)、P(S1)P(S3)和V(S4)
- D.P(S1)P(S2)、V(S1)P(S3)和V(S2)
正确答案及解析
正确答案
C
解析
因为P1是P2和P3前驱,当P1执行完需通知P2和P3,应采用V(S1)V(S2)操作分别通知P2和P3,故a处应填写V(S1)V(S2);又因为P2是P1和P3后继,当P2执行前应测试P1和P3是否执行完,应采用P(S1)P(S3)操作测试P1和P3是否执行完,故b处应填写P(S1)P(S3);同理,P2是P4前驱,当P2执行完应通知P4,应采用V(S4)操作分别通知P4,故C处应填写V(S4)。
因为P3是P1后继,当P3执行前应测试P1是否执行完,应采用P(S2)操作测试P1是否执行完,故d处应填写P(S2);又因为P3是P2和P4前驱,当P3执行完应通知P2和P4,应采用V(S3)V(S5)操作通知P5,故e处应填写V(S3)V(S5);P4是P2和P3后继,当P4执行前应测试P2和P3是否执行完,应采用P(S4)P(S5)操作测试P2和P3是否执行完,故f处应填写P(S4)P(S5)。
你可能感兴趣的试题

-
- A.V(S2)和P(S4)
- B.P(S2)和V(S4)
- C.P(S2)和P(S4)
- D.V(S2)和V(S4)
- 查看答案

-
- 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)
- 查看答案

-
- A.P(S4)和V(S4)V(S5)
- B.V(S5)和P(S4)P(S5)
- C.V(S3)和V(S4)V(S5)
- D.P(S3)和P(S4)V(P5)
- 查看答案

-
- A.P(S3)和V(S4)V(S5)
- B.V(S3)和P(S4)P(S5)
- C.P(S3)和P(S4)P(S5)
- D.V(S3)和V(S4)V(S5)
- 查看答案

-
- A.P(S2)和P(S4)
- B.P(S2)和V(S4)
- C.V(S2)和P(S4)
- D.V(S2)和V(S4)
- 查看答案