为什么 32 位操作系统中存在 RAM 使用限制?

Shu*_*ham -1 memory windows

可能重复:
为什么 Windows 只显示我的 4GB+ 内存中的大约 3.5GB?

我无意中浏览了许多关于 32 位 Windows 与 64 位对比的限制的博客。最重要的区别是 32 位操作系统只能为每个进程分配 2GB 的 RAM,加起来只能分配 4GB 的 RAM。

虽然引用的原因是 32 位操作系统只能分配 2^32 的地址空间,但我仍然不明白这个限制是如何发挥作用的?任何人都可以启发我吗?

Chr*_*isF 8

原因是因为 2 32是可以存储在单个 32 位变量中的最大整数。

因此,除非您有某种方案将指针拆分为 2 个(或更多)变量或使用 64 位整数,否则在物理上不可能寻址更大的内存位置。将使用 32 位整数或仅使用单个变量来寻址内存的原因有很多,但速度和可靠性将在列表中很高。


Bon*_*art 7

这是多种因素的组合,这些信息都已在此处提供……尽管以位为单位(无意双关语)。

首先是 32 位模型的物理限制,如上所述。位是 1 或 0。其中的 32 个一起占用特定的空间量。您知道...二进制... 10101010 等 4GB 的独特空间。 可以以 32 位存储的整数值的范围是 0 到 4,294,967,295。因此,具有 32 位内存地址的处理器可以直接访问 4 GiB 的字节可寻址内存。

现在,使用物理地址扩展或 PAE ......好吧......引用“虚拟地址的 32 位大小没有改变,因此常规应用程序软件继续使用具有 32 位地址的指令和(在平面内存模型)限制为 4 GB 的虚拟地址空间。操作系统使用页表将这 4 GB 地址空间映射到 [较大量] 物理内存中。映射通常对每个进程应用不同。以这种方式,即使没有一个常规应用程序可以同时访问它,额外的内存也是有用的。 ”因此,即使使用 PAE,尽管您的操作系统会识别并显示您在 32 位系统中拥有超过 4GB 的内存,但没有单个程序可以访问给所有人 您的 RAM 一次。

这能消除混乱吗?在 32 位系统中只有 4GB 的唯一内存地址空间。由于您不能同时使用相同的内存地址空间两次而不会导致错误,这就是物理限制。试着记住...当 32 位系统被引入时,人们并没有使用具有这么多 RAM 的系统的概念。


归档时间:

查看次数:

1694 次

最近记录:

7 年,12 月 前