Алгоритмы замещения страниц
Как видно из рассмотренного выше, поиск оптимального алгоритма замещения страниц должен быть основан на следующем критерии: необходимо добиваться уменьшения коэффициента отказов страниц p.
Оценка алгоритма может быть выполнена путем опробования его на конкретной строке обращений к памяти (строке запросов)и определения числа отказов страниц при данной строке запросов.
Во всех приводимых ниже в данном разделе примерах из области страничной организации строка запросов имеет вид:
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5.
График зависимости числа отказов страниц от числа фреймов в основной памяти изображен на рис. 8.
Рис. 8.Зависимость числа отказов страниц от числа фреймов.
В целом, как и подсказывает здравый смысл, зависимость обратно пропорциональная: чем больше имеется фреймов, тем меньше отказов страниц. Однако случаются и аномалии в этом законе, рассмотренные далее.
Алгоритм FIFO (First-In-First-Out).Наиболее простой алгоритм замещения страниц – в качестве жертвы всегда выбирается фрейм, первым из имеющихся считанный в основную память.
Рассмотрим пример использования данного алгоритма.
Пусть строка запросов имеет вид: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5.
Случай 1: 3 фрейма (3 страницы могут быть одновременно в памяти для одного процесса). Пусть имеются три процесса. Их таблицы страниц примут вид:
(1, 2, 3) (4, 1, 2) (5, 3, 4).
В данном случае имеет место 9 отказов страниц (проверьте в качестве упражнения).
Случай2: 4 фрейма. Пусть имеются по-прежнему три процесса. Таблицы страниц в данном случае будут иметь вид:
(1, 2, 3, 4) (5, 1, 2, 3) (4, 5)
Нетрудно проверить, что в данном случае имеет место 10 (!) отказов страниц, несмотря на то, что процесс может иметь больше свободных фреймов, чем в предыдущем случае.
Данная аномалия называется аномалией Belady.
В целом же, как уже говорилось, зависимость такова, что чем больше фреймов может иметь процесс (при достаточно большом числе фреймов), тем меньше отказов страниц.
Пример работы алгоритма FIFO для замещения страниц, при максимальном числе фреймов для процесса, равном 3, приведен на рис.9.
Рис. 9.Пример работы алгоритма FIFO.
На рис. 10 изображен график зависимости числа отказов страниц от числа фреймов при алгоритме FIFO, отображающий аномалию Belady.
Рис. 10.Аномалия Belady при использовании алгоритма FIFO замещения страниц.
Дата добавления: 2016-03-15; просмотров: 2364;