Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Взаимоблокировки

В компьютерной системе существует большое количество ресурсов, каждый из которых может использоваться в конкретный момент времени только одним процессом. Часто процесс для выполнения задачи нуждается в исключительном доступе не к одному, а к нескольким ресурсам. Предположим, что имеется два процесса A и B. Процесс A имеет в исключительном доступе ресурс R1, процесс B – ресурс R2. Если при этом процессу A для продолжения работы потребуется ресурс R2, то его запрос на получение ресурса будет отклонен до тех пор, пока ресурс не будет освобожден процессом B. Если же процессу B для продолжения работы окажется необходимым иметь в исключительном доступе ресурс R 1, то и процесс B окажется, как и процесс A, заблокированным. Такая ситуация называется тупиком, тупиковой ситуацией или взаимоблокировкой.

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

Взаимоблокировки касаются невыгружаемых ресурсов. Потенциальные тупиковые ситуации, в которые вовлечены выгружаемые ресурсы, обычно можно разрешить с помощью перераспределения ресурсов от одного процесса другому. Взаимоблокировки или тупиковые ситуации формально можно определить так: группа процессов находится в тупиковой ситуации, если каждый процесс из группы ожидает события, которое может вызвать только другой процесс из той же группы. Так как все процессы находятся в состоянии ожидания при возникновении блокировки, то ни один из них не будет причиной какого-либо события, которое могло бы активировать любой другой процесс в группе, и все процессы продолжат ждать до бесконечности. В этой модели предполагается наличие только одного потока у каждого процесса и отсутствие прерываний, способных активизировать заблокированный процесс. Условие отсутствия прерываний необходимо, чтобы предотвратить ситуацию, когда тот или иной заблокированный процесс активизируется и затем приводит к событию, которое освободит другие процессы в группе. В большинстве случаев событием, которого ждет каждый процесс, является возврат какого-либо ресурса, в данный момент занятого другим участником группы. Для возникновения взаимоблокировки должны выполняться 4 условия:

Условие взаимного исключения. Каждый ресурс в данный момент времени или отдан одному процессу, или доступен.

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

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

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

Чтобы произошла взаимоблокировка, должны выполниться все четыре условия. Если хоть одно условие отсутствует, тупиковая ситуация невозможна.

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

При взаимоблокировках используются четыре стратегии:

1. Пренебрежение проблемой в целом. Если Вы проигнорируете проблему, возможно, затем она проигнорирует Вас.

2. Обнаружение и восстановление. При взаимоблокировке обнаружить ее и предпринять какие-либо действия.

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

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

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

 

 

Контрольные вопросы

1. Необходимые требования к ОС для обеспечения предсказуемости.

2. ОСРВ с монолитной архитектурой.

3. ОСРВ на основе микроядра.

4. Объектно-ориентированная ОСРВ?

5. Дайте определение алгоритма планирования?

6. В каких случаях необходима синхронизация?

7. Что такое связанные задачи?

8. Что такое ресурс?

9. Что такое критические секции?

10. С какими проблемами можно столкнуться в борьбе за ресурсы?

11. Что такое асинхронное взаимодействие? Преимущества и недостатки.

12. Что такое прерывание? Как оно работает?

13. Методы обработки прерываний в ОСРВ?

14. Как осуществляется аппаратная защита памяти?

15. Что такое исключение?

16. Что такое утечка памяти?

17. Как обрабатываются исключения в ядре ОС?

18. Чем характеризуется надежность ОСРВ?

ГЛАВА 2. ТИПОВЫЕ ОПЕРАЦИОННЫЕ СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ

<== предыдущая лекция | следующая лекция ==>
Планирование периодических процессов | Обзор систем реального времени
Поделиться с друзьями:


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


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



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




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