Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
17_Взаимоблокировки._Предо...doc
Скачиваний:
8
Добавлен:
21.09.2019
Размер:
238.59 Кб
Скачать

Урок 18

Тема: Распределение ресурсов

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

  2. Обнаружение и устранение взаимоблокировок

  3. Избежание взаимоблокировок

  4. Предотвращение взаимоблокировок

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

Тупик - ситуация, которая никогда не разрешится, т.е. процесс ждет ресурса, но он ему не будет выделен. ОС в состоянии тупика ("зависание") - когда несколько процессов находятся в состоянии тупика. Простая тупиковая ситуация в ОС: Пусть имеются 2 процесса A и B, которым перед началом работы предоставлены ресурсы P1 и P2 соответственно. В какой-то момент времени процессу A понадобился P2, а процессу B - P1, но они их не получат, т.к. они удерживаются предыдущими процессами => наступила простая тупиковая ситуация в ОС. Правила предотвращения тупиков в ОС:

  1. Прежде чем процесс начнет свою работу, ему должны быть предоставлены все требуемые ресурсы.

  2. В том случае, если во время работы ему понадобился дополнительный ресурс, ему необходимо возвратить все ранее выделенные ресурсы ОС и затем запросить все требуемые ресурсы с этим дополнительным ресурсом.

Бесконечное откладывание процесса. В системе, где процессам приходится ждать пока она выделит ему требуемый ресурс может возникнуть ситуация, что будут приходить процессы с более высоким приоритетом, требующие тот же самый ресурс - ситуация бесконечного откладывания процесса. В некоторых ОС данная ситуация предотвращается благодаря увеличению приоритетности ("старению" процесса) для того, чтобы ему был предоставлен требуемый ресурс, после чего приоритет понижается до прежнего уровня.

Процесс находится в состоянии тупика, если он ожидает события, которое никогда не произойдет. “Зависание” системы – ситуация, когда один или более процессов находятся в состоянии тупика.

Операционная система выполняет по преимуществу функции администратора ресурсов. Она отвечает за распределение обширных наборов ресурсов различных типов. Рассмотрим ресурсы, которые являются “оперативно-перераспределяемыми” такие как центральный процессор и основная память. В вычислительной машине самым динамическим ресурсом является центральный процессор. ЦП должен работать в режиме быстрого переключения, обслуживая большое число конкурирующих процессов, чтобы все они могли двигаться в приемлемой скоростью. Если конкретный процесс достигает точки, когда он не может эффективно использовать ЦП, то право управления центральным процессором отбирается у этого процесса и предоставляется другому. Таким образом, организация динамического переключения ресурсов является исключительно важным фактором для обеспечения работы мультипрограммных вычислительных машин.

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

  1. Процессы требуют предоставления им права монопольного управления ресурсами, которые им выделяются (условие взаимоисключения).

  2. Процессы удерживают за собой ресурсы, уже выделенные им, ожидая в то же время дополнительных ресурсов (условие ожидания ресурсов).

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

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

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

4 основных направления:

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

  • Обход тупиков;

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

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

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

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

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

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