Алгоритм банкіра в OperaСистема ting [Приклад]

Що таке Алгоритм Банкіра?

Алгоритм банкіра використовується в основному в банківській системі, щоб уникнути тупикової ситуації. Це допоможе вам визначити, чи буде надано кредит чи ні.

Цей алгоритм використовується для перевірки безпечної імітації розподілу для визначення максимального обсягу, доступного для всіх ресурсів. Він також перевіряє всі можливі дії, перш ніж визначити, чи слід продовжувати розподіл чи ні.

Наприклад, є X кількість власників рахунків конкретного банку, а загальна сума грошей на їхніх рахунках дорівнює G.

Коли банк обробляє автокредит, програмна система віднімає суму кредиту, наданого на придбання автомобіля, із загальної суми грошей (G+ Строковий депозит + Схема місячного доходу + Золото тощо), які є в банку.

Він також перевіряє, чи різниця перевищує G. Він обробляє кредит на автомобіль лише тоді, коли в банку є достатньо грошей, навіть якщо всі власники рахунків знімають гроші G одночасно.

Позначення алгоритму банкіра

Ось важливе позначення, яке використовується в алгоритмі Банкіра:

  • X: вказує загальну кількість процесів системи.
  • Y: вказує на загальну кількість ресурсів, наявних у системі.

наявний

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

Макс

[l:X,l:Y]: вираження максимальної кількості ресурсів типу j або процесу i

Виділення

[l:X,l:Y]. Вкажіть, з якого процесу ви отримали ресурс типу j

Необхідність

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

Приклад алгоритму Банкіра

Припустимо, що у нас є такі ресурси:

  • 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

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

Available=Доступний- Виділено

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