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)对于这个问题是正确的。任何人都可以帮助我。
答案 0 :(得分:0)
(a)为false:如果两个进程都调用Wait,它们会将另一个标志设置为false并且能够越过循环。
但是(c)也是假的。