32位系统支持大内存诸多问题
这两天与似水无痕同学探讨了一个纯学术性的问题,就是32位系统到底能够支持多少的内存。刚开始我俩各执一词,都觉得自己掌握了真理,后来查找了一下资料,发现我们只是分别揭开了真理的半边面纱而已。
如今计算机发展已进入了大内存时代,不过32位系统已经从根本上制约了内存的增加,因为32位的系统,其寻址空间只能限制在2^32位=4GB之内,除掉系统占用的那些地址,能够寻址的内存空间大约只有3.25-3.75GB之间。这也正是我前几天毅然放弃32位安装了64位系统的原因,虽然32位系统可以识别4GB内存,不过却不能让它们完全派上用场。可惜的是我发现大部分常用程序还是运行在32位兼容模式下的,只有部分的软件提供了64位版本。不过这也足以让我欣慰了,毕竟所有内存空间终于派上用场了。
其实微软早就在 Windows 2003 时候,在服务器和数据仓库版本的系统中,通过一种叫做AWE(Address Windowing Extensions)的技术,通过动态映射的方式,将能够直接寻址的内存空间之内的地址,映射到32位系统能够直接寻址的3.X内存之内,间接的实现了32位系统对大内存的支持。
下面是网络上查到的资料:
1、理论上32位系统理论上只能支持最高4G内存吗?
答:看起来是这样没错,但微软已经告诉我们事实并非如此--企业版、数据中心版的Windows分别支持最大32G和64G内存。
2、我的计算机有4G内存,可为什么系统告诉我内存只有3.x G?
答:由于部分主板芯片组将其他硬件的物理地址映射在4G内存地址内进行管理,使得这些计算机通常能识别并使用最大内存容量在3.25-3.75G之间。如果要让系统识别出完整的4G内存,你的主板必须支持一种叫做"PAE(物理地址扩展)"的技术。
3、我的主板支持PAE,为什么还是无法使用全部的4G内存?
答:这是因为操作系统的限制,目前32位的Windows里,只有服务器版本(2003/2008)支持4G或以上的内存(Windows Server 2003 Web版只支持2G内存),并且需要在系统的启动项末尾添加/PAE选项(在boot.ini中编辑)。
4、32位系统下,单个进程能够访问的内存最大是多少?
答:32位Windows操作系统下单个进程用户模式内存访问的限制是2G,如果在boot.ini中设置了/3G开关,则最大为3G,超过3G将无法访问。
5、如何让单个进程访问大于2G/3G的内存?
答:32位操作系统下只有通过 AWE的方式来扩展内存。AWE (Address Windowing Extensions)是 Windows 的内存管理功能的一组扩展,它使应用程序能够使用的内存量超过通过标准 32 位寻址可使用的 2-3 GB 内存。AWE 允许应用程序获取物理内存,然后将非分页内存的视图动态映射到 32 位地址空间。虽然 32 位地址空间限制为 4 GB,但是非分页内存却可以远远大于 4 GB。这使需要大量内存的应用程序(如大型数据库系统)能使用的内存量远远大于 32 位地址空间所支持的内存量。
(下图所示AWE 实际上就是将用户模式下的32位内存地址映射到用户需要访问的物理内存上去。不同操作系统运行被映射的物理内存大小是不一样的。)

Powered by Zoundry Raven






2009/09/27 19:56:53
一看,立刻明白了
[回复]
Louis Han 回复:
九月 27th, 2009 at 8:10 下午
@Hobo, 很简单的道理 呵呵
[回复]
2009/09/27 20:06:29
太深奥了
[回复]
Louis Han 回复:
九月 27th, 2009 at 8:11 下午
@phenix, 好像只是几个算术题吧,不算深奥 O(∩_∩)O~
[回复]
2009/09/27 20:13:17
这个问题以前模模糊糊的大概了解,没想这么清楚,我家电脑本身就是32位……太老了,看了以后明白了为什么服务器支持大内存了。
[回复]
Louis Han 回复:
九月 27th, 2009 at 8:16 下午
@engic, 要从根本上支持大内存,还是要64位系统的
[回复]
2009/09/27 20:20:39
反正就是理论上不超过4G,普通用户或者游戏玩家应用64位操作系统的另外一个重要障碍来自于应用程序的兼容性问题,大多数软件可以在64位环境下运作良好,但是仍然有相当数量的游戏和应用程序存在兼容性问题,如果要迎来64位时代,应用程序必须第一个做好准备。
[回复]
Louis Han 回复:
九月 27th, 2009 at 8:33 下午
@XJP, 是啊,我现在用64位系统,但大部分软件还是32位兼容的
[回复]
2009/09/27 20:45:21
研究得挺透彻嘛
不过就目前的程序来说3G和4G其实差距不大
可以用剩下的1G来做虚拟盘
放cache,可以稍微加快读取速度和保护硬盘
[回复]
Louis Han 回复:
九月 27th, 2009 at 9:33 下午
@A.shun, 我的已经有迅盘了,不需要内存做cache
[回复]
2009/09/27 21:00:17
学术!
我的电脑不需要支持大内存,因为我的内存才1.5G……
[回复]
Louis Han 回复:
九月 27th, 2009 at 9:34 下午
@SunQ, 升级一下吧 哈哈 那么便宜
[回复]
2009/09/27 21:09:27
见过关于这个的文章,感觉吧,这个内存对电脑的影响不是那么明显,把虚拟内存调一点,应付一般的东西没问题的
[回复]
Louis Han 回复:
九月 27th, 2009 at 9:34 下午
@唯美国度, 虚拟内存毕竟速度比内存慢的太多了
[回复]
2009/09/27 21:09:44
好像这个和芯片组也有关系的,fsb 667mhz只能支持到3g
[回复]
Louis Han 回复:
九月 27th, 2009 at 9:35 下午
@wayne, ⊙﹏⊙b汗,第一次听说这种观点,好像不符合科学。。。
[回复]
2009/09/27 21:13:47
我的电脑好像最大支持4G内存,现在是2G
[回复]
Louis Han 回复:
九月 27th, 2009 at 9:35 下午
@无疆, 是啊,跟主板有一定关系
[回复]
2009/09/27 21:19:59
老问题了,32位就别上4G内存,应该也不是这样定义,应该是win2003下的32位操作系统就别上4G内存,上了也没用
[回复]
Louis Han 回复:
九月 27th, 2009 at 9:36 下午
@zwwooooo, 不管什么系统32位的都用不上4G,Win7也是
[回复]
2009/09/27 21:46:07
据说最近内存涨钱……
而且,我也没钱了
[回复]
Louis Han 回复:
九月 27th, 2009 at 10:44 下午
@SunQ, 就算涨钱不过百多块钱的东东。。。
[回复]
2009/09/27 22:06:23
我覺得現在2G內存足夠了
曾經裝過64位的WIN7 沒特別研究過
[回复]
Louis Han 回复:
九月 27th, 2009 at 10:45 下午
@kevinsnow, 2G内存确实基本上够用了
[回复]
2009/09/27 22:38:25
32位认不了的部分就虚拟成磁盘用了吧···
[回复]
Louis Han 回复:
九月 27th, 2009 at 10:47 下午
@mfkof, 已经有迅盘了,不需要再增加虚拟的cache了
[回复]
2009/09/27 22:50:06
百十块钱对于我来说,也是一笔很浩大的数额呀
[回复]
Louis Han 回复:
九月 27th, 2009 at 10:51 下午
@SunQ, ⊙﹏⊙b汗
学生啊,呵呵?
[回复]
2009/09/27 22:52:49
呃……不是学生,最近在装修房子……
[回复]
Louis Han 回复:
九月 27th, 2009 at 10:54 下午
@SunQ, 有房一族,羡慕啊~
装修的怎么样了?
[回复]
2009/09/27 22:58:57
技术流。。。。。。。
[回复]
Louis Han 回复:
九月 27th, 2009 at 11:05 下午
@nicidoggy, 一般常识而已~
[回复]
2009/09/27 23:34:40
没用过64位的系统,首先硬件就不支持了
[回复]
Louis Han 回复:
九月 27th, 2009 at 11:44 下午
@derek, 那就很痛苦了 呵呵
[回复]
2009/09/28 22:00:30
差不多了,就差入住了
[回复]
Louis Han 回复:
九月 29th, 2009 at 12:03 上午
@SunQ, 恭喜恭喜,恭贺乔迁之喜啊!
[回复]
2009/09/30 17:16:09
要是我平时使用的这些软件儿,都宣布支持64位了的话,那我就用64位去了
现在想用也用不了
[回复]
Louis Han 回复:
九月 30th, 2009 at 5:28 下午
@风也飘泊, 64位系统可以支持32位软件兼容使用
[回复]
2011/09/08 09:46:10
昨天加内存来着,本来想买个4G的,加上原来的2G,应该够用了。后来才发现32位的只能识别4G……
[回复]
Louis Han 回复:
九月 12th, 2011 at 12:20 下午
@beyonndme37, 32位只能支持3.25G
[回复]
beyondme37 回复:
九月 12th, 2011 at 9:25 下午
@Louis Han, 嗯,是3G,但我笔记本只能识别2.99G
[回复]