Метод управления виртуальной памятью
В операционных системах компьютеров подкачка по требованию (в отличие от упреждающей подкачки ) является методом управления виртуальной памятью . В системе, использующей подкачку по требованию, операционная система копирует страницу диска в физическую память только тогда, когда делается попытка доступа к ней, и эта страница еще не находится в памяти ( т. е . если происходит ошибка страницы ). Из этого следует, что процесс начинает выполнение, не имея ни одной из своих страниц в физической памяти, и вызывает множество ошибок страниц, пока большая часть его рабочего набора страниц не будет представлена в физической памяти. Это пример техники ленивой загрузки .
Основная концепция
Подкачка по требованию переносит страницы в память только тогда, когда их требует выполняющийся процесс. Это часто называют ленивой загрузкой , поскольку только те страницы, которые требуются процессу, выгружаются из вторичного хранилища в основную память . Сравните это с чистой подкачкой, когда вся память для процесса выгружается из вторичного хранилища в основную память, когда процесс запускается или возобновляет выполнение.
Обычно для достижения этого процесса используется блок управления памятью . Блок управления памятью отображает логическую память в физическую память . Записи в блоке управления памятью включают бит, который указывает, является ли страница допустимой или недопустимой. Допустимая страница — это та, которая в данный момент находится в основной памяти. Недопустимая страница — это та, которая в данный момент находится во вторичной памяти. Когда процесс пытается получить доступ к странице, обычно выполняются следующие шаги:
- Попытка доступа к странице.
- Если страница действительна (находится в памяти), то продолжайте обработку инструкции в обычном режиме.
- Если страница недействительна, возникает ошибка отсутствия страницы .
- Проверьте, является ли ссылка на память допустимой ссылкой на местоположение во вторичной памяти. Если нет, процесс завершается ( незаконный доступ к памяти ). В противном случае мы должны подгрузить требуемую страницу.
- Запланируйте операцию с диском для считывания нужной страницы в основную память.
- Перезапустите инструкцию, прерванную ловушкой операционной системы.
Преимущества
Пейджинг по требованию, в отличие от немедленной загрузки всех страниц:
- Загружает только те страницы, которые требуются исполняемому процессу.
- Поскольку в основной памяти больше места, можно загрузить больше процессов, что сокращает время переключения контекста , на которое расходуется большой объем ресурсов.
- При запуске программы задержка загрузки меньше, поскольку меньший объем информации извлекается из вторичного хранилища и меньше информации переносится в основную память.
- Так как основная память стоит дороже, чем вторичная, эта техника помогает значительно снизить стоимость спецификации материалов (BOM) в смартфонах, например. Symbian OS имела эту функцию.
Недостатки
- Отдельные программы сталкиваются с дополнительной задержкой при первом доступе к странице.
- Недорогие и маломощные встраиваемые системы могут не иметь блока управления памятью , поддерживающего замену страниц.
- Управление памятью с помощью алгоритмов замены страниц становится немного сложнее.
- Возможные риски безопасности, включая уязвимость к атакам по времени ; см. Percival, Colin (2005-05-13). Кэш отсутствует ради забавы и прибыли (PDF) . BSDCan 2005.(в частности, атака на виртуальную память в разделе 2).
- Перебои в работе , которые могут возникнуть из-за повторяющихся сбоев страниц.
Смотрите также
В Wikisource есть оригинальный текст, относящийся к этой статье:
Пейджинговая игра
Ссылки
- Таненбаум, Эндрю С. Операционные системы: проектирование и реализация (второе издание) . Нью-Джерси: Prentice-Hall 1997.