问题
单项选择题
有两个并发执行的进程P1和P2,共享初值为1的变量x。P1对x加1,P2对x减1。加1和减1操作的指令序列分别如下所示。
//加1操作 //减1操作
Load R1,x //取x到寄存器中 Load R2,x
Inc Rl dec R2
Store x,R1 //将R的内容存入x Store x,R2
两个操作完成后,x的值( )。
A.可能为-1
B.只能为1
C.可能为0、1、2
D.可能为-1、0、1、2
答案
参考答案:C
解析: 本题目考查进程并发执行的顺序。若进程P1和P2顺序执行时,无论P1先执行,还是P2先执行,其结果均为1;若进程P1和P2在并发执行时其指令序列交替执行,P1执行到Inc R1后,P2执行,P2完成后,P1再接着执行,则其结果为2;若P2先执行到Dec R2后,P1执行,P1完成后,P2再接着执行,在其结果为0。因此应该选C。