处理X代码:
我不明白这里是如何实现有限的等待。
do {
while (turn != x);
// critical section code goes here.
turn = y;
// remainder section code goes here.
} while(1);
答案 0 :(得分:0)
此代码不会保持有限的等待。
这是一个场景,让Process X无限期地等待。
假设<a>
输入Process X
并离开它。变量Critical Section
将设置为turn
。现在,y
能够再次输入Process X
变量Critical Section
,必须设置为turn
,只要x
进入{Process Y
,就不会发生Critical Section
{1}}。
因此,只有当两个流程X
和Y
,或输入Critical Section
时,才会满足bounded waiting
,否则,
答案 1 :(得分:0)
如果您正在准备OS考试,根据&#34; 操作系统概念&#34;,答案是: &#34; 保持有限的等待,但不会保持进展。&#34;
如果Pi和Pj都要进入临界区并且转= i。然后Pi先进入并且Pj等待它。在Pi退出后,即使Pi想要再次进入临界区,Pj仍然可以在Pi之前进入临界区再次进入。所以Pj最多等一转进入CS。
它不会保持进度。因为如果Pj想要进入CS并且转= i。它必须依赖Pi,这可能现在不想进入CS,设置转=学家