Первый слайд презентации
Восстановление после взаимоблокировки Чиркин К.Д., гр.16ВВ1
Слайд 2
Взаимоблокировка? Когда несколько процессов / потоков ожидают ресурсы, занятые друг другом, и ни один из них не может продолжать свое выполнение.
Слайд 4
Чтобы восстановиться после взаимоблокировки, нужно её обнаружить. Для этого необходимо: Отслеживать выделение ресурсов (какой процесс каким ресурсом владеет ) Отслеживать поступающие запросы (какой процесс какой ресурс ожидает ) На основе этих данных строится граф “ Процесс-ресурс ”. Если в нем обнаруживаются циклы, то это свидетельствует о взаимоблокировке.
Слайд 5
Поскольку операция проверки наличия взаимоблокировки является достаточно длительной, ее выполнение при каждом запросе потребует слишком большого количества ресурсов. Поэтому алгоритм обнаружения запускают при каждом N-ом запросе или через некоторый временной интервал.
Слайд 6
Пример взят из книги: “ Э. Таненбаум, Современные операционные системы, 4-е издание ”
Слайд 7
Уничтожение одного /всех процессов, участвующих в тупике Можно продолжать уничтожать процессы, пока тупик не распадется Все вычисления уничтоженных процессов придется повторить Грубо, но эффективно Перераспределение ресурсов между процессами вплоть до разрушения тупика Ресурсы отбираются у владельцев и отдаются другим процессам Откат выбранного процесса к некоторой контрольной контрольной точке или к началу ( partial or total partial or total rollback ) Способы восстановления после взаимоблокировки