📜  门| GATE-CS-2016(Set 2)|第58章

📅  最后修改于: 2021-06-30 00:29:58             🧑  作者: 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初始化为零。以下哪一项是TRUE?
(A)这是正确的两进程同步解决方案。
(B)此解决方案违反了互斥要求。
(C)此解决方案违反了进度要求。
(D)此解决方案违反了有条件的等待要求。答案: (C)
说明:互斥要求阻止同时访问共享资源。因为,信号量转向被初始化为零,并且该信号量值仅在给定进程的关键部分之后才更改。因此,这确保一次在关键部分最多处理一个流程,即满足互斥要求。

进步意味着这个过程最终应该能够完成。但是直接处理1不能进入临界区,因为信号量初始值为0,并且此处理1仅在处理0之后才可以进入CS。因此,无法满足进度要求。

有界的等待意味着没有进程可以无限期地等待资源。流程1可以直接进行,而流程1可以在流程0之后进入关键部分。因此,有限的等待得到满足。

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