假设 32 位/64 位处理器可以在 2GB RAM 上运行 4GB 进程。它会使用虚拟内存还是根本无法运行?
最佳答案
这高度依赖于平台。在许多 32 位操作系统上,无论安装的物理内存或分配的虚拟内存如何,单个进程都不能使用超过 2GB 的内存。
例如,我的工作计算机使用带有 PAE(物理地址扩展)的 32 位 Linux,以允许安装 16GB 的 RAM。不过,每个进程 2GB 的限制仍然适用。拥有额外的 RAM 可以让我运行更多单独的进程。 32位Windows也是同样的方法。
64 位操作系统更是鱼龙混杂。 64 位 Linux 将允许单个进程映射超过 32GB 的内存(但同样,因内核而异)。您将仅受您拥有的交换(Linux 虚拟内存)量的限制。 64 位 Windows 完全是垃圾。某些版本仅允许每个进程 2GB,但大多数版本允许 >32GB,仅受用户分配的页面文件量的限制。
微软提供了一个有用的table打破各种操作系统版本/版本的各种内存限制。不幸的是,我通过粗略搜索 Linux 找不到这样的表,因为它是如此分散。
关于memory-management - 4GB 进程如何在仅 2GB RAM 上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24869800/