对于这个问题,
考虑以下代码语句在对称多核处理器(SMP)中的四个处理器上同时执行。假设在执行这些语句之前,x和y都是0。
核心-1:X = 2;
的Core2:Y = 2;
核3:W = X + Y + 1;
Core4: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
当代码在对称多核处理器上执行时,处理器使用单个地址空间,这意味着如果加载和存储未同步,则其中一个处理器可以在另一个处理完成之前开始处理数据。