下面给出的是一个程序,它在执行时会产生两个并发进程:
信号量 X : = 0 ;
/* 进程现在分叉到并发进程 P1 和 P2 */
P1 | P2 |
---|---|
repeat forever V (X) ; Compute ; P(X) ; |
repeat forever P(X) ; Compute ; V(X) ; |
考虑以下关于进程 P1 和 P2 的陈述:
- 进程 P1 可能会饿死。
- 进程 P2 可能会饿死。
以下哪项成立?
(A) I 和 II 都是真的
(B) I 为真但 II 为假
(C) II 为真但 I 为假
(D) I 和 II 都是假的答案:(一)
解释: P1 可以卡在它的 P 上,而 P2 永远循环。对偶也是可能的:P2 卡在它的 P 上,而 P1 永远循环。
这两种说法都是正确的。选项(A)。
这个问题的测验