Rozszerzenia okien adresowych
Address Windowing Extensions (AWE) to interfejs programowania aplikacji systemu Microsoft Windows , który umożliwia 32-bitowej aplikacji dostęp do większej pamięci fizycznej niż wirtualna przestrzeń adresowa, nawet przekraczając limit 4 GB. Proces mapowania wirtualnej przestrzeni adresowej aplikacji na pamięć fizyczną w AWE jest znany jako „okienkowanie” i jest podobny do koncepcji nakładki w innych środowiskach. AWE jest korzystne w przypadku niektórych z danych , takich jak systemy zarządzania bazami danych oraz oprogramowanie naukowe i inżynieryjne , które muszą manipulować bardzo dużymi zbiorami danych , minimalizując przy tym stronicowanie .
Aplikacja rezerwuje region lub „okno” wirtualnej przestrzeni adresowej i przydziela jeden lub więcej regionów pamięci fizycznej. Korzystając z interfejsu AWE API, aplikacja może mapować wirtualne okno na dowolny region fizyczny. Aplikacja może zarezerwować więcej niż jedną wirtualną przestrzeń adresową i odwzorować ją na dowolny z przydzielonych obszarów pamięci fizycznej, o ile liczba bajtów zarezerwowanych w wirtualnej przestrzeni adresowej odpowiada liczbie bajtów w fizycznym obszarze pamięci. Aplikacja musi mieć uprawnienie Zablokuj strony w pamięci, aby korzystać z AWE.
W systemach 32-bitowych AWE zależy od obsługi rozszerzenia adresu fizycznego przy rezerwowaniu pamięci powyżej 4 GB. AWE zostało po raz pierwszy wprowadzone w systemie Windows 2000 jako nowy interfejs API zastępujący metodę PSE36 (z systemu Windows NT 4.0 Enterprise Edition) umożliwiającą dostęp do ponad 4 GB pamięci, która nie była już obsługiwana w systemie Windows 2000. Wśród pierwszych aplikacji wykorzystujących AWE to Oracle 8.1.6 i Microsoft SQL Server 2000.
Jeśli flaga rozruchowa /3GB jest używana do ponownego podziału 32-bitowej wirtualnej przestrzeni adresowej (z jądra 2 GB i przestrzeni użytkownika 2 GB) na przestrzeń użytkownika 3 GB, wówczas AWE ma dostęp do 16 GB pamięci fizycznej. To ograniczenie wynika z faktu, że przy zarezerwowaniu tylko jednego GB dla jądra nie ma wystarczającej ilości pamięci, aby wpisy tablicy stron mogły zmapować więcej niż 16 GB pamięci. Dodatkowe ograniczenia dotyczące maksymalnej ilości adresowalnej pamięci przez AWE są narzucone przez schemat licencjonowania systemu Windows. Na przykład Windows 2000 Advanced Server był ograniczony do 8 GB, podczas gdy Windows 2000 Data Center Server obsługiwał 64 GB.
W artykule opublikowanym w Dr. Dobb's Journal w 2004 roku zauważono, że pamięć przydzielona za pomocą rozszerzeń Address Windowing Extensions nie zostanie zapisana w pliku stronicowania i zasugerowano, że regiony AWE mogą być zatem wykorzystywane jako sposób ochrony wrażliwych danych aplikacji, takich jak klucze szyfrowania.