Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Все ответы.doc
Скачиваний:
18
Добавлен:
09.09.2019
Размер:
3.79 Mб
Скачать

64 Алгоритм банкира

Предположим, что у системы в наличии n устройств, например лент. Суть алгоритма состоит в следующем.

ОС принимает запрос от пользовательского процесса, если его максимальная потребность не превышает n.

Пользователь гарантирует, что если ОС в состоянии удовлетворить его запрос, то все устройства будут возвращены системе в течение конечного времени.

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

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

Рассмотрим пример надежного состояния для системы с тремя пользователями и 12-ю устройствами, где 10 устройств задействовано, а 2 имеется в наличии. Пусть текущая ситуация такова:

 

Текущее количество

Максимальная потребность

Первый пользователь

1

4

Второй пользователь

4

6

Третий пользователь

5

8

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

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

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

У алгоритма банкира имеются серьезные недостатки, из-за которых разработчик может выбрать другой подход для решения проблемы тупиков:

Алгоритм  банкира исходит из фиксированного количества ресурсов.

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

Данный алгоритм требует, чтобы распределитель гарантированно удовлетворял запросы за конечный период времени. Очевидно, что для реальных систем нужны более конкретные гарантии.

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

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

65 Алгоритм банкира для несколько видов ресурсов

 Алгоритм банкира:

Банкиру поступает запрос от клиента на получение кредита

Банкир проверяет, приводит ли этот запрос к небезопасному состоянию.

Банкир в зависимости от этого дает или отказывает в кредите.

Алгоритм банкира

 Рассмотрим систему:

вектора:  E=(6342)-существующиересурсы P=(5322)-занятыересурсы A=(1020) - доступные ресурсы

Алгоритм поиска безопасного или небезопасного состояния (нескольких видов ресурсов):

 

Если состояние безопасное то ресурс дать можно, если нет то нельзя.

На практике все эти алгоритмы тяжело реализовать.

Алгоритм банкира можно обобщить для управления системой с несколькими видами ресурсов. (из методы)

Пусть заданы матрица текущего распределения ресурсов A, матрица запросов F, вектор существующих ресурсов Y , вектор доступных ресурсов X, вектор занятых ресурсов P. Тогда алгоритм проверки безопасности состояния системы состоит из следующих шагов:

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

2. Процесс, выбранный на первом шаге, запрашивает требуемые ресурсы и завершает свою работу. Причем этот процесс отмечается как завершенный и все его ресурсы прибавляются к вектору X.

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