- •Оценка эффективности параллельного алгоритма: ускорение, эффективность, стоимость. Закон Густавсона — Барсиса. Закон Амдаля и его следствия.
- •Парадигмы программирования. Сущность структурного программирования
- •Сущность структурного программирования
- •88.Полные метрические пространства. Поля.
- •Понятие алгоритма, блок-схемы.
- •90.Понятие взаимоблокировки. Условия возникновения взаимоблокировки. Поиск взаимоблокировки. Алгоритмы предотвращения взаимоблокировки для одного и нескольких типов ресурсов.
90.Понятие взаимоблокировки. Условия возникновения взаимоблокировки. Поиск взаимоблокировки. Алгоритмы предотвращения взаимоблокировки для одного и нескольких типов ресурсов.
В кмпьютерных системах существует большое количество ресурсов причём каждый из них может быть использован только одним процессом.
Под ресурсом мы будем подразумевать любой объект предоставления доступом, это может быть и аппаратное устройство и часть информации. Появление двух процессов пытающихся использовать один и тот же ресурс неизбежно приведёт к взаимоблокировке.
Ресурсы при обращении к которым может произойти взаимоблокировка бывают 2-х основных типов:
1.Выгружаемые.
2.Невыгружаемые.
Выгружаемым ресурсом называеться такой ресур который можно безболезнено забирать у владеющего им процесса. Невыгружаемый ресурс-это такой ресурс который нельзя забрать от текущего владельца не уничтожив результаты вычислений.
Для предоставления ресурса используеться следующая схема:
1.Запрос ресурсов
2.Использование ресурсов.
3.Возврат ресурсов.
Если некоторый ресурс в тот момент когда он требуеться являеться недоступным то запрашивающий его процесс помещаеться в режим ожидания. В некоторых о.с. при неудачном обращении к ресурсу процесс будет автоматически заблокирован и возобновиться после того когда ресурс освобоиться. В других о.с. в случаи ошибки запроса ресурсов вызывающий процесс останиться активным и немного подождав совершит новый запрос.
Введение в теорию блокировки.
Взаимоблокировку или тупиковую ситкацию формально можно определить так. Группа процессов находиться в тупиковой ситуации если каждый процесс из группы ожидает события которое может вызвать только другой процесс из тойже группы.
Условия взаимоблокировки.
1.Условия взаимного исключения(каждый ресурс либозанят ровно одним процессом либо свободен).
2.Условие удержания и ожидания(процессы которые удерживают полученные ранее ресурсы могут запрашивать новый ресурс).
3.Условие отсутствия принудительной выгрузки(у процесса нельзя принудительным образом забрать ранее полученный ресурс они могут быть получены только добравольно).
4.Условия циклического ожидания(должна существовать круговая последовательность из двух и более процессов каждый из которых ждёт доступа к удерживаемому ресурсу).
В случаи столкнавения со взаимоблокировкой возможно использования 4-х различных стратегий:
1.Принебрежение продлемы. Недостатком данной стратегии являеться то что в случаи игнарирования проблемы со временем она сома может проигнорировать действия пользователя.
2.Денамическое избежание тупиковых ситуаций. Ресурсы распределяються таким образом чтобы избежать взаимоблокировки.
3.Предотвращение взаимоблокировки с помощью опровержения одного из существующих условий взаимоблокировки.
Рассмотрим стратегии подробней.
1.Страусовый алгоритм. В данном случаии создатели о.с. при её разработки просто не учитывают возможность взаимоблокировки в следствии того что вероятность её возникновения минимальна. Например о.с. имеет 100 ячеек процессов, пользователь запускает однавременно десять процессов каждый из них кроме одного создают 9 дочерних а последний 11 дочерних, в результате возникает взаимоблокировка. 3)Обнаружение и устранения взаимоблокировок. Данная стратегия представляет собой ситуацию когда взаимоблокировке разрешаеться произойти,а за тем совершаються некоторые дествия для возврата системы состояние имевшее место непосредственно перед взаимоблокировкой. 1.Обнаружение взаимоблокировки при наличии одного ресурса каждого типа. Предположим что в системе имееться по одной еденице каждого ресурса. Возможны в этом случаи два варианта обнаружения взаимоблокировки. а)Система проверяеться каждый раз когда запрашиваеться ресурс. б)Система проверяеться каждые n минут, либо в случаи если нагрузка на проц меньше некого процентного соотношения.
2.Обнаружение взаимоблокировки в системе с несколькими типами одинаковых ресурсов. Предположим существует несколько едениц ресурсов каждого типа, методика обнаружения остаёться подобной из пункта 1. Возможен откат системы на придыдущее состояние.
3.Выход из взаимоблокировки. Предположим при использовании данной стратегии была успешно обнаружена взаимоблокировка. Необходим некоторый метод ёдля возврата системы в рабочем состоянии. Иногда можно временно отобрать ресурс у его текущего владельца и отдать его другому процессу. Во многих случаях при этом требуеться ручное вмешательство особенно в о.с. пакетной обработки работающих на manfreime. В том случаи если разработчики о.с. знают о том что есть вероятность появления взаимоблокировок они могут организовать работу таким образом чтобы процессы создавали контрольные точки. Создание контрольной точки означает что состояние данного процесса записываеться в специальный файл с помощью которого возможно возабновление работы процесса с текущего места. б)Востановление путём уничтожения процессов. В случаии возникновения взаимоблокировки наиболее простым решением является уничтожение какого либо из процессов попавшего в этот цикл. При хорошем визении остальные процессы смогут продолжить свою работу.
4.Избежание взаимоблокировки. Рассматривая обнаруженияе взаимоблокировок становиться очевидно что каждый процесс запрашивает не все ресурсы сразу а по одному. При данной стратегии система должна решать являеться ли безопасным предоставление данного ресурса или же нет и предоставлять его только в первом случаии. 4)Безопасные и небезопасные состояния. Безопасным являеться состояние которое незаведомо тупиковое и существует некоторый порядок планирования при котором каждый из процессов может успешно завершить свою работу даже если все остальные потребуют максимальное количество ресурсов.
