Регистры

ЛЕКЦИЯ 14. Регистры, счетчики

Предотвращение тупиков за счет условия возникновения тупиков.

Нарушение условия взаимоисключения.

В качестве примера рассмотрим Принтер:

Извесно, что пытаться осушествлять вывод на принтер могут несколько процессов. Воизбежание этого, организуется промежуточное формирование всех выходных данных процесса на диске. Лишь 1 системный процесс «сервис принтера» отвечающий за вывод документов на печать, реально с ним взаимодействует. Эта схема называется спулингом. Таким образом, принтер становится разделяемым устройством и тупики для него устранены.

Нарушение условия ожидания дополнительных ресурсов.

Этого условия можно избежать потребовав выполнения стратегии двухфазного захвата:

1. В первой фазе процесс должен запрашивать все необходимые ему ресурсы сразу. До тех пор пока они не будут предоставлены. Процесс не может продолжать выполнение.

2. Если в первой фазе некоторые ресурсы которые нужны данному процессу заняты другими процессами, он освобождает все ресурсы что были ему выделены, и пытается повторить первую фазу.

Нарушение условия кругового ожидания.

Один из способов – упорядочить ресурсы, например присвоить всем ресурсам уникальные номера и потребовать что бы процессы запрашивали ресурсы в порядке возрастания.

Тогда круговое ожидание возникнуть не может. После последнего запроса и освобождение всех ресурсов, можно разрешить процессу опять осуществить первый запрос. Пример – создание иерархии спин-блокировок. Спин-блокировка – простейший способ синхронизации, может быть захвачена и освобождена процессом. Классическая тупиковая ситуация: Процессор П1 захватывает Спин-блокировку С1 и претендует на С2, а процесс П2 захватывает С2 и хочет дополнительно захватить С1. Что бы этого избежать все спин-блокировки помещаются в упорядочный список. Захват может осуществляться только в порядке, указанным в списке.

Нарушение условия неперераспределяемости.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: