Тупики. (Тема 11) презентация

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

Слайд 111
ТУПИКИ
Курс лекций
«Системное программное обеспечение» «System Software» «Операционные системы»
для студентов специальностей АСОИ и

ИИ

Павел Кочурко
доцент кафедры ИИТ, к.т.н.


Слайд 2Тупиковая ситуация
Множество процессов находится в тупиковой ситуации, если каждый процесс из

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

Process 1

Process 2

Resource A

Resource B


Слайд 3Условия возникновения тупиков
Сформулированы Коффманом, Элфиком и Шошани в 1970 г.

Условие взаимоисключения

Mutual exclusion.
Одновременно использовать ресурс может только один процесс.
Условие ожидания ресурсов Hold and wait.
Процессы удерживают ресурсы, уже выделенные им, и могут запрашивать другие ресурсы.
Условие неперераспределяемости No preemtion.
Ресурс, выделенный ранее, не может быть принудительно забран у процесса. Освобождены они могут быть только процессом, который их удерживает.
Условие кругового ожидания Circular wait.
Существует кольцевая цепь процессов, в которой каждый процесс ждет доступа к ресурсу, удерживаемому другим процессом цепи.

Для образования тупика необходимы и достаточны все четыре условия

Слайд 4Борьба с тупиками: игнорирование проблемы тупиков

Вероятность возникновения взаимоблокировки vs. вероятность ущерба

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

ИТОГ: Маловероятный случайный тупик предпочтительнее, чем нелепые правила, заставляющие пользователей ограничивать число процессов, открытых файлов и т. п.



Слайд 5Борьба с тупиками: предотвращение тупиков
Цель предотвращения тупиков – обеспечить условия, исключающие возможность

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

Система, предоставляя ресурс в распоряжение процесса, должна принять решение, безопасно это или нет. Возникает вопрос: есть ли такой алгоритм, который помогает всегда избегать тупиков и делать правильный выбор. Ответ – да, мы можем избегать тупиков, но только если определенная информация известна заранее.


Слайд 6Предотвращение тупиков путем тщательного распределения ресурсов
Безопасное состояние – это такое состояние,

для которого имеется по крайней мере одна последовательность событий, которая не приведет к взаимоблокировке.
Модель алгоритма основана на действиях банкира, который, имея в наличии капитал, выдает кредиты.
Предположим, что у системы в наличии n устройств, например лент.
ОС принимает запрос от пользовательского процесса, если его максимальная потребность не превышает n.
Пользователь гарантирует, что если ОС в состоянии удовлетворить его запрос, то все устройства будут возвращены системе в течение конечного времени.
Текущее состояние системы называется надежным, если ОС может обеспечить всем процессам их выполнение в течение конечного времени.
В соответствии с алгоритмом банкира выделение устройств возможно, только если состояние системы остается надежным.


Слайд 7Предотвращение тупиков за счет нарушения условий возникновения тупиков
Нарушение условия взаимоисключения
Выделенные ресурсы

сделать разделяемыми (спулинг)
Нарушение условия ожидания дополнительных ресурсов
Стратегия двухфазного захвата: 1) запросить все ресурсы сразу; 2) если какие-то заняты, то освободить все и ждать освобождения занятых
Нарушение принципа отсутствия перераспределения
Перераспределить можно только те ресурсы, состояние которых легко сохранить и восстановить
Hарушение условия кругового ожидания
Упорядочить ресурсы (спин-блокировки Windows)
Нужен второй ресурс – освободи первый

Слайд 8Обнаружение тупиков
Обнаружение взаимоблокировки сводится к фиксации тупиковой ситуации и выявлению вовлеченных

в нее процессов.
Для этого производится проверка наличия циклического ожидания в случаях, когда выполнены первые три условия возникновения тупика.
Методы обнаружения активно используют графы распределения ресурсов.

Проблема: визуально обнаружить тупик легко, програмно – сложнее


Слайд 9Восстановление после тупиков
Обнаружив тупик, можно вывести из него систему, нарушив

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

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


Слайд 10ВОПРОСЫ?
http://iit.bstu.by/ss


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика