В
Windows каждый процесс имеет свое адресное пространство до 4 Гб памяти (не физическое ОЗУ). Физическая память ограничена системными ресурсами: ОЗУ и дисковым пространством. Windows выделяет приложению 2 Гб памяти, а остальные 2 Гб резервируются для нужд ядра.
Если объем ОЗУ меньше, чем 4 Гб, то Windows использует механизм виртуальной памяти: когда объем ОЗУ будет исчерпан, часть содержимого физической памяти переносится на жесткий диск. Этот механизм называется
подкачкой.
Для каждого процесса ядро поддерживает таблицу страниц – структуру, позволяющую преобразовать виртуальные адреса в физические.
Виртуальная память Windows использует механизм отображения области физической памяти на любую область 32-разрядных адресов для того, чтобы любая программа как бы обладала своим собственным физическим ОЗУ.
Каждая программа имеет собственное виртуальное адресное пространство, которое диспетчер виртуальной памяти преобразует в адреса физического ОЗУ или в файлы на жестком диске.
Физическое и виртуальное (логическое) адресное пространство каждого процесса разделено на страницы – кванты памяти, размер которых зависит от компьютера. Ядро может перемещать страницы памяти в страничный файл на диске и обратно. Когда страница перемещается в физическую память, ядро обновляет таблицу страниц соответствующего процесса. Когда ядру требуется место в физической памяти, оно вытесняет самые старые страницы физической памяти в страничный файл. Все это происходит незаметно для приложения.