47
03/16/22 1 Operativni sistemi

P4.ppt

Embed Size (px)

Citation preview

04/22/23 1

Operativni sistemi

04/22/23 2

Sadržaj Uvod Potrebni uslovi za nastanak potpunog zastoja Graf dodele resursa Primeri grafova Sprečavanje nastanka potpunog zastoja Izbegavanje nastanka potpunog zastoja

04/22/23 3

Sadržaj - nastavak Bezbedno stanje sistema Bankarov algoritam Detektovanje nastanka potpunog zastoja i oporavak Kombinovani pristup Primeri pitanja

04/22/23 4

Primeri – traženje posla (“deadlock”) i saobraćajna gužva

Ne možete dobiti posao bez iskustva Ne možete imati iskustvo bez posla “zagušenje” u saobraćaju

04/22/23 5

Primer nastanka potpunog zastoja

Semafori A i B su inicijalizovani na vrednost 1Procesi u sistemu P1 i P2

P1

wait (A);wait (B);

P2

wait (B);wait (A);

04/22/23 6

Primer nastanka potpunog zastoja na mostu

• Saobraćaj preko mosta je moguć samo u jednom smeru• Svaki deo mosta se može posmatrati kao resurs• Ako se pojavi potpuni zastoj, on se može razrešiti tako

što se auto vrati nazad (oslobodi resurs i vrati se u prethodno stanje)

• Može se desiti da nekoliko automobila mora da se vrati nazad radi razrešenja potpunog zastoja

• “Gladovanje” (“starvation”) je moguće

04/22/23 7

Tipovi resursa• Resursi sa ponovnim korišćenjem

(“Reusable”) • procesorsko vreme, glavna i

sekundarna memorija, semafori itd.• Potrošni resursi (“Consumable”) –

kreiraju se (proizvode) i uništavaju (potroše) od strane procesa• prekidi, signali, poruke, informacije u

U/I baferima

04/22/23 8

Model računarskog sistema

Tipovi resursa datog računarskog sistema R1, R2, …, Rm-1

Procesorsko vreme (CPU ciklusi), memorijski prostor, U/I uređaji

Svaki resurs tipa Ri ima Wi instanci.Svaki proces koristi resurs na sledeći način:

zahtevkorišćenjeoslobađanje

04/22/23 9

Višeprogramski rad sistema

Procesi konkurišu jedan drugom za resurse Svaki od aktivnih procesa može da zahteva, koristi i oslobađa više resursa različitog tipa i/ili više resursa istog tipa

04/22/23 10

Zahtev za resursom Poziv operativnom sistemu koji vodi evidenciju o

tipu, broju i zauzetosti resursa

i ukoliko je resurs slobodan dodeljuje resurs

procesu na korišćenje.

04/22/23 11

Mogući ishodi nakon zahteva procesa za resursom

Resurs se dodeljuje procesu i on se nalazi u stanju IZVRŠAVA - SE ili u stanju SPREMAN Ne postoje slobodni resursi zahtevanog tipa i proces prelazi u stanje ČEKA (prebacuje se u red čekanja na zahtevani resurs).

04/22/23 12

Potrebni uslovi za nastanak potpunog zastoja

1. Međusobno isključenje, što znači da u sistemu postoje nedeljivi resursi, odnosno resursi koji u svakom vremenskom trenutku mogu biti dodeljeni samo jednom procesu na korišćenje.

 2. Posedovanje i čekanje (hold-and-wait) znači da postoje procesi

koji poseduju bar jedan nedeljivi resurs i čekaju na druge nedeljive resurse koje koriste drugi procesi.

 3. Resursi se ne mogu oduzimati (no-preemption) što znači da se

resurs dodeljen nekom procesu ne može oduzeti dok sam proces, eksplicitno, ne oslobodi resurs.

 4. Postoji kružno (ciklično) čekanje tako da postoji skup procesa

p0, p1,...,pn pri čemu proces p0 čeka na resurs koji drži proces p1,..., proces pn čeka na resurs koji drži proces p0.

04/22/23 13

Graf dodele resursaElementi grafa G (c,l):

čvorovi koje čine procesi P = {P1,..., Pn}, simbolički prikazani krugovima i resursi R = {R1,..., Rm} koji su na grafu prikazani pomoću kvadrata, pri čemu broj tačaka u kvadratu označava broj komada posmatranog resursa i lukovi, predstavljeni uređenim parovima koji mogu biti zahtevi (pi, rj), odnosno dodela resursa (rj, pi).

04/22/23 14

Graf dodele resursa - komponente

• Proces

• Tip resursa sa 4 instance

• Pi zahteva instancu Rj

• Pi poseduje instancu Rj

Pi

Pi

Rj

Rj

04/22/23 15

Značenje simbola - primeri

R1 P1

Resurs R1 je dodeljen procesu P1

R2 P2

Proces P2 čeka dodelu resursa R2

04/22/23 16

Potpuni zastoj

P1

R1 R2

P2

Zašto je ovo potpuni zastoj?

04/22/23 17

Potpuni zastoj – primer sistema

R2

P1 P2

R1

04/22/23 18

Primer grafa bez kružnog čekanja

P1 P2 P3

R1 R3

R2 R4

Koji procesi imaju dodeljene resurse, a koji čekaju za dodelu resursa?

04/22/23 19

1. primer grafa sa kružnim čekanjem

P1 P2 P3

R1 R3

R2 R4

Koji procesi imaju dodeljene resurse, a koji čekaju za dodelu resursa?

04/22/23 20

2. primer grafa sa kružnim čekanjem

P1 P2 P3

R1 R3

R2 R4

Koji procesi imaju dodeljene resurse, a koji čekaju za dodelu resursa?

04/22/23 21

3. primer grafa sa kružnim čekanjem

P1

P2

P3

R2

P4

R1

Koji procesi imaju dodeljene resurse, a koji čekaju za dodelu resursa?

04/22/23 22

Primer grafa sa kružnim čekanjem kod koga ne mora da dođe do potpunog

zastoja

P1 P3

R1

R2

P2

P4

04/22/23 23

Primer memorijskog sistema sa potpunim zastojem

P1 zauzima 160 KB

zahteva još 120 KB

P2zauzima 140 KB

zahteva još 150 KB

100 KB

04/22/23 24

Važna pravila Ako graf ne sadrži kružno čekanje, tada nema potpunog zastoja. Ako graf sadrži kružno čekanje tada

Ako je samo po jedna instanca po tipu resursa tada sigurno dolazi do potpunog zastojaAko ima više instanci po tipu resursa tada je moguć potpuni zastoj

04/22/23 25

Metode za upravljanje potpunim zastojem

Obezbediti da sistem nikada ne uđe u stanje potpunog zastoja (sprečiti ili izbeći nastanak potpunog zastoja) Dozvoliti da sistem uđe u stanje potpunog zastoja, a zatim izvršiti oporavak sistema Ignorisati problem i pretpostaviti da sistem nikada neće ući u stanje potpunog zastoja; ovo se koristi kod većine operativnih sistema uključujući UNIX

04/22/23 26

Sprečavanje nastanka potpunog zastoja

Sprečavanje postojanja ispunjenosti potrebnih uslova

• Međusobno isključenje: u opštem slučaju nije moguće jer su neki resursi po prirodi nedeljivi

• Posedovanje i čekanje: proces, u trenutku kada traži neki resurs, ne sme posedovati nijedan drugi resurs; proces mora da zahteva sve resurse na početku i svi mu se moraju dodeliti pre početka izvršavanja

• Slabo iskorišćenje resursa, moguće je “gladovanje”

04/22/23 27

Sprečavanje nastanka potpunog zastoja - nastavak• Zabrana oduzimanja resursa: može se

eliminisati, međutim to može da dovede do situacije da se proces kome je oduzet resurs praktično nasilno prekida i njegovo izvršavanje mora da počne od početka

• Kružno čekanje: može se eliminisati tako što se resursi numerišu rednim brojevima i uvede pravilo da proces može da zahteva resurse samo u rastućem redosledu njihovih rednih brojeva

04/22/23 28

Izbegavanje nastanka potpunog zastoja

Operativni sistem, zahteva a priori informaciju od svakog procesa u pogledu zahteva za resursima

• Najjednostavniji model zahteva da svaki proces deklariše maksimalni broj resursa svakog tipa koji mu može biti potreban (u toku životnog ciklusa procesa).

• Algoritam izbegavanja potpunog zastoja dinamički proverava stanja dodele resursa kako bi utvrdio da ne može da nastane uslov kružnog čekanja.

• Stanje dodele resursa je definisano brojem raspoloživih i dodeljenih resursa i maksimalnim zahtevima procesa.

04/22/23 29

Izbegavanje potpunog zastoja

BEZBEDNOPOTPUNIZASTOJ

NEBEZBEDNO

O.S. može da izbegnepotpuni zastoj.

Samo sa srećom će procesi izbeći

potpuni zastoj.

Svi potpuni zastoji su u nebezbednim stanjima, nisu sva nebezbedna stanja potpuni zastoji.

04/22/23 30

Bezbedno stanjeKada proces zahteva raspoloživ resurs, sistem mora da odluči da li ta dodela zadržava sistem u bezbednom stanju.Sistem je u bezbednom stanju ako postoji bezbedna sekvenca za sve procese.Sekvenca <P1, P2, …, Pn> je bezbedna ako za svaki Pi, resursi koje Pi može još da zahteva mogu da budu dodeljeni pomoću trenutno raspoloživih resursa i resursa koje poseduju svi Pj, gde je j < i. Ako potrebni resursi nisu odmah raspoloživi, tada

sistem može da sačeka dok se ostali procesi ne završe.

04/22/23 31

Izbegavanje potpunog zastoja - primer

Pretpostavimo da svaki proces deklariše svoje maksimalne potrebe. Na taj način se obezbeđuje da sistem neće preći u neko nebezbedno stanje. PRIMER:Postoji ukupno 12 resursa istog tipa i 3 procesa p0, p1 i p2. Trenutno stanje izgleda ovako:

Postoje 3 slobodna resursa i sisem je u bezbednom stanju.

U ovom primeru, < p1, p0, p2 > je sekvenca koja radi.

Ako se procesu p2 dodeli još jedan resurs na početku sistem prelazi u nebezbedno stanje.

Proces Max potrebe

Dodeljeno

Trenutne

potrebeP0 10 5 5

P1 4 2 2

P2 9 2 7

04/22/23 32

Bankarov algoritam Jedan od poznatih algoritama koji se koristi za proveru da sistem i nakon dodele resursa ostaje u bezbednom stanju. Banka nikada ne ulaže raspoloživu količinu novca na takav način da ne može da zadovolji svoje komitente.

04/22/23 33

Bankarov algoritam – nastavak 1

Pretpostavlja se da u računarskom sistemu postoji više primeraka istog resursa Svaki proces mora a priori (prilikom aktiviranja) da prijavi tip i maksimalni broj resursa koje koristi. Kada proces zahteva resurs može se desiti da mora da sačeka. Kada proces dobije sve tražene resurse, tada ih mora vratiti u konačnom vremenu.

04/22/23 34

Bankarov algoritam – nastavak 2

Pri svakom zahtevu za dodelu resursa u toku izvršavanja procesa, sistem, koristeći Bankarov algoritam, proverava da li će posle dodele ostati u bezbednom stanju. Ukoliko sistem i nakon dodele resursa ostaje u bezbednom stanju, procesu se dodeljuje resurs, a u suprotnom se zahtev odbija i proces se smešta u red čekanja na resurs.

04/22/23 35

Strukture podataka za Bankarov algoritam

Raspoloživo: Vektor dužine m. Ako je Available[j] = k, tada je raspoloživo k instanci resursa tipa Rj .Max: n x m matrica. Ako je Max[i, j] = k, tada proces Pi može da zahteva najviše k instanci resursa tipa Rj.Dodela: n x m matrica. Ako je Dodela[i, j] = k, tada je procesu Pi trenutno dodeljeno k instanci od Rj.Potrebe: n x m matrica. Ako je Need[i, j] = k, tada procesu Pi može biti potrebno k dodatnih instanci od Rj radi završetka posla.

Potrebe[i, j] = Max[i, j] - Dodela[i, j]

Neka je n = broj procesa i m = broj tipova resursa.

04/22/23 36

Primer:Sistem raspolaže sa 12 primeraka jednog resursa. Trenutno su aktivna tri procesa sa sledećim stanjem prikazanim u tabeli 9.1:

U posmatranom trenutku postoje još tri slobodna primerka resursa i sistem je u bezbednom stanju, što znači da postoji takav redosled dodele resursa koji garantuje da će se sva tri procesa izvršiti. Naime, redosled dodeljivanja prvo P2, zatim P1 i na kraju P3, garantuje završetak sva tri procesa jer:

Proces Max. zahteva Trenutno dodeljeno

P1 10 5

P2 4 2

P3 9 2

04/22/23 37

Primer - nastavakproces P2: (i) dobija 2 primerka (jedan ostaje slobodan) i (ii) završava sa radom i oslobađa 4 primerka

(ostaje pet slobodnih)

proces P1: (i) dobija svih pet primeraka (nema više slobodnih) i

(ii) završava se radom i oslobađa 10 primeraka

proces P3 : (i) dobija sedam primeraka (tri ostaju slobodna) i

(ii) završava sa radom i oslobađa sve resurse.

04/22/23 38

Stanje sistema nakon pogrešne dodele resursa

Proces Max. zahteva Trenutno dodeljeno

P1 10 5

P2 4 2

P3 9 3

04/22/23 39

Važna pravila Ako je sistem u bezbednom stanju nema potpunog zastoja Ako sistem nije u bezbednom stanju moguć je potpuni zastoj Izbegavanje potpunog zastoja obezbediti da sistem ne pređe u stanje koje nije bezbedno.

04/22/23 40

Detektovanje potpunog zastoja

Omogućiti da sistem uđe u stanje potpunog zastoja Algoritam za detekciju potpunog zastoja Potrebna je šema za oporavak sistema

04/22/23 41

Jedna instanca za svaki tip resursa Održavati graf čekanja (“wait-for graph”)

Čvorovi su procesi. Pi Pj ako Pi čeka da Pj oslobodi neki

resurs Rk Periodično pozivati algoritam koji traži da

li postoji kružno čekanje u grafu. Algoritam za detekciju kružnog čekanja u

grafu zahteva red veličine n2 operacija, gde je n broj čvorova grafa.

04/22/23 42

Algoritam za detektovanje potpunog zastoja

R1 R2

P1 P2 P3

R3 R4

P4

P0

Resource Allocation Graph

P1 P2 P3

P4

P0

Wait-For Graph

Graf dodele resursaGraf čekanja (“Wait-For

graph”)

04/22/23 43

Oporavak sistema iz stanja potpunog zastoja – završetak procesa

Mogu se obrisati (završiti) svi procesi koji su u potpunom zastoju – to je skupo Mogu se brisati (završiti) jedan po jedan proces dok se ne izađe iz stanja potpunog zastoja (vremenski zahtevno) Izbor se može vršiti po prioritetu, vremenu izvršavanja, potrebnom vremenu za završetak rada, potrebama za resursima do završetka rada itd. U opštem slučaju lakše je oduzeti resurs, nego završiti proces u cilju oporavka sistema.

04/22/23 44

Oporavak sistema iz stanja potpunog zastoja - oduzimanje resursa

Izbor žrtve (koji proces prekinuti i koji resurs oduzeti) — minimiziranje cene. “Rollback” — vraćanje u bezbedno stanje i u tom stanju ponovno startovanje procesa, kome je resurs oduzet. “Gladovanje” — isti proces može uvek biti izabran kao žrtva; uključiti broj “rollback”-ova u faktor cene.

04/22/23 45

Kombinovani pristup Kombinovanje tri osnovna pristupa

Sprečavanje IzbegavanjeDetektovanje potpunog zastoja

omogućava korišćenje optimalnog pristupa za svaku

klasu resursa u sistemu Deljenje resursa u hijerarhijski uređene klase Koristiti najpodesniju tehniku za upravljanje potpunim zastojem unutar svake klase

04/22/23 46

Primeri pitanja Dat je sistem koji se sastoji od pet procesa koji dele šest resursa istog tipa i gde su svakom procesu potrebna najviše dva resursa. Pokazati da sistem ne može doći u stanje potpunog zastoja. Objasniti strategije sprečavanja i izbegavanja potpunog zastoja.

04/22/23 47

Primeri pitanja – nastavak 1

Objasniti način rada Bankarovog algoritma. Kako se formira graf čekanja i objasniti njegovu namenu. Objasniti kako se koristi kombinovani pristup u rešavanju problema potpunog zastoja.