Принципы взаимного блокирования

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

Все взаимоблокировки предполагают наличие конфликта в борьбе за ресурс между 2мя и более процессами. Ресурсы: повторно используемые; расходуемые.

Условия осуществления взаимоблокировок:

- взаимное исключение

- удержание и ожидание

- отсутствие перераспределения

- циклическое ожидание.

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

Предотвращение взаимоблокировок.

Два метода: Косвенный метод (предотвращение одного из трёх первых условий возникновения взаимоблокировок: взаимное исключение, удержание и ожидание, отсутствие перераспределения), Прямой (предотвращение циклического ожидания).

Избежать взаимоисключения невозможно. Если доступ к ресурсам д.б. исключительным, то ОС должна поддерживать взаимоисключение.

Удержании и ожидание. Избегается, потребовав чтоб процесс запрашивал все ресурсы одновременно и блокировать процесс, пока запрос не будет полностью удовлетворён. Метод не эффективен (долгое время ожидания; ресурсы могут оставаться неиспользуемыми долгое время, когда они могли бы использоваться другими процессами; может быть неизвестно заранее какие ресурсы могут понадобиться процессу)

Отсутствие перераспределений. 2 пути:

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

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

Циклическое ожидание. Избегается путем упорядочивания ресурсов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: