Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Взаимоблокировки. Условия возникновения блокировок.
Взаимоблокировки (тупики): Взаимоблокировки могут возникать при использовании процессами ресурсов. Пример взаимоблокировки Поток A пытается получитьресурс S, но он занят Переходит в состояние ожидания Поток В пытается получить ресурс Р, но он занят Переходит в состояние ожидания Типы ресурсов: Ресурс – аппаратное средство или данные, которые в один момент времени может использоваться только одним процессом Невыгружаемый ресурс - ресурс, который невозможно отобрать у владельца не уничтожив данные (принтер, CD-RW, файл данных и т.п.) Выгружаемый ресурс – ресурс, который можно забрать у владельца без последствий (память) Пример отсутствия взаимоблокировки: Поток A загружается в память,получает ресурс Р, и начинает рассчитыватьПрерывается по таймеру Поток В загружается в память,Но не может получить ресурс Р, так как он занятБлокируется Поток В выгружается из памяти,А загружается в память, завершает расчет, печатаети освобождает принтер Поток В, ожидающий этого события, выходит из блокировки, загружается в память и получает доступ к Р
Когда возникают взаимоблокировки: Взаимоблокировки случаются с невыгружаемыми ресурсами Порядок использования ресурса: • запрос ресурса • использование ресурса • освобождение ресурса Если при запросе ресурс занят, то поток переводится в состояние ожидания. Группа процессов находится в тупиковой ситуации, если каждый процесс из группы ожидает события, которое может вызвать только другой процесс из этой же группы. Условия возникновения взаимоблокировки: -Условие взаимного исключения: каждый ресурс или отдан одному процессу или свободен -Условие удержания и ожидания: процессы, удерживающие полученные ресурсы, могут запрашивать новые -Условие отсутствия принудительной выгрузки ресурса: у процесса нельзя принудительно отобрать ресурс, он должен освободить его сам -Условие циклического ожидания: существует замкнутая последовательность двух и более процессов, каждый из которых ждет доступа к ресурсу, удерживаемому следующим членом последовательности Граф ресурсов:
Взаимоблокировки. Варианты решения проблемы блокировок в ОС Варианты решения проблемы: • Игнорирование проблемы • Обнаружение и устранение взаимоблокировок • Избежание взаимоблокировок • Предотвращение взаимоблокировок Обнаружение и устранение взаимоблокировок: обнаружение взаимоблокировок – с использованием графа ресурсов методы выхода из взаимоблокировки: - восстановление через откат - уничтожение одного из процессов, участвующих в блокировке Избежание взаимоблокировок: Безопасное состояние – система не в тупике и существует порядок планирования при котором все процессы завершаются успешно, даже если все они потребуют максимальных ресурсов Небезопасное состояние – при запросах ресурсов возможна тупиковая ситуация Алгоритм банкира: Каждый запрос на ресурс проверяется: приводит ли его удовлетворение к безопасному состоянию? если ДА, то запрос удовлетворяется если НЕТ, то запрос откладывается Предотвращение взаимоблокировок: Для предотвращения возможности взаимоблокировок необходимо нарушить хотя бы одно из условий их возникновения. (Условия возникновения взаимоблокировки: -Условие взаимного исключения: каждый ресурс или отдан одному процессу или свободен -Условие удержания и ожидания: процессы, удерживающие полученные ресурсы, могут запрашивать новые -Условие отсутствия принудительной выгрузки ресурса: у процесса нельзя принудительно отобрать ресурс, он должен освободить его сам -Условие циклического ожидания: существует замкнутая последовательность двух и более процессов, каждый из которых ждет доступа к ресурсу, удерживаемому следующим членом последовательности) -Все ресурсы последовательно нумеруются - При запросе нескольких ресурсов они запрашиваются в соответствии с их номером Предотвращение взаимоблокировки: Запрос ресурсов в порядке их нумерации. Процесс А получил ресурс P и прервался Процесс B получает ресурсы P и S и выполняется Процесс A получает ресурс S ,выполняется и освобождает ресурсы S и P Процесс В пытается получить ресурс Р, но он занят Переходит в состояние ожидания |
Последнее изменение этой страницы: 2019-05-08; Просмотров: 533; Нарушение авторского права страницы