问题
单项选择题
进程P0和P1的共享变量定义及其初值为:
boolean flag[2];
int turn=0;
flag[0]=FALSE; flag[1]=FALSE;
若进程P0和P1访问临界资源的类C伪代码实现如下:
则并发执行进程P0和P1时产生的情形是( )。
答案
参考答案:D
解析:由条件中对变量turn的判断可以保证两个进程不能同时进入临界区,因此A、B两个选项可以首先排除。不管是哪个进程进入临界区,它出临界区的时候会将自己的flag置位0,此时另外一个进程将通过while循环等待,进入临界区,因此,也不会出现“饿死”现象。因此,只有选项D合适。