Поделиться через


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

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

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

Размер виртуального адресного пространства для 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 /set increaseuserva Megabytes

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

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

 

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