GATE 考试中提出了以下问题:
用于实现流程关键部分的 enter_CS() 和 leave_CS() 函数使用 test-and-set 指令实现,如下所示:
void enter_CS(X)
{
while test-and-set(X) ;
}
void leave_CS(X)
{
X = 0;
}
在上述解决方案中,X 是与 CS 关联的内存位置,并被初始化为 0。现在考虑以下语句:
I. 上述 CS 问题的解决方案是无死锁
II。该解决方案是无饥饿的。
三、进程按 FIFO 顺序进入 CS。
IV 多个进程可以同时进入CS。
以上哪些说法是正确的?
正确答案是选项 I。
虽然 I 和 IV 选项对我来说很清楚,但我无法理解这里的饥饿是如何可能的。
如果有人可以帮我解释一下,那就太好了。谢谢。