Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PO_PK_11-25.docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
494 Кб
Скачать
☆

17.Взаимоблокировки. Условия возникновения блокировок.

Взаимоблокировки (тупики):

Взаимоблокировки могут возникать при использовании процессами ресурсов.

П ример взаимоблокировки Поток A пытается получитьресурс S, но он занят Переходит в состояние ожидания

Поток В пытается получить ресурс Р, но он занят Переходит в состояние ожидания

Типы ресурсов:

Ресурс – аппаратное средство или данные, которые в один момент времени может использоваться только одним процессом

Невыгружаемый ресурс - ресурс, который невозможно отобрать у владельца не уничтожив данные (принтер, CD-RW, файл данных и т.п.)

Выгружаемый ресурс – ресурс, который можно забрать у владельца без последствий (память)

Пример отсутствия взаимоблокировки:

П оток A загружается в память,получает ресурс Р, и начинает рассчитыватьПрерывается по таймеру

Поток В загружается в память,Но не может получить ресурс Р, так как он занятБлокируется

Поток В выгружается из памяти,А загружается в память, завершает расчет, печатаети освобождает принтер

Поток В, ожидающий этого события, выходит из блокировки, загружается в память и получает доступ к Р

Когда возникают взаимоблокировки:

Взаимоблокировки случаются с невыгружаемыми ресурсами

Порядок использования ресурса:

    • запрос ресурса

    • использование ресурса

    • освобождение ресурса

Если при запросе ресурс занят, то поток переводится в состояние ожидания.

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

Условия возникновения взаимоблокировки:

-Условие взаимного исключения: каждый ресурс или отдан одному процессу или свободен

-Условие удержания и ожидания: процессы, удерживающие полученные ресурсы, могут запрашивать новые

-Условие отсутствия принудительной выгрузки ресурса: у процесса нельзя принудительно отобрать ресурс, он должен освободить его сам

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

Граф ресурсов:

18.Взаимоблокировки. Варианты решения проблемы блокировок в ос

Варианты решения проблемы:

  • Игнорирование проблемы

  • Обнаружение и устранение взаимоблокировок

  • Избежание взаимоблокировок

  • Предотвращение взаимоблокировок

Обнаружение и устранение взаимоблокировок:

обнаружение взаимоблокировок – с использованием графа ресурсов

методы выхода из взаимоблокировки:

- восстановление через откат

- уничтожение одного из процессов, участвующих в блокировке

Избежание взаимоблокировок:

Безопасное состояние – система не в тупике и существует порядок планирования при котором все процессы завершаются успешно, даже если все они потребуют максимальных ресурсов

Небезопасное состояние – при запросах ресурсов возможна тупиковая ситуация

Алгоритм банкира:

Каждый запрос на ресурс проверяется: приводит ли его удовлетворение к безопасному состоянию?

если ДА, то запрос удовлетворяется

если НЕТ, то запрос откладывается

Предотвращение взаимоблокировок:

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

(Условия возникновения взаимоблокировки:

-Условие взаимного исключения: каждый ресурс или отдан одному процессу или свободен

-Условие удержания и ожидания: процессы, удерживающие полученные ресурсы, могут запрашивать новые

-Условие отсутствия принудительной выгрузки ресурса: у процесса нельзя принудительно отобрать ресурс, он должен освободить его сам

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

-Все ресурсы последовательно нумеруются

- При запросе нескольких ресурсов они запрашиваются в соответствии с их номером

Предотвращение взаимоблокировки:

З апрос ресурсов в порядке их нумерации. Процесс А получил ресурс P и прервался

Процесс B получает ресурсы P и S и выполняется

Процесс A получает ресурс S,выполняется и освобождает ресурсы S и P

Процесс В пытается получить ресурс Р, но он занят Переходит в состояние ожидания

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