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



 

Итак, что делать , если в распоряжении процесса имеется недостаточное число кадров? Нужно ли его приостановить с освобождением всех кадров? Что следует понимать под достаточным количеством кад-ров?

 

Трешинг (Thrashing)

 

Хотя теоретически возможно уменьшить число кадров процесса до минимума, существует какое-то чис-ло активно используемых страниц, без которого процесс часто генерирует page faults. Высокая частота страничных нарушений называется трешинг (thrashing, иногда употребляется русский термин "пробук-совка", см . рис. 10.3). Процесс находится в состоянии трешинга, если при его работе больше времени уходит на подкачку страниц, нежели на выполнение команд. Такого рода критическая ситуация возника-ет вне зависимости от конкретных алгоритмов замещения.


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

 

 

Рис. 10.3. Частотаpage faultsв зависимости от количества кадров,выделенных процессу

 

Часто результатом трешинга является снижение производительности вычислительной системы. Один из нежелательных сценариев развития событий может выглядеть следующим образом . При глобальном ал-горитме замещения процесс, которому не хватает кадров, начинает отбирать кадры у других процессов, которые в свою очередь начинают заниматься тем же. В результате все процессы попадают в очередь за-просов к устройству вторичной памяти (находятся в состоянии ожидания), а очередь процессов в состоя-нии готовности пустеет. Загрузка процессора снижается. Операционная система реагирует на это увели-чением степени мультипрограммирования, что приводит к еще большему трешингу и дальнейшему сни-жению загрузки процессора. Таким образом, пропускная способность системы падает из-за трешинга.

 

Эффект трешинга, возникающий при использовании глобальных алгоритмов, может быть ограничен за счет применения локальных алгоритмов замещения. При локальных алгоритмах замещения если даже один из процессов попал в трешинг, это не сказывается на других процессах. Однако он много времени проводит в очереди к устройству выгрузки, затрудняя подкачку страниц остальных процессов.

 

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

 

Итак, трешинг - это высокая частота страничных нарушений. Hеобходимо ее контролировать. Когда она высока , процесс нуждается в кадрах. Можно, устанавливая желаемую частоту page faults, регулировать размер процесса, добавляя или отнимая у него кадры. Может оказаться целесообразным выгрузить про-цесс целиком. Освободившиеся кадры выделяются другим процессам с высокой частотой page faults.

 

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

 

Модель рабочего множества

 

Рассмотрим поведение реальных процессов.

 

Процессы начинают работать, не имея в памяти необходимых страниц. В результате при выполнении первой же машинной инструкции возникает page fault, требующий подкачки порции кода. Следующий page fault происходит при локализации глобальных переменных и еще один - при выделении памяти для стека. После того как процесс собрал большую часть необходимых ему страниц, page faults возникают редко.


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

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






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