Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Рабочий набор процесса — это набор страниц в виртуальном адресном пространстве процесса, который в настоящее время находится в физической памяти. Рабочий набор содержит только выделения памяти, доступные для страниц; Неуправляемые выделения памяти, такие как расширения окна адресов (AWE) или выделения больших страниц не включены в рабочий набор.
Когда процесс ссылается на страницируемую память, которая в настоящее время не находится в рабочем наборе, возникает ошибка страницы . Обработчик ошибок системной страницы пытается устранить ошибку страницы и, если она выполнена успешно, страница добавляется в рабочий набор. (Доступ к AWE или большим выделениям страниц никогда не приводит к сбою страницы, так как эти выделения недоступны для страниц.)
Ошибка жесткой страницы должна быть устранена путем чтения содержимого страницы из резервного хранилища страницы, который является файлом подкачки системы или файлом, сопоставленным с памятью, созданным процессом. обратимой страницы можно устранить без доступа к резервному хранилищу. Ошибка мягкой страницы происходит, когда
- Страница находится в рабочем наборе другого процесса, поэтому она уже находится в памяти.
- Страница находится в состоянии перехода, так как она либо была удалена из рабочих наборов всех процессов, которые использовали страницу, и еще не была перепрофилирована, либо она уже загружена в память в результате операции предварительной загрузки памяти.
- Процесс ссылается на выделенную виртуальную страницу в первый раз (иногда называется неисправность нулевого спроса).
Страницы можно удалить из рабочего набора процессов в результате следующих действий:
- Процесс уменьшает или очищает рабочий набор путем вызова функции SetProcessWorkingSetSize, SetProcessWorkingSetSizeEx или EmptyWorkingSet.
- Процесс вызывает функцию VirtualUnlock в диапазоне памяти, который не заблокирован.
- Процесс распакует сопоставленное представление файла с помощью функции UnmapViewOfFile.
- Диспетчер памяти обрезает страницы из рабочего набора, чтобы создать больше доступной памяти.
- Диспетчер памяти должен удалить страницу из рабочего набора, чтобы освободить место для новой страницы (например, так как рабочий набор имеет максимальный размер).
Если несколько процессов совместно используют страницу, удаление страницы из рабочего набора одного процесса не влияет на другие процессы. После удаления страницы из рабочих наборов всех процессов, которые использовали её, страница становится страницей перехода. Переходные страницы остаются кэшируемыми в ОЗУ, пока страница снова не будет ссылаться на некоторый процесс или перепрофилирована (например, заполнена нулями и присваивается другому процессу). Если страница перехода была изменена с момента последней записи на диск (то есть, если страница "грязна"), страница должна быть записана в его резервное хранилище, прежде чем его можно будет перепрофилировать. Система может начать запись переходных страниц с грязными данными в их резервное хранилище, как только эти страницы становятся доступными.
У каждого процесса есть минимальный и максимальный размер рабочего набора, которые влияют на поведение разбиения виртуальной памяти на страницы. Чтобы получить текущий размер рабочего набора указанного процесса, используйте функцию GetProcessMemoryInfo. Чтобы получить или изменить минимальные и максимальные размеры рабочих наборов, используйте функции GetProcessWorkingSetSizeEx и SetProcessWorkingSetSizeEx.
Интерфейс программирования приложения состояния процесса (PSAPI) предоставляет ряд функций, возвращающих подробные сведения о рабочем наборе процесса. Дополнительные сведения см. в разделе "Сведения о рабочем наборе".