我正在研究Silberschatz、Galvin 和 Gagne的操作系统概念中的操作系统。
在第 229 页,这本书对Petersons 解决方案进行了说明:
由于现代计算机体系结构执行基本机器语言指令(例如加载和存储)的方式,不能保证 Peterson 的解决方案在此类体系结构上正确工作。
我在Wikipedia上查找了这个,发现这似乎是最接近解释的:
大多数现代 CPU 重新排序内存访问以提高执行效率。这样的处理器总是提供一些方法来强制在内存访问流中进行排序,通常是通过内存屏障指令。在重新排序内存访问的处理器上实施 Peterson 和相关算法通常需要使用此类操作才能正确工作,以防止顺序操作以不正确的顺序发生。请注意,即使在不重新排序指令的处理器上也可能发生内存访问的重新排序
我无法理解这意味着什么,或者这甚至是答案。
那么,为什么彼得森的解决方案不能保证适用于现代架构?