地址窗口擴展
地址窗口擴展(英語: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).