0% found this document useful (0 votes)
243 views15 pages

Bankarev Algoritam Seminar Ibrahimovic

The Bankarev algorithm is an algorithm for allocating shared resources in a system to avoid deadlock. It works by declaring the maximum number of instances of each resource type a process can request, ensuring this does not exceed the total available in the system. When a process receives all resources it needs, they must be returned within a time limit. The algorithm tests safety by simulating allocating all resources at maximum levels and checking for deadlock. It uses data structures like vectors and matrices to track available, allocated, needed and maximum resources for each process. An example shows checking that giving each process its maximum resources is possible without causing deadlock, proving the system is in a safe state.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
243 views15 pages

Bankarev Algoritam Seminar Ibrahimovic

The Bankarev algorithm is an algorithm for allocating shared resources in a system to avoid deadlock. It works by declaring the maximum number of instances of each resource type a process can request, ensuring this does not exceed the total available in the system. When a process receives all resources it needs, they must be returned within a time limit. The algorithm tests safety by simulating allocating all resources at maximum levels and checking for deadlock. It uses data structures like vectors and matrices to track available, allocated, needed and maximum resources for each process. An example shows checking that giving each process its maximum resources is possible without causing deadlock, proving the system is in a safe state.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 15

Sveučilište Josipa Jurja Strossmayera u Osijeku

Fakultet elektrotehnike, računarstva i informacijskih tehnologija


Stručni studij: Informatka

Seminarski rad iz kolegija


Operacijski sustavi

Naslov rada:
Bankarev algoritam

Ime i prezime studenta:


Suzana Ibrahimović

Osijek, 2018.
Sadržaj .......................................................................... Error! Bookmark not defined.
1. Uvod..................................................................................................................... 2
2. Što je bankarev algoritam? .................................................................................. 3
3. Sredstva korištena u bankarevom algoritmu ....................................................... 3
4. Strukture .............................................................................................................. 4
5. Primjer bankarevog algortima ............................................................................. 5
6. Stanja ................................................................................................................... 6
7. Uvjeti.................................................................................................................. 10
8. Zaključak ............................................................................................................ 13
9. Literatura ........................................................................................................... 14

1
1. Uvod

U višeprogramskim sustavima veći broj procesa može u isto vrijeme potraživati uporabu konačnog
broja sredstava računalnog sustava. Ako neki proces koji je aktivan postavi zadanom operacijskom
sustavu zahtjev da mu se dodijeli sredstvo koje je zauzeto onda se proces stavlja u stanje čekanja.
Može se dogoditi da proces koji čeka nikada ne dobije priliku da promjeni svoje stanje jer je
sredstvo kojeg je zatražilo trajno zadržano od strane nekog drugog procesa. Takvu situaciju
nazivamo potpuni zastoj (deadlock). Postoji više načina kojima se može izbjeći potpuni zastoj.
Jedan od njih je i bankarev algoritam o kojem će u ovom seminaru i biti riječ.

2
2. Što je bankarev algoritam?

Bankarev algoritam jedan je od algoritama alokacije sredstava koji omogućuje da sustav izbjegne
stanje potpunog zastoja. Naziv je algoritam dobio jer se može koristiti u bankama kako bi se
osiguralo da banka ne podijeli toliko sredstava da ne može kasnije u budućnosti zadovoljiti
zahtjeve svojih stranaka. Količina novca koja je u opticaju je pametno raspoređena i banka ne
može ostati bez sredstava za svoje stranke. Bankarev algoritam testira sigurnost tako da simulira
najveću predodređenu alokaciju svih sredstava a nakon toga provjera je li stanje sigurno, to jest
hoće li doći do potpunog zastoja i u ovisnosti od toga odlučuje hoće li alokacija sredstava biti
nastavljena. Kada dođe do novog procesa, algoritam deklarira maksimalan broj primjeraka svih
tipova sredstava koje može koristiti s tim da taj broj ne smije biti veći od ukupnog broja sredstava
u sustavu. Kada proces dobije sva zahtjevana sredstva ona moraju biti vraćena u ograničenom
vremenu.

3. Sredstva korištena u bankarevom algoritmu

Funkcionalost bankarevog algoritma ovisi o sljedećem:

 Maksimalan broj sredstava- količina svakog sredstva kojeg svaki proces moze zahtjevati
 Alociran broj sredstava-količina sredstava koje svaki proces u trenutku zauzima
 Dostupan broj sredstava- količina svih sredstava kojima sustav trenutno raspolaže

Uvjeti koje sredstva moraju ispuniti da bi bila dodijeljena procesu:

 Tražen broj sredstava mora biti manji ili jednak maksimalnom broju sredstava. Ako je
traženi broj sredstava veći od maksimalnog, proces ulazi u stanje pogreške jer je proces
prešao preko količine sredstava koju je zahtjevao i koja mu je dozvoljena.
 Traženi broj sredstava mora biti manji manji ili jednak od dostupnog broja sredstava, ako se
dogodi suprotna situacija gdje je traženi broj sredstava veći od dostupnog broja sredstava,
proces se stavlja na čekanje dok se sredstva ne oslobode.

3
Naprimjer, banka pomoću ovog algoritma nikada neće izdvojiti količinu novca na način da to
onemogući podizanje novca svih njenih stranaka. Banka ima postavljeno svoje sigurno stanje i
nikada ga ne napušta bez obzira na podizanje novaca od strane stranaka. Ako stranka svojim
zahtjevom za podizanjem novaca ne zadire u sigurno stanje banke, taj isti novac može podići, a u
suprotnom stranka mora čekati dok neka druga stranka ne uloži dovoljno novca da sigurno stanje
banke nije narušeno.

4. Strukture

Da bi se bankarev algoritam mogao implementirati postoje osnovne strukture podataka koje se


moraju koristiti.

Zadamo da je naprimjer x broj procesa u sustavu a neka y bude broj tipova sredstava. U tom
slučaju koristimo sljedeće strukture podataka:

 Za dostupan broj sredstava : postoji vektor dužine y koji označava broj slobodnih
sredstava svakog tipa. Ako je dostupno [j] = k, postoji ukupno k primjeraka sredstava tipa
Rj koji su dostupni.
 Za maksimalan broj sredstava : postoji x×y matrica koja definira maksimalno potraživanje
svakog sredstva. Ako je maksimalno [i,j] = k, tada Pi može da zahtjeva najviše k primjeraka
sredstava tipa Rj.
 Za alocirani broj sredstava : postoji x×y matrica koja definira količinu sredstava svakog
tipa koji su trenutno dodjeljeni svakom od procesa. Ako je alocirano[i,j] = k, tada proces Pi
trenutno alocira k primeraka sredstava tipa Rj.
 Za Potreban broj sredstava :postoji x×y matrica koja označava sredstva koje i dalje
zahtjeva svaki od procesa. Ako je Potrebno[i,j] = k, tada Pi zahtjeva još k primjeraka
sredstava Rj da bi završio svoj zadatak.

Jako je bitno dati pozornost tome da je potreban broj sredstava jednak razlici maksimalnog broja
sredstava i alociranog broja sredstava .

Potrebno[i,j] = Maksimalno[i,j] - Alocirano[i,j].

4
5. Primjer bankarevog algortima

Pretpostavit ćemo da postoje 4 sredstva u sustavu koji ih može razlikovati (M, N, K, I).

Ukupna sredstva:

M N K I
10 9 11 10

Dostupna sredstva u sustavu:

M N K I
4 2 2 3

Procesi (trenutno alocirana sredstva):

M N K I
P1 2 3 3 2
P2 2 1 4 4
P3 2 3 2 1

Procesi (maksimalna potražnja sredstava)

M N K I
P1 4 4 3 3
P2 2 3 4 5
P3 2 4 6 1
¸

Uz uvjet: Potrebno[i,j] = Maksimalno[i,j] - Alocirano[i,j], slijedi:

5
Potrebna sredstva

M N K I
P1 2 1 0 1
P2 0 2 0 1
P3 0 1 4 0

6. Stanja

Postoje dva oblika stanja: sigurno i nesigurno


Sigurno stanje je stanje gdje je omogućeno da se svaki proces dovrši do kraja.
Sustav ne zna kada će se proces dovršiti ili koliko će sredstava tražiti do tada. Sustav pretpostavi
da će svi procesi pokušati dobiti maksimalna sredstva te da će se neposredno nakon toga završiti.
Ta pretpostavka vrijedi u većini slučajeva jer sustav ne uzima vrijeme u obzir , ne zanima ga koliko
dugo se proces vremenski izvršava. Sustavu je posao još lakši ako se proces završi a da nije
zahtjevao svoj maksimum sredstava. Sigurno stanje je bitno jer o njemu ovisi hoće li proces biti
spremljen u red spremnih procesa i on garantira sigurnost. Bankarev algoritam odlučuje je li stanje
sigurno tako što će pokušati pronaći hipotetski skup zahtjeva procesa koji bi omogućili svakom
procesu da dobije svoj maksimum sredstava i da se potom završi.
Nesigurno stanje je svako stanje u kojem prethodno navedeni skup u sigurnom stanju ne postoji.
Za prethodni primjer algoritma ćemo pokazati da je stanje sigurno tako što će se dokazati da je
moguće da svaki proces dobije svoj maksimum sredstava i da se potom završi.
To će biti prikazano prema prethodno zadanim tablicama za ukupni, dostupni, trenutni,
maksimalni i potrebni broj sredstava.

6
 Ako P1 dobije još 2M, 1N i 1I, tada će doseći svoj maksimum te slijedi:

[Dostupna sredstva: < 4 2 2 3> - <2 1 0 1> = <2 1 2 2>]

Sustav trenutno raspolaže sa sljedećim dostupnim sredstvima:


M N K I
2 1 2 2

 P1 se završava i vraća sljedeća sredstva sustavu te slijedi:


M N K I
P1 4 4 3 3

[dostupna sredstva:< 2 1 2 2> + <4 4 3 3> = < 6 5 5 5>]

Sustav trenutno posjeduje sljedeća dostupna sredstva:


M N K I

6 5 5 5

7
 P2 Dobiva 2N i 1I, zatim postiže maksimum , završava se i vraća sva svoja sredstva te
slijedi:

[dostupna sredstva: < 6 5 5 5> - <0 2 0 1> + < 2 3 4 5 >=<8 6 9 9>]

Sustav trenutno posjeduje sljedeća dostupna sredstva

M N K I
8 6 9 9

8
 P3 dobiva 1N i 4K zatim postiže maksimum i završava se te slijedi:

[dostupna sredstva: < 8 6 9 9>- <0 1 4 0>+ <2 4 6 1>=<10 9 11 10 >]

Sustav sada posjeduje sva svoja ukupna sredstva. S obzirom da su se svi procesi mogli
završiti sustav je siguran.

Svi zahtjevi koji su zadani u ovom seminaru su hipotetski zadani.


Algoritam ih generira tako da provjeri sigurnost stanja, ali sredstva nisu zapravo dodjeljena
i procesi se nisu završili. Treba primjetiti da redoslijed kojim se ovi zahtjevi generiraju, ako
nekoliko zahtjeva može biti ispunjeno, nema razlike jer svi hipotetski zahtjevi omogućuju
procesu da se završi i na taj način povećavaju slobodna sredstva sustava.

9
7. Uvjeti

Kada sustav primi zahtjev za sredstvom, on pokreće bankarev algoritam da odredi je li sigurno
odobriti taj isti zahtjev. Algoritam je jednostavan kada se razumije razlika između sigurnog i
nesigurnog stanja.

 Može li se zahtjev odobriti?


Ako se zahtjev ne može odobriti isti je nemogući i mora se odbiti ili staviti na listu čekanja.
 Pretpostavimo da je zahtjev odobren
 Postavlja se pitanje, je li novo stanje sigurno?
Ako je stanje sigurno, zahtjev se odobrava
Ako stanje nije sigurno zahtjev se odbija ili se stavlja na listu čekanja

Hoće li operativni sustav odbiti ili odgoditi nemoguć ili nesiguran zahtjev je odluka koja ovisi o
konkretnom operativnom sustavu i njegovom načinu rada.

Primjer:
Uzet ćemo ista stanja iz prethodnog primjera.

1. Pretpostavka je da proces P3 zahtjeva 3 jedinice sredstva K. Sukladno s tim slijedi da


ne postoji dovoljno dostupnih sredstava K da bi zahtjev bio odobren, maksimalan broj sredstava je
manji od potrebnog. Zahtjev je odbijen.
2. Pretpostavka je da proces P3 zahtjeva jednu jedinicu sredstva K

Postoji dovoljno dostupnih sredstava da se zahtjev odobri.

Pretpostavimo da je zahtjev odobren.

Novo stanje sustava je:

Slobodna dostupna sredstva sustava


M N K I
4 2 1 3

Na početku su bile dvije jedinice K, sada je samo jedna.

10
Procesi (trenutno alocirana sredstva):

M N K I
P1 2 3 3 2
P2 2 1 4 4
P3 2 3 3 1

U procesu P3 u K pridodana je još jedna jedinica.

Procesi (maksimalna potražnja sredstava)

M N K I
P1 4 4 3 3
P2 2 3 4 5
P3 2 4 6 1

Sada određujemo je li novo stanje sigurno. Uspoređuju se trenutno alocirana sredstva i


maksimalna potražnja sredstava.

 Proces P1 može dobiti sredstva 2M, 1N, 1I i završiti se, maksimum je dohvaćen.
 Proces P2 može dobiti sredstva 2N i 1I i završiti se, maksimum je dohvaćen.
 Proces P3 može dobiti sredstva 1N i 3K i završiti se, maksimum je dohvaćen

Procesi(trenutno alocirana sredstava) Procesi (maksimlana potražnja sredstava)

M N K I M N K I
P1 2 3 3 2 4 4 3 3
P2 2 1 4 4 2 3 4 5
P3 2 3 3 1 2 4 6 1

Stanje je sigurno i zahtjev je odobren.

11
Sada ćemo pretpostaviti da proces dva zahtjeva samo jednu jedinicu sredstva N.
Postoji dovoljno sredstava te s pretpostavkom da je zahtjev odobren novo stanje će biti:

Slobodna dostupna sredstva sustava


M N K I
4 1 2 3

Procesi (trenutno alocirana sredstva):

M N K I
P1 2 3 3 2
P2 2 2 4 4
P3 2 3 2 1

U procesu P2 u N pridodana je još jedna jedinica.

Procesi (maksimalna potražnja sredstava)

M N K I
P1 4 4 3 3
P2 2 3 4 5
P3 2 4 6 1

Je li ovo stanje sigurno? Pretpostavimo da procesi P1, P2, i P3 zahtjevaju više sredstava N i K.

Nijedan proces ne može dobiti dovoljno sredstava da bi se završio tako da je stanje nesigurno.

Zahtjev je odbijen.

12
8. Zaključak

Jedan od načina da se izbjegne potpuni zastoj je bankarev algoritam. Ideja za ovakav tip algoritma
je došla od zamisli da postoji lokalni bankar koji nikada neće podijeliti toliko novca da ostane bez
svega i izađe iz svog “sigurnog stanja“. Uz saznanja o pravilima, sredstvima, stanjima, uvjetima
može se prikazati funkcionalnost bankarevog algoritma. Nažalost, bankarev algoritam je izvrstan
hipotetski primjer . U praksi je teško ostvariv jer većina dinamičkih procesa treba sredstva , tj. ne
zna te podatke prije početka izvršavanja.

13
9. Literatura

1. https://www.geeksforgeeks.org/operating-system-bankers-algorithm/
2. https://www.studytonight.com/operating-system/bankers-algorithm
3. https://www.youtube.com/watch?v=Q1vPnH3zbdI

14

You might also like