Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Во первых система находит процессы, максимально превысившие свой лимит на размер рабочего набора. Для этих процессов запускается процесс «старения» страниц (aging), для определения какие из страниц меньше всего используются.Вот это ново для меня. Я считал, что все страницы равноправны и у них всегда считается время последнего доступа, а оказывается это механизм для самых жадных.
Standby список имеет 8 уровней приоритета (которыми до некоторой степени может управлять как само приложение, так и Superfetch, осуществляющий динамическое управление приоритетами страниц на основе анализа реального использования файлов/страниц), если не остается вообще никакого выбора — винда первым делом выбрасывает кеш самого низкого приоритета.Здесь я еще раз хотел бы подчеркнуть, что данный механизм появился только в висте. До этого винда спокойно выкидывала данные приложения, оставляя в памяти кеш дисковой системы.
typedef enum _IO_PRIORITY_HINT {
IoPriorityVeryLow = 0,
IoPriorityLow = 1,
IoPriorityNormal = 2,
IoPriorityHigh = 3,
IoPriorityCritical = 4,
MaxIoPriorityTypes = 5
} IO_PRIORITY_HINT;

Если приложение потребует свои данные обратно — обработчик page fault-а просто найдет соответствующую страницу в standby.
Да, но диск все равно оказывается перегружен постоянной записью в своп. Это создает проблемы с доступом к диску.
Here be dragons: Управление памятью в Windows как оно есть [2/3]