Виртуальная память
Предположим, что ваша программа (например, Oracle) выделяет 100 МБ памяти при запуске - размер вашей виртуальной машины увеличивается на 100 МБ, хотя никаких дополнительных физических / дисковых страниц не трогается. то есть ВМ - это не что иное, как ведение учета в памяти.
Общая доступная физическая память + память файла подкачки - это максимальная память, которую ВСЕ процессы в системе могут выделить. Система делает это так, что в любой момент времени она может гарантировать, что, если процессы фактически начнут потреблять всю память, выделенную ей, ОС может предоставить необходимые физические страницы.
Частная память
Если программа копирует 10 МБ данных в эти 100 МБ, ОС обнаруживает, что процессу не было выделено ни одной страницы, соответствующей этим адресам, и назначает физические страницы объемом 10 МБ в личную память вашего процесса. (Этот процесс называется ошибкой страницы)
Рабочий набор
Определение: рабочий набор - это набор страниц памяти, которые были недавно затронуты программой.
На этом этапе эти 10 страниц добавляются к рабочему набору процесса. Если затем процесс переходит и копирует эти данные в еще один ранее выделенный кэш размером 10 МБ, все остальное остается прежним, но рабочий набор снова увеличивается на 10 МБ, если эти старые страницы отсутствуют в рабочем наборе. Но если те страницы, где уже в рабочем наборе, то все хорошо и рабочий набор программ остается прежним.
Поведение рабочего набора
Представьте, что ваш процесс больше никогда не касается первых 10 страниц, и в этом случае эти страницы обрезаются из рабочего набора вашего процесса и, возможно, отправляются в файл подкачки, чтобы ОС могла вводить другие страницы, которые используются чаще. Однако если нет срочных низких требований к памяти, то этот процесс подкачки выполнять не нужно, и ОС может действовать так, как будто она богата памятью. В этом случае рабочий набор просто позволяет этим страницам оставаться.
Когда работает Набор> Виртуальная память
Теперь представьте, что та же самая программа освобождает все 100 Мб памяти. Размер виртуальной машины программ сразу уменьшается на 100 МБ (помните, что виртуальная машина = учет всех запросов на выделение памяти)
Это не должно влиять на рабочий набор, поскольку это не меняет того факта, что эти 10 Мбайт страниц недавно были затронуты. Поэтому эти страницы все еще остаются в рабочем наборе процесса, хотя ОС может вернуть их, когда это потребуется.
Это фактически сделает ВМ <рабочим набором. Однако это будет исправлено, если вы запустите другой процесс, который потребляет больше памяти, а страницы рабочего набора возвращаются ОС. </p>