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

Оптимальная стратегия

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

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

Дисциплина fifo – выталкивание наиболее старой страницы

Дисциплина FIFO (First Input – First Output) предусматривает выталкивание из памяти страницы, которая находилась там дольше других. При этом ожидается, что будет достигнуто приближение к оптимальной стратегии, поскольку страница, которая долго была в памяти, скорее всего уже использована и больше не нужна.

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

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

К важным преимуществам дисциплины FIFO относится простота реализации. Это самая простая дисциплина из всех известных квазиоптимальных дисциплин.

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

Освобождаемые страничные кадры удаляются из конца списка. При этом список будет автоматически отсортирован по времени нахождения страницы в ОЗУ.

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

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

Дисциплина lru – выталкивание дольше всего неиспользуемой страницы

Дисциплина LRU (Least Recently Used) предполагает первоочередное выталкивание из первичной памяти той страницы, которая не использовалась дольше других.

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

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

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

По причине сложности реализации дисциплина LRU редко применяется в современных операционных системах.