Введение

Метод управления виртуальной памятью

В компьютерных операционных системах страничная подкачка по требованию (в отличие от предварительной страничной подкачки) является методом управления виртуальной памятью. В системе, использующей страничную подкачку по требованию, операционная система копирует страницу с диска в физическую память только при попытке доступа к ней, если этой страницы еще нет в памяти (то есть, при возникновении ошибки страницы). Следовательно, процесс начинает выполнение без каких-либо страниц в физической памяти и вызывает множество ошибок страниц, пока большая часть его рабочего набора страниц не будет присутствовать в физической памяти. Это пример техники ленивой загрузки.

Основная концепция

Страничная организация по требованию подгружает страницы в память только тогда, когда они необходимы выполняющемуся процессу. Это часто называют "ленивой загрузкой", так как из вторичной памяти в основную переносятся только те страницы, которые запрошены процессом. Это отличается от прямой подкачки, когда вся память, выделенная процессу, переносится из вторичной памяти в основную при запуске или возобновлении выполнения процесса. Как правило, для реализации этого механизма используется блок управления памятью. Блок управления памятью отображает логическую память в физическую. Записи в блоке управления памятью содержат бит, указывающий, является ли страница действительной или недействительной. Действительная страница – это страница, которая в данный момент находится в основной памяти. Недействительная страница – это страница, которая в данный момент находится во вторичной памяти. Когда процесс пытается обратиться к странице, обычно выполняются следующие действия:
Предпринимается попытка доступа к странице. Если страница действительна (находится в памяти), обработка инструкции продолжается как обычно. Если страница недействительна, возникает исключение "ошибка страницы". Проверяется, является ли обращение к памяти допустимым обращением к местоположению во вторичной памяти. Если нет, процесс завершается (недопустимый доступ к памяти). В противном случае необходимо подгрузить требуемую страницу. Планируется операция диска для чтения необходимой страницы в основную память. Перезапускается инструкция, прерванная исключением операционной системы.

Недостатки

Отдельные программы испытывают дополнительную задержку при первом обращении к странице. Встраиваемые системы с низкой стоимостью и энергопотреблением могут не иметь блока управления памятью, поддерживающего подкачку страниц. Управление памятью с алгоритмами подкачки страниц становится несколько сложнее. Возможны риски для безопасности, включая уязвимость к атакам по времени; см. (в частности, атаку на виртуальную память в разделе 2). Также возможно возникновение трешинга из-за повторяющихся отказов страниц.