我无意中浏览了许多关于 32 位 Windows 与 64 位对比的限制的博客。最重要的区别是 32 位操作系统只能为每个进程分配 2GB 的 RAM,加起来只能分配 4GB 的 RAM。
虽然引用的原因是 32 位操作系统只能分配 2^32 的地址空间,但我仍然不明白这个限制是如何发挥作用的?任何人都可以启发我吗?
原因是因为 2 32是可以存储在单个 32 位变量中的最大整数。
因此,除非您有某种方案将指针拆分为 2 个(或更多)变量或使用 64 位整数,否则在物理上不可能寻址更大的内存位置。将使用 32 位整数或仅使用单个变量来寻址内存的原因有很多,但速度和可靠性将在列表中很高。
这是多种因素的组合,这些信息都已在此处提供……尽管以位为单位(无意双关语)。
首先是 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 次 |
| 最近记录: |