Учебники

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

Что такое алгоритм банкира?

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

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

Например, существует X количество владельцев счетов конкретного банка, а общая сумма денег на их счетах составляет G.

Когда банк обрабатывает кредит на покупку автомобиля, система программного обеспечения вычитает сумму кредита, предоставленную для покупки автомобиля, из общей суммы денег (G + фиксированный депозит + схема ежемесячного дохода + золото и т. Д.), Которые есть у банка.

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

Из этого руководства по операционной системе вы узнаете:

Обозначения алгоритма банкира

Вот важная нотация, используемая в алгоритме Банкира:

  • X: указывает общее количество процессов в системе.
  • Y: указывает общее количество ресурсов, присутствующих в системе.

Доступный

[I: Y] указывает, какой ресурс доступен.

Максимум

[l: X, l: Y]: выражение максимального количества ресурсов типа j или процесса i.

распределение

[Л: X, L: Y]. Укажите, где процесс вы получили ресурс типа J

Нужно

Укажите, сколько еще ресурсов может быть выделено в будущем

Пример алгоритма банкира

Предположим, что у нас есть следующие ресурсы:

  • 5 Pen Drive
  • 2 принтера
  • 4 сканера
  • 3 жестких диска

Здесь мы создали вектор, представляющий общие ресурсы: Available = (5, 2, 4, 3).

Предположим, что есть четыре процесса. Доступные ресурсы уже распределены согласно матричной таблице ниже.

Имя процесса Пен Диски принтер сканер Жесткий диск
п 2 0 1 1
Q 0 1 0 0
р 1 0 1 1
S 1 1 0 1
Всего 4 2 2 3

Здесь выделенные ресурсы — это сумма этих столбцов:

Выделено = (4, 2, 2, 3).

Мы также создаем матрицу для отображения количества каждого ресурса, необходимого для всех процессов. Эта матрица называется Need = (3,0,2,2)

Имя процесса Пен Диски принтер сканер Жесткий диск
п 1 1 0 0
Q 0 1 1 2
р 2 1 0 0
S 0 0 1 0

Доступный вектор будет:

Доступен = Доступен- Выделен

= (5, 2, 4, 3) — (4, 2, 2, 3)

= (1, 0, 2, 0)

Алгоритм запроса ресурсов

Алгоритм запроса ресурсов позволяет вам представлять поведение системы, когда конкретный процесс делает запрос ресурса.

Позвольте понять это с помощью следующих шагов:

Шаг 1) Когда общий запрашиваемый экземпляр всех ресурсов меньше, чем процесс, переходите к шагу 2.

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

Шаг 3) Ресурс распределяется, как показано в приведенном ниже псевдокоде.

Available = Available – Request (y)
Allocation(x) = Allocation(x) + Request(x)
Need(x) = Need(x) - Request(x)

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

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

Вот важные характеристики алгоритма банкира:

  • Сохраните много ресурсов, которые удовлетворяют требованию по крайней мере одного клиента
  • Всякий раз, когда процесс получает все свои ресурсы, он должен возвращать их в течение ограниченного периода времени.
  • Когда процесс запрашивает ресурс, он должен ждать
  • Система имеет ограниченное количество ресурсов
  • Продвинутая функция для максимального распределения ресурсов

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

Вот минусы / недостатки использования алгоритма банкира

  • Не позволяет процессу изменять свою максимальную потребность во время обработки
  • Это позволяет удовлетворить все запросы в ограниченное время, но один год является фиксированным периодом для этого.
  • Все процессы должны знать и указывать свои максимальные потребности в ресурсах заранее.

Резюме:

  • Алгоритм банкира используется главным образом в банковской системе, чтобы избежать тупиковых ситуаций. Это поможет вам определить, будет ли предоставлен кредит или нет.
  • Обозначения, используемые в алгоритмах банкира: 1) Доступно 2) Макс. 3) Распределение 4) Необходимость
  • Алгоритм запроса ресурсов позволяет вам представлять поведение системы, когда конкретный процесс делает запрос ресурса.
  • Алгоритм банкира хранит множество ресурсов, удовлетворяющих требованиям как минимум одного клиента
  • Самый большой недостаток алгоритма банкира заключается в том, что он не позволяет процессу изменять свою максимальную потребность во время обработки.