两个cpu机器上的两个不同进程可以同时访问相同的RAM地址

时间:2011-09-19 14:33:33

标签: operating-system

如果我的计算机有两个cpu,每个计算机都运行一个进程,那么它们都希望在运行时使用相同的虚拟地址' x'。难道他们在物理地址空间中获得相同的位置吗? (因为它们是同时存在的,并且不知道对方也要求空间并且可能意外地获得相同的物理地址)

3 个答案:

答案 0 :(得分:4)

不,存在允许对内存进行原子访问的内存原语。这允许多个cpu协调。没有这种原语,两个cpu就没有能力协调他们的努力。

答案 1 :(得分:2)

协调地址空间的分配,以便两个进程不会偶然共享其部分地址空间。操作系统可以在进程之间共享只读地址空间的部分,典型的例子是程序本身。

答案 2 :(得分:1)

答案是'不'。有一些机制阻止它。

http://www.ece.cmu.edu/~ece548/handouts/19coher.pdf有一些不错的幻灯片可以在相对较高的级别上解决这个问题 - 但随附的文字可能会更具洞察力。