Есть несколько преимуществ использования виртуальной памяти на компьютерах, способных поддерживать эту возможность должным образом. Виртуальная память позволяет запускать большие программы на машинах с конфигурацией оперативной памяти, которая меньше, чем размер программы. На машинах с умеренным количеством памяти она дает возможность большему количеству программ постоянно находиться в основной памяти для конкуренции за процессорное время, поскольку программам не нужно полностью находиться в оперативной памяти. Когда программы в течение некоторого времени используют секции своего пространства программы или данных, оставляя другие секции неиспользующимися, последние могут не присутствовать в основной памяти. Использование виртуальной памяти дает также программам возможность запускаться быстрее, поскольку им обычно требуется загрузить лишь небольшую секцию до начала обработки аргументов и определения того, какие действия следует предпринять. Другие части программ при отдельных запусках могут вообще не понадобиться. В ходе работы программы дополнительные секции пространства ее кода и данных могут подкачиваться по требованию (подкачка по требованию). Наконец, есть множество алгоритмов, которые легче программировать с использованием разреженных участков большого адресного пространства, чем при помощи тщательной упаковки структур данных в небольшие области. Такие методики слишком дороги для использования без виртуальной памяти, но они могут работать быстрее, когда эта возможность доступна, без использования чрезмерного количества физической памяти.
С другой стороны, использование виртуальной памяти может снизить производительность. Эффективнее полностью загрузить всю программу разом, чем загружать ее в небольшие секции по требованию. Для каждой операции имеется конечная стоимость, включающая сохранение и восстановление состояния и определение того, какая страница должна быть загружена, поэтому некоторые системы используют подкачку по требованию лишь для тех программ, которые превышают некоторый минимальный размер.
- 19/10/2010 09:38 - Пейджер устройств
- 18/10/2010 22:14 - Управление памятью ядра
- 18/10/2010 03:16 - Пейджер vnode
- 17/10/2010 03:20 - Интерфейс пейджера
- 15/10/2010 01:00 - Разделяемое отображение
- 12/10/2010 18:29 - Модель mmap
- 11/10/2010 11:02 - Разделяемая память
- 11/10/2010 00:44 - Объекты к страницам
- 11/10/2010 00:19 - Подкачка процессов
- 10/10/2010 14:23 - Объекты