Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория вычислительных процессов (1).doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
9.39 Mб
Скачать

27.9.12 Лекция 7. Продолжение и изучение виртуальной памяти.

Структуризация виртуального адресного пространства в 64х разрядных системах намного похоже на структуризацию 32х, за некоторыми исключениями. Все виртуальное адресное пространство делится на две части, где первое чуть более 8гб закрыты виртуальными адресами процесса, а остальное 8тб являются памятью ядра ОС. Начиная с win vistа, память ядра в виртуально адресном пространстве, не разбивается на статические регионы под различные нужды(кэш, пул подкачиваемой памяти, пул не подкачивемой памяти, пространства обращения процессов) а стала разбиваться и распределятся динамически, в соответствии с текущими потребностями.

В серверной версии win, используют другую структуризацию:

8FFFFFFF

С0000000

FFFFFFFF

ВАП для Windows AS/Datacenter.

В общем для 32х и 64х разрядных систем является то, что размер виртуальной памяти как правило превышает размер оперативной памяти и соотвественно используется вытеснение не используемых страниц ОП на внешний носитель, при этом происходит проецирование на эти страницы оперативной памяти на соответсвующие страницы виртуальной памяти. При чем как только процесс пытается получить доступ к вытесненым страницам просходит прерывание называемое ошибкой страницы, котроая заставляет ОС загрузить страницу из области подкачки на страницу физической памяти, т.е подкачать. Когда приложение выделяет для себя некоторый объем виртуальной памяти ОС резервирует необходимое место в области подкачки, не проицурая выделенные страницыв оперативную память до первого к ним обращения, это называется подкачка по требованию или чаще всего называется lazy swapping. Размер страницы зависит от процессора. Для микропроцессоров intel x86 размер страницы состовляет 4096 байт, для микропроцессоров Alpha axp 8192 байта. Система всегда выделяет память объемом кратным размеру страницы, в соответсвующем гранулярностью выделения.

Win Api.

Есть большой набор функций позволяющий получить(часто доступо только для пользовательских приложений) информацию о состоянии ВП.

VirtualAlloc – резервирует регион страниц в ВАП.

VirtualAlloc Ex – резервирует регион страниц в ВАП для конкретного процесса.

VirtualFree – освобождает регион страниц внутри ВАП вызываемого процесса.

VirtualFree Ex – освобождает регион страниц внутри ВАП вызываемого процесса для конкретного процесса.

VirtualLock – закрывает указанный регион с указанным размером в ВАП вызываемого процесса и физической памяти.

VirtualProtect – изменяет защиту доступа в регионе страниц вызываемого процесса.

VirtualProtect Ex – изменяет защиту доступа в регионе страниц для конкретного процесса.

VirtualQuery – позволяет использовать информацию о регионе памяти по заданному адресу вызываемого процесса.

VirtualQuery Ex – позволяет использовать информацию о регионе памяти по заданному адресу для указанного процесса.

VirtualUnlock – открывает закрытый участок.