一个关键部分和挑战的软件解决方案

时间:2014-10-11 08:10:10

标签: operating-system semaphore critical-section mutual-exclusion

Wait (i) {
      c[i]=false;
       while ( c[1-i]) do;
}


Signal (i) {
     c[i]=true;
}

每个进程尝试无限次进入临界区(CS)。进程使用wait(i)进入CS,Signal(i)进入CS。在{0,1}我是一个过程。 C是一个长度为2的数组,来自二进制变量,用True初始化。

其中哪一个是假的:

a)此解决方案满足互斥。

b)此解决方案满足有界等待。

c)该解决方案满足CS的所有条件。

d)该解决方案满足进度条件。

我的教授说(c)是对的。但我认为(a),(b),(c),(d)对于这个问题是正确的。任何人都可以帮助我。

1 个答案:

答案 0 :(得分:0)

(a)为false:如果两个进程都调用Wait,它们会将另一个标志设置为false并且能够越过循环。

但是(c)也是假的。