Класс многоуровневых алгоритмов замещения.

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

Наиболее простой по реализации алгоритм РПРУ эффективен только в части быстрого обновления ОП, он не выделяет в списке Bt страницы рабочего тела, обращения к которым происходит чаще, чем к остальным страницам. Алгоритм НДИ также позволяет быстро обновить содержимое ОП. В отличие от РПРУ он изменяет список Bt при обращении к страницам, находящимся в ОП, и при определенных условиях позволяет сохранить в ОП страницы рабочего тела. Однако при НДИ последовательность одиночных обращений достаточной длины к страницам, находящимся в ВП, вытеснит из ОП все страницы рабочего тела. Поскольку только что введенная в ОП страница ставится на первую позицию в списке Bt НДИ, то даже несколько одноразовых обращений к страницам из ВП может привести к вытеснению такого же числа страниц рабочего тела. Аналогичным недостатком обладает алгоритм РК (Рабочий Комплект).

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

Пусть упорядоченный список страниц, определяющий состояние ОП в момент t имеет вид , где mt - объем ОП, отводимый программе в момент t. Для определения алгоритма замещения необходимо указать правила преобразования Bt в Bt+1. Многоуровневый алгоритм замещения из класса в общем случае определяет позицию страницы xt+1 в списке Bt+1 с помощью h приоритетных подмножеств (списков) M1,M2,…,Mh, которые не пересекаются и .

Если страница xt+1 отсутствует в ОП, то ей (при вводе в ОП) ставится в соответствие первая позиция в списке Mh, если же страница xt+1 находилась в ОП и имела позицию в подмножестве , то этой странице ставится в соответствие первая позиция в списке более высокого приоритета Mi-1. Подмножества M1,M2,…,Mh задают в общем случае несколько уровней позиций страниц в списках Bt, определяющих состояние ОП. Отсюда и название алгоритмов – многоуровневые.

Для включения в класс алгоритмов замещения типа алгоритма РК вводятся параметры Ti, i=1,2,…,h, определяющие максимально допустимое время хранения (в пределах активности процесса) страницы в ОП без обращения к ней при условии, что ее позиция содержится в списке Мi , i=1,2,…,h, и параметры , определяющие максимальное число элементов в множествах Mi.

Пусть заданы правила образования подмножества и пусть Bt= (M1,M2,…,Mh) – состояние ОП в момент t. Если в момент t+1 произошло обращение к странице xt+1, то новое состояние ОП при алгоритме определяется посредством следующих шагов:

Шаг 1. Из каждого множества удаляются те страницы, к которым не происходили обращения в течение времени большего Tr от момента обращения к xt+1.

Шаг 2. Оставшиеся элементы Mr в множествах перенумеровываются таким образом, чтобы получившееся после первого шага 1 состояние ОП Bt' имело вид:

Bt'= (M1',M2',…,Mh'),

где Mr', r=1,2,…,h приведено к виду:

Mr'= (ir1,ir2,…,irm),

причем некоторое множество Mr' может быть пустым.

Шаг 3. Новое состояние ОП B't+1 отличается от B't :

· Только множеством Mh', если (случай 1);

· Только множеством Mr', если и , причем (случай 2);

· Только множествами Mr-1' и Mr', , если , (случай 3).

Обозначим через время, прошедшее с момента последнего обращения к странице , и зададим h целых чисел l1,l2,…,lh и h чисел , где , смысл которых разъясняется ниже. Тогда, если имеет место случай 1, то Mh' преобразуется в:

Если имеет место случай 2, то Mr' преобразуется в:

Если имеет место случай 3, то Mr-1' преобразуется в

а Mr' преобразуется в:

Класс χ содержит целый ряд алгоритмов замещения, представляющих теоретический и практический интерес. При h=1 и имеет место модифицированный алгоритм РК, который при превращается в алгоритм РК. Параметр позволяет ограничить объем ОП, отводимый программе. Чем меньше , тем меньше страниц ОП будет занимать программа в худшем случае, когда к каждой из своих страниц она обращается по 1 разу. Аналогично, в общем случае, выбирая параметр можно регулировать размеры списков Mi, не давая им чрезмерно увеличиться.

Полагая и получаем класс алгоритмов замещения , определяемых h+1 параметром: и , т.е. . При h=1 и l=m, где имеем алгоритм РПРУ, а при h=l=1 имеем алгоритм НДИ. Алгоритмы 1<l<m являются промежуточными между РПРУ и НДИ и отчасти похоже на известный алгоритм «раньше пришла, если не использовалась, то раньше ушла». Если позиции списка Bt пронумерованы как обычно, слева направо, то при алгоритме до тех пор, пока странице соответствует позиция списка ее изменение происходит так же, как при РПРУ, а при так же как при НДИ. Параметры входящие в определение алгоритмов интерпретируются аналогично внутри каждого из множеств , . Рассмотрим случай . Тогда параметр может принимать единственное значение . При алгоритме странице, только что введенной в ОП соответствуют позиция в списке Bt. Если до следующего страничного сбоя к этой странице не произойдет ни одного обращения, то она будет замещена. При обращении к странице, находящейся в ОП, ее позиция изменяется на , а страница будет поставлена на позицию . Перемещение с позиции на позицию 1можно уподобить подъему наверх по лестнице из ступеней. Отсюда название алгоритма – ЛЕСТН (лестничный). При позиции списка Bt разбиваются на h приоритет множеств (M1,M2,…,Mh). Странице, только что введенной в ОП, ставится в соответствие первая позиция в множестве младшего приоритета Mh. При каждом новом обращении к этой странице ее позиция будет последовательно перемещаться на 1-е место в множестве все более высокого приоритета.

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








Дата добавления: 2015-08-14; просмотров: 668;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.01 сек.