问题
单项选择题
请分析下列代码( )。
采用该算法来实现临界区的访问,其结果是( )。
A.该算法可以实现进程临界区的访问
B.该算法不能实现进程临界区的访问
C.该算法可以实现进程临界区的访问,但是可能会死锁
D.该算法可以实现进程临界区的访问,但是可能会饥饿
答案
参考答案:C
解析: 本题考查软件法实现进程互斥同步的机制。经过分析代码,我们知道该算法属于软件先标志后检查法。该算法的基本思想是在每一个进程进入临界区之前,先设置进程自己进入的标志,再查看临界区的其它标志是否被设置,若存在设置,则该进程需等待;否则,进程进入自己的临界区。为此,设置了一个数组flag[n],如第i个元素值为false,表示Pi进程未进入临界区;值为true,表示Pi进程进入临界区。采用先设置自己标志后,再检测对方状态标志。可能会出现两个进程先后同时设置后再分别检测对方状态标志,造成双方都不能进入临界区,出现死锁现象而无限期等待。因此正确答案应为C。