📜  门| GATE-CS-2016(套装2)|第 58 题

📅  最后修改于: 2021-09-27 06:15:35             🧑  作者: Mango

考虑以下两进程同步解决方案。

Process 0                             Process 1                          

Entry: loop while (turn == 1);        Entry: loop while (turn == 0);
       (critical section)                    (critical section)
       Exit: turn = 1;                       Exit turn = 0; 

共享变量 turn 被初始化为零。以下哪一项是正确的?
(A)这是一个正确的两进程同步解决方案。
(B)该解决方案违反了互斥要求。
(C)该解决方案违反了进度要求。
(D)此解决方案违反了有界等待要求。答案: (C)
说明:互斥要求阻止对共享资源的同时访问。因为,信号量转向被初始化为零,并且该信号量值仅在给定进程的临界区之后改变。因此,这保证了临界区中一次最多有一个进程,即满足互斥要求。

进度意味着流程最终应该能够完成。但直接过程信号灯值为0最初这个过程1只能处理0,所以,进步的要求被满足后去CS 1不能去的关键部分。

有界等待意味着任何进程都不应无限期地等待资源。进程 1 可以直接进入,进程 1 可以在进程 0 之后进入临界区。所以,有界等待是满足的。

选项(C)是正确的。
这个问题的测验