Алгоритм Банкира в операционной системе (пример)

Содержание:

Anonim

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

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

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

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

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

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

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

  • Что такое алгоритм банкира?
  • Обозначения алгоритмов банкира
  • Пример алгоритма Банкира
  • Характеристики алгоритма банкира
  • Недостаток алгоритма Банкира

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

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

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

Имеется в наличии

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

Максимум

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

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

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

Необходимость

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

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

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

  • 5 флеш-накопителей
  • 2 принтера
  • 4 сканера
  • 3 жестких диска

Здесь мы создали вектор, представляющий общие ресурсы: Доступно = (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) Потребность
  • Алгоритм запроса ресурса позволяет вам представить поведение системы, когда конкретный процесс делает запрос ресурса.
  • Алгоритм банкира хранит множество ресурсов, удовлетворяющих потребности хотя бы одного клиента.
  • Самый большой недостаток алгоритма банкира в том, что он не позволяет процессу изменять свою максимальную потребность во время обработки.