Состояние страницы
Страницы виртуального адресного пространства процесса могут находиться в одном из следующих состояний.
Состояние | Описание |
---|---|
Free | Страница не зафиксирована и не зарезервирована. Страница недоступна для процесса. Он доступен для резервирования, фиксации или одновременного резервирования и фиксации. Попытка выполнить чтение с бесплатной страницы или запись на нее приводит к исключению нарушения доступа. Процесс может использовать функцию VirtualFree или VirtualFreeEx для освобождения зарезервированных или зафиксированных страниц своего адресного пространства, возвращая их в свободное состояние. |
Зарезервировано | Страница зарезервирована для использования в будущем. Диапазон адресов не может использоваться другими функциями выделения. Страница недоступна и не имеет связанного с ней физического хранилища. Он доступен для фиксации. Процесс может использовать функцию VirtualAlloc или VirtualAllocEx для резервирования страниц своего адресного пространства, а затем для фиксации зарезервированных страниц. Он может использовать VirtualFree или VirtualFreeEx для списания зафиксированных страниц и возврата их в зарезервированное состояние. |
Фиксация | Расходы на память были выделены из общего размера ОЗУ и файлов подкачки на диске. Страница доступна, а доступ контролируется одной из констант защиты памяти. Система инициализирует и загружает каждую зафиксированную страницу в физическую память только во время первой попытки чтения или записи на нее. После завершения процесса система освобождает хранилище для зафиксированных страниц. Процесс может использовать VirtualAlloc или VirtualAllocEx для фиксации физических страниц из зарезервированного региона. Они также могут одновременно резервировать и фиксировать страницы. Функции GlobalAlloc и LocalAlloc выделяют зафиксированные страницы с доступом на чтение и запись. |