Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
26
Добавлен:
02.05.2014
Размер:
285.18 Кб
Скачать

1. Выталкивание случайной страницы.

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

2. Выталкивание первой пришедшей страницы.

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

По своей эффективности данный алгоритм близок к первому алгоритму.

3. Выталкивание реже всего используемой страницы.

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

Бит обращения сбрасывается, если при проверке он оказался установленным.

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

4. Выталкивание дольше всех не использовавшейся страницы.

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

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

5.3.4.4. Стратегии выталкивания с переменным распределением

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

Два вида локальности существует.

  1. Временная локальность. К ячейкам, к которым недавно было обращение, с большой вероятностью будут обращения в ближайшем будущем.

  2. Пространственная локальность. В случае обращения к некоторой ячейке, с большой вероятностью можно ожидать обращения к соседним ячейкам.

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

Среди реализуемых методов, использующих данный вывод, рассмотрим два алгоритма:

  1. Алгоритм, поддерживающий постоянной частоту прерываний по отсутствию страницы;

  2. Алгоритм рабочего множества (working set).

Первый алгоритм

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

Если частота прерываний больше Fg, то это означает, что памяти маловато и процессу предоставляется память, чтобы частота стала равной Fg.

Если частота прерываний меньше Fg, то это означает, что у процесса можно отнять некоторую часть памяти.

Алгоритм рабочего множества

Под рабочим множеством понимается набор страниц, к которым процесс обращается наиболее часто.

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

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

Сложность алгоритма определяется сложностью идентификации рабочего множества.

Практически рабочим множеством называют набор страниц, к которым процесс обращался в интервале времени W. Величину W называют окном рабочего множества. Т.е. размер рабочего множества зависит от размера окна.

Выбор размера окна сильно влияет на характеристики алгоритма.

Во время выполнения программы размер рабочего множества меняется в зависимости от алгоритма. Это изменение является основанием для изменения размера выделяемой процессу памяти.

Ниже приводится иллюстрация динамики изменения рабочего множества в процессе выполнения программы.

Кривые подъема связаны с загрузкой новых страниц при переходе от одного алгоритма программы к другому.

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

Интервалы без изменений количества загруженных страниц иллюстрируют работу программы внутри текущего алгоритма.

Соседние файлы в папке Шпоры по СПО