Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы к зачету по ОВП.doc
Скачиваний:
18
Добавлен:
02.05.2014
Размер:
105.47 Кб
Скачать

17. Распределенная взаимоблокировка.

Виды распределенных взаимоблокировок:

1. возникающая при распределении ресурсов (возникает когда процесс пытается получить доступ к ресурсам (объектам данных из БД или к ресурсам вв/выв. которые находятся на сервере); при этом образуется группа ресурсов, каждая из которых запрашивает ресурс, которым обладает другой процесс из этой группы)

2. возникающая при обмене сообщениями (когда требующимися процессу ресурсами являются сообщения; в этом случае образуется группа процессов, каждый из которых ожидает сообщения от др. процесса).

a. Взаимоблокировка, связанная с распределением ресурсов (предотвращение; выявление)

2-а метода предотвращения:

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

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

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

Существуют методы, в которых предварительные сведения не нужны:

- ожидание перезапуска (при возникновении конфликта, преимуществом обладает более старая транзакция (процесс); благодаря тому, что убитая транзакция восстанавливается со старой временной меткой, то она становится старше и ее приоритет возрастает).

- прекращение ожидания (немедленный доступ к запрашиваемому ресурсу старшей транзакции, удаляя владеющую этим ресурсом младшую транзакцию; старшая транзакция не будет ждать пока ей будет предоставлен ресурс, использующийся младшей транзакцией).

При выявлении взаимоблокировки процесс получает незанятые ресурсы по первому требованию. Наличие взаимоблокировок определяется при их возникновении.

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

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

В зависимости от того, как управляется система, используются различные методы:

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

- иерархичное управление (узлы организованы в древовидную структуру)

- распределённое управление (все процессы сообща выявляют взаимоблокировку) .

b. Взаимоблокировки, возникающие при обмене сообщениями,

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

Недоступность буферов сообщений. Взаимоблокировка связана с распределением буфера, предназначенного для хранения передаваемого сообщения. Блокировку передачи и хранения сообщений можно предотвратить, не позволяя буферам заполняться сообщениями для одного узла. Для этого используется раздельные буферы фиксированного размера для каждой связи.