进程P0和P1的共享变量定义及其初值如下:
    boolean    flag[2];
    int turn=0;
    flag[0]=false;
    flag[1]=false;
    若进程P0和P1访问临界资源的伪代码按照下面设计:
    void P0(){//进程P0        void P1(){//进程P1
    while(TRUE){                while(TRUE){
    flag[0]=TRUE;              flag[0]=TRUE;
    turn=1;                    turn=0;
    while(flag[1]&&(turn==1))  while(flag[0]&&(turn==0))
    临界区;                    临界区;
    flag[0]=FALSE;              flag[1]=FALSE;
    }                          }
    }                          }
    }                          }
    则并发执行进程P0和P1时产生的情况是______。
 
【正确答案】 A
【答案解析】从题中给出的伪代码可知,由于信号量flag的赋值方法不对,因此会使得不能保证进程互斥进入临界区,会出现“饥饿”现象。