Пейджинг по требованию
![]() | Эта статья включает список литературы , связанную литературу или внешние ссылки , но ее источники остаются неясными, поскольку в ней отсутствуют встроенные цитаты . ( июнь 2009 г. ) |
В компьютерных операционных системах подкачка по требованию (в отличие от упреждающей подкачки ) — это метод управления виртуальной памятью . В системе, использующей подкачку по требованию, операционная система копирует страницу диска в физическую память только тогда, когда делается попытка доступа к ней и эта страница еще не находится в памяти ( т. е . если происходит ошибка страницы ). Отсюда следует, что процесс начинает выполнение, не имея ни одной из своих страниц в физической памяти, и вызывает множество ошибок страниц до тех пор, пока большая часть его рабочего набора страниц не окажется в физической памяти. Это пример техники ленивой загрузки .
Основная концепция
[ редактировать ]Пейджинг по требованию переносит страницы в память только тогда, когда их требует выполняющийся процесс. Это часто называют ленивой загрузкой , поскольку только те страницы, которые требуются процессу, перемещаются из вторичного хранилища в основную память . Сравните это с чистой свопингом, когда вся память процесса переключается из вторичного хранилища в основную, когда процесс запускается или возобновляет выполнение.
Обычно для достижения этого процесса блок управления памятью используется . Блок управления памятью отображает логическую память в физическую . Записи в блоке управления памятью включают бит, который указывает, действительна или недействительна страница. Действительная страница — это та страница, которая в данный момент находится в основной памяти. Недействительная страница — это страница, которая в данный момент находится во вторичной памяти. Когда процесс пытается получить доступ к странице, обычно выполняются следующие шаги:
- Попытка доступа к странице.
- Если страница действительна (в памяти), продолжайте обработку инструкции как обычно.
- Если страница недействительна, возникает ловушка ошибки страницы .
- Проверьте, является ли ссылка на память допустимой ссылкой на место во вторичной памяти. В противном случае процесс завершается ( незаконный доступ к памяти ). В противном случае нам придется перейти на нужную страницу.
- Запланируйте работу диска для чтения нужной страницы в основную память.
- Перезапустите инструкцию, которая была прервана ловушкой операционной системы.
Преимущества
[ редактировать ]Пейджинг по требованию, в отличие от немедленной загрузки всех страниц:
- Загружает только те страницы, которые требуются выполняющемуся процессу.
- Поскольку в основной памяти больше места, можно загрузить больше процессов, что сокращает время переключения контекста , которое требует большого количества ресурсов.
- При запуске программы происходит меньшая задержка загрузки, поскольку из вторичного хранилища осуществляется доступ к меньшему количеству информации и меньше информации переносится в основную память.
- Поскольку основная память стоит дороже, чем вторичная, этот метод помогает значительно снизить стоимость спецификации (BOM), например, в смартфонах. В ОС Symbian была такая функция.
Недостатки
[ редактировать ]- Отдельные программы сталкиваются с дополнительной задержкой при первом доступе к странице.
- Недорогие встроенные системы с низким энергопотреблением могут не иметь блока управления памятью , поддерживающего замену страниц.
- Управление памятью с помощью алгоритмов замены страниц становится немного сложнее.
- Возможные угрозы безопасности, включая уязвимость к атакам по времени ; видеть Персиваль, Колин (13 мая 2005 г.). Кэш пропал ради развлечения и прибыли (PDF) . BSDCan 2005. (в частности, атака на виртуальную память в разделе 2).
- Сбои , которые могут возникнуть из-за повторяющихся ошибок страниц.
См. также
[ редактировать ]
Ссылки
[ редактировать ]- Таненбаум, Эндрю С. Операционные системы: проектирование и реализация (второе издание) . Нью-Джерси: Прентис-Холл, 1997.