Алгоритм банкіра в OperaСистема ting [Приклад]
⚡ Розумний підсумок
Алгоритм банкіра — це метод уникнення блокувань, який перевіряє, чи розподіл ресурсів підтримує систему в безпечному стані. Названий на честь банківської справи, він задовольняє запит, лише якщо залишається достатньо ресурсів для задоволення кожного процесу.

Що таке Алгоритм Банкіра?
Алгоритм банкіра використовується переважно в банківській системі, щоб уникнути тупик. Це допоможе вам визначити, чи буде надано кредит чи ні.
Цей алгоритм використовується для перевірки безпечної імітації розподілу для визначення максимального обсягу, доступного для всіх ресурсів. Він також перевіряє всі можливі дії, перш ніж визначити, чи слід продовжувати розподіл чи ні.
Наприклад, є X кількість власників рахунків у певному банку, а загальна сума грошей на їхніх рахунках становить G.
Коли банк обробляє автокредит, програмна система підрозділуtracts – це сума кредиту, наданого для купівлі автомобіля, із загальної суми коштів (G + фіксований депозит + щомісячна схема доходу + золото тощо), що є в банку.
Автокредит надається лише за умови, що залишок коштів перевищує G, тому всі власники рахунку можуть зняти G у будь-який час.
Позначення алгоритму банкіра
Ось деякі важливі позначення, що використовуються в алгоритмі банкіра:
- X: Вказує загальну кількість процесів у системі.
- Y: вказує на загальну кількість ресурсів, наявних у системі.
наявний
[1:Y] вказує, скільки екземплярів кожного типу ресурсу доступно.
Макс
[1:X, 1:Y]: Виражає максимальну кількість ресурсів типу j, які може запросити процес i.
Виділення
[1:X, 1:Y]: Вказує ресурси типу j, що наразі виділені для процесу i.
Необхідність
Виражає, скільки ще ресурсів потрібно кожному типу процесу i для виконання його завдання.
Приклад алгоритму Банкіра
Припустимо, що у нас є такі ресурси:
- 5 Pen Drives
- 2 Принтери
- 4 сканера
- 3 жорстких диски
Тут ми створили вектор, що представляє загальні ресурси: Доступні = (5, 2, 4, 3).
Припустимо, є чотири процеси. Доступні ресурси вже розподілено відповідно до матричної таблиці нижче.
| Ім'я процесу | Ручки ручки | Принтер | Scanner | жорсткий диск |
|---|---|---|---|---|
| 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).
| Ім'я процесу | Ручки ручки | Принтер | Scanner | жорсткий диск |
|---|---|---|---|---|
| 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)
Цей останній крок виконується тому, що системі потрібно припустити, що ресурси були розподілені, щоб після розподілу було менше доступних ресурсів.
Характеристика Алгоритму Банкіра
Ось важливі характеристики алгоритму банкіра:
- Зберігає багато ресурсів, які задовольняють вимоги принаймні одного клієнта.
- Щоразу, коли процес отримує всі свої ресурси, він повинен повернути їх протягом обмеженого періоду.
- Коли процес запитує ресурс, йому може знадобитися зачекати.
- Система має обмежену кількість ресурсів.
- Він пропонує розширену функцію для максимального розподілу ресурсів.
Недолік алгоритму Банкіра
Ось недоліки/мінуси використання алгоритму банкіра:
- Це не дозволяє процесу змінювати свою максимальну потребу під час обробки.
- Це дозволяє задовольняти всі запити протягом обмеженого часу, але один рік є фіксованим періодом для цього.
- Усі процеси повинні заздалегідь знати та вказувати свої максимальні потреби в ресурсах.
