单选题 26.以下程序中有两个并发进程,且假设这两个并发进程可以任何相对速度执行,变量amount的值只有被单独的机器指令装入寄存器后才能被增值。
BEGIN
amount:integer;
amount:=0;
COBEGIN
process Pl
nl:integer;
BEGIN
for n1:=1 to 10 do amount:=amount+2;
END;
process P2
n1:integer;
BEGIN
for n1:=1 to 10 do amount:=amount+3;
END;
COEND
write(amount);
END;
以上程序输出的共享变量amount的上下界为( )。
【正确答案】 C
【答案解析】当进程P1和P2按顺序执行,即在执行过程中不发生进程切换时,amount可以达到最大值50。现在考虑如下情况:每次当进程P1执行完一个amount+2,但还没来得及更新amount的值时,发生了进程切换,切换到进程P2,进程P2也执行完一个amount+3,这时,amount的值更新发生在P1中,最后amount的值为20。