打印

[求助] 求32位xp系统最好只装3g的具体原因

0
楼上的说的有道理,详情如下

32位系统上,内存的寻址能力理论上可达4GB,不过由于操作系统的限制,应用程序仅能使用2GB的寻址空间,剩下的2GB保留给系统。所以你插了4g内存也只有2g能用就这样。
64位,32位的主要区别就是在内存寻址方面,64位中最重要的就是可以大范围平坦的寻址,至于64位计算这个功能倒不是很重要,早在SSE2中就已经有64位整数浮点计算,IEEE标准浮点甚至是80位的,有些人说X86 32位处理器实际上最大可以寻址16TB虚拟内存(12位段选择子,32位虚拟地址),那是错误的,因为段选择子表示段在虚拟内存中的的起始位置,所有段都被塞进了4GB的虚拟地址空间,一个程序中能够寻址的只有4G(实际上操作系统就占用了2G或者1G),能够使用的只有32位的地址指针,32位处理器实际上早在5年前就出现瓶颈了,一些软件虚拟地址空间不够用,所以当时的2000Server的为了尽量为应用程序提供更多空间,自己只占了1G,给应用程序留了3G,至于intel 的36位物理内存分段技术,这个不是为了解决虚拟内存不够的而设计的,而是为了扩展物理内存设计的,让服务器平台能够使用64G的物理内存,因为32位处理器上虚拟内存管理部件的地址指针仍然是32位,要使用36位的物理内存,我们就必须在程序中,软件去设置那高四位,而这是不可能的,因为当你改变了那4位,物理地址就改变了,IP指针也不能正常寻址,你的程序就跑飞了,能够不出错的使用,那只有多进程了,把不同的进程放在不同的物理内存分段上面,设置高4位就是进程切换,所以应用程序还是不能够寻址总量大于4G的物理内存,这类似于以前的8086系统,8086的一个程序只能够使用64K内存,因为他的指针是16位的,但是却8086可以使用1M物理内存,所以可以做多个段来使用1M物理内存,但是段和段之间是无法直接访问它们之间不重叠的部分。

[ 本帖最后由 redcoco 于 2009-7-18 00:56 编辑 ]

TOP

当前时区 GMT+8, 现在时间是 2025-3-21 19:27