首页 > 试题广场 >

考虑下列程序: P1: { &nb...

[问答题]
考虑下列程序:
    P1: {                  P1: {
shared int x;            shared int x;
x = 10;               x = 10;
while (1)               while (1){
x = x -1;              x = x -1;
x = x +1;              x = x +1;
if (x != 10)            if (x != 10)
printf("x is %d", x)            printf("x is %d", x)
        }                   }
    }                   }
}                   }
请注意单处理器系统上的调度器将会通过交替执行指令来实现两个进程的“伪并行”,交替执行的顺序
无严格要求。
a. 给出打印 “x is 10” 的顺序(即跟踪语句交替执行的顺序)。
b. 给出打印 “x is 8” 的顺序。注意,在源语言级,自增/自减命令不是原子化的,即下面的汇编代码
实现单个 C 语言增量指量( x = x + 1 ):
LD       RO,    X     /*loadROfrommemorylocationx*/
INCR     RO          /*incrementRO*/
STO      R0,     X     /*storetheincrementedvaluebackinX*/

这道题你会答吗?花几分钟告诉大家答案吧!