Каждая из страниц виртуального адресного пространства процесса может находиться в одном из следующих состояний, который сведены в таблице:
| Состояние страницы | Описание |
|---|---|
| Свободная | Страница памяти в настоящее время недоступна, но может быть либо зарезервирована, либо передана процессу. |
| Зарезервированная | Страница памяти виртуального адресного пространства процеса зарезервирована для будущего использования. Процесс не имеет доступа к зарезервированной странице памяти, и ей не отвечает физическая память. Зарезервированный страницы бронируют фрагмент виртуального адресного пространства, который становиться недоступным при вызове функций распределения памяти. Процесс может использовать функцию VirtualAlloc для резервирования одной или нескольких страниц своего адресного пространства, а также для того, чтобы в дальнейшем передать этой странице физическую память. Процесс должен использовать функцию VirtualFree для того, чтобы снять резервирование. |
| Переданная процессу | Страница называется переданной процесу, если ей соответствует некоторая страница физической памяти (или на диске). Она может быть защищена от всякого доступа к ней, быть доступной только для чтения, или быть доступной как для чтния, так и для записи. Процесс должен использовать вызов функции VirtualAlloc для того, чтобы передать странице физическую память. Функции GlobalAlloc и LocalAlloc выделяют доступные для чтения/записи переданные процессу страницы. Переданные процессу страницы при помощи вызова VirtualAlloc могут быть возвращены системе путем вызова VirtualFree, который позволяет либо полностью освободить страницу, либо изменить ее состояние на зарезервированное. |
Физическое хранение данных |
Границы выделения памяти![]() |
© Mystic, 2002