43
6/17/2011 1 Prevencija i tolerancija otkaza 1

08 (PES) Prevencija i Tolerancija Otkaza

Embed Size (px)

DESCRIPTION

PES

Citation preview

Page 1: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

1

Prevencija i tolerancija

otkaza

1

Page 2: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

2

Činjenice

• 90% oružja zahteva računare i softver za upravljanje. Desilo se mnogo otkaza i pogrešnih lansiranja.

• 72 od 141 meteorološih balona je uništeno • 72 od 141 meteorološih balona je uništeno zbog pogrešnog čitanja zahteva "emergency self-destruct" umesto "read data" od strane francuskog meteorološkog satelita.

• .................2

Page 3: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

3

Činjenice

• Na svakih milion linija programskog koda, unese se 20 000 bagova (bugs).

• Normalno, 90% otkrije se u toku testiranja,• još 200 otkaza otkrije se u toku prve • još 200 otkaza otkrije se u toku prve

godine rada,• 1800 bagova ostane nedetektovano!• U toku održavanja obično se otkrije 200 i

uvede 200 novih otkaza!

3

Page 4: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

4

Pojmovi

• Pouzdanost (reliability) – mera uspeha sa kojim sistem zadovoljava specifikacije ponašanja.

• Kvar (failure) – stanje kada sistem odstupa od specificiranog ponašanja.

• Otkaz (fault) – Uzrok nastanka kvara.

4

Page 5: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

5

Pojmovi

• Greška (error) – detektovano neodgovarajuće ponašanje sistema koje je uzrokovao otkaz.

5

Page 6: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

6

Tipovi otkaza

• prolazni (transient) – nastanu, postoje neko vreme i nestanu (napr. ponašanje komponenata zbog spoljnjeg polja),

• stalni (permanent) – nastanu i ostaju do • stalni (permanent) – nastanu i ostaju do popravke sistema napr. prekid žice ili softverska greška),

• isprekidani (intermittent) – nastaju svemena na vreme (napr. hardverske komponente osetljive na grejanje).

6

Page 7: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

7

Tipovi kvara

• pogrešna vrednost • pogrešno vreme izvršavanja:• pogrešno vreme izvršavanja:

• suviše rano• suviše kasno• beskonačno kasno (izostanak odgovora)

7

Page 8: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

8

Stanje i otkazivanje sistema• nekontrolisano – sistem pokazuje

proizvoljne greške i u domenu vrednosti i u domenu vremena;

• zakašnjeno – dobar odgovor ali kasni;• tišina – posle pravilnog rada, prestane da • tišina – posle pravilnog rada, prestane da

funkcioniše;• zaustavljanje – uñe u stanje tišine, ali

dopušta drugim sistemima da detektuju da njegovo stanje;

• bezotkazno – sistem pravilno funkcioniše.8

Page 9: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

9

Povećanje pouzdanosti sistema:

Dva pristupa:• prevencija otkaza – eliminisanje

mogućnosti ugradnje otkaza pre uvoñenja sistema u radni režim,

9

sistema u radni režim,• tolerancija otkaza – omogućavanje da

sistem nastavi sa radom čak i u slučaju postojanja otkaza u sistemu.

Page 10: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

10

Prevencija otkaza:

Dva stepena prevencije otkaza:• izbegavanje otkaza,

10

• uklanjanje otkaza.

Page 11: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

11

Izbegavanje otkaza kod hardvera:

• upotreba pouzdanih komponenata,• upotreba proverenih tehnika povezivanja

komponenata i formiranja podsistema,

11

komponenata i formiranja podsistema,• pakovanje hardvera da se onemogući

interferencija.

Page 12: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

12

Izbegavanje otkaza kod softvera:

• rigorozno specificiranje softvera,

• upotreba dokazanih projektnih metodologija

• upotreba jezika koji omogućavaju apstrakciju podataka i modularizaciju,

12

apstrakciju podataka i modularizaciju,

• upotreba ureñaja za konstrukciju softvera, koji omoguñavaju manipulisanje softverskih komponenata i upravljanje kompleksnošću.

Page 13: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

13

Uklanjanje otkaza:

Procedure nalaženja i otklanjanja otkaza.

Nikada sistem nije tako iscrpno testiran da se može reći da su uklonjeni svi potencijalni otkazi. Problemi su:

• Test se koristi tako da pokaže odsustvo, a

13

• Test se koristi tako da pokaže odsustvo, a ne prisustvo otkaza.

• Nekada je nemoguće testirati sistem u realnim uslovima.

• Neke greške manifestuju se tek kada sistem uñe u upotrebu.

Page 14: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

14

Tolerancija otkaza:

Sistem može da poseduje više nivoa tolerancije otkaza:

• puna tolerancija otkaza – sistem nastavlja sa radom u prisustvu grešaka, bez značajnog gubitka funkcionalnosti ili osobina,

14

gubitka funkcionalnosti ili osobina,• blaga degradacija - sistem nastavlja sa radom

u prisustvu grešaka, sa delimičnom degradacijom funkcionalnosti ili osobina u toku oporavka ili popravke,

• bezbedno zaustavljanje – sistem zadržava svoj integritet uz privremeni zastoj u radu.

Page 15: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

15

Nivo tolerancije otkaza:Zahtevani nivo tolerancije otkaza zavisi od aplikacije. Primer - sistem za kontrolu vazdušnog saobra ćaja:

Potpuna funkcionalnost unutar zahtevanog vremena odgovora

15

Backup sa susednog punkta; koristi se u slučaju katastrofalnog kvara kao što je zemljotres.

Funkcionalnost u slučaju nužde –omogućava razlikovanje aviona.

Minimalna funkcionalnost potrebna za održanje osnovne kontrole saobraćaja

Page 16: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

16

Pristupi projektovanju sistema tolerantnih na greške:

• Algoritmi sistema korektno projektovani,

• Poznati su svi mogući načini otkaza komponenata,

16

komponenata,

• Sagledane su sve moguće interakcije sistema sa okolinom.

Page 17: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

17

Hardverska redundansa:

• Protektivna redundansa – dodavanje komponenata koje imaju funkciju otkrivanja grešaka i oporavak od grešaka.

• Statička redundansa – redundantne komponente unutar sistema koriste se za

17

komponente unutar sistema koriste se za skrivanje efekata otkaza.

• Dinami čka redundansa – redundantne komponente funkcionišu samo kada se detektuje greška.

Page 18: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

18

Statička redundansa:TMR (Triple Modular Redundancy )

18

Page 19: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

19

Trostruka redundansa:TMR (Triple Modular Redundancy )

19

Page 20: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

20

Dinami čka redundansa:

• Redundansa primenjena unutar komponente koja indicira eksplicitno ili implicitno da je izlaz pogrešan. Obezbeñuje detekciju greške, a ne

20

Obezbeñuje detekciju greške, a ne maskiranje. Oporavak mora da obezbedi neka druga komponenta.

• Primer: checksum, parity bit.

Page 21: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

21

Tolerancija otkaza kod softvera:

Dva opšta pristupa:

• Programiranje u N verzija (analogno statičkoj redundansi kod hardvera),

• Zasnovano na procedurama za

21

• Zasnovano na procedurama za otkrivanje i korekciju grešaka (analogno dinamičkoj redundansi kod hardvera jer se procedure za oporavak uključuju u akciju tek pošto je detektovana greška.

Page 22: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

22

Programiranje u N verzija:

Nezavisno generisanje N (N≥2) funkcionalno ekvivalentnih programa na osnovu iste inicijalne specifikacije. To

22

osnovu iste inicijalne specifikacije. To podrazumeva da N i ndividua ili grupa proizvede potrebnih N verzija softvera bez meñusobne interakcije.

Page 23: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

23

Programiranje u N verzija, nastavak1:

• Napisani kod izvršava se konkurentno sa istim ulaznim podacima i njihovi ulazi porede se drajverom . Rezultat se može razlikovati i u tom slučaju se ispravnim

23

razlikovati i u tom slučaju se ispravnim rezultatom smatra rezultat generisan konsenzusom.

Page 24: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

24

Programiranje u N verzija, nastavak2:

• Programiranje u N verzija bazira se na pretpostavci da se program može specificirati kompletno, konzistentno i nedvosmisleno i da će programi koji su razvijani nezavisno, nezavisno i otkazivati.

24

razvijani nezavisno, nezavisno i otkazivati. Ne postoji veza izme ñu otkaza u jednom programu i u drugom programu. Ova pretpostavka može biti pogrešna ako su sve verzije pisane na istom programskom jeziku jer greške u implementaciji jezika mogu biti zajedni čke svim verzijama.

Page 25: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

25

Programiranje u N verzija, nastavak3:

Treba koristiti različite programske jezike i različita razvojna okruženja. Alternativno, ako je korišćen isti programski jezik, treba koristiti kompajlere i podršku od različitih proizvoñača. Kao zaštitu od fizičkih

25

proizvoñača. Kao zaštitu od fizičkih otkaza, N verzija distribuira se odvojenim mašinama koje imaju komunikacione linije tolerantni na otkaze.

Primer: Boeing 777 ima kontrolni sistem sa jednim A da programom koji se izvodi na tri razli čita procesora i radi postizanja razli čitosti, koriš ćena su tri razli čita kompajlera.

Page 26: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

26

Program sa N verzija kontroliše se drajverskim procesom koji je odgovoran za:

• pozivanje verzija,• čekanje na kompletiranje izračunavanja

26

• čekanje na kompletiranje izračunavanja svih verzija,

• poreñenje rezultata i akciju na osnovu toga

Page 27: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

27

Komunikacija verzija programa:

Drajver i verzije programa moraju da komuniciraju u toku izvršavanja. Interakcija je specificirana u verzijama. Sastoji se od tri komponente:

• vektori za poreñenje,

27

• vektori za poreñenje,• indikatori statusa poreñenja,• tačke poreñenja.

Kako verzije komuniciraju i sinhronizuju se zavisi od programskog jezika i modela konkurentnosti.

Page 28: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

28

Komunikacija verzija programa , nastavak1 :

Vektori za pore ñenje su strukture podataka koje predstavljaju izlaze, ili glasove, proizvedene od strane verzija, plus neki

28

proizvedene od strane verzija, plus neki atribut koji je pridružen njihovom izračunavanju.

Vektore poredi drajver.

Page 29: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

29

Komunikacija verzija programa , nastavak2 :Indikator statusa pore ñenja prenosi se od

drajvera ka verzijama. Indicira se akcija koju treba da izvrši svaka verzija kao rezultat poreñenja. Akcija zavisi od ishoda poreñenja: da li su se glasovi složili i da li su isporučeni na

29

da li su se glasovi složili i da li su isporučeni na vreme.

Mogući izlazi: • nastavak rada,• isključenje jedne ili više verzija,• nastavak rada posle promene jednog ili više

izlaza na većinski glas.

Page 30: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

30

Komunikacija verzija programa , nastavak3 :Tačke pore ñenja su tačke u verzijama gde

one moraju da komuniciraju sa drajverom šaljući mu glasove. Frekvencija pojave ovih tačaka u programu predstavlja granularnost pripreme tolerancije otkaza.

30

granularnost pripreme tolerancije otkaza. Mala granularnost tolerancije otkaza

smanjuje nezavisnost verzija.Velika granularnost tolerancije otkaza može

da proizvede veliku divergenciju rezultata

Page 31: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

31

Poreñenje glasova:

Najbitnije kod programiranja u N verzija je efikasnost i lakoća sa kojom drajverski program poredi glasove i odlučuje da li postoji neslaganje.

31

postoji neslaganje. Neki rezultati su takve prirode da verzije ne

proizvode isti rezultat. Tada se obavlja netačno pore ñenje uzimajući u obzir opseg ili srednju vrednost.

Page 32: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

32

Problem konzistentnosti pore ñenja:

>Ti >Ti >Ti

T1 T2 T3

ne ne

da

32

>Pi >Pi >Pi

ne ne

ne

da

P1 P2 P3

V1 V3V2

Page 33: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

33

Principi programiranja u N verzija:

• Inicijalna specifikacija – kompletna, konzistentna, sveobuhvatna i nedvosmislena,

• Nezaisnost projektovanja – nezavisno

33

• Nezaisnost projektovanja – nezavisno pravljeni softveri pokazuju različite otkaze,

• Adekvatni budžet .

Page 34: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

34

Dinami čka softverska redundansa:

Komponente funkcionišu samo ako se pojavila greška.

Četiri faze:• detekcija greške,

34

• detekcija greške,• ograničavanje i procena štete,• oporavak od greške,• tretiranje otkaza koji je izazvao grešku.

Page 35: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

35

Detekcija greške:

Dve klase tehnika detekcije:• detekcija greške u okolini,• detekcija greške u aplikaciji.

35

Page 36: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

36

Detekcija greške u aplikaciji:

• Detekcija replikom programa,• Vremenska detekcija (watchdog timer),• Povratna provera,

36

• Kodna provera,• Provera logike rešenja,• Strukturne provere

Page 37: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

37

Ograni čavanje i procena štete:

• Firewall• Modularna dekompozicija (razbijanje

sistema na podsisteme),• Atomska akcija :

37

• Atomska akcija :Za aktivnost komponente kaže se da je atomska ako nema interakcija izmeñu aktivnosti i sistema u toku trajanja akcije, tj. za ostatak sistema akcija je nedeljiva.

Page 38: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

38

Ograni čavanje i procena štete, nastavak :

• Ostale tehnike koje pokušavaju da ograniče pristup resursima zasnovane su na mehanizmima zaštite , na primer

38

na mehanizmima zaštite , na primer dozvola pristupa.

Page 39: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

39

Oporavak greške:

Procedure oporavka greške:• napred – pokušava se da se iz tačke

greške nastavi dalje praveći selektivne korekcije stanja sistema (redundantni

39

korekcije stanja sistema (redundantni ukazivači, redundantni kodovi),

• unazad – nastoji da sistem vrati u bezbedno stanje koje je prethodilo pojavi greške tj. u tačku oporavka.

Page 40: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

40

• Oporavak unazad ima prednost da briše stanje greške, ali je nekad to nemoguće (lansirani projektil ne može se vratiti).

• Zahteva dosta vremena (loše za real-time

40

• Zahteva dosta vremena (loše za real-time sisteme)

Page 41: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

41

Tretiranje otkaza i nastavak rada:

Greška je manifestacija otkaza i mada je sproveden oporavak greške i sistem vraćen u stanje bez greške, greška se

41

vraćen u stanje bez greške, greška se može opet javiti. Dakle, finalna faza tolerancije otkaza je uklanjanje otkaza iz sistema da bi sistem nastavio pravilan rad.

Page 42: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

42

Tretiranje otkaza i nastavak rada:

Tretman otkaza može se podeliti u dve faze:• lociranje otkaza,• popravka sistema.

42

• Hardverska komponenta sa otkazom menja se, a softverska komponenta sa otkazom koriguje se, ponekad i dok je sistem u funkciji.

Page 43: 08 (PES) Prevencija i Tolerancija Otkaza

6/17/2011

43

Ukratko ....

Prevencija otkaza:• izbegavanje otkaza,• uklanjanje otkaza.

43

Tolerancija otkaza:• hardverska,• softverska.