【问题标题】:How can virtual address space be paged?如何对虚拟地址空间进行分页?
【发布时间】:2013-03-20 00:06:38
【问题描述】:

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

此外,这里虚拟地址空间的定义是处理器使用的地址范围。 处理器使用的地址范围是指处理器中地址总线的长度,对吧?因此,如果我有一个 32 位地址总线的处理器和一个 4 GB (2^32) 的 RAM,我的物理地址空间和虚拟地址空间是否相同?

如果问题太幼稚,请耐心等待。我仍然没有得到非常清晰的地址空间可视化。提前致谢。

【问题讨论】:

    标签: operating-system virtual-address-space


    【解决方案1】:

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

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

    当一些其他进程寻址该位置时,操作系统将映射到物理内存的页面中,以便该位置也可以寻址。

    物理内存页面一直被映射到磁盘和从磁盘映射(这样您就可以拥有大于 32 位的内存价值_\,并且虚拟内存页面被映射到刚才描述的物理页面。

    我真的建议阅读这个问题中的链接https://stackoverflow.com/questions/1437914/best-book-on-operating-systems

    【讨论】:

      猜你喜欢
      • 2016-01-13
      • 1970-01-01
      • 1970-01-01
      • 2021-03-18
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      相关资源
      最近更新 更多