№10. Синхронизационные тупики, их распознавание и разрушение Flashcards
(9 cards)
Синхронизационный тупик (Deadlock)
ситуация, в которой две или более транзакции блокируют ресурсы, которые необходимы друг другу для завершения, и ни одна из транзакций не может продолжиться, потому что все они ждут освобождения ресурсов
Методы распознавания синхронизационных тупиков
- Алгоритм ожидания-графа (Wait-for Graph)
- Алгоритм обнаружения тупиков на основе временных меток (Timestamp-based Deadlock Detection)
- Алгоритм проверок ресурсов (Resource Allocation Graph)
Алгоритм ожидания-графа (Wait-for Graph)
граф, в котором узлы представляют транзакции, а ребра показывают, какие транзакции ожидают ресурсов, удерживаемых другими транзакциями. Цикл в графе указывает на наличие тупика
Алгоритм обнаружения тупиков на основе временных меток (Timestamp-based Deadlock Detection)
метод, который использует временные метки транзакций для определения и обнаружения циклов ожидания, что позволяет распознавать тупики
Алгоритм проверок ресурсов (Resource Allocation Graph)
граф ,показывающий, какие транзакции удерживают или запрашивают ресурсы. Если обнаруживается цикл в графе, это указывает на наличие синхронизационного тупика
Методы разрушения синхронизационных тупиков
- Процесс отката (Rollback)
- Отмена транзакций (Transaction Abortion)
- Принудительное завершение транзакций(Forced Termination)
Процесс отката (Rollback)
метод разрушения тупика, при котором транзакции, участвующие в тупике, отменяются и откатываются до состояния до начала транзакции
Отмена транзакций (Transaction Abortion)
метод, при котором одна или несколько транзакций, участвующих в тупике, отменяются, чтобы освободить блокированные ресурсы и позволить другим транзакциям продолжить выполнение
Принудительное завершение транзакций (ForcedTermination)
метод, при котором транзакции, участвующие в тупике, принудительно завершаются, что позволяет освободить ресурсы и предотвратить дальнейшие блокировки