Тут не в моем согласии дело. Просто так обстоят дела на самом деле.helg wrote:Я рад, что вы согласны: одному процессу действительно больше, чем есть физической памяти, давать смысла нет, тем более в многопользовательской. Всем процессам скопом в многопользовательской системе, конечно, очень полезно иметь возможность пользовать больше памяти, чем установлено в системе.zVlad wrote:Совершенно верно. Системы с виртуальной памятью больше реальной только и имеют смысл для многопользовательских применений.helg wrote:Виртуальная адресация памяти нужна для защиты процессов друг от друга, и для многопользовательской машины штука полезная. А вот с возможностью для одного процесса пользовать больше памяти, чем физически есть в системе, можно разве что затормозить всю систему в ноль и убить внешние носители.zVlad wrote:oткрывает что никакой "современной полностью виртуальной памаыти" там не было. Была виртуальная адресация памяти и только. Иначе говоря размер виртуальной памяти совпадал с размером реальной памяти.
Пользовательская программа может запросить много памяти, но использовать лишь часть ее. В системах с виртуальной памятью (в современном, общепринятом понимании) это не вызывает проблем поскольку страницы виртуальной памяти материализуются не в момент запроса а в момент актуального обрашения к ним. Поэтому в z/OS параметр REGION, который изначально имел смысл величины необходимой для программы памяти может быть закодирован как REGION=0M (или 0K, 0G и т.п.) что на деле означает дать столько памяти сколько понадобится. Такая возможность естественно стала доступной с имплементацией виртуальной памяти.
Есть еще параметр "рабочий набор", или "Work Set". Это размер памяти реально использованной за некий период времени до текущего момента. Используется планировщиком для оценки количества процессов которое можно позволить диспетчировать на CPU не вызывая излишнего страничного обмена. Параметр динамичный и для одного и того выполнения программы (процесса) может быть разным в разное время.