Виртуальное адресное пространство (управление памятью)
Виртуальное адресное пространство для процесса — это набор адресов виртуальной памяти, которые он может использовать. Адресное пространство для каждого процесса является частным и не может быть доступ к другим процессам, если они не являются общими.
Виртуальный адрес не представляет фактическое физическое расположение объекта в памяти; Вместо этого система поддерживает таблицу страниц для каждого процесса, которая является внутренней структурой данных, используемой для перевода виртуальных адресов в соответствующие физические адреса. Каждый раз, когда поток ссылается на адрес, система преобразует виртуальный адрес в физический адрес.
Размер виртуального адресного пространства для 32-разрядной Ос Windows составляет 4 гигабайта (ГБ) и разделен на две секции: один для использования процессом и другой, зарезервированный для использования системой. Дополнительные сведения о виртуальном адресном пространстве в 64-разрядной версии Windows см. в статье "Виртуальное адресное пространство" в 64-разрядной версии Windows.
Дополнительные сведения о виртуальной памяти см. в следующих разделах:
- Виртуальное адресное пространство и физическое хранилище
- Рабочий набор
- Состояние страницы
- Область выделенной памяти
- Предотвращение выполнения данных
- Защита памяти
- Ограничения памяти для выпусков Windows
В следующей таблице показан диапазон памяти по умолчанию для каждой секции.
Диапазон памяти | Использование |
---|---|
Низкий 2 ГБ (0x00000000 через 0x7FFFFFFF) | Используется процессом. |
Высокий объем 2 ГБ (0x80000000 до 0xFFFFFFFF) | Используется системой. |
Если включена настройка 4-гигабайта (4GT), диапазон памяти для каждой секции выглядит следующим образом.
Диапазон памяти | Использование |
---|---|
Низкий 3 ГБ (0x00000000 через 0xBFFFFFFF) | Используется процессом. |
Высокий объем 1 ГБ (0xC0000000 через 0xFFFFFFFF) | Используется системой. |
После включения 4GT процесс, имеющий флаг IMAGE_FILE_LARGE_ADDRESS_AWARE , установленный в заголовке образа, будет иметь доступ к дополнительному 1 ГБ памяти выше низкого уровня 2 ГБ.
Следующая команда позволяет задать параметр начальной записи, который настраивает размер секции, доступной для использования процессом, в значение от 2048 (2 ГБ) до 3072 (3 ГБ):
BCDEdit /set increaseuserva Megabytes
После установки параметра начальной записи диапазон памяти для каждой секции выглядит следующим образом.
Диапазон памяти | Использование |
---|---|
Низкий (0x00000000 через мегабайты) | Используется процессом. |
Высокий (Мегабайт+1–0xFFFFFFFF) | Используется системой. |
Windows Server 2003: установите параметр /USERVA в boot.ini значение от 2048 до 3072.