Студопедия

КАТЕГОРИИ:


Архитектура-(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. Условие взаимоисключения (процессы требуют монопольного владения ресурсами, им предоставляемыми).
  2. Условие ожидания (процессы удерживают уже выделенные им ресурсы, ожидая выделения дополнительных).
  3. Условие нераспределяемости (ресурсы нельзя отобрать у удерживающих их процессов, пока они не будут использованы).
  4. Условие кругового ожидания (существует кольцевая цепь процессов, в ко­торой каждый процесс удерживает за собой один или более ресурсов, требующихся следующему процессу).

1. Полное игнорирование проблемы ("алгоритм страуса"). В большинстве своем реальные операционные системы не осуществляют борьбу с тупиками, поскольку ресурсов и так достаточно много.

2. Предотвращение тупиков (prevention) — подход, цель которого обеспече­ние условий, исключающих возможность возникновения тупиковой си­туации. Чтобы предотвратить тупик, достаточно нарушить хотя бы одно необходимое условие.

· Первое условие (взаимоисключение) вполне естественно (например, для такого устройства, как накопитель на магнитной ленте).

· Нарушая второе условие (ожидание), процесс должен сразу запросить все ресурсы. Эффективность системы при этом может значительно ухудшиться. В качестве компромиссного решения можно предложить разделять процесс на шаги.

· Нарушить третье условие (нераспределяемость) можно следующим об­разом. Процесс, удерживающий ресурсы и получивший отказ на дру­гие ресурсы, должен освободить все взятые ресурсы, и через некото­рое время запросить их заново. При этом процесс может потерять большую часть проделанной работы.

· Нарушая четвертое условие (кругового ожидания), следует ввести ли­нейную упорядоченность ресурсов, пронумеровав их, и выдавать их в порядке, не допускающим возникновение кругового ожидания. Дан­ный подход требует значительных накладных расходов на хранение информации, связанной с типами ресурсов и упорядоченностью эк­земпляров ресурсов.

3. Обход тупиков (avoidance) — подход, который обеспечивает рациональное распределение ресурсов по рациональным правилам. Он вводит менее жесткие ограничения, чем предыдущий подход. Наиболее известным ме­тодом обхода тупиков является алгоритм банкира:

· Алгоритм банкира имитирует действия банкира, располагающего оп­ределенным источником капитала, выдающего ссуды и принимаю­щего платежи. Алгоритм был предложен Дейкстрой.

· Состояние системы будем называть надежным, если операционная система может обеспечить всем пользователям завершение их задач в течение конечного промежутка времени. Суть алгоритма в том, что система удовлетворяет только те запросы, при которых ее состояние остается надежным. Остальные запросы откладываются.

· Существуют два основных ограничения этого подхода: каждый про­цесс заранее должен указать максимальное количество ресурсов, кото­рое ему понадобится и в каждый момент процесс должен захватывать только один ресурс. Данный алгоритм на практике неприменим из-за его неэффективности, т. к. необходимость в пересчете возникает не­прерывно, при каждом поступлении процесса в систему и его удале­нии для каждой разновидности ресурсов.

4. Обнаружение тупиков (detection) — подход, который допускает возникно­вение тупиков, определяет процессы и ресурсы, которые вовлечены в ту­пиковую ситуацию, и пытается вывести систему из нее.

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




Поделиться с друзьями:


Дата добавления: 2013-12-12; Просмотров: 311; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.