如果我的计算机有两个cpu,每个计算机都运行一个进程,那么它们都希望在运行时使用相同的虚拟地址' x'。难道他们在物理地址空间中获得相同的位置吗? (因为它们是同时存在的,并且不知道对方也要求空间并且可能意外地获得相同的物理地址)
答案 0 :(得分:4)
不,存在允许对内存进行原子访问的内存原语。这允许多个cpu协调。没有这种原语,两个cpu就没有能力协调他们的努力。
答案 1 :(得分:2)
协调地址空间的分配,以便两个进程不会偶然共享其部分地址空间。操作系统可以在进程之间共享只读地址空间的部分,典型的例子是程序本身。
答案 2 :(得分:1)
答案是'不'。有一些机制阻止它。
http://www.ece.cmu.edu/~ece548/handouts/19coher.pdf有一些不错的幻灯片可以在相对较高的级别上解决这个问题 - 但随附的文字可能会更具洞察力。