请分析下列代码( )。 Pi进程 Pj进程 flagEi]=TRUE; flag[j-]=TRUE; while(flag[-else-]);

admin2019-12-10  71

问题 请分析下列代码(    )。
  Pi进程                            Pj进程
  flagEi]=TRUE;                    flag[j-]=TRUE;
  while(flag[-else-]);             while(flageelse]);
    critical section                   critical section
  flag=FALSE;                   flagEj]=FALSE;
    remainder section                  remainder section
    采用该算法来实现临界区的访问,其结果是(    )。

选项 A、该算法可以实现进程临界区的访问
B、该算法不能实现进程临界区的访问
C、该算法可以实现进程临界区的访问,但是可能会死锁
D、该算法可以实现进程临界区的访问,但是可能会饥饿

答案C

解析 本题考查软件法实现进程互斥同步的机制。经过分析代码,我们知道该算法属于软件先标志后检查法。该算法的基本思想是在每一个进程进入临界区之前,先设置进程自己进入的标志,再查看临界区的其他标志是否被设置。若存在设置,则该进程需等待;否则,进程进入自己的临界区。为此,设置了一个数组flag[n],如第i个元素值为false,表示Pi进程未进入临界区;值为true,表示Pi进程进入临界区。采用先设置自己标志后,再检测对方状态标志。可能会出现两个进程先后同时设置后再分别检测对方状态标志,造成双方都不能进入临界区,出现死锁现象而无限期等待。因此正确答案应为C。
转载请注明原文地址:https://jikaoti.com/ti/68DjFFFM
0

相关试题推荐
最新回复(0)