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


10

众所周知,32位系统只能处理4 GB作为最大RAM量。

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

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


3
这种物理内存限制声明并非适用于所有平台......“物理地址扩展(PAE)是一项允许32位x86中央处理单元(CPU)访问物理地址空间(包括随机存取内存和内存映射)的功能设备)大于4千兆字节。“ en.wikipedia.org/wiki/Physical_Address_Extension
packets

1
@packets不要再混淆他了。他确实需要首先了解虚拟寻址和分页等基本概念。
David Marshall

1
没问题,我不怕学习。
Sekhemty

Answers:


11

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

32位计算机只能有一个4GB(2 ^ 32,或大约40亿字节)大的桌面,但它们仍然可以拥有几乎无限的文件柜。当桌子装满时,他们只需要“交换”文件,他们需要查看文件柜中的另一页。


它不适用于交换的原因是因为访问RAM的内容或从中执行代码仅限于它可以使用的数字的大小。可以想象一下,你桌面上只能有40亿字,因为这是你可以计算的最高值,你需要直接用文字工作。 “单词3,547被拼错了。将单词3,452,780改为'你好'。删除单词6.”

现在,每个页面上可能有4,000个单词。问题是,当您引用交换空间时,您不会通过单词,仅通过页面来引用它。所以你仍然可以只有40亿,但你可以数到40亿页。 40亿页实际上有16个 单词 - 比你可以计算得多得多。

64位计算机可以计算得更高,因此如果他们有足够大的桌面,他们可以立即将所有页面放在桌面上。即使你在一台32位机器中放置超大型办公桌,你仍然可以只计算到40亿,所以你无法在桌面上引用所有额外的单词。


那么,你想告诉我的是,交换空间是RAM内存的索引吗?因此,单GB的交换代表比单GB的RAM多得多的内存?无论如何,我仍然无法理解为什么系统无法管理超过4GB的RAM,而是可以用swap。为什么我们都不使用swap而不是RAM呢?
Sekhemty

1
交换空间就像“卸载”内存,它在更大的块中引用。 1GB的RAM是1GB的交换,但每个字节寻址RAM,每个块寻址交换。一个不同的例子可能是考虑包装花生。你手里拿着多少包装花生?在尝试捡起更多之前可能有100个因为你的手指之间会弹出一些?现在,如果我们将花生放入盒子里,你能装几包花生?成千上万的?交换有点像盒子。您可以管理更大的数据块,但无法访问数据本身。
Darth Android

1
@Sekhemty:关于我们为什么一直使用swap的第二个问题 - 硬盘上存在交换文件,计算机可以访问硬盘上数据的速度取决于磁盘的访问速度(和然后一些)。但即便是最快的硬盘也比物理RAM慢得多。所以这是一个速度问题。此外,当前的x86架构无论如何都不允许这样做(没有RAM;只有交换)。 Swap文件是系统无法识别的操作系统概念。
bobbyalex

@DarthAndroid:谢谢,现在很清楚。
Sekhemty

10

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.