地址窗口扩展
地址窗口扩展(英語:Address Windowing Extensions,缩写AWE)是一项Microsoft Windows应用程序接口,它允许32位应用软件访问超出其虚拟地址空间限制(4GB)的物理内存。[1]在地址窗口扩展下将应用程序的虚拟地址空间映射到物理内存的过程被称为“加窗”(windowing),并类似其他环境的覆盖概念。AWE对于需要操作极大数据集的数据密集型应用程序(例如数据库管理系统,科学和工程学软件)有益。
应用程序保留虚拟地址空间的区域或“窗口”,并分配物理内存的一个或多个区域。使用地址窗口扩展API,应用可以将虚拟窗口映射到任何一个物理区域。应用程序可以保留多个虚拟地址空间,并将其映射到物理内存的任何分配区域,只需虚拟地址空间中保留的字节数与物理内存区域相匹配。应用程序必须有“锁定内存页”的特权才能使用地址窗口扩展。
当保留内存超过4GB时,地址窗口扩展依赖于物理地址扩展的支持。[2]地址窗口扩展在Windows 2000中作为一个取代PSE36方法的新API被引入。PSE36方法自Windows NT 4.0企业版引入,用于访问超过4GB内存,在Windows 2000中已不支持。[3][4]第一批使用地址窗口扩展的应用程序是Oracle 8.1.6和Microsoft SQL Server 2000。
如果/3GB引导标识被使用以重新分配32位虚拟空间(2GB内核空间和2GB用户空间改为3GB用户空间),地址窗口扩展将只能访问16GB物理内存。此限制是因为只有1GB内存保留给内核,而没有足够的内存用于映射超过16GB内存的页表项。[5]通过地址窗口扩展可寻址的最大内存量也因Windows许可方案而额外限制。例如,Windows 2000 Advanced Server限制为8GB,Windows 2000 Data Center Server则支持64GB。[6]
2004年在Dr. Dobb's Journal发布的一篇文章称注意到使用地址窗口扩展分配的内存将不会被写入页面文件,并建议AWE区域因此可作为保护敏感的应用程序数据(如加密密钥)的一种方式。[7]
参见
参考资料
- ^ Address Windowing Extensions. MSDN. [2017-03-15]. (原始内容存档于2017-03-16).
a set of extensions that allows an application to quickly manipulate physical memory greater than 4GB.
- ^ Physical Address Extension. Microsoft. November 6, 2008 [2008-12-13]. (原始内容存档于2012-08-12).
- ^ Sajal Dam. SQL Server Query Performance Tuning Distilled. Apress. 2004: 28–29 [2017-03-15]. ISBN 978-1-4302-0407-7. (原始内容存档于2017-03-15).
- ^ Michael R. Ault. Increasing Available Memory in Linux and Windows (PDF). ROBO Books White Paper: 10–12. 2003-02-17 [2014-03-01]. (原始内容存档 (PDF)于2022-01-19).
- ^ Tuning IBM xSeries Servers for Performance (PDF) 3rd. IBM SG24-5287-02. June 2002: 92–93 [2017-03-15]. (原始内容 (PDF)存档于2014-03-03).
- ^ Dwaine Snow; Thomas X. Phan. Advanced DBA Certification Guide and Reference: For DB2 Universal Database V8 for Linux, UNIX, and Windows. Prentice Hall Professional. 2003: 87 [2017-03-15]. ISBN 978-0-13-046388-3. (原始内容存档于2014-06-28).
- ^ Coombs, Jason. Protecting RAM Secrets with Address Windowing Extensions. Dr. Dobb's Journal. October 18, 2004 [2007-12-08]. (原始内容存档于2007-12-18).