Алгоритм Банкира в Operaтинговая система [Пример]
Что такое алгоритм банкира?
Алгоритм Банкира используется в основном в банковской системе, чтобы избежать тупика. Это помогает вам определить, будет ли выдан кредит или нет.
Этот алгоритм используется для проверки безопасного моделирования распределения для определения максимальной суммы, доступной для всех ресурсов. Он также проверяет все возможные действия, прежде чем определить, следует ли продолжать распределение или нет.
Например, имеется X владельцев счетов конкретного банка, а общая сумма денег на их счетах равна G.
Когда банк оформляет автокредит, программная система вычитает сумму кредита, предоставленного на покупку автомобиля, из общей суммы денег (G+ Фиксированный депозит + Схема ежемесячного дохода + Золото и т. д.), которыми располагает банк.
Он также проверяет, превышает ли разница G или нет. Он обрабатывает автокредит только тогда, когда в банке достаточно денег, даже если все владельцы счетов снимают деньги G одновременно.
Обозначения алгоритма банкира
Вот важное обозначение, используемое в алгоритме Банкера:
- X: указывает общее количество процессов системы.
- Y: указывает общее количество ресурсов, присутствующих в системе.
Доступен
[I:Y] указывает, какой ресурс доступен.
Max
[l:X,l:Y]: выражение максимального количества ресурсов типа j или процесса i.
распределение
[л:Х,л:Y]. Укажите, в каком процессе вы получили ресурс типа j
Необходимость
Выразите, сколько еще ресурсов можно выделить в будущем
Пример алгоритма Банкира
Предположим, что у нас есть следующие ресурсы:
- 5 флэш-накопителей
- 2 принтеров
- 4 сканера
- 3 жестких диска
Здесь мы создали вектор, представляющий общее количество ресурсов: Доступно = (5, 2, 4, 3).
Предположим, что имеется четыре процесса. Доступные ресурсы уже распределены в соответствии с приведенной ниже матричной таблицей.
Имя процесса | Пен Диски | Принтер | Сканер | жесткий диск |
---|---|---|---|---|
P | 2 | 0 | 1 | 1 |
Q | 0 | 1 | 0 | 0 |
R | 1 | 0 | 1 | 1 |
S | 1 | 1 | 0 | 1 |
Всего | 4 | 2 | 2 | 3 |
Здесь выделенные ресурсы — это сумма этих столбцов:
Выделено = (4, 2, 2, 3).
Мы также создаем матрицу для отображения количества каждого ресурса, необходимого для всех процессов. Эта матрица называется Необходимость= (3,0,2,2)
Имя процесса | Пен Диски | Принтер | Сканер | жесткий диск |
---|---|---|---|---|
P | 1 | 1 | 0 | 0 |
Q | 0 | 1 | 1 | 2 |
R | 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) Необходимость
- Алгоритм запроса ресурсов позволяет вам представить поведение системы, когда определенный процесс выполняет запрос ресурса.
- Алгоритм Банкира хранит множество ресурсов, удовлетворяющих требованиям хотя бы одного клиента.
- Самый большой недостаток алгоритма банкира заключается в том, что он не позволяет процессу изменять свою максимальную потребность во время обработки.