Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Условия возникновения тупиков

Читайте также:
  1. Hарушение условия кругового ожидания
  2. I 4. Условия эффективности педагогической оценки
  3. III. Безопасность в условиях технологичных чрезвычайных ситуаций (ТЧС).
  4. VI. Условия для игры.
  5. XX съезд КПСС о культе личности Сталина: понятие, причины возникновения, последствия, меры по преодолению.
  6. Абсолютная монархия в Англии. Предпосылки возникновения, общественный и государственный строй. Особенности английского абсолютизма.
  7. Анализ инвестиционных проектов в условиях инфляции
  8. Аттестация рабочих мест по условиям труда
  9. Аудиторские организации, индивидуальные аудиторы не вправе осуществлять действия, влекущие возникновение конфликта интересов или создающие угрозу возникновения такого конфликта.
  10. БЕЗОПАСНЫЕ УСЛОВИЯ ТРУДА

 

Условия возникновения тупиков были сформулированы Коффманом, Элфиком и Шошани в 1970 г.

Условие взаимоисключения (Mutual exclusion). Одновременно использовать ресурс может только один процесс.

Условие ожидания ресурсов (Hold and wait). Процессы удерживают ресурсы, уже выделенные им, и могут запрашивать другие ресурсы.

Условие неперераспределяемости (No preemtion). Ресурс, выделенный ранее, не может быть принудительно забран у процесса. Освобождены они могут быть только процессом, который их удерживает.

Условие кругового ожидания (Circular wait). Существует кольцевая цепь процессов, в которой каждый процесс ждет доступа к ресурсу, удерживаемому другим процессом цепи.

 

Для образования тупика необходимым и достаточным является выполнение всех четырех условий.

 

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

Основные направления борьбы с тупиками

 

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

 

Итак, основные направления борьбы с тупиками:

· Игнорирование проблемы в целом

· Предотвращение тупиков

· Обнаружение тупиков

· Восстановление после тупиков

· Игнорирование проблемы тупиков

 

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

 

Любая ОС, имеющая в ядре ряд массивов фиксированной размерности, потенциально страдает от тупиков, даже если они не обнаружены. Таблица открытых файлов, таблица процессов, фактически каждая таблица являются ограниченными ресурсами. Заполнение всех записей таблицы процессов может привести к тому, что очередной запрос на создание процесса может быть отклонен. При неблагоприятном стечении обстоятельств несколько процессов могут выдать такой запрос одновременно и оказаться в тупике.

 


<== предыдущая страница | следующая страница ==>
Введение. В предыдущих лекциях мы рассматривали способы синхронизации процессов, которые позволяют процессам успешно кооперироваться | Следует ли отказываться от вызова CreateProcess, чтобы решить эту проблему?

Дата добавления: 2014-02-26; просмотров: 692; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.004 сек.