Що таке алгоритм Банкіра?
Алгоритм Банкіра використовується в основному в банківській системі, щоб уникнути глухого кута. Це допоможе вам визначити, буде надана позика чи ні.
Цей алгоритм використовується для перевірки безпечного моделювання розподілу для визначення максимальної суми, доступної для всіх ресурсів. Він також перевіряє всі можливі дії, перш ніж визначати, чи слід продовжувати розподіл чи ні.
Наприклад, існує 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).
Припустимо, що існує чотири процеси. Доступні ресурси вже розподілені відповідно до матричної таблиці нижче.
Назва процесу | Ручки для ручок | Принтер | Сканер | Жорсткий диск |
---|---|---|---|---|
P | 2 | 0 | 1 | 1 |
Питання | 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)
Назва процесу | Ручки для ручок | Принтер | Сканер | Жорсткий диск |
---|---|---|---|---|
P | 1 | 1 | 0 | 0 |
Питання | 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) Потреба
- Алгоритм запиту ресурсу дозволяє представити поведінку системи, коли певний процес робить запит ресурсу.
- Алгоритм Банкіра зберігає багато ресурсів, які задовольняють вимоги принаймні одного клієнта
- Найбільшим недоліком алгоритму банкіра є те, що він не дозволяє процесу змінювати свою максимальну потребу під час обробки.