物理地址扩展

时间:2013-01-26 23:04:44

标签: memory-management architecture

Physical Address Extension可用于通过32位架构访问超过4 GB的物理内存。这是否意味着一个进程可以使用超过4 GB的RAM?基于this picture如果我们有32位来寻址内存,我们仍然不能使用超过4 GB的虚拟内存,对吧?那么,如果我们不能将它用作虚拟内存,为什么我们需要寻址更多的物理内存?

2 个答案:

答案 0 :(得分:1)

您一次只能地址 4GB(在32位Windows下,您可能需要2GB或3GB用于您自己的进程需求(取决于boot.ini设置),因为其余部分是用于内核模式的东西。)

对于Windows,您将使用地址窗口扩展 - 将可寻址窗口映射到超过4GB的物理内存。我不知道其他系统如何处理它,但Linux可能通过mmap()?

来实现

答案 1 :(得分:-2)

好吧,如果我们有32位数据总线,那么我们可以解决2 ^ 32 = 4GB,这是事实。这意味着,即使我们只有1GB的物理内存,我们也可以解决更多问题。但是,在那种情况下,超过1GB的地址,甚至是有效的,会导致页面错误,因为内存不存在!

SO使他们的魔法只是捕获页面错误并将内存交换到磁盘或从磁盘交换内存。这就是我们称之为“虚拟”记忆的原因,因为它只是一种幻觉,一种技巧(一种伟大的)。

拥有32位数据总线对于进程来说不可能超过4GB,因为无法解决更多问题。