0

定义:有界等待是指一个进程P_i一直等待进入临界区(CS),而其他进程P_j继续进入CS,尽管P_i已经表现出进入CS的兴趣。

现在,我明白了为什么锁变量机制没有限制等待,因为如果一个进程进入了一个非关键部分,那么另一个进程可能会来拿 CS,所以一个进程可能会饿死。

算法

NCS (Non-critical Section)
DISABLE INTERRUPTS
CS
ENABLE INTERRUPTS
NCS

编辑:没有提供有关调度程序等的更多详细信息。问题是看一下这是否满足有限等待。

问题:您能否解释一下为什么禁用的中断同步机制满足有限等待(一个进程不能像锁变量机制一样饿着进入CS)?

4

1 回答 1

2

您的问题需要考虑两种情况:

  1. 中断处理程序是否进入临界区?
  2. 是否涉及异步调度程序?

不,不 只要P_i释放CS,释放机制就可以接受P_j,从而避免了饥饿。

不,是 尽管P_j' 的愿望,一旦中断被释放,调度程序可以被调用,并决定P_j接下来不执行,所以至少在一个病态的情况下,可能会永远尝试进入 CS 而其他人被选中。

Yes,No 只要P_i释放中断,任何挂起的中断都会立即执行。如果他们要进入 CS,他们会首先进入(否则系统已经停止 [*]),因此如果时机合适,一组中断可以P_j永远处于饥饿状态。

是的,是的, 这里的饥饿可能由于不,是或是,不的任何一个原因而发生。

[*] - 中断没有延迟工作的先验方式,因此完成中断处理程序所需的任何资源必须在处理程序运行时可用。处理程序上下文是有效嵌套的;并且嵌套上下文不能等待其上级上下文的完成。

于 2021-08-10T00:58:35.837 回答