Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


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



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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Поделиться:



Последнее изменение этой страницы: 2019-05-08; Просмотров: 461; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.012 с.)
Главная | Случайная страница | Обратная связь