Обход тупиков, алгоритм банкира. Обнаружение тупиков и восстановление системы.
Исключение условий (100%) возникновения тупика. Часто приводит к нерациональному расходованию ресурсов. Требуется исключение только одного из условий Хавендера. Оправдано в тех системах, где нужно 100% исключить вероятность возникновения. Недостаток: дорого.
2) метод обходов. При этом допускается вероятность возникновения тупика, но при выделении ресурсов оценивается состояние вычислительной системы и принимается решение о выделении и не выделении ресурса (алгоритм банкира).Алгоритм банкира.
Банкир (ведет себя соответственно). Клиенты – процессы.
При удовлетворении запроса – ресурс выделяется, если система останется в надежном состоянии. Надежное состояние – если все процессы системы в течение конечного времени смогут завершить свою работу. Недостатки алгоритма: а) для каждого процесса, необходимо указать максимальное количество ресурсов, необходимых для выполнения (сообщается «банкиру» - ОС). При динамическом распределении ресурсов трудно оценить максимальные потребности пользователей. б) он требует, что бы число работающих пользователей оставалось постоянным. в) не слишком корректное использование конечного времени выполнения. г) алгоритм требует, чтобы клиенты гарантированно возвращали ресурсы. В реальных системах требуются гораздо более конкретные гарантии. ПРИМЕР 1: пусть всего имеется 12 ресурсов.
Выделено ресурсов |
МАХ |
|
Поток 1 |
1 |
4 |
Поток 2 |
4 |
6 |
Поток 3 |
5 |
8 |
Выделено ресурсов |
МАХ |
|
Поток 1 |
8 |
10 |
Поток 2 |
2 |
5 |
Поток 3 |
1 |
3 |
- Увеличивается количество одновременно выполняющихся процессов.
- Ресурсы распределяются динамически (во время выполнения программы).
- Увеличивается количество типов ресурсов (сейчас данные рассматриваются как ресурс).