实现进程临界区的 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。 现在考虑以下语句:
一、上述CS问题的解决方案是无死锁的
二、解决方案是无饥饿。
三、进程按 FIFO 顺序进入 CS。
IV 可以有多个进程同时进入 CS。
以上哪些说法是正确的?
(A)我只
(B) I 和 II
(C) II 和 III
(D)仅 IV答案:(一)
说明:上述解决方案是一个简单的测试和设置解决方案,可确保不会发生死锁,但它不使用任何队列来避免饥饿或具有 FIFO 顺序。
这个问题的测验