Добавил:
Developerrnrn Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС Нижний.pdf
Скачиваний:
34
Добавлен:
25.03.2023
Размер:
2.75 Mб
Скачать

Лабораторный практикум по курсу "Операционные системы"

Рис. 57 Списки кэша страниц

Мы имеем две очереди. Каждая выделенная страница помещается в конец первой очереди (inactive_list). Если к ней произошло обращение, она перемещается во вторую очередь

(active_list). При этом используются функции lru_cache_add() и mark_page_accessed().

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

Изменение стратегии замещения

При изменении стратегии замещения нужно четко локализовать места изменений. Например, изменять структуры, описывающие физическую память, имеет смысл лишь в том случае, если Вы собираете статистику использования страниц (например, при реализации алгоритма lru).

При реализации стратегии замещения обратите внимание на следующие моменты:

-текущее использование функций, изменяющих значение флагов PG_references и PG_dirty. (SetPageReferenced(),mark_page_accessed(), set_page_dirty() и др.);

-изучите структуры данных, используемые для реализации стратегии замещения;

-рассмотрите функции, оперирующие перемещением страниц в списках lru (lru_cache_add(), refill_inactive(), shrink_cache());

-изучите функции, ответственные непосредственно за вытеснение страниц (do_swap_page(), kswapd(), shrink_caches(), try_to_free_pages(), swap_out*());

-разберите процесс инициализации подсистемы (page_cache_init(), kswapd_init()).

130 Учебно-исследовательская лаборатория «Информационные технологии»

Соседние файлы в предмете Современные операционные системы