Как вы знаете, файл подкачки используется в качестве буфера, если ваша физическая память заканчивается.

Но если только HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\ Управление памятью \ ClearPageFileAtShutdown = 1 файл страницы не очищается после завершения работы.

Когда система загружается снова, как Windows узнает, что она не должна обмениваться данными из предыдущей загрузки в ОЗУ? Допустим, отключение питания, система должна знать, когда это "новая загрузка"?

Файл страницы удаляется и воссоздается при каждой загрузке, что потребует перезаписи части диска, на которой хранится файл страницы, чтобы обеспечить его пустоту?

Или это какая-то структура данных внутри файла подкачки, которая гарантирует, что Windows знает, что принадлежит текущему сеансу загрузки?

1 ответ1

4

Вы можете рассматривать файл подкачки как расширение памяти, поэтому можно применять те же механизмы, что и для памяти.

Каждая страница в физической и виртуальной памяти либо используется, либо нет. Точно так же, как вы не ожидаете, что ОС будет ожидать, что неиспользуемая страница в физической памяти будет содержать что-то значимое, вы также не ожидаете, что она будет рассматривать страницу в виртуальной памяти (файл страницы), которая содержит что-то полезное и вызывает "обмен".

Во время холодной загрузки вся память, как реальная, так и виртуальная, считается пустой. Таким образом, страница из файла подкачки не будет заменена, если в этом сеансе она уже не была заменена. Это функция менеджера памяти, чтобы знать, какие страницы содержат данные и какие процессы владеют ими.

Назначение ключа ClearPageFileAtShutdown не состоит в том, чтобы убедиться, что файл подкачки пуст, чтобы он случайно не использовался, когда этого не должно быть. Это делается для того, чтобы файл подкачки обнулялся, чтобы в случае попадания машины в чужие руки файл подкачки не мог быть проверен на наличие конфиденциальной информации. Это мера безопасности.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .