Виртуальное адресное пространство (управление памятью)

Виртуальное адресное пространство для процесса — это набор адресов виртуальной памяти, которые он может использовать. Адресное пространство для каждого процесса является частным и не может быть доступно другим процессам, если оно не является общим.

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

Виртуальное адресное пространство для 32-разрядной версии Windows составляет 4 гигабайта (ГБ) и разделено на две секции: одну для использования процессом, а другую — для использования системой. Дополнительные сведения о виртуальном адресном пространстве в 64-разрядной версии Windows см. в статье Виртуальное адресное пространство в 64-разрядной версии Windows.

Дополнительные сведения о виртуальной памяти см. в следующих разделах:

Виртуальное адресное пространство по умолчанию для 32-разрядной версии Windows

В следующей таблице показан диапазон памяти по умолчанию для каждой секции.

Диапазон памяти Использование
Низкий объем 2 ГБ (0x00000000 по 0x7FFFFFFF) Используется процессом.
Высокая емкость 2 ГБ (0x80000000 до 0xFFFFFFFF) Используется системой.

 

Виртуальное адресное пространство для 32-разрядной версии Windows с 4GT

Если включена настройка 4 гигабайта (4GT), диапазон памяти для каждой секции будет следующим.

Диапазон памяти Использование
Низкий объем 3 ГБ (0x00000000 до 0xBFFFFFFF) Используется процессом.
Высокая емкость 1 ГБ (0xC0000000–0xFFFFFFFF) Используется системой.

 

После включения 4GT процесс с флагом IMAGE_FILE_LARGE_ADDRESS_AWARE , установленным в заголовке образа, получит доступ к дополнительным 1 ГБ памяти, превышающим 2 ГБ.

Настройка виртуального адресного пространства для 32-разрядной версии Windows

Можно использовать следующую команду, чтобы задать параметр записи загрузки, который настраивает размер секции, доступной для использования процессом, на значение от 2048 (2 ГБ) до 3072 (3 ГБ):

BCDEdit /setincreaseuservaMegabytes

После установки параметра записи загрузки диапазон памяти для каждой секции выглядит следующим образом.

Диапазон памяти Использование
Низкий (0x00000000 по мегабайтам) Используется процессом.
Высокий (мегабайты от 1 до 0xFFFFFFFF) Используется системой.

 

Windows Server 2003: Присвойте параметру /USERVA в boot.ini значение в диапазоне от 2048 до 3072.