Sunteți pe pagina 1din 22

Toleranta la

defecte
Istorie
Primul sistem de calcul tolerant la defecte: SAPO, construit in
1951.
Dispunea de 3 unitati aritmetico-logice care decideau rezultatul
corect prin vot, utilizand redundanta modulara tripla (daca toate
rezultatele erau diferite, operatia era reluata)

Cea mai importanta contributie a fost adusa de catre NASA in anii


1960.
Proiectul Apollo
Sistemul de calcul JSTAR - capabil sa detecteze propriile erori si sa le
repare
Copie de siguranta a matricei de memorie
Defecte ale sistemului
3 categorii:
Tranzitorii - apar o data si dispar
Intermitente - apar neasteptat, dispar, reapar
- greu de diagnosticat
Permanente continua sa existe pana cand componenta e
reparata

Silentioase:
Defecte-stop
Procesul devine nefunctional
Bizantine:
Procesul trimite mesaje cu continut arbitrar
Definitie
Proprietate care ii permite unui sistem sa functioneze
si sa ofere rezultatele corecte in cazul in care unele
dintre componentele sale s-au defectat si ofera
rezultate gresite
Importanta
Industria aeronautica
Industria spatiala
Industria energiei nucleare
Industria cailor ferate
Industria medicala
Servicii militare
Scop
Asigurarea faptului ca sistemul continua sa functioneze chiar si la un
nivel redus atunci cand anumite componente ale sale se defecteaza.

Asigura 4 caracteristici ale sistemelor:


Fiabilitate
Disponibilitate
Securitate
Mentenabilitate

Utilitate:
Sisteme de monitorizare a pacientilor
Sisteme de control al zborului
Servicii bancare
Arhitectura
Datele de intrare sunt replicate si
transmise mai multor procese
Comparatorul alege rezultatul corect
pe principiul majoritatii
Clasificare
Sistemele tolerante la defecte sunt implementate
astfel incat sa trateze diverse tipuri de defecte:
Hardware
Defectare hard disk
Defectare dispozitive de intrare/iesire
Software
Erori de implementare
Interfatare intre hardware si software
Defectare drivere
Cat este necesar?

O toleranta la defecte 100% nu este realizabila

Sistemul devine din ce in ce mai scump pe masura apropierii de 100%

Sistem k-tolerant la defecte poate supravietui defectelor a k


componente si inca sa corespunda specificatiilor
k+ 1 componente in cazul defectelor- stop
k se defecteaza, 1 functioneaza
2k + 1 componente in cazul defectelor byzantine
k genereaza raspunsuri gresite; k + 1 genereaza raspunsuri corecte
Tehnici
Replicare
Furnizarea de instante multiple ale aceluiasi sistem
Adresarea de sarcini in paralel
Alegerea rezultatului corect pe baza unui cvorum
Redundanta
Instante multiple
Alegerea altei instante in caz de esec
Diversitate
Implementari diferite, aceeasi specificatie
Task-uri in parallel
Rezultatul crrect pe baza majoritatii
Redundanta
Informatiei
Adaugarea de biti suplimentari pentru a permite recuperarea bitilor pierduti
Coduri Hamming
Paritatea memoriei

In timp
Timeout
Retransmisie

Fizica
Adaugarea de echipament suplimentar
RAID, redundanta modular tripla
Servere de backup
Cazuri posibile
1. Procesoarele functioneza corect; liniile de comunicare
pot pierde mesaje
Problema celor doua armate
Ilustreaza dificultatea de a pune de acord doua
procesoare asupra unui singur bit de informatie
Acordul intre 2 entitati nu este posibil in cazul in
care comunicatia nu este de incredere
2. Comunicarea este fara erori; procesoarele sunt
defectuoase
Problema generalilor bizantini
Problema generalilor bizantini

Cateva divizii ale Armatei bizantine, fiecare sub comanda unui


General, inconjoara inamicul

Generalii:
trebuie sa ajunga la o intelegere in privinta atacului
comunica prin intermediul mesagerilor
propun atac sau retragere
unii dintre ei sunt tradatori

Armata castiga batalia doar daca toti generalii loiali iau aceeasi
decizie
Cerinte

Toti generalii loiali decid acelasi


plan de actiune

Un numar mic de tradatori nu


pot influenta decisiv generalii
loiali.
Solutia cu mesaje orale

Conditii:
A1: fiecare mesaj trimis ajunge
corect la destinatie
A2: receptorul mesajului
cunoaste autorul mesajului
A3: Absenta unui mesj poate fi
detectata
Solutia cu mesaje orale
Solutia cu mesaje orale

Algoritm:
Rezolva Problema Generalilor Bizantini
pentru minim 3m + 1 Generali si cel mult m
tradatori
foloseste functia majority(v(1), ,v(n-1))

Complexitate: O(n^(m+1))
Solutia cu mesaje semnate

Se adauga conditia:
A4:
A) Semnatura unui general loial nu poate fi
falsificata si orice alterare a mesajelor sale
semnate poate fi detectata
B) Oricine poate verifica autenticitatea unei
semnaturi
Rezolva problema pentru orice numar de
Generali
Solutia cu mesaje semnate
Solutia cu mesaje semnate

Algoritm:
Comandantul termite un mesaj semnat tuturor locotenentilor
Fiecare locotenent isi adauga semnatura si trimite mesajul
celorlalti Locotenenti
Foloseste o functie choice care este aplicata unei multimi de
ordine
Rezolva problema pentru orice numar de Generali
A4:
A) Semnatura unui general loial nu poate fi falsificata si orice
alterare a mesajelor sale semnate poate fi detectata
B) Oricine poate verifica autenticitatea unei semnaturi
Conditii de consistenta

Toate procesele corect functionale trebuie


sa foloseasca aceeasi valoare de intrare

Daca unitatea de intrare functioneaza


correct, atunci toate procesele care
functioneaza in mod corect trebuie sa
foloseasca valoarea primita de la unitatea
de intrare
Concluzii

Niciun sistem nu este scutit de defecte

Toleranta la defecte este o cerinta non-


functionala care specifica faptul ca un sistem
continua sa opereze chiar si in prezenta
defectelor

Replicarea datelor este o metoda importanta


utilizata pentru toleranta la defecte
Thank you!

S-ar putea să vă placă și