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