对于这个问题,
考虑在对称多核处理器 (SMP) 中的四个处理器上同时执行的以下代码语句。假设在执行这些语句之前,x 和 y 都为 0。
核心1:x=2;
核心2:y=2;
核心3:w=x+y+1;
核心4:z=x+y;
w、x、y 和 z 的所有可能结果值是多少?对于每个可能的结果,解释你是如何得出这些值的。您将需要检查所有可能的指令交错。(9 分)
我认为答案是正确的:
x = 2,y = 2,w = 1,z = 0
x = 2,y = 2,w = 3,z = 2
x = 2,y = 2,w = 5,z = 4
由于代码在对称多核处理器上执行,处理器使用单个地址空间,这意味着如果加载和存储不同步,其中一个处理器可以在另一个处理器完成之前开始处理数据。