Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Взаимоблокировки. Обнаружение и устранение взаимоблокировок. Предотвращение взаимоблокировок.Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Взаимоблокировка процессов
Взаимоблокировка процессов может происходить, когда несколько процессов борются за один ресурс. Ресурсы бывают выгружаемые и невыгружаемые, аппаратные и программные. Выгружаемый ресурс - этот ресурс безболезненно можно забрать у процесса (например: память). Невыгружаемый ресурс - этот ресурс нельзя забрать у процесса без потери данных (например: принтер). Проблема взаимоблокировок процессов возникает при борьбе за невыгружаемый ресурсы.
Условия необходимые для взаимоблокировки:
. Обнаружение и устранение взаимоблокировок. Избежание взаимобло-кировок
Алгоритмы обнаружения взаимоблокировок с целью их последующего устранения можно представить в виде моделей (графов). Структурными единицами графов будем считать:
На такой модели очень хорошо проверить возникает ли взаимоблокировка. Если есть цикл, значит, есть и взаимоблокировка. При последовательном выполнении процессов взаимоблокировка не возникает (рис. 3.12). Рис. 3.12. Отсутствие взаимоблокировки при последовательном выполнении процессов
При циклическом выполнении процессов возникает взаимоблокировка (рис. 3.13).
Рис. 3.13. Возникновение взаимоблокировки при циклическом выполнении процессов
Рассмотрим тот же самый случай, но допустим, что система, зная о предстоящей взаимоблокировке, заблокирует процесс B (рис. 3.14).
Рис. 3.14. Устранение взаимоблокировки системой при циклическом выполнении процессов
Как видно из рис.3.14, в данном случае взаимоблокировки не возникает.
Для избежания взаимоблокировок существуют следующие стратегии:
В первом случае, если вероятность взаимоблокировки очень мала, то ею легче пренебречь, т.к. код исключения может очень усложнить ОС и привести к большим ошибкам. Также многие взаимоблокировки тяжело обнаружить. Этот алгоритм используется как в UNIX, так и в Windows. Поэтому (и не только) на серверах часто устанавливают автоматическую перезагрузку (раз в сутки, как правило ночью), если возникнет взаимоблокировка, то после перезагрузки ее не будет. Во втором случае система не пытается предотвратить взаимоблокировку, а пытается обнаружить ее и устранить. Обнаружить взаимоблокировку можно:
После обнаружения взаимоблокировки возможны следующие способы выхода из нее:
В третьем случае ОС должна знать наперед, является ли предоставление ресурса безопасным или нет.
. Предотвращение взаимоблокировок
Для возникновения взаимоблокировок необходим ряд условий. Предотвращение этих условий предотвратит и сами взаимоблокировки. Предотвращение условия взаимного исключения состоит в минимизации количества процессов, борющихся за ресурсы. Предотвращение условия удержания и ожидания состоит в том, что процесс должен запрашивать все необходимые ресурсы до начала работы. Если хоть один ресурс недоступен, то процессу вообще ничего не предоставляется Предотвращение условия отсутствия принудительной выгрузки ресурса состоит в том, что система разрешает выгружать ресурсы. Предотвращение условия циклического ожидания осуществляется следующими способами:
|
|||||||
Последнее изменение этой страницы: 2017-02-06; просмотров: 2815; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 52.14.176.111 (0.01 с.) |