Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700363.doc
Скачиваний:
16
Добавлен:
01.05.2022
Размер:
3.69 Mб
Скачать

Реализация выборки по требованию

Реализация выборки по требованию в системе виртуальной памяти основана на механизме прерываний. Как уже было рассмотрено, в каждой записи таблицы страниц предусмотрен специальный флаг доступности. Флаг доступности установлен, если данная виртуальная страница представлена в ОЗУ, и сброшен в противном случае.

Аппаратура процессора проверяет флаг доступности в ходе трансляции виртуального адреса в физический. Если флаг доступности у выбранной страницы оказался сброшен, то автоматически вырабатывается прерывание по отсутствию страницы и управление передается обработчику прерывания в составе операционной системы, который:

  • определяет, в каком именно процессе, и при обращении к какой именно странице памяти возникло прерывание по отсутствию страницы;

  • определяет местоположение данных отсутствующей в ОЗУ станицы на диске и формирует запрос к дисковому накопителю на считывание блока данных;

  • переводит процесс, вызвавший прерывание, в заблокированное состояние и передает управление планировщику для выбора на исполнение другого процесса.

Завершив операцию считывания данных, контроллер дискового накопителя генерирует прерывание по завершению операции ввода-вывода, которое снова поступает на обработку операционной системе. Обработчик прерывания определяет процесс, в интересах которого выполнялась транзакция данных, корректирует соответствующую запись в его таблице отображения страниц, и переводит процесс в состояние готовности.

Теперь, когда этот процесс будет выбран на исполнение, он продолжит работу с команды, вызвавшей ранее прерывание по отсутствию страницы, но теперь данные этой страницы размещены в ОЗУ, и программа будет нормально выполняться.

Размещение в системе виртуальной памяти

При использовании страничной организации виртуальной памяти, реализация стратегии размещения становится тривиальной. Так как все страничные кадры имеют одинаковый размер, стратегия первого подходящего оказывается наилучшей.

Если в какой-то момент в ОЗУ не оказывается свободного страничного кадра, и выполнить размещение новых данных становится невозможным, то необходимо запустить алгоритм замещения, который выгрузит на диск один или несколько страничных кадров, освободив в ОЗУ место для размещения новых данных.

Замещение в системе виртуальной памяти

Алгоритм замещения страниц является одним из ключевых компонентов в системе управления виртуальной памятью, поскольку оказывает существенное влияние на производительность всей вычислительной системы в целом.

Рассмотрим стратегии и наиболее известные дисциплины замещения, предложенные в разное время для работы в системе виртуальной памяти.

Стратегия выталкивания случайной страницы

Поскольку в распоряжении алгоритма замещения достоверной информации об адресах будущих обращений к памяти обычно не имеется, была предложена стратегия выталкивания случайной страницы.

Дисциплина, реализующая эту стратегию, равновероятно выбирает для замещения любой из страничных кадров, представленных в ОЗУ. Поскольку при этом для замещения могут быть выбраны активно используемые страничные кадры, дисциплина замещения случайной страницы должна реализовываться с использованием буферизации, которая позволит быстро исправить ошибочное решение.

При этом реализуется хорошо известный в теории оптимизации алгоритм случайного поиска, который в данном случае выполняет поиск неиспользуемых страничных кадров. Выбирая случайный страничный кадр, алгоритм замещения выдвигает гипотезу об отсутствии в ближайшем будущем обращений к нему, и эта гипотеза проверяется в ходе дальнейшей работы системы. Если к странице произошло обращение, то гипотеза была ошибочной. Ошибочные гипотезы отклоняются с минимальными накладными расходами за счет использования буферизации замещения, в то время как «угаданные» страницы после выдержки в буфере замещения будут вытеснены из ОЗУ.

Таким образом, стратегия выталкивания случайной страницы легко реализуется и может с успехом применяться в случаях, когда нет возможности сделать более обоснованные предположения о выходе тех или иных страничных кадров из рабочих наборов исполняющихся процессов. Однако, данная стратегия не обеспечивает достижения предельных характеристик производительности и редко используется на практике.