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

Вопрос 25. Обходы тупиков. Алгоритм банкира. Примеры.

Методы обхода тупика можно считать методами предотвращения тупика, но не при проектировании системы, а в процессе ее функционирования.

Наиболее известным алгоритмом предотвращения тупика (или его обхода) является “алгоритм банкира”, предложенный Дейкстрой. Этот алгоритм как бы имитирует действия банкира, который, обладая определенным капиталом, выдает ссуды и принимает платежи.

Банкир (ведет себя соответственно). Клиенты – процессы.

При удовлетворении запроса – ресурс выделяется, если система останется в надежном состоянии.

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

Недостатки алгоритма:

а) для каждого процесса, необходимо указать максимальное количество ресурсов, необходимых для выполнения (сообщается «банкиру» – ОС). При динамическом распределении ресурсов трудно оценить максимальные потребности пользователей.

б) он требует, что бы число работающих пользователей оставалось постоянным.

в) не слишком корректное использование конечного времени выполнения.

г) алгоритм требует, чтобы клиенты гарантированно возвращали ресурсы. В реальных системах требуются гораздо более конкретные гарантии.

ПРИМЕР 1: пусть всего имеется 12 ресурсов.

Выделено ресурсов

МАХ

Поток 1

1

4

Поток 2

4

6

Поток 3

5

8

В сумме по таблице выделено 1+4+5 = 10, значит 12 – 10 = 2 – резерв.

Надежное состояние, так как потоку  2 можно отдать резерв, он завершится и освободит ресурсы, которые можно перераспределить между 1 и 3.

В ненадежное состояние система перейдет, если первый поток запросит 2 ресурса и они ему будут выделены.

ПРИМЕР 2: пусть всего имеется 12 ресурсов.

Выделено ресурсов

МАХ

Поток 1

8

10

Поток 2

2

5

Поток 3

1

3

В сумме по таблице выделено 8+2+1 = 11, значит 12 – 11 = 1 – резерв.

Ненадежное состояние.