КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Выход из взаимоблокировки
Обнаружение и устранение взаимоблокировок Пренебрежением проблемой в целом (страусовый алгоритм) Методы борьбы с взаимоблокировками Строгое чередование Переменные блокировки Запрещение прерываний Заключается в запрещении всех прерываний при входе процесса в критическую область. Недостаток этого метода в том, что если произойдет сбой процесса, то он не сможет снять запрет на прерывания. Вводится понятие переменной блокировки, т.е. если значение этой переменной равно, например 1, то ресурс занят другим процессом, и второй процесс переходит в режим ожидания (блокируется) до тех пор, пока переменная не примет значение 0. Проблема, как и с процессом печати, после того как первый процесс считает 0, второй может занять процессор и тоже считать 0. Заблокированный процесс находится в режиме активного ожидания, постоянно проверяя, не изменилась ли переменная блокировки.
В этой модели, процессы могут выполняться строго по очереди, используя переменную. Недостатки метода: · Заблокированный процесс постоянно находится в цикле, проверяя, не изменилась ли переменная. · Противоречит третьему условию, когда процесс, находящийся вне критической области, может блокировать другие процессы. Существуют еще алгоритмы с активным ожиданием (алгоритм Петерсона, команда TSL), но у всех них есть общий недостаток - расходуется бесцельно время процессора на циклы проверки изменения переменной.
Четыре стратегии избегания взаимоблокировок: 1. Пренебрежением проблемой в целом (вдруг пронесет). 2. Обнаружение и устранение (взаимоблокировка происходит, но оперативно ликвидируется). 3. Динамическое избежание тупиков. 4. Предотвращение четырех условий, необходимых для взаимоблокировок.
Если вероятность взаимоблокировки очень мала, то ею легче пренебречь, т.к. код исключения может очень усложнить ОС и привести к большим ошибкам. Также многие взаимоблокировки тяжело обнаружить. Этот алгоритм используется как в UNIX, так и в Windows. Поэтому (и не только) на серверах часто устанавливают автоматическую перезагрузку (раз в сутки, как правило, ночью), если возникнет взаимоблокировка, то после перезагрузки ее не будет.
Система не пытается предотвратить взаимоблокировку, а пытается обнаружить ее и устранить. Когда можно искать тупики: · Когда запрашивается очередной ресурс (очень загружает систему) · Через какой-то промежуток времени (в интерактивных системах пользователь это ощутит) · Когда загрузка процессора слишком велика Восстановление при помощи принудительной выгрузки ресурса Как правило, требует ручного вмешательства (например: принтер). Восстановление через откат Состояние процессов записывается в контрольных точках, и в случае тупика можно сделать откат процесса на более раннее состояние, после чего он продолжит работу снова с этой точки. С принтером опять будут проблемы. Восстановление путем уничтожения процесса Самый простой способ. Но с принтером опять будут проблемы. В реальных системах они не годятся.
Дата добавления: 2014-01-05; Просмотров: 1441; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |