内存一致性模型问题。不同核心赋值可以同时进行吗。

图一

    对于图一说明如下:为什么要约束到程序顺序?以下图程序为例,开发者原本期望通过 Flag1 和 Flag2 来控制两段程序中的临界代码最多只有一个可以执行,但是,如果处理器 / 编译器对执行的执行顺序进行了调度,使得 Flag1 和 Flag2 的执行被挪到了临界代码之后,那这样一来两段临界代码都会执行,从而违背了开发者的期望。

请问为什么在此代码中可以通过 Flag1 和 Flag2 来控制两段程序中的临界代码最多只有一个可以执行?

图二

    对图二问题如下:这个流程图应该如何理解,为什么在t1先进行Flag2的读取?

    我是计算机架构新手,在研究储存一致性模型的时候对于这个点理解不到位。

    文章和图片来自:https://blog.csdn.net/maokelong95/article/details/80727952#2__57

1个回答

你看的那个图早就过时了,现在的计算机cpu采用numa架构,每个cpu连自己的内存控制器然后再连自己的内存。
像这种共享总线的架构是10年前的了。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问