Алгоритъмът на банкера в Operating система [Пример]
⚡ Умно обобщение
Алгоритъмът на банкера е метод за избягване на блокиране, който проверява дали разпределянето на ресурси поддържа системата в безопасно състояние. Наречен на банковото дело, той удовлетворява заявка само ако са останали достатъчно ресурси за задоволяване на всеки процес.
Какво представлява алгоритъмът на банкера?
Алгоритъм на банкера се използва главно в банковата система, за да се избегне задънена улица. Помага ви да определите дали ще бъде даден заем или не.
Този алгоритъм се използва за тестване за безопасно симулиране на разпределението за определяне на максималната налична сума за всички ресурси. Той също така проверява за всички възможни дейности, преди да определи дали разпределението трябва да продължи или не.
Например, има X брой титуляри на сметки в определена банка, а общата сума пари в сметките им е G.
Когато банката обработва автомобилен заем, софтуерната система подчиняваtracе размерът на отпуснатия заем за закупуване на автомобил от общата сума (G + Фиксиран депозит + Схема за месечен доход + Злато и др.), с която банката разполага.
Той отпуска автомобилен заем само ако оставащите пари все още надвишават G, така че всички притежатели на сметки могат да теглят G по всяко време.
Нотации на алгоритъма на банкера
Ето някои важни означения, използвани в алгоритъма на банкера:
- X: Показва общия брой процеси в системата.
- Y: Показва общия брой налични ресурси в системата.
На разположение
[1:Y] показва колко екземпляра от всеки тип ресурс са налични.
макс
[1:X, 1:Y]: Изразява максималния брой ресурси от тип j, които процес i може да поиска.
Разпределяне
[1:X, 1:Y]: Показва ресурсите от тип j, разпределени в момента за процес i.
Трябва
Изразява колко още ресурси от всеки тип процес i все още са му необходими, за да изпълни задачата си.
Пример за алгоритъм на банкера
Да приемем, че имаме следните ресурси:
- 5 писалки
- 2 принтера
- 4 скенера
- 3 твърди диска
Тук създадохме вектор, представящ общите ресурси: Налични = (5, 2, 4, 3).
Да приемем, че има четири процеса. Наличните ресурси вече са разпределени съгласно матричната таблица по-долу.
| Process Име | Писалки | Printer | Скенер | Твърд диск |
|---|---|---|---|---|
| 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).
| Process Име | Писалки | Printer | Скенер | Твърд диск |
|---|---|---|---|---|
| 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)
Тази последна стъпка се изпълнява, защото системата трябва да приеме, че ресурсите са разпределени, така че след разпределението да има по-малко налични ресурси.
Характеристики на алгоритъма на банкера
Ето важните характеристики на алгоритъма на банкера:
- Поддържа много ресурси, които задоволяват изискванията на поне един клиент.
- Всеки път, когато даден процес получи всичките си ресурси, той трябва да ги върне в ограничен период.
- Когато даден процес поиска ресурс, може да се наложи да изчака.
- Системата разполага с ограничен брой ресурси.
- Той предлага разширена функция за максимално разпределение на ресурсите.
Недостатък на алгоритъма на Банкера
Ето недостатъците/недостатъците на използването на алгоритъма на банкера:
- Това не позволява на процеса да променя максималната си нужда по време на обработка.
- Това позволява всички искания да бъдат удовлетворени в ограничен срок, но една година е фиксиран период за това.
- Всички процеси трябва да знаят и заявяват своите максимални нужди от ресурси предварително.

