Какво представлява алгоритъмът на банкера?
Алгоритъмът на банкера се използва главно в банковата система, за да се избегне задънена улица. Помага ви да определите дали ще бъде даден заем или не.
Този алгоритъм се използва за тестване за безопасно симулиране на разпределението за определяне на максималната налична сума за всички ресурси. Той също така проверява за всички възможни дейности, преди да определи дали разпределението трябва да продължи или не.
Например има 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 |
R | 1 | 0 | 1 | 1 |
С | 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 |
R | 2 | 1 | 0 | 0 |
С | 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)
Тази последна стъпка се извършва, тъй като системата трябва да приеме, че са разпределени ресурси. Така че трябва да има по-малко налични ресурси след разпределението.
Характеристики на алгоритъма на банкера
Ето важните характеристики на алгоритъма на банкера:
- Съхранявайте много ресурси, които отговарят на изискванията на поне един клиент
- Всеки път, когато даден процес получи всичките си ресурси, той трябва да ги върне в ограничен период.
- Когато процес поиска ресурс, той трябва да изчака
- Системата разполага с ограничен брой ресурси
- Предварителна функция за максимално разпределение на ресурсите
Недостатък на алгоритъма на Банкер
Тук има минуси / недостатъци от използването на банков алгоритъм
- Не позволява на процеса да променя максималната си нужда по време на обработката
- Позволява всички заявки да бъдат удовлетворени в ограничен срок, но една година е определен период за това.
- Всички процеси трябва предварително да знаят и да заявят своите максимални нужди от ресурси.
Резюме:
- Алгоритъмът на Banker се използва главно в банковата система, за да се избегне задънена улица. Помага ви да определите дали ще бъде даден заем или не.
- Нотациите, използвани в алгоритмите на банкера, са 1) Налични 2) Макс 3) Разпределение 4) Необходимост
- Алгоритъмът за заявка за ресурс ви позволява да представите поведението на системата, когато определен процес прави заявка за ресурс.
- Алгоритъмът на Banker съхранява много ресурси, които отговарят на изискванията на поне един клиент
- Най-големият недостатък на алгоритъма на банкера е, че той не позволява на процеса да променя максималната си нужда по време на обработката.