Алгоритъмът на банкера в Operating система [Пример]

⚡ Умно обобщение

Алгоритъмът на банкера е метод за избягване на блокиране, който проверява дали разпределянето на ресурси поддържа системата в безопасно състояние. Наречен на банковото дело, той удовлетворява заявка само ако са останали достатъчно ресурси за задоволяване на всеки процес.

  • 🏦 Основание: Избягва безизходица, като проверява дали разпределението на ресурсите прави системата безопасна.
  • 🔢 Четири матрици: Налично, Максимално, Разпределение и Необходимост track използване на ресурси.
  • 🧮 Безопасно състояние: Заявка се одобрява само ако всички процеси все още могат да завършат.
  • 📋 изискване: Всеки процес трябва предварително да декларира максималните си нужди от ресурси.
  • Възползвайте се: Гарантира, че ресурсите удовлетворяват поне един клиент по всяко време.
  • ⚠️ Недостатък: Процесите не могат да променят максималната си нужда, докато се изпълняват.

Алгоритъмът на банкера в Operaтинг система

Какво представлява алгоритъмът на банкера?

Алгоритъм на банкера се използва главно в банковата система, за да се избегне задънена улица. Помага ви да определите дали ще бъде даден заем или не.

Този алгоритъм се използва за тестване за безопасно симулиране на разпределението за определяне на максималната налична сума за всички ресурси. Той също така проверява за всички възможни дейности, преди да определи дали разпределението трябва да продължи или не.

Например, има 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)

Тази последна стъпка се изпълнява, защото системата трябва да приеме, че ресурсите са разпределени, така че след разпределението да има по-малко налични ресурси.

Характеристики на алгоритъма на банкера

Ето важните характеристики на алгоритъма на банкера:

  • Поддържа много ресурси, които задоволяват изискванията на поне един клиент.
  • Всеки път, когато даден процес получи всичките си ресурси, той трябва да ги върне в ограничен период.
  • Когато даден процес поиска ресурс, може да се наложи да изчака.
  • Системата разполага с ограничен брой ресурси.
  • Той предлага разширена функция за максимално разпределение на ресурсите.

Недостатък на алгоритъма на Банкера

Ето недостатъците/недостатъците на използването на алгоритъма на банкера:

  • Това не позволява на процеса да променя максималната си нужда по време на обработка.
  • Това позволява всички искания да бъдат удовлетворени в ограничен срок, но една година е фиксиран период за това.
  • Всички процеси трябва да знаят и заявяват своите максимални нужди от ресурси предварително.

Въпроси и Отговори

Безопасно състояние е такова, при което поне една заповед за изпълнение позволява на всеки процес да получи максималните си ресурси и да завърши. Ако такава заповед не съществува, състоянието е опасно и може да доведе до безизходица.

Предотвратяването на безизходица премахва предварително едно условие, необходимо за безизходица. Избягването на безизходица, подобно на алгоритъма на банкера, позволява тези условия, но проверява всяка заявка, за да запази системата безопасна.

Наречено е така заради начина, по който банката управлява заемите. Банката отпуска пари само ако все още може да задоволи всички клиенти. По подобен начин алгоритъмът предоставя ресурси само ако всички процеси все още могат да бъдат завършени безопасно.

Изкуственият интелект може да предвиди търсенето на ресурси и да открие рискови модели на разпределение, преди те да доведат до безизходица. Той може да предложи кои заявки да се забавят, допълвайки алгоритъма на банкера в сложни системи, където максималните нужди са трудни за предвиждане.

Не съвсем. Алгоритъмът на банкера гарантира безопасен резултат, когато са известни максималните нужди. Изкуственият интелект може да подобри прогнозирането и ефективността, но работи най-добре заедно с него, а не като негов пълен заместител.

Обобщете тази публикация с: