Sources
Delphi Russian Knowledge Base
DRKB - база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Описание работы с AWE

12.12.2002
Mystic (mystic2000@newmail.ru)

Этот раздел описывает расширение адресной оболочки Windows (Address Windowing Extention, AWE). Это расширение Windows 2000 предоставляет возможность пользовательским приложениям адресовать более чем 32 бита адресного пространства.

Windows NT и Windows 2000 предоставляют своим приложениям сплошное 32-х битовое адресное пространство, которое описывает 4 Гб виртуальной памяти. Это адресное пространство обычно разбито таким образом, что только 2 Гб непосредственно доступны для нужд приложения. Другие 2 Гб доступны только закрытому коду, принадлежащему операционной системе. Добавим, что начиная с Windows NT 4 SP 3 и Windows NT Server Enterprise Edition/Windows 2000 Advanced Server на базе процессора x86 на нужды приложения выделяется 3 Гб, а закрытому коду - 1 Гб.

AWE является набором расширений, которые предоставляют пользователю возможность пользователю напрямую выделять и фиксировать страницы в оперативной памяти. В этом случае приложения могут быстро оперировать с физичекой памятью, превышающей 4 Гб. Некоторые приложения, связанные с интесивной обработкой данных, такие как систмы управления базами данных, а также нучные и инженерные приложения, нуждаются в доступе к очень огромным кешам данных. В этом случае, размер кеша ограничивается 2 Гб, доступными приложениями, что иногда являеться жестким ограничением. В этих случаях, приложения могут использовать под кеш небольшие объемы данных.

AWE решает эту проблему путем разрешения приложению непосредственно адресовать гигантскую память, в то время как оно может использовать и обычную 32-х битную адресацию. AWE предоставляет для приложений возможность иметь под кеш более чем 4 Гб (при условии, что существует соответствующая физическая память).

Использование AWE связано с некоторыми ограничениями на использование такой памяти, главным образом эти ограничения связаны с предоставлением критичного по скорости распределением, перераспределением и освободением памяти.

Решение адресовать физическую память следует в большей степени из получаемых при этом выгод. Вот некоторые выгоды использования AWE:

Для того чтобы получить привелегию фиксирования страниц в памяти, администратор должен добавить значение атрибута "Lock Page in Memory" в правах пользователя. Установить этот параметр можно выбрав "Панель управления ⇒ Администрирование ⇒ Локальная политика безопасности ⇒ Локальная политика ⇒ Назначение прав пользователя ⇒ Закрепление страниц в памяти" (Control panel ⇒ Administrative tools ⇒ Local security policy ⇒ Local policy ⇒ User right assigment ⇒ Lock pages in memory). Для более детальной информации по этому вопросу смотрите раздел "Права пользователей" в справочной системе по Windows 2000.

Следующие функции реализуют API расширения адресной оболочки Windows (AWE API):

VirtualAlloc - Резервирует диапазон виртуального адресного пространства для использования под AWE (атрибут MEM_PHYSICAL).

AllocateUserPhysicalPages - Выделяет физическую память для использования с AWE.

MapUserPhysicalPages - Проецирует (или сводит на нет) виртуальное пространство AWE на произвольный набор физических страниц, полученных при помощи вызова AllocateUserPhysicalPages.

MapUserPhysicalPagesScatter - Проецирует (или сводит на нет) виртуальное пространство AWE на произвольный набор физических страниц, полученных при помощи вызова AllocateUserPhysicalPages, позволяющей организовать сложное проецирование.

FreeUserPhysicalPages - Освобождает физическую память, которая была выделена под AWE.

Previous page:
AllocateUserPhysicalPages
Top:
DRKB
Next page:
FreeUserPhysicalPages