Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

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

Db 0 ; конец дополнительного окружения | Взаимодействие процессов | Взаимное исключение процессов | Критические интервалы | Синхронизация процессов | Синхронизация на основе P и V операций | Монитор Хоара | Почтовые ящики | Очереди | Очереди и почтовые ящики в WINDOWS |


Читайте также:
  1. Восстановление после тупиков
  2. Игнорирование проблемы тупиков
  3. Обнаружение тупиков
  4. Способы предотвращения тупиков путем тщательного распределения ресурсов. Алгоритм банкира
  5. Тупиковые ситуации

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

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

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

Условие "ожидания" можно подавить, если все ресурсы выделять процессу одним разом. Это выполнено в ОS/360 (ОС ЕС) для ОП, ПУ и файлов. Но здесь каждый процесс должен ждать до тех пор, пока не получит все ресурсы. Кроме того, есть ресурсы, необходимость в которых определяется только в процессе выполнения программы.

Условие "отсутствия перераспределения" можно исключить, позволяя ОС отнимать у процесса ресурсы, часть или все. Пусть это и дорогая цена, но не нужно будет перезагружать ОС и начинать все программы с начала. В ОС ЕС есть возможность самому процессу отказаться на время от какого-либо ресурса, если он уже занят. Но это возможно только для ресурсов, запрашиваемых самой программой. Для этого ОС сразу после запроса (после оператора Р(S)) сообщает программе о выделении ресурса или его занятости. Процесс, получивший ответ ОС о занятости, идет по ветке программы, если ее предусмотрел программист, где просто делается попытка периодически узнавать у ОС об освобождении ресурса.

Условие "кругового ожидания" можно исключить, используя иерархическое выделение ресурсов, когда ресурсы распределяются по типам и между ними устанавливаются отношения подчиненности. Если тип i меньше типа j, то тип i нельзя выделить после типа j. Кругового ожидания не будет, ибо для замыкания круга необходимо, чтобы ресурс из меньшего типа был выделен после большего типа. Если процессу выделены ресурсы данного типа, то в дальнейшем он может запросить ресурсы более далеких по порядку типов. Освобождение процесс делает в обратном порядке: то что позже запрошено, должно быть раньше освобождено (LIFO).

В нашем примере для ПРОЦЕССА А после захвата ресурса 2 нельзя захватывать ресурс 1. Правильная схема захвата и освобождения ресурсов такова:

Р(рес i) - захват ресурса i

...

Р(рес j) - захват ресурса j (j>i)

V(рес j) - освобождение рес j

V(рес i) - освобождение рес i

 

ОС при такой стратегии не позволит запросить ресурс типа i после типа j, если тип i меньше типа j. Однако этот метод не дает никакого выигрыша, если порядок иерархии отличается от порядка, в котором ресурсы необходимы процессам. Например, графопостроитель нужен в начале выполнения, а принтер - только в конце, но принтер по уровню ниже, чем графопостроитель. Тогда его придется выделять до графопостроителя и долгое время не использовать.

Известно, что OS/2 гарантирует, что тупиковой ситуации не будет, так как доступ к ресурсам реализуется ОС с учетом выявления предтупиковых ситуаций и применения мер борьбы с ними.

 

 


Дата добавления: 2015-10-02; просмотров: 62 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Тупиковые ситуации| Простое непрерывное распределение ОП

mybiblioteka.su - 2015-2024 год. (0.01 сек.)