Устранение взаимоблокировок

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

Имеется 2-а подхода:

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

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

a. Запрещение запуска процесса

Определяются:

- вектор-ресурс, т.е. общее количество ресурсов в системе

- вектор-доступность, т.е. общее количество каждого ресурса, не выделенного процессу

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

- матрица распределения, определяет текущее распределение ресурсов.

Процесс запускается только тогда, когда: Ri ≥ C(n+1) + сумма(по n, при к=1) Cik

Означает, что запуск процесса происходит в том случае, если м/б удовлетворены максимальные требования всех текущих процессов. Эта стратегия не оптимальна, т.к. предполагает худшее, что все процессы предъявят максимальные требования одновременно.

b. Запрет выделения ресурса. В каждый момент времени процесс может иметь несколько выделенных ему ресурсов или не иметь ни одного. Состояние системы представляет собой текущее распределение ресурсов по процессам. Состояние можно представить как два вектора: ресурсы и доступность. И две матрицы: требования и распределения.

Сначала выполняется проверка того, что запрос не превышает исходное требование процесса. Если запрос корректен, то определяем возможность удовлетворения запроса. Если нет, то процесс приостанавливается. Если ресурсов достаточно, то выполняется последняя проверка: безопасно ли выполнение запроса. Для этого процессу гипотетически выделяются ресурсы, получается новое состояние системы, которое и проверяется на безопасность использования алгоритма.

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

Ограничения метода запрета выделения ресурсов:

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


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



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