ВУЗ:
Составители:
2) распределяет конкретное физическое устройство, соответствующее этому имени, источнику запроса;
3) помечает ресурс в соответствующей таблице как выделенный (занятый, распределенный).
Распределенный ресурс не может быть выделен другим процессам, выполняющимся в системе, пока процесс, которому
этот ресурс выделен, не освободит его или не прекратит свое существование.
Данный алгоритм прост в реализации, однако обладает серьезным недостатком – при его применении возможно появ-
ление тупиковых ситуаций в вычислительной системе. Поэтому этот алгоритм называют также алгоритмом с возможным
возникновением тупиков.
3.4.3.3. АЛГОРИТМЫ ПРЕДОТВРАЩЕНИЯ ТУПИКОВ
Все алгоритмы предотвращения тупиковых ситуаций при управлении ресурсами основаны на нарушении хотя бы одно-
го из необходимых условий наличия тупика Д. Хавендером (Havender J.W.) предложены следующие стратегии:
1) каждый процесс должен запрашивать все требуемые ему ресурсы сразу, причем не может начать выполняться до тех
пор, пока все они не будут ему предоставлены;
2) если процесс, удерживающий определенные ресурсы, получает отказ в удовлетворении запроса на дополнительные
ресурсы, этот процесс должен освободить свои первоначальные ресурсы и при необходимости запросить их снова вместе с
дополнительными;
3) введение линейной упорядоченности по типам ресурсов для всех процессов; другими словами, если процессу выде-
лены ресурсы данного типа, то в дальнейшем он может запросить только ресурсы более далеких по порядку типов.
Можно видеть, что каждая из этих стратегий нарушает одно из необходимых условий существования тупика. Созна-
тельно оставлено условие монопольного владения процессом выделенными ему ресурсами, поскольку нужно предусмотреть
возможность работы с
закрепленными ресурсами.
Алгоритм предварительного распределения ресурсов в соответствии с первым стратегическим принципом Хавендера
требует, чтобы процесс сразу же запрашивал все ресурсы, которые ему понадобятся. Система в ответ на эти запросы должна
представлять ресурсы по принципу "все или ничего", т.е. если набор ресурсов, необходимый процессу, имеется, то система
предоставляет процессу все эти ресурсы сразу же так, что он может продолжить свою работу. Если в данный момент време-
ни полного набора ресурсов нет, то этому процессу придется ждать, пока они не освободятся.
В алгоритме распределения ресурсов с освобождением при отказе процесс, имеющий в своем распоряжении некото-
рые ресурсы, если он получает отказ на запрос о выделении дополнительных ресурсов, должен освободить все принадлежа-
щие ему ресурсы и при необходимости запрашивать их снова вместе с дополнительными. Такая ситуация действенно ведет к
нарушению условия неперераспределяемости, подобным образом можно забирать ресурсы у удерживающих их процессов до
завершения этих процессов.
Алгоритм распределения с линейным упорядочением по типам ресурсов
предусматривает предварительное присвое-
ние всем ресурсам вычислительной системы уникальных номеров.
Процессы в ходе своего выполнения должны запрашивать необходимые им ресурсы строго в порядке возрастания но-
меров этих ресурсов, так что ситуация кругового ожидания возникнуть не может.
3.4.3.4. АЛГОРИТМЫ ОБХОДА ТУПИКОВ
Если даже необходимые условия возникновения тупиков не нарушены, то все же имеется возможность избежать тупи-
ковой ситуации, рационально распределяя ресурсы с соблюдением определенных правил. Наиболее известными алгоритма-
ми, позволяющими осуществить обход тупиков, являются алгоритм Дейкстры, называемый также алгоритмом банкира, и
алгоритм Хабермана, называемый алгоритмом регулируемого распределения.
Алгоритм регулируемого распределения основан на представлении распределения ресурсов, запросов и процессов в виде
ориентированного графа (орграфа), называемого графом распределения ресурсов (ГРР).
Правило Хабермана: Если граф распределения ресурсов имеет циклы, то такое распределение ресурсов по процессам
может привести к образованию тупиковой ситуации.
Это правило позволяет построить следующий алгоритм распределения ресурсов:
• при поступлении очередного запроса проверить наличие свободного ресурса;
• если свободный ресурс отсутствует, то отказ, процесс блокировать, иначе сделать предварительное распределение и
скорректировать ГРР;
• проверить ГРР на наличие циклов;
• если в ГРР имеются циклы, то отменить предварительное распределение, восстановить ГРР, сформировать отказ и
блокировать процесс, иначе закрепить ресурс за процессом.
Алгоритм Хабермана позволяет обойти тупики, однако он сложен в реализации из-за необходимости работы с графом
распределения
ресурсов.
Контрольные вопросы к теме 3
1. Описать организацию управления в ОС.
2. Перечислить дисциплины обслуживания.
3. Перечислить режимы обслуживания.
4. Описать средства управления задачами на уровне внешнего планирования.
5. Дать определение понятия "контекст процесса".
Страницы
- « первая
- ‹ предыдущая
- …
- 37
- 38
- 39
- 40
- 41
- …
- следующая ›
- последняя »
