📜  门| Gate IT 2007 |问题10

📅  最后修改于: 2021-06-29 03:00:20             🧑  作者: Mango

进程P 1和P 2在以下例程中使用critical_flag来实现互斥。假设在主程序中将critical_flag初始化为FALSE。

get_exclusive_access ( )
{
if (critical _flag == FALSE) {
critical_flag = TRUE ;
critical_region () ;
critical_flag = FALSE;
}
}

请考虑以下语句。
一世。 P 1和P 2可能同时访问critical_region。
ii。这可能导致死锁。以下哪项成立?
(A) (i)为假,(ii)为真
(B) (i)和(ii)均为假
(C) (i)为真,(ii)为假
(D) (i)和(ii)都是正确的答案: (C)
解释: 假设P 1首先启动并执行语句1,然后系统上下文切换到P 2 (在执行语句2之前),然后进入if语句内部,因为该标记仍为false。
所以现在两个过程都在关键部分!!因此(i)为真。(ii)为假
绝不会发生flag为true且if子句中没有进程的情况,如果有人进入关键部分,则肯定会使flag = false。因此没有死锁。这个问题的测验