Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы ОЭВМС.docx
Скачиваний:
22
Добавлен:
07.08.2019
Размер:
103.28 Кб
Скачать

45. Алгоритмы управления многоуровневой памятью.

Будем рассматривать двухуровневую память со страничной организацией, состоящую из оперативной (верхний уровень) и внешней (нижний уровень) памяти.

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

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

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

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

Q = {1,2, …, k}.

Все страницы программы постоянно хранятся в памяти нижнего уровня, а, кроме того, r из них могут находиться в памяти верхнего уровня (оперативной памяти), при этом

1 < r < k.

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

q0, q1, q2, …, qt,

где qt – случайная дискретная величина, принимающая в момент времени t значение одного из номеров страниц программы (qt  Q).

Если St – совокупность страниц в памяти верхнего уровня в момент t, причем в любой момент в этой памяти присутствует r страниц программы, то изменение состояния памяти верхнего уровня после обращения qt описывается следующими соотношениями:

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

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

Такая процедура называется процессом замещения страниц, а правило, по которому при возникновении страничного сбоя выбирается страница vt  St для удаления из памяти верхнего уровня, – алгоритмом замещения.

Алгоритмы замещения можно разделить на две группы:

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

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

Физически нереализуемые алгоритмы

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

Справедливо следующее предложение. Число замещений страниц в памяти верхнего уровня (число страничных сбоев) при выполнении замещений по алгоритму Михновского-Шора является минимальным для заданных потока обращений и исходного распределения памяти, что имеет теоретическое доказательство.

Таким образом, алгоритм Михновского-Шора реализует минимально возможную для данной программы последовательность замещений, поэтому этот алгоритм называют МИН-алгоритмом.

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

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

Физически реализуемые (эвристические) алгоритмы замещения

Был предложен ряд алгоритмов этого класса.

Алгоритм случайного замещения (СЗ-алгоритм). При возникновении страничного сбоя из памяти верхнего уровня с равной вероятностью отсылается любая из находящихся там страниц.

НДИ-алгоритм. Из памяти верхнего уровня отсылается страница, наиболее давно использовавшаяся.

Алгоритм "первый пришел – первый ушел" (ПППУ-алгоритм). Отсылается страница, дольше других находившаяся в памяти верхнего уровня.

Алгоритм "последний пришел – первый ушел". Отсылается страница, позже других поступившая в память верхнего уровня.