Лекция: Избежание взаимоблокировок

Блокировкой процессов называют такое состояние системы, при котором 2 или более процессов не могут продолжать свое выполнение из-за отсутствия необходимых для этого ресурсов.

Например: одному процессу требуется СD привод и магнитная лента, при этом он успел запросить у ОС права на использование СD привода и не успел получить доступ к магнитной ленте; второму процессу для продолжения выполнения требуется те же ресурсы, при этом он успел получить у ОС права на использование магнитной ленты инее успел получить права на использование СD привода. В этом случе оба процесса будут блокированы. Они будут бесконечно долго ожидать необходимые ресурсы и никогда не получат их для использования.

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

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

Имеются различные способы выхода из блокировок:

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

Перезагрузка системы этот путь преодоления блокировок наиболее радикальный, но и наиболее дорогой.

Рестарт системы с так называемой контрольной точки.

Контрольная точка — это полное состояние ЭВМ запомненное на внешнем носителе. Для больших ЭВМ организация контрольной точки требует больших ресурсов и времени, поскольку на внешний носитель нужно будет запомнить полное состояние всех регистров ЭВМ, всей ее ОП (несколько десятков терабайт на майнфреймах), а так же полное состояние регистров и ОП каждого из устройств ЭВМ (несколько десятков тысяч устройств на майнфреймах). Несмотря на то что организация контрольной точки требует большого количества времени и ресурсов, ее регулярно проводят с различной периодичностью (раз в час) для того чтобы уменьшить неизбежные финансовые потери от рестарта ЭВМ.

 

Модель Холта

Квадрат – ресурс, круг – процесс.

Обнауржить взаимоблокировку

Выгрузка ресурса (принудительная), откат или уничтожение одного из процессов.

Избежание:

Траектория ресурсов

Безопасные и небезопасные состоянии

Алгоритм Баникра

Траетория ресурсов:

Безопасные состояния:

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

Небезопасное показано ниже

Алгоритм банкира (=билет №64) — удовлетворить запрос процесса на получение ресурса только в том случае, если после выдачи ресурса система останется в безопасном состоянии.

 

— количество экземпляров ресурса j заправшивает i-ый процесс.

 

— вектор доступных ресурсов

Pi – i-ый ресурс.

Ищем <A. Если нашли, переходим к шагу 2, т.к. состояние небезопасное

A=A+ — Rij помечают как завершенный.

Повторяют шаг 1 и 2, пока не пометят все процессы как завершенные.

 

еще рефераты
Еще работы по информатике