boolean flag[2]={FALSE, FALSE};
int turn=0;
若进行P0和P1访问临界资源的类C代码实现如下:
void p0()// 进程p0
{
while(TURE)
{
flag[0]=TURE;
turn=1;
while (flag[1] &&(turn==1));
临界区;
flag[0]=FALSE;
}
}
void p1()// 进程p1
{
while(TURE)
{
flag[1]=TURE;
turn=0
while (flag[0]&&(turn==0));
临界区;
flag[1]=FALSE;
}
}
则并发执行进程P0和P1时产生的情况是( ):
举一反三
- 进行P0和P1的共享变量定义及其初值为 boolean flag[2]={FALSE, FALSE}; int turn=0; 若进行P0和P1访问临界资源的类C代码实现如下: void p0()// 进程p0 { while(TURE) { flag[0]=TURE; turn=1; while (flag[1] &&(turn==1)); 临界区; flag[0]=FALSE; } } void p1()// 进程p1 { while(TURE) { flag[1]=TURE; turn=0 while (flag[0]&&(turn==0)); 临界区; flag[1]=FALSE; } } 则并发执行进程P0和P1时产生的情况是( ):
- 进行P0和P1的共享变量定义及其初值为 boolean flag[2]={FALSE, FALSE}; int turn=0; 若进行P0和P1访问临界资源的类C代码实现如下: void p0()// 进程p0 { while(TURE) { flag[0]=TURE; turn=1; while (flag[1] &&(turn==1)); 临界区; flag[0]=FALSE; } } void p1()// 进程p1 { while(TURE) { flag[1]=TURE; turn=0 while (flag[0]&&(turn==0)); 临界区; flag[1]=FALSE; } } 则并发执行进程P0和P1时产生的情况是( ):
- 进行P0和P1的共享变量定义及其初值为 boolean flag[2]={FALSE, FALSE}; int turn=0; 若进行P0和P1访问临界资源的类C代码实现如下: void p0()// 进程p0 { while(TURE) { flag[0]=TURE; turn=1; while (flag[1] &&(turn==1)); 临界区; flag[0]=FALSE; } } void p1()// 进程p1 { while(TURE) { flag[1]=TURE; turn=0 while (flag[0]&&(turn==0)); 临界区; flag[1]=FALSE; } } 则并发执行进程P0和P1时产生的情况是( ):
- 进程P0和P1的共享变量定义及其初值为: boolean flag[2]; int turn=0; flag[0]=faulse; flag[1]=faulse; 若进程P0和P1访问临界资源的类C代码实现如下: Void P0 () //进程P0 { while (TURE){ Flag[0]=TURE;turn=1; While (flag[1]&&(turn==1)) 临界区; Flag[0]=FALSE; } } Void P1 () //进程P1 { while (TURE){ Flag[1]=TURE;turn=1; While (flag[0]&&(turn==0)) 临界区; Flag[1]=FALSE; } } 则并发执行进程P0和P1时产生的情况是:
- 进行P0和P1的共享变量定义及其初值为[br][/br] booleanflag[2]={FALSE,FALSE}; intturn=0; 若进行P0和P1访问临界资源的类C代码实现如下: voidp0()//进程p0 { while(TURE) { flag[0]=TURE; turn=1; while(flag[1]&&(turn==1)); 临界区; flag[0]=FALSE; } } voidp1()//进程p1 { while(TURE) { flag[1]=TURE; turn=0 while(flag[0]&&(turn==0)); 临界区; flag[1]=FALSE; } } [br][/br] 则并发执行进程P0和P1时产生的情况是(): A: 不能保证进程互斥进入临界区,会出现“饥饿”现象 B: 不能保证进程互斥进入临界区,不会出现“饥饿”现象 C: 能保证进程互斥进入临界区,会出现“饥饿”现象 D: 能保证进程互斥进入临界区,不会出现“饥饿”现象
内容
- 0
进程P0、P1:bool flag[2];int turn = 0;flag[0] = false; flag[1] = false;void P0{ while(1){ flag[0] = true; turn = 1; while(flag[1] = 1&&turn = 1); critical section; flag[0] = false; }}void P1{ while(1){ flag[1] = true; turn = 0; while(flag[0] = 1&&turn = 0); critical section; flag[1] = false; }}则并发进程P0、P1并发执行时产生的情况是______。 A: 不能能保证进程互斥进入临界区,会出现“饥饿”现象 B: 能保证进程互斥进入临界区,不会出现“饥饿”现象 C: 能保证进程互斥进入临界区,会出现“饥饿”现象 D: 不能保证进程互斥进入临界区,不会出现“饥饿”现象
- 1
接上题,如果要把代码省略处的代码补充完整、正确,应选择( )。 A: mux2_1 U3( .line[0](p0), .line[1](p1), .s[1](s), .f(f)); B: mux2_1 U3( .p0(p[0]), .p1(p[1]), .s(s[1]), .f(f)); C: mux2_1 U3( .p0(line[0]), .p1(line[1]), .s(s[0]), .f(f) ); D: mux2_1 U3( .p0(line[0]), .p1(line[1]), .s(s[1]), .f(f) );
- 2
如下BOOL变量flag与“零值”比较的if语句正确的是:() A: if(flag==TRUE)或者if(flag==FALSE) B: if(flag==1)或者if(flag==0) C: if(flag==0)或者if(flag!=0) D: if(flag==true)或者if(flag==false)
- 3
以下代码运行后输出的内容()int main(){bool flag;flag = flag | ~flag;cout << flag;return 0;} A: true B: false C: 1 D: 0
- 4
二进制基带传输系统的总误码率表示为( )。 A: Pe=P(0)P(0/1)+P(0)P(1/0) B: Pe=P(1)P(0/1)+P(0)P(1/0) C: Pe=P(1)P(0/1)-P(1)P(1/0) D: Pe=P(1)P(0/1)-P(0)P(1/0)