В современных ОС вы не выделяете ОЗУ 1 .Вы (Ваш процесс) выделяете в своем собственном адресное пространство.То, как ОС создает резервные копии (когда это необходимо) с помощью физической оперативной памяти, в значительной степени прозрачно.
И то, что вы сделали в вашем адресном пространстве, совершенно не имеет отношения к другим процессам.
См. Также: провокационно названный Раймонд Чен Это глупое адресное пространство 2
Может ли система действительно переместить неиспользуемую оперативную память на диск?
Это не вопрос «используемой» или «неиспользованной» оперативной памяти.Когда OS 3 заканчивается физическими страницами, он будет определять страницы, которые нужно удалить, используя некоторую подходящую стратегию (например, Least недавно использованный - это простой способ разобраться).Затем он должен решить, что делать со страницей.
Если ему повезет, выбранная страница либо подкреплена изображением файла (например, его частью исполняемого файла), либо не изменилась с момента последней записи на диск.Если это так, он может удалить страницу без каких-либо дополнительных операций ввода-вывода.Если не повезет, он запланирует ввод-вывод, а затем продолжит поиск страниц для освобождения.
Он делает это все время 4 .И это также делает другие вещи, такие как использование неиспользуемых страниц в качестве кеша файловой системы.
Единственный раз, когда у вас возникает реальная проблема, это когда общая сумма всех страниц, которые активно отработано (сумма рабочего набора каждого процесса) больше, чем количество страниц оперативной памяти, которые обычно доступны процессам.В этот момент у вас возникнут проблемы, поскольку система постоянно записывает страницы на диск и извлекает их.Но на этом этапе GC почти наверняка не поможет, поскольку мы знаем , что все эти страницы активно работают с ними - все они содержат достижимые объекты.
1 Есть способы запросить адресное пространство, которое всегда поддерживается реальной ОЗУ и никогда не меняется местами, но это не то, что обычно делается, и вам нужно сознательно изо всех сил стараться, чтобы это произошло.
2 Я знаю, что это риф на политическую цитату, но это не значит, что все читатели здесь обязательно поймут это, и некоторые люди в прошлом чувствовали, что я рекомендую эту статью на самом деле я буквально называя их глупыми.
3 Я пытаюсь быть здесь общим, но понимаю, что я могу отклониться от того, что "любая" ОС сделает с тем, что конкретно делает Windowsздесь.
4 PDC10: раскрыты тайны управления памятью Windows: часть вторая