The design of the UNIX Operating System 61 страница



 

Таким образом, существует набор страниц (P1, P2, ... Pn), активно использующихся вместе, который по-зволяет процессу в момент времени t в течение некоторого периода T производительно работать, избегая большого количества page faults. Этот набор страниц называется рабочим множеством W(t,T) (working set)процесса.Число страниц в рабочем множестве определяется параметром Т,является неубывающейфункцией T и относительно невелико. Иногда T называют размером окна рабочего множества, через ко-торое ведется наблюдение за процессом (см. рис. 10.4).


Основы операционных систем 95

 

 

Рис. 10.4. Пример рабочего множества процесса

 

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

 

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

 

Принцип локальности ссылок препятствует частым изменениям рабочих наборов процессов. Формально это можно выразить следующим образом. Если в период времени (t-T, t) программа обращалась к стра-ницам W(t,T), то при надлежащем выборе T с большой вероятностью эта программа будет обращаться к тем же страницам в период времени (t, t+T). Другими словами, принцип локальности утверждает, что ес-ли не слишком далеко заглядывать в будущее, то можно достаточно точно его прогнозировать исходя из прошлого. Понятно, что с течением времени рабочий набор процесса может изменяться (как по составу страниц, так и по их числу).

 

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

 

Решение о размещении процессов в памяти должно , следовательно, базироваться на размере его рабочего множества. Для впервые инициируемых процессов это решение может быть принято эвристически. Во время работы процесса система должна уметь определять: расширяет процесс свое рабочее множество или перемещается на новое рабочее множество. Если в состав атрибутов страницы включить время по-следнего использования ti (для страницы с номером i), то принадлежность i-й страницы к рабочему набо-ру, определяемому параметром T в момент времени t будет выражаться неравенством : t-T < ti < t. Алго-ритм выталкивания страниц WSClock, использующий информацию о рабочем наборе процесса, описан в [Таненбаум, 2002].

 

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


Дата добавления: 2021-01-21; просмотров: 97; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!