虚拟地址空间大小与物理地址空间大小

3
在这张图片中,虚拟地址空间比物理地址空间大。是否可能相反?如果是,那么它将如何工作,因为如果虚拟地址空间更小,如何有足够的空间引用物理地址空间中的所有内容?

这听起来像是http://en.wikipedia.org/wiki/Physical_Address_Extension和其他早期系统。 - Frederick Cheung
可能有些超出范围了。但是请注意,如果您在该图表上只有很少的箭头 - 比如只有一个 - 您可以将左侧的地址空间缩小到更小的大小,而所有的结果都是右侧的页面会变成粉色。要访问所有物理内存,您只需要更改那个箭头指向的位置即可。 - Damien_The_Unbeliever
1个回答

3
“如果虚拟地址空间比物理地址空间小,那么如何使虚拟地址空间有足够的空间来引用物理地址空间中的所有内容?”这该怎么做呢?
“它不会有足够的空间,但这并不是问题。为什么每个虚拟地址空间都需要覆盖所有物理内存?实际上,在大多数计算机上,这几乎从未发生过。虚拟内存的一部分动机是将每个进程的内存隔离开来,以便它们不会互相干扰。”
“即使在您的图片中,虚拟地址空间也没有引用物理地址空间中的所有内容。红色页面不属于该进程,这意味着它们不出现在虚拟地址空间中。”
“使用 PAE 以使用超过 4 GiB 物理内存的 32 位计算机就是一个例子。每个虚拟地址空间最多为 4 GiB,即使使用了 8 GiB 或更多的物理 RAM。”

那么,虚拟空间比物理空间多或少会有什么影响呢?这只是关于你可以拥有多少引用的问题吗?还是还有其他方面需要考虑? - Ogen
2
@Clay 有什么影响?就进程而言,它有X字节的内存,仅此而已。对于操作系统而言,没有太大变化。嗯,一些实现细节(例如页面表的布局或如何访问MMU硬件)可能会改变,但没有什么重大的概念性转变。这只是更多的物理内存可供分配。 - user395760
这是非常好的东西,你能详细说明一下页面表可能如何改变吗? - Ogen
2
@Clay,使用PAE技术后,物理地址的位数必然大于32位。因此,至少需要扩大每个记录中“物理地址”部分的大小。我对PAE之前或之后的页表布局了解不多,所以无法详细说明。您可以先阅读PAE维基百科文章的相关部分。 - user395760

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接