【问题标题】:How size of virtual memory is decided and calculated in Linux [closed]Linux中如何确定和计算虚拟内存的大小[关闭]
【发布时间】:2016-05-11 19:05:34
【问题描述】:

Linux 中虚拟内存的大小是如何决定和计算的? 32bit/64bit 系统的虚拟内存大小是多少?

【问题讨论】:

    标签: linux memory-management linux-kernel virtual-memory


    【解决方案1】:

    虚拟地址空间的大小取决于操作系统。

    硬件设置逻辑地址空间的底层大小(2^32 或 2^64 字节)。虚拟内存的大小通常会小于以下限制:

    1. 将地址空间划分为内核区和用户区
    2. 系统参数
    3. 进程配额
    4. 页面文件空间

    【讨论】:

      【解决方案2】:

      虚拟内存可以是任意大小,如果需要,它可以大于可用的物理内存。如果你不明白为什么会这样,那么你需要了解更多关于虚拟内存的知识。但是,虚拟地址空间通常将与物理地址空间大小相同。这意味着在 32 位系统上,虚拟和物理内存都将是 4GiB 大。区别在于每个程序都可以访问自己的4GiB虚拟内存,并且会通过分页+交换来保证一个用户程序的内存不能被其他用户程序访问。

      要更详细地了解 Linux 中如何实现分页,您可以阅读Paging section on OSDev

      【讨论】:

        【解决方案3】:

        虚拟内存的大小也取决于处理器,处理器可以寻址多少地址空间,很简单,32位是4gb,64位是2^64。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-25
          • 2015-06-18
          • 2021-07-25
          • 2018-07-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多