1. Блок-схема обработки страничного сбоя.
Copy On Write
Если RAM → HDD, то все страницы в ВАП, использующие эту страницу, должны быть оповещены.
Если HDD → RAM, то оповещаем только ту проц, которая вызвала.
5. Алгоритмы замещения
Локальный алгоритм — если сам процесс затребовал страницу, то при необходимости вытеснется другая страница, принадлежащая этому процессу. Защищает процессы от других процессов-«поедателей памяти», т. е., процесс не может очень быстро нарастить свою память.
В глобальном алгоритме может вытесняться страница, принадлежащая любому процессу.
1. Biledy или «оптимальный алгоритм».
Вытесняется страница, которая не будет использована дольше всего.
Reference string — последовательность обращения к адресам памяти при работе приложения.
Оптимален с точки зрени минимизации числа страничных сбоев.
2. Random — для замещения выбирается случайная страница.
3. FIFO — вытесняется страница, наиболее давно загруженная в ОП.
4. Least Recently Used (LRU) — вытесняется наиболее давно не использованная страница. Для многих случаев это приближение Biledy очень хорошее.
Шаг 1: ставить временную метку обращения.
Шаг 2: найти страницу, наиболее давно загруженную в ОП.
Для замещения страниц не реализуем.
5. Not Frequently Used (NFU), приближение LRU. У каждой страницы есть характеристика — счетчик использования.
Раз в секунду у всех страниц проверяется признак обращения. Если он TRUE, счетчик обращения увеличивается на 1, признак обращения сбрасывается.
Раз в пять секунд счетчики обращения всех страниц делятся пополам.
Вытесняется страница с наименьшим значением счетчика.
6. Second Chance.
Для страницы, стоящей в начале очереди, проверяется признак обращения. Не установлен — замещается. Установлен — признак обращения сбрасывается, страница перемещается в конец очереди.
7. Clock.
Страницы организуются в кольцевой список, указатель ссылается на страницу, которая будет выгружена следующей. Второй указатель размещен на фикс. расстоянии от первого и передвигается синхронно с ним. При перемещении второго указателя у страницы, на которую он перемещается, сбрасывается признак обращения.
8. Linux.
Watermarks MidPages
Если кол-во свободных страниц стало <2*MinPages, Linux пытается освободить страницы.
Если >3*MinPages, то берем процесс и вытесняем все, что можем вытеснить.
Swapping не организован.
9. Стратегия замещения, основанная на управлении рабочего множества.
WS(t,s) — рабочее множество страниц, к которому происходит обращение процесса за переход s с момента t.
Свойство локальности: в течение ограниченного времени программа использует ограниченную часть своего кода и данных.
1) Св-во локальности не выполняется.
2) Программа, которая всегда обращается к той странице, которой нет в RAM.
3) Выполняется св-во локальности.
Ищем точку, в которой при увеличении выделенной памяти мало будет уменьшаться вероятность страничного сбоя.
Стратегия, локальный алгоритм: Перераспределение ОП в пользу процессов, генерирующих больше страничных сбоев. Дает хороший результат с точки зрения минимизации страничных сбоев.
