所有 32 位应用程序都有 4 GB 的进程地址空间(32 位地址最多可以映射 4 GB 的内存)。对于 Microsoft Windows 操作系统,应用程序可以访问 2 GB 的进程地址空间,称为用户模式虚拟地址空间。应用程序拥有的所有线程都共享同一个用户模式虚拟地址空间。其余 2 GB 为操作系统保留(也称为内核模式地址空间)。所有操作系统版本(从 Windows 2000 Server 开始,包括 Windows Server 2003)都有一个 boot.ini 开关,可以为应用程序提供访问 3 GB 的进程地址空间的权限,从而将内核模式地址空间限定为 1 GB。
下一版本的 Microsoft SQL Server 将删除该功能。请不要在新的开发工作中使用该功能,并尽快修改当前还在使用该功能的应用程序。
地址窗口化扩展插件 (AWE) 通过允许访问尽可能多的操作系统支持物理内存来扩展 32 位应用程序的功能。AWE 可以将最大内存容量 64 GB 的一部分映射到用户地址空间来实现此功能。应用程序缓冲池和 AWE 映射内存之间的映射通过操作 Windows 虚拟内存表来完成。
为了支持 3 GB 的用户模式进程空间,必须将 /3gb 参数添加到 boot.ini 文件中并重新启动计算机,从而使 /3gb 参数生效。设置此参数后,用户应用程序线程可以寻址 3 GB 的进程地址空间,而为操作系统保留 1 GB 的进程地址空间。
注意 |
---|
如果计算机上有 16 GB 以上的可用物理内存,操作系统需要 2 GB 的进程地址空间供系统使用,因此只能支持 2 GB 的用户模式地址空间。为了让 AWE 能够使用 16 GB 以上的内存,应确保 boot.ini 文件中没有 /3gb 参数。否则,操作系统就不能寻址 16 GB 以上的内存。 |