【问题标题】:Memory use on 32 bit RHEL machine32 位 RHEL 机器上的内存使用
【发布时间】:2009-05-28 10:50:48
【问题描述】:

我在基于 AMD64 的硬件上使用 32 位 RHEL 4.4。这是 uname -a 的输出

$ uname -a
Linux zulu 2.6.9-42.0.10.ELsmp #1 SMP Fri Feb 16 17:17:21 EST 2007 i686 athlon i386 GNU/Linux

我在这个系统上安装了 8G 内存,操作系统是 32 位,我认为我的系统将无法使用全部 8GB 内存。但是当我运行 top 时,我看到以下 -

Mem:   8309168k total,  8292028k used,    17140k free,     7096k buffers

所以,top 可以查看全部 8GB 内存。

如果我在同一台机器上安装 32 位 WinXP,任务管理器只会显示 3 GB 可用。

我的问题是 - 32 位操作系统如何能够看到 8GB 内存?这是否意味着我的应用程序将能够使用更大的地址空间?为什么32位Linux和32位WinXP有区别?

谢谢!

【问题讨论】:

    标签: linux memory 32-bit


    【解决方案1】:

    您的 Linux 系统支持Physical Address Extension

    【讨论】:

      【解决方案2】:

      内存有不同的“级别”。无论操作系统如何,不可能在一个进程中处理超过 4Gb 的数据,因为您的指针太小而不能超过这个 - 这是 32 位 w.r.t 内存的基本限制。在 linux 和 windows 以及大多数“传统”操作系统上,我猜想,32 位虚拟地址空间被分成内核的一部分和进程的一部分,因此每个进程的可寻址内容不到 4 Gb。

      但是,操作系统仍然可以使用超过 4 Gb 的内存 - 例如,有 2-3 个进程,每个进程消耗 2 Gb 的内存。即使是 32 位 CPU 也可以寻址超过 4 Gb 的内存(在硬件级别),但在虚拟地址空间中,您总是受到 32 位指针的限制。

      老新东西很好解释物理地址空间、虚拟地址空间和co的区别:http://blogs.msdn.com/oldnewthing/archive/2004/08/18/216492.aspx

      【讨论】:

      • 实际上,虽然通常是一个合适的答案,但这有点误导,因为实际上您可以做一些事情来解决一个 32 位进程中超过 4 GiB 的问题。例如,在 Windows 上:“地址窗口扩展 (AWE) 是一种 Microsoft Windows 应用程序编程接口,它允许 32 位软件应用程序访问比它拥有的虚拟地址空间更多的物理内存,甚至超过 4 GB 的限制。[ 1]",取自en.wikipedia.org/wiki/Address_Windowing_Extensions
      【解决方案3】:

      启用此功能的方法称为“PAE”(物理地址扩展)。您的 CPU 能够在内部使用 36 位地址,并且您的操作系统支持它。不幸的是,Windows XP 仅使用 PAE 来支持 NX 位(无执行位,当处理器尝试从标有该位的页面执行代码时会导致异常发生)。 32 位 Linux 内核支持 PAE。

      【讨论】:

        【解决方案4】:

        较新的 i386 兼容 CPU 可以使用 PAE 模式寻址超过 4 GB。 Windows XP 人为地将地址空间限制为 4GB,因为有太多编写不佳的硬件驱动程序假设所有 DMA 都将在 4 GB 以下的内存中完成。因此,4 GB 地址空间中的大约 1 GB 映射到硬件,其余映射到物理 RAM。 Windows 服务器版本没有此限制。支持 PAE 的 Linux 内核也不限制内存。如果我没记错的话,这两个都支持高达 32GB。

        您的应用程序的地址空间限制在 2-3 GB 之间,具体取决于操作系统选项。例如,一个应用程序可以有效地使用更多的物理 RAM,而不是通过在该地址空间内外开窗部分内存、使用地址开窗扩展或内存映射文件。

        【讨论】:

        • PAE 将限制增加到 2^36 字节,即 64 GiB。 :)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-09-01
        • 2013-10-29
        • 2011-08-08
        • 2018-04-18
        • 2013-03-04
        • 2023-03-29
        • 2011-11-03
        相关资源
        最近更新 更多