108
перераспределение – качество полезное, но если оно не учитывает уровень
мультипрограммирования, то может привести к толкотне (трешу).
Ряд глобальных стратегий, управляющих уровнем
мультипрограммирования, основывается на идее рабочего набора WS
(working set). Идея эта базируется на явлении локализации обращений к
памяти. Любая программа не обращается ко всему своему адресному
пространству одновременно. На каждом временном отрезке программа
работает только с некоторым подмножеством адресов и соответственно с
некоторым подмножеством страниц. Временной отрезок, на котором это
подмножество квазипостоянно, называется фазой программы. Почти
полное обновление этого подмножества называется сменой фазы. Рабочим
набором процесса S(w) называется перечень страниц, к которым процесс
обращался в течение последнего интервала виртуального времени w.
Методы, основанные на идее рабочего набора, стремятся к тому, чтобы
выполняющийся процесс постоянно имел свой рабочий набор в реальной
памяти и страницы, входящие в рабочие наборы выполняющихся
процессов, не вытеснялись. Если у ОС нет возможности разместить в
реальной памяти весь рабочий набор процесса, она снижает уровень
мультипрограммирования, переводя процесс в состояние ожидания. При
разблокировании процесса ОС имеет возможность перед его активизацией
выполнить упреждающую подкачку (preload) всего его рабочего набора и
тем самым значительно снизить частоту страничных отказов.
На практике, однако, идеальная реализация стратегии WS не
представляется возможной по тем же соображениям, что и для идеальной
LRU: нет возможности запоминать время каждого обращения.
Адаптированный метод WS состоит в его определении через
фиксированные интервалы времени. В начале каждого интервала все
страницы, для которых распределены страничные кадры, считаются
входящими в рабочий набор. В течение интервала все запросы процесса на