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

Тупики и методы борьбы с ними

Виртуальные машины | Цели и задачи мультипрограммирования. | Понятие ядра ОС | Понятия процесса и потока | Алгоритмы с применением прерываний процессов и без них. | Понятие ресурса. Оперативно перераспределяемые и оперативно неперераспределяемые ресурсы | Распределение ресурсов и управление ресурсами как функция ОС | Понятие взаимоисключения нескольких процессов и критические участки | Алгоритмы взаимоисключения Деккера и Петерсона. | Мониторы ресурсов и реализация взаимоисключения на мониторах |


Читайте также:
  1. I. . Психология как наука. Объект, предмет и основные методы и психологии. Основные задачи психологической науки на современном этапе.
  2. I. Культурология как наука. Предмет. Место. Структура. Методы
  3. I. Методы исследования ПП
  4. I.Методы формирования соц-го опыта.
  5. III. Методы ведения переговоров.
  6. III. Основные методологические принципы и методы педагогики
  7. Абстрактные методы, абстрактные классы.

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

Предположим, что процессам А и Б, работающим в системе, для выполнения своей работы необходимы ресурсы Р1 и Р2, причём каждый из этих ресурсов не может разделяться между процессами и, кроме того, является оперативно неперераспределяемым (Критический пример тупика).

Пусть процесс А запросил и получил в своё распоряжение ресурс Р1. После этого закончился его квант времени, и управление получил процесс Б. Процесс Б запросил и получил в своё распоряжение ресурс Р2. После этого процесс Б запрашивает ресурс Р1, но не может его по­лучить, так как ресурс уже занят процессом А, и должен ожидать освобождения ресурса Р1. Получив управление, процесс А запрашивает ресурс Р2, но не может его получить, так как ресурс уже занят процессом Б.

Оба процесса будут ожидать освобождения необходимых им ре­сурсов, но это событие никогда не наступит.

Для того, чтобы в системе возник тупик, необходимо выполнение всех следующих условий:

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

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

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

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

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

- игнорирование проблемы в целом;

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

- обход тупиков;

- обнаружение тупиков;

- восстановление после тупиков.

Метод игнорирования проблемы возникновения тупиков основан на том, что возникновение тупиков — не такое уж частое событие. Игнорирова­ние проблемы возникновения тупиков позволяет создать более про­изводительную, более удобную и комфортную для программистов и пользователей систему. Однако не во всех системах эту проблему можно игнорировать. Например, возникновение тупиков недопустимо в системах РВ.


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


<== предыдущая страница | следующая страница ==>
Реализация взаимоисключения на аппаратном уровне| Нарушение принципа отсутствия перераспределения

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