如何分页虚拟地址空间?

时间:2013-03-29 09:38:13

标签: operating-system virtual-address-space

在我阅读维基百科的这篇文章http://en.wikipedia.org/wiki/Memory_management_unit#How_it_works时,我发现将虚拟地址空间(处理器使用的地址范围)划分为页面。但我了解到只有物理内存(RAM)被分成了几页。那么如何划分进程的虚拟地址空间呢?

此外,虚拟地址空间的定义也是处理器使用的地址范围。 处理器使用的地址范围表示处理器中地址总线的长度,对吗?因此,如果我的地址总线处理器为32位,RAM为4 GB(2 ^ 32),那么我的物理和虚拟地址空间是否相同?

如果问题太天真,请耐心等待。我仍然没有清楚地了解地址空间。提前谢谢。

1 个答案:

答案 0 :(得分:1)

答案是针对每个操作系统的,但一般来说,这意味着虽然每个进程都会说32位可寻址内存,但这个内存空间被划分为一定大小的范围或页面。

简单地说,当您的进程访问某个地址时,该位置将位于某个页面中。操作系统将确保存在映射到该位置的物理内存。但是它可能不在物理ram中的相同地址。

当某个其他进程处理该位置时,操作系统将在物理ram的页面中映射,以便该位置也可以被寻址。

物理内存页面一直映射到磁盘和从磁盘映射(这样你的内存大小可能超过32位,并且虚拟内存页面被映射到刚才描述的物理页面。

我真的建议您阅读此问题https://stackoverflow.com/questions/1437914/best-book-on-operating-systems

中的链接