То је банкарски алгоритам на који је навикнут избегавајте застој и алокацију ресурса безбедно до сваког процеса у рачунарском систему. ' С-Стате' испитује све могуће тестове или активности пре него што одлучи да ли треба дозволити алокацију сваком процесу. Такође помаже оперативном систему да успешно дели ресурсе између свих процеса. Банкарски алгоритам је назван зато што проверава да ли некој особи треба санкционисати износ кредита или не да би помогао банкарском систему да безбедно симулира алокацију ресурса. У овом одељку ћемо научити Банкеров алгоритам детаљно. Такође, решаваћемо проблеме на основу Банкеров алгоритам . Да бисмо разумели Банкеров алгоритам, прво ћемо видети његов прави пример речи.
Претпоставимо да је број власника рачуна у одређеној банци 'н', а укупан новац у банци је 'Т'. Ако се власник рачуна пријави за кредит; прво, банка одузима износ кредита од пуне готовине, а затим процењује да је разлика у готовини већа од Т да би одобрила износ кредита. Ови кораци се предузимају јер ако неко друго лице поднесе захтев за кредит или повуче неки износ из банке, то помаже банци да управља и управља свим стварима без икаквих ограничења у функционалности банкарског система.
Слично, ради у ан Оперативни систем . Када се нови процес креира у рачунарском систему, процес мора да обезбеди све врсте информација оперативном систему као што су предстојећи процеси, захтеви за њиховим ресурсима, њихово бројање и кашњења. На основу ових критеријума, оперативни систем одлучује који процесни низ треба да се изврши или сачека како не би дошло до застоја у систему. Стога је познат и као алгоритам за избегавање застоја или детекција застоја у оперативном систему.
Предности
Следе основне карактеристике Банкеровог алгоритма:
- Садржи различите ресурсе који испуњавају захтеве сваког процеса.
- Сваки процес треба да обезбеди информације оперативном систему за предстојеће захтеве за ресурсима, број ресурса и колико дуго ће ресурси бити задржани.
- Помаже оперативном систему да управља и контролише процесне захтеве за сваки тип ресурса у рачунарском систему.
- Алгоритам има максимални атрибут ресурса који представља означавање да сваки процес може да држи максималан број ресурса у систему.
Недостаци
- Захтева фиксан број процеса и ниједан додатни процес се не може покренути у систему док се процес извршава.
- Алгоритам више не дозвољава процесима да размењују своје максималне потребе док обрађују своје задатке.
- Сваки процес мора унапред да зна и наведе своје максималне потребе за ресурсима за систем.
- Број захтева за ресурсе може се одобрити за ограничено време, али рок за доделу ресурса је једна година.
Када ради са алгоритмом банкара, он тражи да зна о три ствари:
- Колико сваки процес може да захтева за сваки ресурс у систему. Означава се са [ МАКС ] захтев.
- Колико сваки процес тренутно држи сваки ресурс у систему. Означава се са [ ИЗДВОЈЕНО ] ресурс.
- Представља број сваког ресурса који је тренутно доступан у систему. Означава се са [ ДОСТУПАН ] ресурс.
У наставку су наведени важни термини структуре података који се примењују у банкарском алгоритму како следи:
Претпоставимо да је н број процеса, а м број сваког типа ресурса који се користи у рачунарском систему.
Недд[и][ј] = Макс[и][ј] - Алокација[и][ј].
Банкарски алгоритам је комбинација сигурносног алгоритма и алгоритма захтева за ресурсе за контролу процеса и избегавање застоја у систему:
Безбедносни алгоритам
То је безбедносни алгоритам који се користи за проверу да ли је систем у безбедном стању или да ли следи сигуран редослед у алгоритму банкара:
1. Постоје два вектора Вок и Заврши дужине м и н у сигурносном алгоритму.
Иницијализација: Рад = доступан
Финисх[и] = фалсе; за И = 0, 1, 2, 3, 4… н - 1.
2. Проверите статус доступности за сваки тип ресурса [и], као што су:
јава упс концепти
Треба[и]<= work
Заврши[и] == нетачно
Ако и не постоји, идите на корак 4.=>
3. Ворк = Ворк +Аллоцатион(и) // да бисте добили нову алокацију ресурса
Заврши[и] = тачно
Идите на корак 2 да бисте проверили статус доступности ресурса за следећи процес.
4. Ако Финисх[и] == труе; то значи да је систем безбедан за све процесе.
Алгоритам захтева за ресурсе
Алгоритам захтева за ресурсе проверава како ће се систем понашати када процес направи сваки тип захтева за ресурсе у систему као матрицу захтева.
Хајде да креирамо низ захтева за ресурсе Р[и] за сваки процес П[и]. Ако је захтев за ресурсеи[ј] једнако 'К', што значи да процес П[и] захтева 'к' инстанци типа Ресурса Р[ј] у систему.
1. Када се број од тражених ресурса сваког типа је мањи од Потреба ресурсе, идите на корак 2 и ако услов не успе, што значи да процес П[и] премашује свој максимални захтев за ресурс. Као што израз сугерише:
Ако Захтев(и)<= need
Идите на корак 2;=>
2. А када је број захтеваних ресурса сваког типа мањи од доступног ресурса за сваки процес, идите на корак (3). Као што израз сугерише:
Ако Захтев(и)<= available
Иначе Процес П[и] мора да сачека ресурс пошто није доступан за употребу.=>
3. Када се тражени ресурс додељује процесу променом стања:
упс концепти
Доступан = Доступан - Захтев
Алокација(и) = Додела(и) + Захтев (и)
Потребаи= Потребаи- Захтеви
Када је стање алокације ресурса безбедно, његови ресурси се додељују процесу П(и). А ако ново стање није безбедно, Процес П (и) мора да сачека сваки тип Захтева Р(и) и врати старо стање алокације ресурса.
Пример: Размотрите систем који садржи пет процеса П1, П2, П3, П4, П5 и три типа ресурса А, Б и Ц. Следе типови ресурса: А има 10, Б има 5 и тип ресурса Ц има 7 инстанци.
Процес | Алокација А Б Ц | Макс А Б Ц | Доступан А Б Ц |
---|---|---|---|
П1 | 0 1 0 | 7 5 3 | 3 3 2 |
П2 | 200 | 3 2 2 | |
П3 | 3 0 2 | 9 0 2 | |
П4 | 2 1 1 | 2 2 2 | |
П5 | 0 0 2 | 4 3 3 |
Одговорите на следећа питања користећи банкар алгоритам:
- Која је референца матрице потреба?
- Утврдите да ли је систем безбедан или не.
- Шта ће се догодити ако захтев за ресурсима (1, 0, 0) за процес П1 може ли систем одмах да прихвати овај захтев?
Године. 2: Контекст матрице потреба је следећи:
Потреба [и] = Макс. [и] - Додела [и]
Потреба за П1: (7, 5, 3) - (0, 1, 0) = 7, 4, 3
Потреба за П2: (3, 2, 2) - (2, 0, 0) = 1, 2, 2
Потреба за П3: (9, 0, 2) - (3, 0, 2) = 6, 0, 0
Потреба за П4: (2, 2, 2) - (2, 1, 1) = 0, 1, 1
Потреба за П5: (4, 3, 3) - (0, 0, 2) = 4, 3, 1
Процес | Потреба А Б Ц |
---|---|
П1 | 7 4 3 |
П2 | 1 2 2 |
П3 | 6 0 0 |
П4 | 0 1 1 |
П5 | 4 3 1 |
Стога смо креирали матрицу контекста потреба.
Анс. 2: Примените банкаров алгоритам:
Доступни ресурси А, Б и Ц су 3, 3 и 2.
Сада проверавамо да ли је свака врста захтева за ресурсе доступна за сваки процес.
Корак 1: За процес П1:
Потреба<= available< p>
7, 4, 3<= 2 3, condition is фалсе .=>
Дакле, испитујемо још један процес, П2.
Корак 2: За процес П2:
Потреба<= available< p>
1, 2, 2<= 2 3, condition истина=>
Ново доступно = доступно + алокација
(3, 3, 2) + (2, 0, 0) => 5, 3, 2
Слично, испитујемо још један процес П3.
Корак 3: За процес П3:
П3 Неед<= available< p>
6, 0, 0<= 2 5, 3, condition is фалсе .=>
Слично, испитујемо још један процес, П4.
4. корак: За процес П4:
П4 Неед<= available< p>
0, 1, 1<= 2 5, 3, condition is истина=>
Нови Доступни ресурс = Доступан + Алокација
5, 3, 2 + 2, 1, 1 => 7, 4, 3
Слично, испитујемо још један процес П5.
5. корак: За процес П5:
П5 Неед<= available< p>
4, 3, 1<= 3 7, 4, condition is истина=>
карактер.упореди јава
Нови доступни ресурс = Доступан + Алокација
7, 4, 3 + 0, 0, 2 => 7, 4, 5
Сада поново испитујемо сваки тип захтева за ресурсе за процесе П1 и П3.
Корак 6: За процес П1:
П1 Неед<= available< p>
7, 4, 3<= 5 7, 4, condition is истина=>
Нови расположиви ресурс = Доступан + Алокација
7, 4, 5 + 0, 1, 0 => 7, 5, 5
Дакле, испитујемо још један процес П2.
7. корак: За процес П3:
П3 Неед<= available< p>
6, 0, 0<= 5 7, 5, condition is true< p>
Нови расположиви ресурс = Доступан + Алокација
писпарк
7, 5, 5 + 3, 0, 2 => 10, 5, 7
Дакле, извршавамо банкаров алгоритам да пронађемо сигурно стање и сигуран низ као што су П2, П4, П5, П1 и П3.
Године. 3: За одобравање Захтева (1, 0, 2), прво то морамо да проверимо Захтев<= available< strong>, односно (1, 0, 2)<= (3, 3, 2), since the condition is true. so process p1 gets request immediately.< p>
=>=>