Вы на самом деле задаете два вопроса здесь.
- Какова политика подкачки в отношении таблиц страниц.
- Какова политика подкачки для страниц с возможностью записи данных (т. Е. Виртуальная память с разрешениями R / W).
Сначала я немного поправлю тебя.
Учитывая тот факт, что нижняя область 2 ГБ зарезервирована для окон, это
имеет смысл, что окна будут хранить таблицы страниц для всех процессов на
система
Если быть точным, то верхний 2 ГБ, которые зарезервированы для окон, точнее - могут быть доступны в режиме ядра только ядром и драйверами Windows.
Теперь это может вас удивить, но память ядра тоже может быть разрешена! Так что технически совершенно не важно, какая часть 32-битного адресного пространства видна в режиме пользователя / ядра. Это не относится к подкачке.
Еще одно исправление: виртуальная память может находиться в физической памяти и сохраняться в файле подкачки. Существует распространенное мнение, что ОС освобождает физическое хранилище, сохраняя страницы по запросу в файле подкачки. Неправильно.
На самом деле Windows сохраняет страницы памяти в файл подкачки до того, как они должны быть освобождены. Фактически он сбрасывает все страницы памяти в файл подкачки (кроме тех, которые связаны с другими файлами, такими как сопоставленные разделы) в фоновом режиме. Для этого есть две причины:
- При высокой нагрузке ОС быстрее освобождает страницы памяти (так как они уже сохранены)
- В режиме ядра подкачка не всегда возможна . Драйверы, которые работают с высоким IRQL (т.е. обслуживают наиболее критичные ко времени события), могут не иметь доступа к физическим драйверам хранилища, поэтому подкачка страниц невозможна.
Итак, ответы на ваши вопросы:
- Не знаю наверняка, но это зависит от деталей реализации ОС. Я не вижу причин, по которым таблица страниц для каждого процесса не может быть выгружена. Это необходимо во время переключения контекста и изменения виртуальной памяти процесса. Обе ситуации не относятся к критичным по времени событиям.
- Определенно страницы памяти «записываемых данных» сохраняются в файле подкачки. Они удалены из физической памяти? Только по требованию, во время загрузки системы, в порядке наименьшего использования.