转载于:http://bbs.51cto.com/archiver/tid-453371.html
在windows 32位操作系统中,每一个进程能使用到的最大空间(包含操作系统使用的内核模式地址空间)为4GB , 在通常情况下操作系统会分配2GB内存给进程使用,另外2GB内存为操作系统保留, 例如安装了64GB内存,在服务器上安装了SQL / Exchange / ISA / IIS ..... ,那么每个进程(SQL /Exchange / ISA /III ) 能用到的最大空间通常为2GB ,但是微软允许通过在boot.ini 中加入/3GB参数,将操作系统保留的2GB内存减少到1GB,从而将分配给进程的内存提高到3GB 。*n~ KD-S3c2`&^9o oT
J ^2M/O&C0@&q:Y 如果希望应用程序能使用更大的内存,他就需要将他的操作系统和应用程序迁移到64 位平台上。C KL(v}-H
x [hHj|Qe
|F/W&CS @ 具体说明可以看下面的文章Y3s{ev.h _)I
;BLW)xf#\ [url=http://msdn2.microsoft.com/zh-cn/library/ms189334.aspx]http://msdn2.microsoft.com/zh-cn/library/ms189334.aspx[/url]Z0e:l~#\b
$lv2nmL
d$@j8hx&z2o0[8Y 进程地址空间
)Bu H1O)_%A `M.X2O *TAr P"vlg
所有 32 位应用程序都有 4 GB 的进程地址空间(32 位地址最多可以映射 4 GB 的内存)。对于 Microsoft Windows 操作系统,应用程序可以访问 2 GB 的进程地址空间,称为用户模式虚拟地址空间。应用程序拥有的所有线程都共享同一个用户模式虚拟地址空间。其余 2 GB 为操作系统保留(也称为内核模式地址空间)。所有操作系统版本(从 Windows 2000 Server 开始,包括 Windows Server 2003)都有一个 boot.ini 开关,可以为应用程序提供访问 3 GB 的进程地址空间的权限,从而将内核模式地址空间限定为 1 GB。Z+R(j-}'in oOi
2S)lAP\S
[url=http://img.sg.dell.com/fileup/at.asp?fn=20075251094218466.jpg][img]http://img.sg.dell.com/fileup/at.asp?fn=20075251094218466.jpg[/img][/url]Vcp'G B\3x~
地址窗口化扩展插件 (AWE) 通过允许访问尽可能多的操作系统支持物理内存来扩展 32 位应用程序的功能。AWE 可以将最大内存容量 64 GB 的一部分映射到用户地址空间来实现此功能。应用程序缓冲池和 AWE 映射内存之间的映射通过操作 Windows 虚拟内存表来完成。
!rqF `~ V5u{h 为了支持 3 GB 的用户模式进程空间,必须将 /3gb 参数添加到 boot.ini 文件中并重新启动计算机,从而使 /3gb 参数生效。设置此参数后,用户应用程序线程可以寻址 3 GB 的进程地址空间,而为操作系统保留 1 GB 的进程地址空间。2_0Jn0e e"_k3udM
注意: q"}*O)K2N4h;j ^
如果计算机上有 16 GB 以上的可用物理内存,操作系统需要 2 GB 的进程地址空间供系统使用,因此只能支持 2 GB 的用户模式地址空间。为了让 AWE 能够使用 16 GB 以上的内存,应确保 boot.ini 文件中没有 /3gb 参数。否则,操作系统就不能寻址 16 GB 以上的内存。