Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Bezopasnost_operatsionnykh_sistem_Nastya.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
846.67 Кб
Скачать

12. Понятие тупика. Алгоритмы предотвращения и обхода тупиков

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

Систематический тупик системы (зависящее): перпендикулярно или более процессов оказывается в состоянии тупика.

Сформулируем 4 необходимых условия наличия тупика:

1) Процессы требуют предоставления им монопольного права управления ресурсом, который им выделяется – условия взаимоисключения.

2) Процессы удерживают за собой ресурсы уже выделенные им, ожидая в то же время выделения дополнительных ресурсов – условие ожидания ресурсов.

3) Ресурсы нельзя отобрать у процессов, удерживающих их, эти ресурсы не будут использованы для завершения работы – условие неперераспределяемости.

4) Существует кольцевая связь процессов в которой каждый процесс удерживает за собой один или более ресурсов, требующихся следующему процессу цепи – условие кругового ожидания. Оно означает, что ни один или 2 процесса могут прийти в тупик, а неопределенное множество m.

Для решения проблемы тупиков используются 4 подхода:

1) Предотвращение тупиков; - обеспечение условий, исключенных принципы возникновения тупиковых ситуаций (неполное исполнение средств системы)

2) Обход тупиков; учитывает опасность возникновения тупиковых ситуаций по косвенным параметрам, характеризующих такие ситуации в процессе выполнения тесно связан с методами обнаружения тупиков и зависит от количества метода обнаружения

3) Обнаружение тупиков; Если тупиковая ситуация все таки произошла, производится выход из процессов

4) Восстановление тупиков. Для того, чтобы процесс продолжить, применяются методы восстановления. (Процессы, попавшие в тупик завершиться с освобождением занимаемых ими ресурсов).

алгоритмы предотвращения тупиков.

стратегии, предложенные Хавендером:

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

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

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

Каждая из этих стратегий нарушает одно из необходимых условий существования тупика. И с каждой из них связан реализующий ее алгоритм.

Упомянем так же алгоритмы обхода тупиков, наиболее известными из которых являются: алгоритм Дейкстры, называемый так же алгоритмом банкира, и алгоритм Хабермана, называемый алгоритмом регулируемого распределения. Заметим, что для того чтобы использовать алгоритмы обхода тупиков, мы должны получить информацию о возможности их наступления до возникновения тупика. Это делает их весьма дорогостоящими вычислительном смысле, и мы не можем так же утверждать, что информация, которую мы получим, исключает все возможные тупиковые ситуации. В связи с чем, применение таких алгоритмов является ограниченным и можно сказать эвристическим.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]