Sunteți pe pagina 1din 28

CAPITOLUL 7

FIABILITATEA ECHIPAMENTELOR DE CALCUL

7.1. Introducere
n acest capitol se prezint arhitectura echipamentelor de calcul dintr-un
singur punct de vedere, i anume cel al fiabilit ii. Prezentarea nu va fi
exhaustiv i nici matematizat ; se vor folosi mai ales exemple pentru a
ilustra cum felurite considera ii despre fiabilitate influen eaz structura
echipamentelor de calcul.

Principalul subiect al teoriei fiabilit ii const n construirea de


echipamente ct mai fiabile din componente nefiabile. Dac un echipament
ar func iona numai atunci cnd toate componentele sale ar fi func ionale, ar
fi virtual imposibil de construit un echipament complex, pentru c
fiabilitatea ar descre te exponen ial cu num rul de componente din
structura sa.

Principala unealt folosit n construirea echipamentelor complexe este


abstrac ia. Un echipament este construit pe nivele: nivelul B este alc tuit
din componente de nivel A. La rndul lor, componente de nivel B sunt
folosite ca i cum ar fi atomice, indivizibile, pentru a construi nivelul C, i
a a mai departe. Acest proces este inspirat din matematic , unde lemele i
teoremele sunt folosite drept componente elementare n demonstra iile
altor leme i teoreme. n acest capitol se prezint alc tuirea unor nivele din
arhitectura echipamentelor de calcul din punctul de vedere al fiabilit ii pe
care o ofer nivelelor superioare. Astfel putem distinge:
Nivele care m resc fiabilitatea, construind un echipament mai fiabil
din componente mai pu in fiabile. Acest lucru este ob inut folosind
redundan n stocarea sau calculul informa iei. Acest tip de nivel este
cel mai adesea folosit n construc ia calculatoarelor contemporane.
Nivele care expun lipsa de fiabilitate nivelelor superioare, l sndu-le
pe acestea s rezolve imperfec iunile. Nivelele superioare au adesea
informa ii suplimentare despre cerin ele reale de fiabilitate ale
echipamentului i ca atare pot construi fiabilitatea pe m sura
necesit ilor.
154 Cap. 7. Fiabilitatea echipamentelor de calcul

Anumite nivele parti ioneaz resursele n p r i oarecum independente,


izolate una de alta. Parti ionarea are drept efect izolarea defectelor
(fault isolation), astfel nct o defec iune ntr-o parte s nu afecteze
celelalte p r i. n calculatoare aceast tehnic este folosit n sistemele
de operare i clustere-le de calculatoare.
La ora actual circuitele integrate pe scar larg (Very Large Scale
Integrated circuits, VLSI) au ajuns la nivele incredibile de fiabilitate. Ca
atare arhitec ii calculatoarelor privesc n general nivelul hardware ca fiind
perfect i folosesc aceast abstrac ie foarte convenabil n proiectarea
nivelelor superioare. Anumite clase de aplica ii au nevoie ns de o
fiabilitate foarte ridicat (de exemplu, controlul de trafic aerian,
supervizarea centralelor nucleare sau a echipamentelor militare). n astfel
de misiuni critice proiectan ii echipamentelor de calcul iau n considerare
i posibilitatea defectelor hardware, pe care le trateaz n software.
Miniaturizarea continu a circuitelor integrate va conduce la schimb ri n
aceast stare de fapt, astfel nct trebuie s ne a tept m ca n viitor
circuitele s con in din ce n ce mai multe defec iuni i s fie din ce n ce
mai sensibile la fluctua ii termodinamice i particule de nalt energie din
radia ia cosmic sau chiar din degradarea radioactiv a circuitului integrat
respectiv. Astfel de schimb ri vor necesita o reproiectare complet a
arhitecturii echipamentelor de calcul.
Ingredientul cel mai folosit pentru a construi echipamente fiabile este
redundan a. n cazul echipamentelor de calcul putem distinge dou genuri
de redundan , spa ial i temporal :
Redundan a spa ial folose te mai multe componente dect strictul
necesar pentru a implementa un anumit echipament de calcul. Resursele
adi ionale fac calcule suplimentare i rezultatele sunt comparate ntre
ele. n general, cu ct redundan a unui echipament de calcul este mai
mare, cu att poate detecta sau tolera mai multe erori.
Redundan a temporal const n folosirea aceluia i dispozitiv pentru a
calcula acela i lucru n mod repetat, dup care rezultatele sunt
comparate ntre ele.

Defectele ce afecteaz componenta soft a unui echipament de calcul se pot


clasifica n dou mari categorii:
Erori tranzitorii, care se manifest printr-o func ionare temporar
eronat a unei componente, dar nu prin defectarea ei definitiv . n
echipamentele de calcul contemporane, cea mai mare parte a erorilor
sunt tranzitorii.
Cap. 7. Fiabilitatea echipamentelor de calcul 155

Erori permanente care se produc la un moment dat i persist pn


cnd echipamentul este reparat. n aceast categorie includem i
defectele din faza de proiectare sau din fabrica ie.
Rezult c redundan a temporal poate fi folosit numai pentru a tolera
defectele tranzitorii. Pentru a tolera efecte permanente trebuie s avem o
form de redundan spa ial .

7.2. Proiectarea echipamentelor de calcul


Cnd proiect m un echipament complex este foarte important s
echilibr m fiabilitatea p r ilor. De exemplu, dac memoria unui
echipament de calcul are o fiabilitate mult mai mare dect procesorul,
atunci echipamentul se va defecta cel mai adesea cu probleme de procesor.
Faptul c memoria este de foarte bun calitate nu ne ajut cu nimic,
dimpotriv probabil c am pl tit un pre mai mare pentru memorie dect ar
fi fost strict necesar. n general, o component este destul de bun dac
nu are cea mai mare probabilitate de defectare.

n cazul analizei fiabilit ii unui echipament trebuie s socotim nu numai


costul componentelor fiabile, ci i costul ntre inerii echipamentului n
timpul misiunii sale (vezi figura 1.2). Dac utiliz m componente foarte
fiabile pl tim prea mult pentru construc ia echipamentului, iar dac
utiliz m componente cu fiabilitate prea redus , ne va costa prea mult
ntre inerea echipamentului. Numai contextul poate dicta ct de fiabil
trebuie s fie un echipament: de exemplu, n aplica iile critice descrise mai
sus, costul ne-func ion rii echipamentului este uria , a a nct are sens s
investim n componente extrem de fiabile.

Evitarea defectelor echipamentelor de calcul este o metodologie idealizat ,


care presupune c toate componentele sunt perfecte. Pentru c hardware-ul
actual are o calitate excep ional , nivelul software n calculatoarele
obi nuite adopt o astfel de viziune idealizat . Programatorii presupun c
echipamentul pe care se ruleaz programele lor este lipsit de defec iuni.

Fiabilitatea excelent a dispozitivelor hardware este ob inut printr-o


combina ie de tehnici, cum ar fi felurite forme de redundan , proiectare i
fabrica ie cu precizie foarte ridicat , i o faz agresiv de testare i ardere
(burn-in).

Empiric s-a observat c echipamentele de calcul tind s aib o mortalitate


care urm re te o curb n form de cad de baie, echivalent ratei
156 Cap. 7. Fiabilitatea echipamentelor de calcul

mortalit ii din studiile demografice. Echipamentele foarte tinere i cele


foarte uzate se stric mult mai des dect echipamentele mature. Burn-
in este o faz de testare care folose te componentele pn devin mature i
n acest fel, componentele cu mortalitate infantil ridicat sunt eliminate n
aceast etap .

n plus fabrican ii proiecteaz i testeaz echipamentele de calcul n


condi ii mai nefavorabile dect cele specificate. De exemplu, pe acest fapt
se bazeaz cei care fac overclocking: specifica iile unui procesor indic
frecven a de ceas la care acesta poate opera, ns n mod frecvent un
procesor cu specifica ie de ceas de 1Ghz poate opera la 1.2Ghz, datorit
marginilor de toleran din fabrica ie.

Metoda evit rii defectelor este cu adev rat extrem . ntruct s-a constatat
c oricare dintre componente se poate defecta, se utilizeaz proceduri de
men inere a echipamentului n func ionare prin implementarea toleran ei
la defectare (fault-tolerance).

7.2.1. Structuri tolerante la defect ri

O metod foarte simpl , dar scump , de a tolera erori este de a multiplica


fiecare component . De exemplu, dac duplic m ntreg echipamentul de
calcul, apari ia unui defect poate fi detectat comparnd rezultatele celor
dou echipamente cu structur identic .

O alt modalitate de a tolera defectele const n utilizarea structurilor TMR


( 4.3.1.1). n aceast structur trei module fac aceea i opera ie i un
modul de decizie (voter) alege rezultatul majoritar. Structura va avea
performan e net superioare unui singur modul, ns cu un pre considerabil
mai ridicat. ntruct voterul devine elementul slab al structurii, exist i
scheme n care echipamentul de votare este multiplicat, pentru ca decizia
s nu depind de o singur component .

Un astfel de echipament de votare este folosit n calculatoarele care


controleaz navetele spa iale: echipamentul este compus din cinci
calculatoare, din care patru fac acelea i calcule i al cincilea este folosit
pentru opera iuni ne-critice. Rezultatele celor patru calculatoare se duc
pn la echipamentele controlate (exemplu: motoare de propulsie), care
calculeaz local rezultatul votului. n plus, fiecare calculator compar
rezultatele cu celelalte trei, iar atunci cnd unul dintre ele d rezultate
diferite este scos din func iune.
Cap. 7. Fiabilitatea echipamentelor de calcul 157

Dac dou calculatoare se defecteaz , echipamentul intr ntr-un mod de


func ionare n care rezultatele sunt comparate i recalculate atunci cnd
difer . Al cincilea calculator con ine un echipament de control complet
separat, dezvoltat de alt companie, care intr n func iune cnd un bug
identic este detectat n celelalte patru programe.
n continuare vor fi prezentate o serie de structuri de echipamente de calcul
tolerante la defect ri:
A) Procesorul IBM G5 din echipamentul S/390. n cazul acestui procesor
se folose te un tip de redundan hibrid , care utilizeaz redundan a
spa ial pentru a detecta erori tranzitorii i redundan a temporal pentru a
le remedia. Acest echipament este asem n tor cu modul de func ionare cu
dou defec iuni folosit de naveta spa ial , descris mai nainte.
Microprocesorul G5 con ine dou benzi de execu ie identice, care sunt
controlate de acela i ceas. Toate instruc iunile sunt executate n mod
sincron de ambele benzi, iar la sfr itul execu iei rezultatele sunt
comparate. Dac rezultatele sunt identice, rezultatul instruc iunii este scris
n registrul destina ie sau n memorie. Dac nu, se genereaz o excep ie
software, care de obicei se soldeaz cu re-execu ia instruc iunii-problem .
Erorile tranzitorii sunt astfel reparate n mod transparent. Aceast schem
este func ional pentru c probabilitatea ca o eroare tranzient s afecteze
ambele benzi n acela i mod este una foarte mic .
B) Procesor superscalar tolerant la erori tranzitorii. O schem foarte
original care folose te doar redundan temporal pentru a tolera erori
tranzitorii a fost propus n anul 2001 la conferin a de microarhitectur
MICRO 2001 de un grup de cercet tori de la universitatea Carnegie
Mellon. n aceast schem unui procesor superscalar obi nuit i se fac
cteva modific ri simple, astfel nct fiecare instruc iune citit s fie
lansat n execu ie n mod repetat. Metodele de redenumire a regi trilor
folosite n procesorul superscalar fac din executarea unor instruc iuni
suplimentare, care nu afecteaz echipamentul, un lucru foarte simplu. La
sfr itul benzii de asamblare rezultatele copiilor lansate n execu ie sunt
comparate ntre ele. Robuste ea depinde de gradul de redundan : dac
fiecare instruc iune este executat de dou ori, o eroare se manifest prin
rezultate diferite i instruc iunea trebuie re-executat ; dac o instruc iune
este executat de mai mult de dou ori, se poate folosi o schem de votare
cu majoritate.
Un astfel de procesor poate fi proiectat s lucreze fie n mod normal, fie n
mod cu fiabilitate crescut , depinznd de tipul de program executat.
Performan a n modul cu fiabilitate ridicat este invers propor ional cu
158 Cap. 7. Fiabilitatea echipamentelor de calcul

gradul de redundan ; de exemplu, dac fiecare instruc iune este executat


de dou ori, ar putea rezulta o sc dere a vitezei de calcul la 50%. n
realitate, penalizarea este ceva mai mic , din cauz c un program nu
folose te toate resursele computa ionale. De exemplu, dac un program
folose te 80% din resurse, cnd executam programul duplicnd fiecare
instruc iune avem nevoie de 160% resurse, ceea ce se traduce ntr-o
degradare a performan ei cu 37,5% (100/160 = 62,5 = 100 - 37,5).

C) Echipament de calcul tolerant la defect ri avnd arhitectur cu


verificare dinamic . Aceast structur , propus n anul 1999 de c tre
cercet torii de la universitatea Michigan este cunoscut sub numele de
DIVA, de la Dynamic Implementation Verification Architecture
(arhitectur cu verificare dinamic ).

Spre deosebire de schemele anterioare, structura DIVA e proiectat pentru


a tolera att erori tranzitorii, ct i permanente (cele din urm doar n
anumite p r i ale echipamentului). Observa ia central pe care se bazeaz
DIVA rezid din faptul c este c e mai u or de verificat dac rezultatul
unui calcul e corect dect este de efectuat calculul nsu i. Ca atare,
arhitectura DIVA este compus din dou procesoare diferite, fiind
prezentat n figura 7.1.

Fig.7.1. Structura echipamentului de calcul DIVA

Aceast structur con ine:


Un procesor complex, superscalar, foarte optimizat, care face calculele
n mod normal.
Un procesor extrem de simplu, mai lent, dar foarte fiabil, care execut
instruc iunile n ordine, i este construit folosind tehnici de evitare a
defectelor.
Cap. 7. Fiabilitatea echipamentelor de calcul 159

Echipamentul de calcul DIVA func ioneaz astfel:


Procesorul complex execut toate instruc iunile i calculeaz rezultatele
lor. Rezultatele ns nu sunt scrise, ci sunt transmise procesorului
simplu (lent i fiabil).
Procesorul simplu merge ceva mai ncet, i verific n paralel toate
detaliile rezultatelor primite. De i acest procesor este mai simplu, are o
treab mai u oar , i ca atare poate atinge aceea i performan ca cel
rapid (exprimat n instruc iuni procesate pe secund ). Cnd verificarea
descoper o eroare, procesorul simplu calculeaz rezultatul corect i re-
porne te procesorul complex de la instruc iunea urm toare.

Foarte interesant este faptul c o arhitectur DIVA poate tolera chiar erori
de proiectare n procesorul foarte complicat, pentru c acestea sunt
detectate i corectate de procesorul lent i simplu. Poate fi chiar avantajos
ca procesorul rapid s fie proiectat incorect, dar extrem de rapid, n cazul
n care nu produce rezultate eronate prea frecvent. De exemplu, ntr-un
procesor normal foarte multe circuite suplimentare sunt introduse pentru a
trata corect cazul programelor care se auto-modific . n realitate, practic
nici un program modern nu folose te aceast tehnic n mod curent;
procesorul rapid f r aceste circuite poate fi f cut mult mai eficient, iar
corectitudinea calculelor va fi asigurat de c tre procesorul lent.

7.2.2. Coduri detectoare i corectoare de erori

S-au prezentat deja mai multe exemple de folosire a redundan ei spa iale
pentru detectarea i corectarea erorilor. Costul schemelor prezentate mai
nainte este substan ial: ele cer o multiplicare identic a unui ntreg
echipament. De exemplu, redundan a modular tripl are o eficien de
33%, pentru c hardware-ul este multiplicat de trei ori.

E interesant de explorat dac nu putem ob ine acelea i beneficii cheltuind


mai pu ine resurse suplimentare. Deschiz tori de drumuri au fost n aceast
privin Claude Shannon i Richard Hamming, spre sfr itul anilor 40. n
continuare se prezint metodele propuse de ei pentru a stoca informa ie
utiliznd structuri tolerante la defect ri.

S presupunem c dorim s stoc m ni te informa ii codificate n baza doi


ntr-un mod fiabil. Putem atunci de pild face dou copii ale informa iei.
Dar o defec iune a unui singur bit va face informa ia de nerecuperat, pentru
c acel bit va fi diferit n cele dou copii, i nu putem deduce care este
160 Cap. 7. Fiabilitatea echipamentelor de calcul

valoarea original . Sl biciunea acestei metode const n faptul c bi ii


stoca i nu sunt robu ti: fiecare bit din mesaj este reprezentat n doar doi
bi i din cod.

Pentru a ob ine toleran la erori trebuie s ad ug m redundan n cod;


astfel, vom codifica n bi i de informa ie folosind m > n bi i de cod. Cu ct
m e mai mare ca n, cu att mai robust va fi codul nostru. Cuvintele de m
bi i care reprezint coduri corecte se numesc cuvinte de cod (code
words). Se observ c nu toate cuvintele de m bi i sunt cuvinte de cod, ci
numai 2n dintre ele.

Se poate defini distan a Hamming ntre dou iruri de bi i ca fiind


num rul de diferen e ntre cele dou iruri. De exemplu, distan a Hamming
dintre 1111 i 1010 este 2, pentru c cele dou iruri difer n pozi iile a
doua i a patra. Cea mai mic distan Hamming dintre cuvintele unui cod
este o m sur foarte bun a robuste ii codului. De exemplu, dac distan
Hamming ntre oricare dou cuvinte este mai mare dect 3, atunci o
schimbare de 1 bit poate fi ntotdeauna corectat : cel mai apropiat cuvnt
de cod este cel care a fost modificat de eroare, pentru c toate celelalte
cuvinte de cod se vor afla la o distan mai mare de 2 de cuvntul eronat.
Astfel, un cod cu distan Hamming 3 poate corecta orice eroare de 1 bit, i
poate detecta orice eroare de doi bi i. Un astfel de cod va detecta i alte
erori, de exemplu va detecta unele erori de trei bi i, dar nu orice eroare de
trei bi i. Exist efectiv zeci de coduri diferite, fiecare potrivit n alte
circumstan e.

Codurile detectoare i corectoare de erori sunt folosite pe larg n re elele de


calculatoare. Depinznd de caracteristicile canalului de comunica ii
(distan , cost de transmisiune, viteza semnalului, zgomot) se pot folosi
coduri mai mult sau mai pu in robuste. n anumite cazuri e preferabil ca
erorile s fie detectate i datele incorecte s fie retransmise, n alte cazuri
costul retransmisiei este prea mare, i ca atare se folosesc coduri
corectoare. Folosirea unui cod corector n transmisiunea de date se mai
nume te i codare preventiv (Forward Error Correction).

Pentru comunica ia cu sondele spa iale se folosesc coduri corectoare de


erori extrem de robuste, pentru c la astfel de distan e semnalul
electromagnetic are nevoie de multe minute pentru a se propaga. n 1993
un grup de cercet tori francezi a inventat o clas de coduri extrem de
robuste numite Turbo-coduri care, folosind o redundan relativ redus de
200%, ob in o rezilien excep ional la zgomot, fiind foarte aproape de
limitele maxime teoretice.
Cap. 7. Fiabilitatea echipamentelor de calcul 161

Turbo-codurile ilustreaz un nou tip de compromis pe care proiectantul l


poate face n rela ia robuste e/cost: costul cel mare al unui turbo-cod nu
este n cantitatea mare de informa ie suplimentar , ci n algoritmul de
decodificare, care este foarte complicat i necesit multe itera ii. Dup cum
am v zut i n cazul memoriilor, cu aceea i redundan putem ob ine
garan ii diferite de fiabilitate, n func ie de algoritmul de codificare folosit.
n cazul comunica iei interplanetare costul transmisiunii face costul
decodific rii insignifiant, deci turbo-codurile sunt potrivite.

7.2.3. Memorii tolerante la defect ri

n func ie de modalit ile utilizate n scopul protec iei mpotriva erorilor,


memoriile n structura unui echipament de calcul se pot clasifica astfel:

Memoriile neprotejate. Aceste memorii stocheaz fiecare bit de date n


mod separat i nu ofer nici o protec ie mpotriva erorilor. Ca atare sunt
cele mai ieftine. Cum ns dimensiunea memoriilor a crescut foarte repede,
la ora actual aceast solu ie este riscant , c ci probabilitatea ca nici un bit
s nu se defecteze este foarte redus .

Memoriile cu paritate. Aceste memorii folosesc o metod foarte simpl


pentru a detecta erori de un bit n fiecare octet ( i, n general, erori care
schimb un num r impar de bi i). Pentru fiecare 8 bi i de date aceste
memorii stocheaz un al nou lea bit de paritate, a c rui valoare este
calculat astfel nct oricare cuvnt de nou bi i are un num r par de bi i
1 (de aici i numele schemei).

Cnd hardware-ul acceseaz memoria, automat verific i paritatea. Dac


paritatea nu este corect se declan eaz o excep ie i echipamentul de
operare decide cum trebuie s ac ioneze. O solu ie este de a opri programul
care folosea acea memorie i de a marca memoria ca fiind defect , astfel
nct alte programe s nu o poat refolosi. Verificarea parit ii este o
opera ie foarte rapid , care se poate face foarte simplu folosind structuri
hardware, n paralel cu transferul informa iei.

Memoriile ECC. Acestea sunt protejate cu un cod sofisticat de corec ie a


erorilor (Error Corecting Code). Acest cod poate corecta automat orice
eroare de 1 bit care apare ntr-un cuvnt de 64 de bi i. Pentru acest scop
memoria stocheaz fiecare cuvnt de 64 de bi i folosind cuvinte de cod de
72 de bi i. Se observ c risipa (overhead) acestei scheme este aceea i cu
cea a parit ii (9/8 = 72/64). Aceast schem ofer corec ie cu o robuste e
162 Cap. 7. Fiabilitatea echipamentelor de calcul

mai mic , pentru c poate corecta o eroare la 64 de bi i, spre deosebire de


cealalt schem care poate detecta o eroare la 8 bi i.

La fiecare acces la memorie hardware-ul verific dac cuvntul de cod este


corect, iar dac nu, calculeaz automat cel mai apropiat cuvnt de cod pe
care apoi l decodific . Aceste opera ii sunt destul de complicate, astfel
nct un echipament cu memorii ECC func ioneaz cu aproximativ 5% mai
lent dect unul cu memorii ce utilizeaz principiul parit ii.

Discuri. Cel mai comun suport permanent de informa ie este discul, n


multiplele lui implement ri: hard-disc, dischet , disc optic, compact-disc,
flash-disk etc. Informa iile din aceast sec iune sunt valabile pentru multe
dintre aceste tipuri de discuri.

Discurile folosesc simultan dou metode diferite de redundan spa ial ; o


protec ie sporit este necesar din cauz c discurile func ioneaz ntr-un
mediu mult mai aspru dect memoriile: unele discuri au p r i mecanice n
mi care, care se uzeaz i se pot strica mai u or.

Informa ia este stocat pe discurile clasice n sectoare. Un sector este


relativ mare (comparat cu un cuvnt de memorie), fiind de ordinul a
jum tate de kilooctet (512 octe i). Discurile folosesc sectoare mari pentru
c la viteza lor de rota ie (peste 5000 de rota ii pe minut) capetele de
citire/scriere nu se pot plasa foarte precis pe suprafa . Astfel, unitatea
elementar n care se scrie pe un disc este sectorul: chiar dac vrem s
modific m un singur bit, trebuie s rescriem tot sectorul.

n figura 7.2 este prezentat formatul unui sector de disc. Informa ia servo
este folosit pentru controlul mi c rii capului, identificatorul indic
num rul sectorului curent, iar informa ia de sincronizare este folosit
pentru a sincroniza pozi ia capului cu nceputul sectorului.

Fig. 7.2. Formatul unui sector


de disc
Cap. 7. Fiabilitatea echipamentelor de calcul 163

Datele sunt stocate ntr-un ir compact i codificate folosind un cod


detector de erori. ntre dou sectoare consecutive este un blanc (spa iu
liber), care-i d capului ceva libertate cnd rescrie sectorul (niciodat nu va
rescrie ncepnd chiar din acela i loc).

Codurile folosite pentru discuri se numesc CRC, de la Cyclic Redundancy


Check: coduri ciclice. Un cuvnt de cod const din chiar cuvntul de date
urmat de informa ii de control. Decodificarea codurilor CRC este foarte
simpl : se extrage direct cuvntul de date, dup care codul de control
verific dac vreunul dintre bi ii stoca i e incorect. Un cod ciclic are
proprietatea c orice permutare a datelor este protejat de acela i cuvnt de
control.

Cnd codul de control indic defectarea unui sector, discurile folosesc n


mod automat a doua form de redundan spa ial : sectoare de rezerv . Pe
disc sunt ascunse sectoare invizibile, care sunt folosite atunci cnd
sectoarele de date ncep s dea rateuri. n mod transparent software-ul
aloc un sector de rezerv n locul unuia defect. Identificatorul de sector
este folosit pentru a indica cine pe cine nlocuie te.

Discurile stocheaz o hart de defecte care indic sectoarele nlocuite,


acest lucru permi nd o func ionare corect i dup ce apar defec iuni, i
permite, de asemenea, un proces de fabrica ie mai imperfect i mai ieftin.

Pentru stocarea de nalt fiabilitate a datelor se utilizeaz Flash Disk-uri.


Aceste dispozitive au ap rut din necesitatea ca n aplica iile industriale sau
de comunica ii portabile, s fie nevoie de o capacitate de memorie de
numai 80 MB sau mai pu in, fiind necesar i o foarte bun rezisten la
ocuri i vibra ii. n astfel de cazuri, solu ia folosirii unor unit i de hard-
disk conven ionale este improprie, fie i numai pentru motivul c ast zi nu
se mai fabric HDD-uri cu capacit i a a de mici. Pn acum singura
solu ie era utilizarea unui hard-disk cu o capacitate minim de 3-4 GB. n
pofida excedentului de memorie, se putea ntmpla ca acesta s se
defecteze n mai pu in de o lun de func ionare efectiv , datorit mediului
de lucru sever n care se desf ura misiunea. n mod normal, hard-diskurile
au o fiabilitate ridicat n mediul de birou sau laborator, MTBF fiind de
ordinul a multe zeci de mii de ore (echivalent a 8 ani de func ionare
continu sau 30 ani de utilizare normal ). ns acestea nu suport lovituri
sau ocuri puternice, care le pot scoate definitiv din func iune, iar dac
mediul de lucru prezint vibra ii, capetele se vor pozi iona eronat pe pist ,
genernd erori soft (de citire) sau crescnd considerabil timpul de acces
(dureaz pn cnd se repozi ioneaz pe pista corect ).
164 Cap. 7. Fiabilitatea echipamentelor de calcul

O solu ie par ial ar fi HDD-rile pentru notebook-uri, deoarece prezint o


rezisten mecanic considerabil sporit , fiind compacte i special
proiectate pentru o utilizare n medii cu ocuri i vibra ii. ns capacitatea
este tot excedentar , iar pre ul este foarte ridicat.

Odat cu apari ia Flash Disk-urilor, problema pare a fi solu ionat . Ideea


nlocuirii mediilor magnetice cu memorii semiconductoare nu este nou ,
dar la nceput pre ul era prohibitiv, iar capacitatea redus . Au ap rut apoi
memoriile reprogramabile Flash. Ini ial, acestea erau doar un fel de
EEPROM-uri mai performante, nu puteau fi terse dect de un num r
limitat de ori (de circa 10.000). Desigur, aceast valoare este excelent
pentru o memorie programabil , dar cu totul insuficient pentru a nlocui
un disk magnetic. Ulterior au fost perfec ionate, iar acum rezist la un
milion de cicluri de scriere/citire. De asemenea, dac la nceput erau
disponibile doar sub forma de cartele de memorie, acum emuleaz perfect
o unitate de disk IDE, astfel c ofer o solu ie de stocare a datelor cu o
mare fiabilitate hardware i software.

Absen a total a componentelor n mi care face modulele de memorie


Flash mai rapide i mai robuste dect mediile magnetice rotative, respectiv
unit ile de hard-disk. Principalul dezavantaj l reprezint pre ul mai
ridicat, dar pentru capacit i de stocare mici, ele reprezint o alternativ
convenabil la HDD. Termenul mici este ceva relativ: dac la nceputul
anului 1993 nsemna 1-2MB, acum se refer la 100-400MB. n momentul
de fa sunt disponibile i Flash Disk-uri de peste 500MB, dar odat cu
sporirea capacit ii, pre ul creste considerabil.

n continuare se prezint o compara ie ntre Flash Disk-uri i unit ile de


hard-disk miniatur (de 1,3 sau 2,5 inch). La capacit i mici, pn la
100MB, modulele Flash sunt categoric competitive. De fapt, la aceste
valori mici, principalul concurent al Flash Disk-urilor l reprezint
memoria RAM static , nu hard-diskurile. Pre ul memoriei Flash este
propor ional cu capacitatea, deoarece capacitatea de stocare este direct
propor ional cu num rul de circuite integrate Flash folosite. Unit ile de
disk magnetic au un pre de baz ce include pre ul componentelor
mecanice i al controlerului. Pre ul hard-diskului nu poate scade sub
aceast valoare de pornire, dar, m rind suprafa a mediului magnetic sau
num rul de fe e, se poate m ri capacitatea cu o cre tere de pre foarte mic .

n privin a rezistentei la ocuri fizice, (cum ar fi simpla c dere a


aparatului), modulele Flash sunt clar superioare hard-diskurilor. Gama de
Cap. 7. Fiabilitatea echipamentelor de calcul 165

temperaturi de lucru este similar la cele dou categorii. Intervine ns , din


nou, conceptul de fiabilitate software: n cazul unor varia ii rapide de
temperatur , HDD-urile clasice nu sunt disponibile imediat. Cnd este adus
de la o temperatur sc zut ntr-o nc pere nc lzit , unitatea de hard-disk
trebuie l sat s se aclimatizeze, pentru a nu apare probleme cu
condensarea umidit ii. Dac temperatura ambiant se modific rapid i
frecvent, sistemul de urm rire a pistelor pierde un timp considerabil cu
opera iile de recalibrare. n aceste cazuri, disponibilitatea unit ii de disk
este redus . Flash Disk-urile nu prezint asemenea probleme.

O compara ie direct a vitezelor este greu de realizat. Scrierea efectiv este


mai lent la Flash, dar hard-diskul necesit un timp pentru atingerea vitezei
de rota ie de regim i prezint ntrzieri de rota ie i n trecerea de la o pist
la alta.

ntr-o aplica ie tipic , memoria Flash este de 2-10 ori mai rapid dect
hard-diskul. Aplica ie tipic este cea n care datele sunt citite de 4-5 ori
mai des dect sunt scrise, iar transferurile de date tind s fie scurte i nu
foarte frecvente. Debitul de date n cazul unui transfer continuu este mai
redus: 0,7-1 Moctet pe secund la citire i 2-300 Kocte i pe secund la
scriere, fa de valoarea de 5 Mocteti pe secund n mod rafal (burst).
Alte avantaje ale FlashDisk-urilor sunt nivelul sonor foarte redus n timpul
func ion rii (unele hard-diskuri pot fi destul de zgomotoase) i posibilitatea
lucrului la altitudini foarte ridicate. Hard-diskurile au nevoie de o presiune
atmosferic minim pentru a realiza perna de aer pe care plutesc capetele.

Caracteristicile generale ale Flash Disk-urilor sunt prezentate n


continuare:
au dimensiunile clasice ale HDD-urilor obi nuite;
sunt Disk-uri cu interfa a IDE, bazate pe o tehnologie Flash;
au capacit i de stocare extrem de flexibile: ntre 4MB i 512 MB;
sunt mult mai stabile dect HDD-urile conven ionale. Ele pot rezista la
ocuri i vibra ii fiind astfel foarte potrivite pentru aplica ii ce se
desf oar n medii cu cerin e severe;
au un consum redus de energie;
sunt 100% compatibile IDE, nefiind necesar instalarea vreunui driver;
folosesc algoritmul de detec ie i corec ie al erorilor Reed Solomon pe
16 biti;
cu o interfa de 3,3V sau 5V, Flash Disk-urile suport gestiunea
automat a consumului de energie (APM) precum i comenzi ATA de
ntrerupere a aliment rii i mod sleep (a ipire).
166 Cap. 7. Fiabilitatea echipamentelor de calcul

Cel mai important lucru este c ofer o stabilitate mult mai bun a
aplica iilor, n medii de lucru dure, cu ocuri i vibra ii. n astfel de medii,
unit ile de hard-disk clasice chiar dac nu se defecteaz , prezint erori de
c utare, astfel c r spunsul devine lent, iar comportarea - aleatoare.
Consumul redus de energie contribuie la cre terea duratei de via a
ntregului sistem.

Capacitatea de stocare flexibil nseamn c se poate utiliza un model cu


capacitate foarte apropiat de cea necesar pentru aplica ie, pentru a nu
cre te costurile aferente cu memoria suplimentar ce nu va fi niciodat
folosit . Comenzile interfe ei IDE sunt conforme cu standardului industrial
ATA-4.

Flash-Disk-urile au fost verificate cu succes sub urm toarele sisteme de


operare: MS-DOS, Windows 95/98/NT, Windows CE, OS2 Warp, Linux,
QNX, Unix Ware. Media timpului de bun func ionare (MTBF) este de
peste 1.000.000 de ore. Fiabilitatea datelor memorate este asigurat prin
func ii ncorporate de detectare i corec ie a erorilor.

Flash-Disk-urile au performan e foarte bune n ceea ce prive te anduran a:


pentru opera ii de scriere/citire sunt garantate pentru circa un milion de
cicluri, iar pentru opera ii de citire se prevede un num r nelimitat de astfel
de opera ii.

n ceea ce prive te viteza de transfer pe magistral , aceasta este de peste


700 KB/sec n caz de citire sus inut i de peste 250 KB/sec la opera ii de
scriere sus inut . Flash-Disk-urile se remarc , de asemenea, prin gama
temperaturilor de lucru (de la -25oC la +85oC) i prin altitudinea maxim la
care pot func iona corect (16.000m).

Valorile prezentate mai nainte sunt valabile pentru FlashDisk-urile tipice.


Realiz rile de vrf, state of the art, au performan e net superioare, ns i
costurile de produc ie sunt mai ridicate. Astfel, firma BiT Microsystems
produce seria E-Disk cu performan e deosebite i cu o capacitate de
stocare foarte ridicat . Se urm re te nlocuirea unit ilor de hard-disk cu
module semiconductoare cu viteza de lucru mare, fiabilitate, longevitate i
scalabilitate superioare. Rata de transfer este de 40 MB/sec n mod i de 34
MB/sec n mod sus inut, iar capacitatea poate ajunge pn la valoarea de
13.312 MB. Aceste dispozitive nu con in componente n mi care, care
reprezint principala cauza a defect rilor i ntrzierilor electromecanice la
HDD-urile clasice.
Cap. 7. Fiabilitatea echipamentelor de calcul 167

Ca dovad suplimentar a performan elor ridicate, E-Disk sunt prev zute


nu cu obi nuita interfa EIDE, ci cu variante avansate de SCSI: SCA Ultra
Wide SCSI cu tensiune diferen ial redus .

Media timpului de bun func ionare ajunge la 1,9 milioane de ore, se


folosesc coduri detectoare i corectoare de erori foarte performante, astfel
c rata erorilor nedetectate este foarte sc zut . Astfel de dispozitive de
stocare de nalt fiabilitate sunt ideale pentru telecomunica ii, transporturi,
aplica ii industriale, aerospa iale sau militare, unde sistemele sunt supuse
unor condi ii de temperaturi extreme, cmpuri magnetice puternice,
vibra ii, praf, mizerie i vapori corosivi. Sunt de asemenea potrivite pentru
aplica iile unde este esen ial un coeficient foarte ridicat de disponibilitate i
o vitez mare: depozite de date, multimedia, financiare, furnizori de
servicii Internet, comer electronic, servere proxy etc.

n continuare se prezint un alt tip de echipament fiabil redundant, care,


spre deosebire de alte solu ii prezentate, are o performan mai bun dect
echipamentul de baz . n plus, acest echipament adaug o dimensiune nou
n spa iul op iunilor fiabilit ii, i anume capacitatea de a fi reparat n timp
ce func ioneaz (maintainability).

Structura este cunoscut sub numele de RAID, care este o prescurtare de la


Redundant Array of Inexpensive Disks, sau set redundant de discuri
ieftine. Ideea a fost introdus n 1987 de cercet tori de la universitatea
Berkeley din California.

Ideea central a structurii RAID este de a stoca informa ie pe mai multe


discuri simultan. Informa ia este codificat redundant, astfel nct s poat
fi recuperat dac oricare dintre discuri se defecteaz . Aceast proprietate
este foarte util pentru echipamentele care trebuie s func ioneze continuu.

Exist mai multe tipuri de echipamente RAID, ns n continuare se


prezint unul singur, n care informa ia este scris pe 5 discuri, din care 4
con in date i unul paritate. Un astfel de echipament RAID se poate afla
ntr-unul dintre trei moduri de func ionare:

Func ionare normal : opera iile de citire extrag date de pe cele patru
discuri cu date. O opera ie de scriere ns strnge patru blocuri de
informa ie i calculeaz un al cincilea bloc de paritate; fiecare bloc este
stocat pe alt disc. Acest mod de scriere se nume te striping, adic
feliere, pentru c datele sunt scrise n paralel, cte o felie pe fiecare disc.
168 Cap. 7. Fiabilitatea echipamentelor de calcul

Func ionarea degradat : este nceput cnd un disc se defecteaz . Atunci


citirile i scrierile de pe discul stricat trebuie s acceseze celelalte patru
discuri i s calculeze informa ia lips . Avantajul parit ii este c oricare
din bi ii lips poate fi recalculat ca paritate a celorlal i patru bi i.

Reconstruc ia: este nceput cnd un disc defect este nlocuit. Un proces
secundar recalculeaz informa ia lips i o scrie pe noul disc.

n continuare se prezint un echipament de calcul dezvoltat de cercet tori


de la Hewlett-Packard, care demonstreaz o metodologie extrem n
tratamentul fiabilit ii echipamentelor. Acest echipament, cunoscut sub
numele de Teramac, este construit din componente defecte: mai mult de
70% dintre circuitele sale componente au o malfunc ie oarecare. Cu toate
acestea, echipamentul func ioneaz corect i poate efectua calcule extrem
de performante.

Arhitectura echipamentului Teramac tolereaz numai defec iuni


permanente, care sunt prezente nc de la fabrica ie. Componentele
Teramac sunt circuite hardware de un tip anume, numit hardware
reconfigurabil. nainte de a prezenta echipamentul Teramac se va face o
prezentare succint a structurii hardware-ului reconfigurabil, ar tnd cum
un echipament fiabil poate fi construit din componente reconfigurabile
nefiabile.

ntr-o prim aproxima ie, circuitele digitale obi nuite sunt compuse din
elemente computa ionale simple, numite por i logice, conectate ntre ele
prin srme. Por ile logice sunt construite din tranzistori. Fiecare poart
logic face calcule pe mai multe valori de 1 bit. Por ile logice sunt
universale, n sensul c orice proces calcul poate fi exprimat n termeni de
opera ii ale por ilor logice.

n hardware-ul reconfigurabil por ile logice nu au o func ionalitate fixat ,


iar srmele formeaz o gril . Fiecare poart este configurabil , adic poate
fi for at s efectueze orice opera ie logic . La fiecare intersec ie de srme
se afl un mic comutator configurabil, care poate fi, de asemenea,
programat s conecteze srmele. Configurarea por ilor i a srmelor se face
prin semnale electrice. Fiecare poart i fiecare comutator are o mic
memorie asociat , n care- i stocheaz configurarea. Pentru c schimbnd
con inutul acestor memorii putem schimba func ionalitatea hardware-ului,
circuitele acestea se numesc reconfigurabile (figura 7.3).
Cap. 7. Fiabilitatea echipamentelor de calcul 169

a) b)
Figura 7.3. Structura unui circuit reconfigurabil

Hardware-ul reconfigurabil este echivalent cu cel obi nuit, n sensul c


orice circuit poate fi implementat folosind ambele tehnologii. Hardware-ul
reconfigurabil tinde ns s fie ineficient: memoriile i por ile configurabile
ocup mult mai mult loc dect por ile obi nuite. Pe de alt parte, semnalele
electrice care traverseaz doar srme ntr-un circuit obi nuit, trebuie s
treac printr-o serie de comutatoare n hardware-ul reconfigurabil, ceea ce
face circuitele mai lente. Un factor de 10, diferen n vitez i densitate,
este de a teptat ntre un hardware obi nuit i cel configurabil de aceea i
genera ie.

Pentru a programa un circuit reconfigurabil cu func iunea unui circuit


obi nuit, trebuie s asociem fiecare poart din circuit cu o poart
configurabil ; acest proces se nume te plasare; de asemenea, fiecare
srm trebuie asociat cu succesiuni de segmente legate prin comutatoare,
n procesul de rutare.

n figura 7.3-a procesul de plasare asociaz fiecare poart logic din circuitul
de implementat cu o poart universal . Procesul de rutare conecteaz por ile
universale folosind segmente de srm legate cu comutatoare. n cazul defect rii
unora dintre por ile universale plasarea i rutarea le pot ocoli, sintetiznd un
circuit perfect func ional, situa ie ilustrat n figura 7.3-b.
170 Cap. 7. Fiabilitatea echipamentelor de calcul

Calitatea circuitelor reconfigurabile exploatat de Teramac pentru a ob ine


fiabilitate este faptul c por ile logice configurabile sunt esen ialmente
interschimbabile. Cercet torii proiectului Teramac au dezvoltat un program
de plasare care folose te o hart de defecte ale circuitelor reconfigurabile.
Aceast program ocole te por iunile inutilizabile i ruteaz conexiunile n
jurul defectelor, exploatnd doar por iunile func ionale ale fiec rui circuit
(figura 7.3-b). Cercet torii au creat i o serie de programe, care descoper
i catalogheaz defectele. Programele acestea folosesc chiar
programabilitatea circuitelor pentru a le configura ca dispozitive care se
auto-testeaz . Fiecare por iune din fiecare circuit este programat s
efectueze calcule simple i s verifice corectitudinea rezultatelor. Micile
programe de test sunt plimbate pe suprafa a circuitului, acoperind toate
por ile logice. Proiectarea unor programe de auto-testare este o sarcin mai
complicat dect ar putea p rea la prima vedere. Programele trebuie s
descopere o mul ime de defecte posibile i trebuie s nu poat fi p c lite de
defec iuni (de exemplu, dac chiar partea care compar rezultatele cu cele
corecte este defect ). Programele de testare aplic n mod repetat calcule
care amestec to i bi ii: astfel, apari ia unei singure erori se va propaga
rapid la to i bi ii din rezultat, fiind u or de depistat.

Proiectul Teramac a avut un succes enorm, principala sa contribu ie a


constat n a demonstra c defectele din hardware pot fi expuse nivelelor
superioare, i pot fi tratate n ntregime n software, f r ca costul pl tit n
performan s fie prohibitiv. Aceast metodologie este o schimbare
complet de paradigm n arhitectura calculatoarelor, care probabil va avea
din ce n ce mai multe aplica ii n viitor.

7.3. Fiabilitatea programelor

Ne-am putea a tepta ca spre deosebire de hardware, software-ul s nu aib


nici un fel de probleme de fiabilitate deoarece programele nu se uzeaz , i
sunt executate ntr-un mediu foarte specializat; n plus, programele sunt
obiecte deterministe, deci ar trebui s se comporte de fiecare dat n acela i
fel cnd proceseaz acelea i date de intrare. Cu toate acestea, de fapt
fiabilitatea programelor este mult mai sc zut dect a echipamentelor
hardware; este potrivit s model m deci programele ca echipamente cu
fiabilitate imperfect . n aceast sec iune se prezint n mod superficial
unele dintre motivele lipsei de fiabilitate a programelor i se men ioneaz
unele tehnici care pot fi folosite pentru a realiza programe fiabile.
Cap. 7. Fiabilitatea echipamentelor de calcul 171

Cea mai important cauz a defectelor programelor sunt bug-urile, adic


implement ri incorecte. Chiar i programatori foarte pricepu i produc
programe cu defecte. Complexitatea componentelor software este pur i
simplu prea mare, n momentul de fa , pentru a putea fi st pnit de c tre
oameni. Cu tot progresul n tehnici de programare, cum ar fi
descompunerea programelor n module mici, folosirea unor limbaje de
programare evoluate i a unor scule complexe pentru dezvoltarea, testarea
i analiza programelor, rezultatele sunt nc foarte departe de perfec iune,
iar productivitatea programatorilor nu a crescut substan ial n ultimele dou
decenii.

Cel mai adesea problemele rezolvate n software sunt att de complicate


nct nici nu pot fi specificate n mod precis. n consecin programatorii
ntlnesc tot felul de incertitudini cnd ncearc s implementeze solu iile.
O cauz fundamental a lipsei de fiabilitate a programelor este deci
specifica ia de proiectare incomplet i imprecis .

Cele mai imprevizibile defec iuni software se manifest numai cu ocazia


unor anumite combina ii de valori pentru datele de intrare sau pentru
anumite succesiuni de evenimente externe, care nu au fost prev zute de
programator. Asemenea combina ii apar cu probabilitate foarte mic n
timpul procedurilor normale de testare, deci adesea supravie uiesc pn n
faza opera ional .

A vedea programele software ca pe o entitate monolitic este o aproximare


grosolan a realit ii: un program trece prin nenum rate revizii i
mbun t iri. Versiunile noi sunt construite pe scheletul celor vechi,
reparnd defec iunile descoperite i ad ugnd noi func ionalit i. Cu toate
acestea, procesul repar rii defec iunilor introduce adesea noi defec iuni,
pentru c efectele unei repara ii au uneori consecin e imprevizibile.

Cre terea continu a performan elor hardware-ului este o motiva ie


constant pentru rennoirea echipamentelor software. Pe m sur ce
dispozitivele hardware devin mai ieftine i mai compacte, ele pot fi
integrate n dispozitive electronice mai de tepte. Toate aceste noi
dispozitive au nevoie de un nou software, care s le manipuleze. Pe m sur
ce costul dispozitivelor de stocare a informa iei scade, din ce n ce mai
complexe i mai bogate tipuri de informa ie pot fi stocate i prelucrate. De
exemplu, imagini i muzic sunt tipuri curent manipulate de PC-urile
contemporane, iar capacitatea lor de prelucrare a devenit de curnd
suficient de puternic pentru a manipula n mod interactiv chiar filme.
172 Cap. 7. Fiabilitatea echipamentelor de calcul

Un fenomen legat de acest ciclu permanent de nnoiri este cel cunoscut sub
denumirea putrezirea bi ilor (bit rot). Acest fenomen se manifest pe
dou planuri: datele stocate cu mult timp n urm nu mai pot fi folosite n
noile echipamente de calcul, pentru c dispozitivele periferice nvechite nu
mai sunt suportate de fabrican i, i programe vechi, care mergeau foarte
bine, ncep s manifeste erori. Boala programelor este legat de mediul
n care programele se execut , i care este n continu schimbare. De
exemplu, multe programe vechi f ceau anumite presupuneri despre ct de
mari vor fi seturile de date pe care le vor prelucra. Cea mai faimoas astfel
de presupunere este cea care a cauzat bug-ul Y2K: programatorii din anii
60 au presupus c programele lor nu vor manipula niciodat date
calendaristice al c ror an nu va ncepe cu cifrele 19. Chiar dac Y2K a
f cut mai mult zgomot dect pagube, astfel de presupuneri se ntlnesc la
tot pasul n programele de ast zi. De exemplu, pot apare dificult i n a
transporta programe de la procesoare pe 32 de bi i la procesoare pe 64 de
bi i. Din moment ce orice valoare pe 32 de bi i se poate reprezenta exact
atunci cnd folosim 64 de bi i, teoretic nu ar trebui s fie nici o problem ,
i vechile programe ar trebui s func ioneze corect. n realitate multe
programe depind n feluri subtile de precizia datelor pe care le
manipuleaz . Cnd un astfel de program este mutat pe o platform nou
toate aceste dependin e se transform n bug-uri.

7.3.1. Cre terea fiabilit ii produselor software

Domeniul ingineriei programelor (software engineering) se ocup de


metode prin care se poate cuantifica i mbun t i calitatea programelor.
Una dintre solu iile studiate este foarte nrudit cu tehnicile de votare
folosite pentru toleran a erorilor hardware. Numele acestei solu ii n lumea
software este programare cu N versiuni. Votarea folose te redundan
spa ial : dispozitivul de calcul este replicat de N ori i rezultatul final este
ob inut prin votul majoritar al rezultatelor individuale.

Bug-urile software sunt persistente: aflat n acelea i condi ii programul se


va comporta n acela i fel. Tehnicile de votare sunt neputincioase dac
toate componentele fac aceea i eroare n acela i timp. Votarea este util
pentru tratamentul erorilor tranzitorii. Programarea cu N versiuni se face
deci prin executarea n paralel a N programe diferite, scrise de echipe
diferite de programatori, dac e posibil, folosind scule i tehnologii
diferite. Toate cele N programe rezolv aceea i problem , dar n moduri
diferite. Numai folosind o astfel de strategie tehnica vot rii poate func iona
n cazul programelor.
Cap. 7. Fiabilitatea echipamentelor de calcul 173

Specifica ii imprecise ale problemei pot fi detectate cu u urin de aceast


tehnic , pentru c implement rile diferite pot lua decizii diferite pentru
cazurile nespecificate clar. Din nefericire, programarea cu N versiuni este o
metodologie foarte scump , folosit numai pentru aplica ii critice, unde
siguran a este fundamental .

Diferen a fundamental ntre hardware i software este aceea c un


program poate avea o stare intern arbitrar de complicat . n general,
dispozitivele hardware pot fi aproximate ca fiind automate finite (adic
spa iul st rilor n care se pot afla, chiar dac este foarte mare, este totu i
finit). Chiar i cele mai simple programe au un spa iu de st ri infinit, mai
exact, nu putem pune nici o limit arbitrar dimensiunii spa iului lor.

Aceast diferen este foarte important i din punct de vedere teoretic:


foarte multe propriet i interesante ale automatelor finite se pot decide,
adic se pot scrie algoritmi care atunci cnd primesc descrierea unui
automat finit, pot r spunde n mod exact la ntreb ri legate de orice
evolu ie viitoare a automatului. Din p cate, acelea i ntreb ri pentru un
echipament cu stare infinit adesea nu pot fi decise. ntr-adev r,
matematicienii au ar tat n anii 30 c foarte multe dintre propriet ile unui
echipament software, n general, nu pot fi calculate de un alt echipament
software.

O consecin practic a dimensiunii infinite a spa iului de st ri ale


programelor este c , pe m sur ce un program se execut mai mult timp, cu
att mai complicat poate deveni starea sa intern . Dac un program nu i
ntrerupe execu ia, chiar dac va primi acelea i date la intrare, ar putea
calcula un r spuns diferit. Un bug n program poate corupe starea intern ,
dar efectele acestei defect ri pot deveni vizibile mult mai trziu n execu ia
programului, cnd programul ia o decizie bazat pe elementele de stare
incorecte. Un tip faimos de problem , n mod normal benign , asociat cu
programele care se execut un timp ndelungat, este scurgerea de memorie
(memory leak).

Adesea programele aloc spa iu temporar de memorie, pe care l elibereaz


dup ce au terminat calculele care aveau nevoie de el. Dac programatorul
uit s elibereze aceast memorie se spune c memoria se scurge (leak).
Aceasta este o eroare frecvent ntlnit n programare, relativ greu de
descoperit. n mod normal o astfel de eroare nu afecteaz corectitudinea
programului: rezultatele produse la final sunt corecte. Cnd programul i
termin execu ia, echipamentul de operare recupereaz automat memoria
scurs . n cazul programelor care se execut timp ndelungat, cum ar fi
echipamentele de operare sau serverele de web, dac o scurgere se
174 Cap. 7. Fiabilitatea echipamentelor de calcul

ntlne te n interiorul unei bucle, cu timpul memoria pierdut va cre te


pn cnd toat memoria echipamentului este pierdut . n astfel de cazuri
de obicei echipamentul i nceteaz execu ia, sau func ionarea sa devine
extrem de lent din cauz c resursele r mase sunt insuficiente.

Utilizatorii echipamentului de operare Windows de la Microsoft au


descoperit i o solu ie pentru aceast problem : reboot-area calculatorului.
Numele tiin ific pentru aceast solu ie este rentinerirea programelor
(software rejuvenation). Rentinerirea este cauzat de repornirea periodic
a programelor. Repornirea cauzeaz ini ializarea st rii interne la o aceea i
valoare ini ial . Tehnica aceasta este aplicabil numai dac starea intern a
programului nu este important i poate fi pierdut ; altfel, ntinerirea
trebuie s fie combinat cu checkpoint-uri. Un checkpoint salveaz
informa ia important pe un mediu de memorie persistent, i o restaureaz
dup ce programul este repornit.

Rentinerirea se aplic cu prec dere programelor de tip server, care execut


tot timpul o bucl , acceptnd cereri de la clien i i r spunzndu-le. Multe
servere sunt lipsite de stare (stateless), adic nu p streaz nici un fel de
informa ii despre o tranzac ie cu un client dup ce tranzac ia s-a consumat.
Rentinerirea este eficace dac costul repornirilor periodice este mai redus
dect costul repornirii dup o c dere catastrofic , care poate s implice o
procedur sofisticat de recuperare a datelor pierdute. Rentinerirea este de
asemenea folosit cu succes cnd serverele care ofer serviciul au rezerve,
astfel nct serverele de rezerv pot r spunde clien ilor n timp ce altele se
reini ializeaz .

O alt modalitate de cre tere a fiabilit ii programelor de calcul const n


utilizarea unei tehnici numit verificare formal . Acesta este un nume
generic pentru o serie ntreag de tehnici sofisticate care certific
corectitudinea, mai ales a echipamentelor hardware, dar n ultima vreme i
a unor echipamente software. Verificarea formal se ocup de descoperirea
i eliminarea bug-urilor, i n acest sens este o tehnic de cre tere a
fiabilit ii programelor.

Cheia metodelor de verificare formal este specificarea foarte precis a


comport rii componentelor echipamentului de analizat (folosind formule
matematice) i verificarea automat a propriet ilor echipamentului n
ntregime. Dac tim cum este construit echipamentul, i dac tim
comportarea fiec reia dintre componente, putem ra iona despre
comportarea ansamblului. Ra ionamentele pot fi f cute foarte precise
folosind diferite variante de logici matematice. Fiecare ra ionament este o
serie de deriv ri, n care din fapte tiute ca fiind adev rate deducem alte
Cap. 7. Fiabilitatea echipamentelor de calcul 175

adev ruri. Verificarea formal studiaz aceste deriv ri, i verific faptul c
sunt corecte.

Dou aspecte fac din verificarea formal o tehnic foarte puternic :


1) calculele minu ioase sunt efectuate de c tre calculatoare, a c ror
aten ie nu obose te niciodat ;
2) certitudinea nu vine din faptul c demonstr m ceva, ci din faptul
c putem verifica dac demonstra ia este corect .
Cnd s-a descris echipamentul DIVA s-a f cut men iunea c a verifica
corectitudinea unui rezultat este mult mai simplu dect a demonstra
rezultatul nsu i. Acest fapt este extrem de folositor n contextul verific rii
formale, n care programul care face demonstra iile este extrem de
complicat, i ca atare poate con ine erori (ca orice alt program complex) i
deci poate genera demonstra ii eronate. Un program care verific dac o
demonstra ie este corect ns este mult mai simplu, i ca atare ne ofer
mai mult ncredere.

7.4. Re eaua internet

Una dintre cele mai uimitoare tehnologii ale secolului dou zeci este cu
siguran Internetul. Acesta este o re ea de calculatoare, proiectat ini ial
pentru a conecta re ele militare de calculatoare i de a le permite s opereze
chiar i n condi iile distrugerii unui mare num r de echipamente din re ea,
de exemplu n cazul unei conflagra ii nucleare. Internetul a evoluat ast zi
ntr-o re ea comercial care acoper toate continentele, cu mai mult de 125
de milioane de calculatoare i peste 1 miliard de utilizatori.

Internetul nu este prima re ea de dimensiune global ; cu mai mult de un


secol nainte de crearea Internetului a ap rut telefonul; re elele telefonice
au cu siguran ntietatea n acoperirea planetei. Ne-am a tepta ca
proiectan ii Internetului s fi folosit multe din tehnologiile folosite n
construc ia re elelor telefonice, despre care exist o cantitate mare de
informa ii i o experien substan ial . n realitate, nimic nu poate fi mai
departe de adev r: arhitectura Internetului pare a fi n mod deliberat opus
re elei de telefonie. Nic ieri nu se vede mai bine diferen a dintre cele dou
re ele dect n felul n care trateaz fiabilitatea.

Re eaua telefonic a fost proiectat de la nceput pentru o fiabilitate


excep ional . O central telefonic trebuie s nsumeze mai pu in de trei
minute de indisponibilitate n fiecare an. Numai n circumstan e absolut
excep ionale o conversa ie ini iat poate fi ntrerupt datorit unor
176 Cap. 7. Fiabilitatea echipamentelor de calcul

probleme din re ea. Re eaua telefonic va permite stabilirea unei leg turi
numai dup ce a rezervat toate resursele necesare pentru transmisiunea
prompt a semnalelor vocale pe ntregul traseu dintre cele dou puncte care
comunic . Standarde stricte dicteaz ct de mult timp poate dura faza de
construc ie a leg turii; dac nu pot fi ob inute toate resursele utilizatorul
prime te un ton de ocupat. Capacitatea re elei este planificat atent pe baza
unor statistici detaliate despre comportarea vorbitorilor, astfel nct n
condi ii normale, ansa ob inerii unui ton de ocupat din cauza resurselor
insuficiente din re ea s fie extrem de redus .

Un factor crucial care garanteaz calitatea conexiunilor telefonice este


prealocarea tuturor resurselor necesare nainte ca leg tura s fie stabilit .
Pornind de la num rul format, prima central telefonic calculeaz o
secven de centrale prin care semnalul trebuie s treac pentru a lega
apelantul cu apelatul; acest calcul se bazeaz pe tabele de rutare pre-
calculate cu mare grij i stabilite de c tre proiectan ii re elei. Fiecare
central negociaz apoi cu cea succesiv folosind un protocol sofisticat de
semnalizare, i aloc capacitate pentru transportul datelor i pentru
comutarea acestora (care n central leag circuitul de intrare cu cel de
ie ire). Cnd toate conexiunile punct-la-punct ntre centrale sunt stabilite se
genereaz un ton de apel. Cnd conversa ia a fost ini iat , semnalul vocal
este e antionat i digitizat n prima central . Pentru fiecare bit din acest
semnal s-a prealocat deja o cuant periodic de timp pe fiecare dintre
circuitele pe care le va traversa. Bi ii sunt transmi i unul cte unul i
traverseaz toate trunchiurile n aceea i ordine n care au fost genera i,
sosind la destina ie la timp pentru a fi reasambla i i converti i la loc ntr-
un semnal auditiv. Din cauza prealoc rii, de ndat ce un bit intr n re ea,
cu o probabilitate extrem de ridicat el va ajunge la cel lalt cap t exact
cnd trebuie. Cnd unul dintre vorbitori nchide telefonul, protocolul de
semnalizare intr din nou ntr-o faz complicat , prin care elibereaz toate
resursele alocate la momentul apelului.

Re eaua Internet are o arhitectur fundamental diferit . Nu numai c nu


exist garan ii despre timpul necesar pentru a ajunge de la emi tor la
receptor, dar nu exist nici o garan ie c datele nu sunt pierdute sau
modificate n timpul transferului. Utilizatorii Internetului ob in un serviciu
extrem de slab, care poate fi enun at pe scurt astfel: tu pui date n re ea
i zici unde vrei s ajung , iar re eaua o s ncerce s livreze datele acolo.

Felul n care informa ia circul n re eaua Internet este complet diferit de


re eaua telefonic : datele sunt divizate n pachete care sunt introduse n
re ea n ordinea sosirii. Fiecare pachet poate c l tori pe o rut complet
Cap. 7. Fiabilitatea echipamentelor de calcul 177

diferit pn la destina ie. Unele pachete se pot pierde, alte pot fi duplicate,
i ele pot sosi la destina ie n alt ordine dect au fost emise, sau chiar
sparte n pachete mai mici.

Pachetele sunt plimbate prin Internet de un protocol numit IP, Internet


Protocol. IP func ioneaz aproximativ astfel: cnd un calculator
intermediar prime te un pachet se uit nti la adresa destina ie nscris .
Apoi el face ni te calcule simple pentru a decide n ce direc ie pachetul
trebuie trimis, mai precis, c ruia dintre vecinii s i trebuie s -i dea pachetul.
Pachetul este apoi trimis vecinului. Dac la un calculator intermediar
pachetele vin mai repede dect apuc s le trimit mai departe, i dac nici
nu are unde s le stocheze pentru o vreme, are dreptul s le fac pierdute.
Aceasta este principala cauz pentru care datele se pot pierde n Internet.

Spre deosebire de re eaua telefonic , structura Internetului nu este


controlat de un num r mic de companii, ci este n continu schimbare, de
la zi la zi i de la or la or , pe m sur ce noi calculatoare se conecteaz ,
noi utilizatori sun folosind modemuri i noi linii de transmisiune sunt
instalate. Calculatoarele responsabile pentru transmiterea datelor, numite
rutere, discut ntre ele permanent pentru a afla care este forma curent
aproximativ a re elei. Aceste informa ii sunt utilizate n procesul de
decizie care selecteaz vecinul folosit pentru transmisiunea fiec rui pachet
spre destina ie.

Dat fiind aceast infrastructur , este uimitor c Internetul func ioneaz


ctu i de pu in, i c informa ia ajunge cteodat neperturbat la destina ie.
Fiabilitatea aplica iilor din Internet este construit pe baza acestui mediu
extrem de nefiabil, folosind dou ingrediente:

1) Lipsa de stare. Ruterele din Internet nu stocheaz nici un fel de


informa ii despre traficul care le parcurge. Prin contrast, n re eaua
telefonic , comutatoarele tiu despre fiecare bit care le traverseaz de unde
vine, unde se duce, i cnd va sosi succesorul lui. Un ruter prime te un
pachet, calculeaz vecinul c ruia s -i dea pachetul i livreaz pachetul.
Starea intern a ruterului dup livrarea pachetului este aceea i cu cea de
dinainte. A a cum am v zut n cazul rentineririi programelor, lipsa st rii
interne face mult mai simpl repornirea unui ruter dup o defec iune. O
defec iune nu pierde informa ii vitale, care nu pot fi recuperate prin alte
metode. De asemenea, lipsa st rii face relativ u oar sarcina altor rutere de
a prelua traficul n cazul defect rii unuia.

2) Protocolul TCP. Realizarea unei transmisii fiabile prin re eaua Internet


se face utiliznd un protocol numit Transmission Control Protocol (TCP),
178 Cap. 7. Fiabilitatea echipamentelor de calcul

care se execut deasupra protocolului IP. Dac ntr-o re ea toate nodurile


din interior execut IP, numai sursa i destina ia execut TCP. TCP este
protocolul care construie te o transmisiune fiabil : el asigur c toate
pachetele trimise ajung la destina ie, f r lipsuri sau duplicate, n ordinea n
care au fost trimise. TCP reu e te aceast performan folosind
urm toarele mecanisme:
numeroteaz pachetele trimise;
folose te pachete de confirmare pentru a anun a sosirea datelor la
cap tul cel lalt;
folose te alarme pentru a detecta pachetele care nu sunt confirmate
pentru un timp ndelungat;
folose te retransmisii pentru a retrimite pachetele care se pierd n re ea.

Din cauz c pachetele cu confirm ri se pot pierde la rndul lor, unele


pachete sunt injectate n mod repetat n re ea, ceea ce poate duce la livrarea
unor duplicate; TCP trebuie s le elimine folosind numerele de serie ale
pachetelor.

ntregul Internet este construit pe nucleul nefiabil oferit de IP: nu numai


datele i confirm rile sunt trimise n mod nefiabil, dar chiar i mesajele de
control schimbate ntre rutere, prin care afl despre schimb rile din
topologia re elei i traficul folosit pentru monitorizarea i mentenan a
re elei folosesc acelea i mecanisme nefiabile de transmisiune.

n pofida structurii sale aparent ubrede, Internetul este un competitor


formidabil al altor forme de distribu ie a informa iei: radio, televiziune i
telefonie. Costul transmisiunii vocii prin Internet este mult mai sc zut
dect folosind re elele specializate de telefonie. Multe companii importante
de telefonie investesc n mod serios n echipamente care transport voce
peste protocolul IP.

Internetul mut problema fiabilit ii la un nivel superior, de la IP la TCP.


TCP ofer o fiabilitate perfect adecvat pentru multe aplica ii. TCP este
executat numai de c tre calculatoarele terminale implicate n comunica ie,
i nu de c tre rutere. Ca atare algoritmii complica i folosi i de acest
protocol nu taxeaz resursele re elei, care scaleaz n mod natural la
dimensiuni globale.

Mai mult, unele aplica ii care nu au nevoie de livrarea fiabil a datelor nu


sunt obligate s foloseasc protocolul TCP. De exemplu, protocoalele
folosite pentru posturile de radio din Internet folosesc coduri puternice de
corec ie a erorilor i nu au nevoie de retransmisii. Pachete pierdute sau
Cap. 7. Fiabilitatea echipamentelor de calcul 179

ntrziate sunt pur i simplu ignorate. Acest lucru este acceptabil pentru c
utilizatorul final, omul, tolereaz semnale cu zgomot.

7.5. Concluzii

n acest capitol au fost prezentate unele considera ii privind modul cum


fiabilitatea influen eaz construc ia echipamentelor de calcul. O concluzie
foarte important care rezult din analiza f cut este c de i fiabilitatea
ridicat este dezirabil , un proiectant trebuie ntotdeauna s ia n
considera ie i costul pl tit pentru a o ob ine.

Calculatoarele moderne sunt construite dintr-o serie de nivele abstracte,


care ofer func ionalit i din ce n ce mai puternice. Fiecare nivel are o
fiabilitate diferit i folose te tehnici diferite pentru a oferi nivelelor
superioare imaginea unei fiabilit i sporite. n general hardware-ul ofer
lumii software aparen a perfec iunii n aceast privin , adic o fiabilitate
excep ional de ridicat .

Tendin ele tehnologiei indic ns c arhitectura calculatoarelor viitorului


va fi supus unor schimb ri radicale, unul dintre motive fiind chiar
schimbarea major a fiabilit ii unora dintre nivele. De exemplu,
miniaturizarea continu a componentelor electronice va fi nso it de o
degradare a fiabilit ii nso it de apari ia tot mai frecvent a defec iunilor
permanente i tranzitorii. Costul pl tit pentru a masca aceste defecte prin
tehnici tradi ionale cre te extrem de rapid: costul extrem de ridicat al unei
fabrici de semiconductoare din ultima genera ie, de ordinul a cteva
miliarde de dolari, este doar primul simptom al acestui fenomen.

n prezent, departamentele de cercetare ale firmelor produc toare de


echipamente de calcul lucreaz n mod activ pentru a defini arhitecturile
structurilor de calcul al viitorului. Direc iile urm rite sunt prezentate n
continuare:
Iluzia unui hardware perfect trebuie eliminat , imperfec iunile din
nivelul hardware trebuie s fie expuse nivelului software i rezolvate de
acesta. Pentru a face acest lucru, baza echipamentelor de calcul trebuie
s fie hardware-ul reconfigurabil, care este suficient de flexibil pentru a
fi reprogramat dup nevoi.
Microprocesorul trebuie s fie redus la un rol secundar i nlocuit cu
hardware generat specific, pentru fiecare aplica ie, cu ajutorul
compilatoarelor.
180 Cap. 7. Fiabilitatea echipamentelor de calcul

Num rul de nivele abstracte trebuie s fie mic orat n mod dramatic,
pentru a reduce costul suplimentar pl tit, care cre te exponen ial.
Trebuie folosite n mod constant tehnici care descoper defecte i
folosesc rezerve pentru a ocoli defectele de fabrica ie.
Calculele trebuie s fie efectuate folosind date codificate utiliznd
coduri robuste, pentru a preveni efectele erorilor tranzitorii.
Utilizarea pe scar larg a metodelor de verificare formal pentru a ne
asigura c echipamentele de calcul pe care le folosim sunt corect
construite.

tiin a calculatoarelor este relativ tn r i, cu siguran , viitorul ne rezerv


o mul ime de surprize n ceea ce prive te tehnologiile, arhitectura i
algoritmii cei mai eficien i.