日期:2014-05-16  浏览次数:20665 次

不同进程相同线性地址映射到物理内存相同吗?
不同进程相同线性地址映射到物理内存相同吗?如何映射的?

不同进程中有3G的用户空间,3G用户空间的线性地址表示应该是一样吧?也就是0x000000000~0xbffffffff
但,不同进程映射的物理内存肯定是不一样的;
也就是说相同的线性地址如:0x08040000映射到的物理页应该是不一样的,这是如何做到的?如何映射?

------解决方案--------------------
一般是不同的,但是有些是相同的(比如共享内存,比如共享库的代码段,Linux下的内核部分)
楼主需要看看操作系统中关于虚拟内存的部分。

http://zh.wikipedia.org/zh-cn/%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98
http://zh.wikipedia.org/zh-cn/%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86%E5%8D%95%E5%85%83

------解决方案--------------------
>这是如何做到的?如何映射?
https://www.kernel.org/doc/gorman/html/understand/understand006.html
------解决方案--------------------
引用:
一个相同线性地址如何就映射到了不同物理页;可以简单讲下原因吗?

不同的进程页表里的内容是不一样的。
http://en.wikipedia.org/wiki/Page_table