我知道2^32 = 4,294,967,296
2GB 是给操作系统的,2GB 是给进程的,但为什么 64 位操作系统只提供 4GB 的地址空间?难道不应该是2^64 = 18,446,744,073,709,551,615
操作系统和进程之间平均分配的很多超过 4 GB?
答案1
如果你看看Windows 版本的内存限制
x64 用户模式虚拟地址空间的限制不是,4GB
但至少8TB
一些解释这证明了8Tb
限制的合理性。
默认情况下,32 位 exe2GB
也只能在 64 位操作系统上运行,除非对其进行调整IMAGE_FILE_LARGE_ADDRESS_AWARE
答案2
2^32(4GB)是使用 32 位指针一次可以寻址的最大地址空间量。因此,32 位进程必然限制在 4GB 的地址空间内,因为它使用 32 位指针,无论操作系统是什么。
请注意,这纯粹是对虚拟的进程可以一次映射到其地址空间的内存。
答案3
您的计算是正确的。运行 64 位系统时,您无需担心地址空间(它比您的系统支持的要大得多)。如果 RAM 大小不是它应该的大小,则问题出在其他地方。也许您的主板有限制,或者某些 RAM 棒不受支持/损坏。