每个进程P i , i= 1…….9 编码如下
repeat
P(mutex)
{Critical section}
V(mutex)
forever
P 10的代码是相同的,只是它使用 V(mutex) 代替 P(mutex)。在任何时候,临界区内最多可以有多少个进程?
(一) 1
(乙) 2
(三) 3
(D)以上都不是答案: (D)
说明:考虑 i= 1 到 9 的代码
最初 mutex 值设置为 1,因此一次只能允许 1 个进程。现在 p1 进入临界区,此时其余的都处于阻塞状态。 (即阻塞的进程= 2,3,4,5,6,7,8,9)。但是考虑第 10 个进程的代码,它告诉解除阻塞任何进程,因为它包含操作。因此,它可以解除对进程的阻塞并将其发送到临界区。通过这样做,所有进程都可以进入临界区。所以,最后最多有 10 个进程可以进入临界区。
替代方式-
有一个永远运行的循环 所以 P10 永远运行。并且它有能力将所有其他流程放入临界区。此外,他们询问了可以出现在关键部分的最大进程数,所以答案是 10。
选项(D)是正确的。
此解释由 Ajay Puri 提供。
这个问题的测验
这个问题的测验