📜  门| GATE-CS-2009 |问题 33

📅  最后修改于: 2021-09-26 03:16:31             🧑  作者: Mango

实现进程临界区的 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 顺序。
这个问题的测验