2010-03-21 2 views
14

Я слышал, что оба эти термина используются, они одно и то же или разные вещи?Какая разница между предотвращением тупиковой ситуации и предотвращением тупиковой ситуации?

+0

Это как разница между уклонения от уплаты налогов и налога ... err ... предотвращение? – amelvin

ответ

18

Вы могли смотреть на него, как:

Избегайте: Не распределять ресурсы между процессами/Mulitple потоками

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

3

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

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

20

Тупик:

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

Например, если есть система с двумя дисками. Если есть два процесса P1 и P2, каждый из них имеет один дисковод и каждый из них нуждается в другом, то возникает ситуация тупика. будет проходить следующие условия одновременно в случае тупиковой ситуации:

• Взаимное исключение: только один процесс может одновременно использовать ресурс

• Удержание и ждать: процесс, работающий по крайней мере, один ресурс, ожидает приобретать дополнительные ресурсы, принадлежащие другим процессам

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

• Circular ожидания: существует множество {P0, P1, ..., Pn} ожидающих процессов h, что P0 ожидает ресурса, который удерживается P1, P1 ждет ресурса, который удерживается P2, ..., Pn-1 ждет ресурса, который удерживается Pn, а Pn ожидает ресурс, который удерживается P0.

Различия между предотвращения тупиковой предотвращения и обнаружения являются следующие:

Профилактика:

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

• Предотвращение тупиковой ситуации часто невозможно реализовать.

• Система не требует дополнительной априорной информации относительно общего потенциального использования каждого ресурса для каждого процесса.

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

• Методы предотвращения тупиков включают неблокирующая алгоритмы синхронизации, сериализации маркеров, Dijkstras алгоритм и т.д.

• стратегия распределения ресурсов для предотвращения тупиковой консервативна, она под обязует ресурсы.

• Все ресурсы запрашиваются сразу.

• В некоторых случаях превентивные меры чаще, чем это часто бывает необходимо.

Избежание:

• Цель для избежания тупиковой является система не должна входить небезопасное состояние.

• Уклонение от тупика часто невозможно реализовать.

• Система требует дополнительной априорной информации об общем потенциальном использовании каждого ресурса для каждого процесса.

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

• методы избежания тупиков включают алгоритм банкира, Wait/Die, Wound/Wait и т.д.

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

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

• Претензии отсутствуют.

Детектирование:

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

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

• Система не требует дополнительной априорной информации об общем потенциальном использовании каждого ресурса для каждого процесса во всех случаях.

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

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

• Стратегия распределения ресурсов для обнаружения тупика очень либеральна. Ресурсы предоставляются по запросу.

• Необходимо периодически вызывать проверку для тупика.

• Преобладание видно.

0

Разница между предотвращением ТУПИК и тупиковое недопущении

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

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

Смежные вопросы