Я слышал, что оба эти термина используются, они одно и то же или разные вещи?Какая разница между предотвращением тупиковой ситуации и предотвращением тупиковой ситуации?
ответ
Вы могли смотреть на него, как:
Избегайте: Не распределять ресурсы между процессами/Mulitple потоками
Предотвращения: Когда accsessing общих ресурсов, использовать семафор. Если вы блокируете несколько семафоров, обязательно разблокируйте их в обратном порядке. Всегда проверяйте ошибки в критических разделах, чтобы семафор был выпущен при любых условиях.
избегания тупиков: средства, когда запрос сделан для конкретного ресурса с помощью определенного процесса, вы посмотрите на имеющиеся ресурсы, если необходимо будущий ресурс для процесса-х уже задействованные ресурсы, определяют возможность взаимоблокировки в случае предоставления ресурса. Если возможно, не предоставляйте ресурс, если это невозможно, укажите ресурс.
Предотвращение тупиковой ситуации: убедитесь, что хотя бы одно из условий возникновения взаимоблокировки не выполняется в любое время. Это может быть достигнуто в том, как запрашиваются и предоставляются ресурсы в системе.
Тупик:
Тупиковая ситуация, когда два или более конкурирующих действий каждый ждет другой, чтобы закончить, и, таким образом, ни когда-либо делает. Его также можно определить как набор заблокированных процессов, каждый из которых содержит ресурс и ожидает получения ресурса, хранящегося другим процессом в наборе.
Например, если есть система с двумя дисками. Если есть два процесса P1 и P2, каждый из них имеет один дисковод и каждый из них нуждается в другом, то возникает ситуация тупика. будет проходить следующие условия одновременно в случае тупиковой ситуации:
• Взаимное исключение: только один процесс может одновременно использовать ресурс
• Удержание и ждать: процесс, работающий по крайней мере, один ресурс, ожидает приобретать дополнительные ресурсы, принадлежащие другим процессам
• Нет упреждения: ресурс может быть освобожден только на добровольной основе в процессе его проведения, после чего процесс завершает свою работу
• Circular ожидания: существует множество {P0, P1, ..., Pn} ожидающих процессов h, что P0 ожидает ресурса, который удерживается P1, P1 ждет ресурса, который удерживается P2, ..., Pn-1 ждет ресурса, который удерживается Pn, а Pn ожидает ресурс, который удерживается P0.
Различия между предотвращения тупиковой предотвращения и обнаружения являются следующие:
Профилактика:
• Цель состоит в том, чтобы гарантировать, что по крайней мере один из необходимых условий для тупиковой ситуации не может содержать.
• Предотвращение тупиковой ситуации часто невозможно реализовать.
• Система не требует дополнительной априорной информации относительно общего потенциального использования каждого ресурса для каждого процесса.
• Для того, чтобы система предотвратила условие взаимоблокировки, ему не нужно знать все детали всех имеющихся ресурсов, доступных и запрошенных.
• Методы предотвращения тупиков включают неблокирующая алгоритмы синхронизации, сериализации маркеров, Dijkstras алгоритм и т.д.
• стратегия распределения ресурсов для предотвращения тупиковой консервативна, она под обязует ресурсы.
• Все ресурсы запрашиваются сразу.
• В некоторых случаях превентивные меры чаще, чем это часто бывает необходимо.
Избежание:
• Цель для избежания тупиковой является система не должна входить небезопасное состояние.
• Уклонение от тупика часто невозможно реализовать.
• Система требует дополнительной априорной информации об общем потенциальном использовании каждого ресурса для каждого процесса.
• Для того, чтобы система могла определить, будет ли следующее состояние безопасным или небезопасным, оно должно заранее знать количество и тип всех имеющихся и доступных ресурсов.
• методы избежания тупиков включают алгоритм банкира, Wait/Die, Wound/Wait и т.д.
• Ресурс стратегии распределения для избежания тупиковой выбирает полпути между, что обнаружения и предупреждения.
• Требуется манипулировать до тех пор, пока не будет найден один безопасный путь.
• Претензии отсутствуют.
Детектирование:
• Цель состоит в том, чтобы обнаружить затор после того, как это происходит или до того, как происходит.
• Обнаружение возможности тупика до его возникновения намного сложнее и фактически является неразрешимым. Однако в определенных средах, используя специальные средства блокировки ресурсов, обнаружение взаимоблокировки может быть разрешимым.
• Система не требует дополнительной априорной информации об общем потенциальном использовании каждого ресурса для каждого процесса во всех случаях.
• Для того, чтобы система обнаружила условие взаимоблокировки, ему не нужно знать все детали всех имеющихся ресурсов, доступных и запрошенных.
• Техника обнаружения блокировки включает в себя, но не ограничивается ими, проверку модели. Этот подход создает модель конечного состояния, на которой он выполняет анализ прогресса и находит все возможные терминальные множества в модели.
• Стратегия распределения ресурсов для обнаружения тупика очень либеральна. Ресурсы предоставляются по запросу.
• Необходимо периодически вызывать проверку для тупика.
• Преобладание видно.
Разница между предотвращением ТУПИК и тупиковое недопущении
Профилактика Тупик:
Предотвращение тупиков, ограничивая, как запросы на ресурсы могут быть сделаны в системе и как они обрабатываются (проектирование системы). Цель состоит в том, чтобы гарантировать, что хотя бы одно из необходимых условий для тупика никогда не может быть выполнено.
Тупик Избежание:
Система динамически рассматривает каждый запрос и решает, является ли это безопасно предоставлять его в данный момент, системы требует дополнительной априорной информации относительно общего потенциального использования каждого ресурса для каждого процесса. Позволяет больше параллелизма. Как и разница между светофором и полицейским, направляющим трафик.
- 1. Устранение тупиковой ситуации
- 2. избегая тупиковой ситуации, когда pthread_cond_wait и pthread_cond_signal
- 3. Почему Сон (1000) приводит к тупиковой ситуации?
- 4. как избежать тупиковой ситуации в MySQL
- 5. Получение тупиковой ситуации при изменении таблицы
- 6. Как избежать тупиковой ситуации в подпроцессе без использования связи()
- 7. Как избежать тупиковой ситуации в этой программе golang?
- 8. Является ли этот BlockingQueue восприимчивым к тупиковой ситуации?
- 9. синхронизируется метод создания тупиковой ситуации с подключением к MySQL аккумулирования
- 10. Запуск пип причины тупиковой
- 11. условие для тупиковой случиться
- 12. C++: std :: async и std :: mutex приводит к тупиковой ситуации в Linux, но работает в Windows?
- 13. Избегайте тупиковой ситуации, используя не виртуальный публичный интерфейс и облачные блокировки на C++
- 14. Несколько процессов, обновляющих одни и те же строки, приводят к тупиковой ситуации в mysql?
- 15. Почему «header.get() + footer.get()» приводит к тупиковой ситуации при использовании однопоточного исполнителя?
- 16. Java нить причины тупиковой
- 17. Ада: защищенные объекты тупиковой
- 18. консольная программа производства тупиковой
- 19. Два индексы тупиковой
- 20. assetResourcesForAsset: причина тупиковой
- 21. домашняя работа, java, избегая тупиковой ситуации при использовании notify() вместо notifyAll() на модели multiProducer/singleConsumer
- 22. «приводит к тупиковой ситуации» ошибка при выполнении определенного вида деятельности несколько раз
- 23. MySQL Тупик - доступ к различным значению первичного ключа также создание тупиковой ситуации
- 24. почему график() не приводит к тупиковой ситуации при использовании prepare_arch_switch по умолчанию()
- 25. ObjectiveC - Избегание тупиковой ситуации при синхронной отправке в основную очередь из фона
- 26. kubeadm init on CentOS 7, используя AWS как поставщик облачных вычислений, находится в состоянии тупиковой ситуации
- 27. Может ли уровень изолированности readCommitted когда-либо приводить к тупиковой ситуации (Sql Server)?
- 28. Означает ли существование состояния гонки в коде существование последовательности выполнения, которая приведет к тупиковой ситуации?
- 29. Ошибка выполнения DBCC CHECKDB: ошибка говорит о тупиковой ситуации, но не может определить, почему
- 30. Как избежать тупиковой ситуации в функции mysql с помощью только запросов?
Это как разница между уклонения от уплаты налогов и налога ... err ... предотвращение? – amelvin