Алгоритмы замещения страниц

Идеальный алгоритм замещение страниц

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

Алгоритм NRU

Алгоритм NRU (Not Recently Used - не использовавшаяся в последнее время страница)
Используются биты обращения (R-Referenced) и изменения (M-Modified) в таблице страниц.
При обращении бит R выставляется в 1, через некоторое время ОС не переведет его в 0.
M переводится в 0, только после записи на диск.
Благодаря этим битам можно получить 4-ре класса страниц:

  1. не было обращений и изменений (R=0, M=0)
  2. не было обращений, было изменение (R=0, M=1)
  3. было обращение, не было изменений (R=1, M=0)
  4. было обращений и изменений (R=1, M=1)

На основании этих данных можно составить своеобразный "рэйтинг" страниц - и загружать и выгружать их в соответствии с этими данными.

Алгоритм FIFO

Алгоритм FIFO (первая прибыла - первая выгружена)

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

Алгоритм "вторая попытка"

Подобен FIFO, но если R=1, то страница переводится в конец очереди, если R=0, то страница выгружается.

Алгоритм "часы"

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

rghdrh

Алгоритм LRU (Least Recently Used - использовавшаяся реже всего)

Первый метод:

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

Второй метод:

В таблице страниц добавляется запись - счетчик обращений к странице. Чем меньше значение счетчика, тем реже она использовалась.

_____________________________________________
Источники(читать подробнее)=
http://ipm.kstu.ru/os/lec/7.php
Ключевые слова и фразы(для поиска)=