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

Дисциплина lfu – выталкивание страницы с наименьшей частотой обращений

Дисциплина LFU (Least Frequently Used) предполагает первоочередное выталкивание из ОЗУ той страницы, к которой за некоторое фиксированное время наблюдения было сделано меньше всего обращений, т.е. страницы с минимальной частотой обращений к ней.

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

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

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

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

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

Дисциплина nru – выталкивание страницы, не используемой в последнее время

Дисциплина замещения NRU (Non Recently Used) предполагает первоочередное выталкивание из ОЗУ страницы, к которой не было зафиксировано обращений за некоторое время наблюдения, а при наличии нескольких таких страниц в первую очередь выталкиваются те из них, которые не модифицировались после загрузки в ОЗУ.

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

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

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

Таблица 1.

категория

флаг модификации страницы

флаг обращения к странице

1

0

0

2

1

0

3

0

1

4

1

1

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

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

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

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

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

Упрощенный вариант не учитывает модификации страниц. Для учета же обращений к страницам флаг обращения управляется программно.

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

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

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

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