32 位系统上的 4 GB RAM 限制也会影响交换空间吗?

32 位系统上的 4 GB RAM 限制也会影响交换空间吗?

众所周知,32 位系统最多只能处理 4 GB 的 RAM。

在 Linux 下,此限制是否也适用于交换分区?如果我的 RAM + 交换分区超过 4 GB,是否会被充分利用?

如果答案是“不,它不适用于交换”,为什么?

答案1

不,想象一下 RAM 就像您的办公桌,而交换空间/虚拟内存就像文件柜。您可以将大量信息放入文件柜中,但很难访问。任何您想使用的文件,您都必须将其取出并放在桌子上;问题是桌子一次只能容纳这么多文件。

32 位计算机只能拥有 4GB(2^32,或约 40 亿字节)大小的办公桌,但它们仍然可以拥有几乎无限的文件柜。当办公桌已满并且它们需要查看文件柜中的另一页时,它们只需“交换”纸张即可。


它不适用于交换的原因在于,访问 RAM 的内容或从中执行代码受限于它可以处理的数字的大小。想象一下,你的桌子上只能有 40 亿个单词,因为这是你所能数的最大数量,而你需要直接处理单词。“单词 3,547 拼写错误。将单词 3,452,780 更改为‘Hello’。删除单词 6。”

现在,每页可能有 4,000 个单词。问题是,当你引用交换空间时,你不是按单词引用,而是按页引用。所以你仍然只能数到 40 亿,但你可以数到 40 亿页。40 亿页实际上包含 16单词——比你能数出来的要多得多。

64 位计算机只能计数得更高,因此,如果桌子足够大,它们可以一次将所有页面放在桌子上。即使你在 32 位机器上放了一张超大的桌子,你仍然只能计数到 40 亿,所以你无法引用桌子上所有额外的单词。

答案2

您混淆了物理内存和虚拟内存。

RAM 是物理内存。交换空间可以包含许多 4GB 虚拟地址空间。

相关内容