capitolul 7 fiabilitatea echipamentelor de … studenti/note de curs/ionescu gh/3... · fiabilitate...

Post on 11-Sep-2018

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 cât mai fiabile din componente nefiabile. Dac� un echipament ar func�iona numai atunci când 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 rândul 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�sându-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.

Cap. 7. Fiabilitatea echipamentelor de calcul 154

� 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 încât 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 încât 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 decât 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 cât redundan�a unui echipament de calcul este mai mare, cu atât 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� pân� când 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

Când 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 decât 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 decât 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 cât 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 încât 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

Cap. 7. Fiabilitatea echipamentelor de calcul 156

mortalit��ii din studiile demografice. Echipamentele foarte tinere �i cele foarte uzate se stric� mult mai des decât echipamentele ”mature”. ”Burn-in” este o faz� de testare care folose�te componentele pân� 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 decât 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�. Întrucât 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� comparând 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. Întrucât 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 pân� la echipamentele controlate (exemplu: motoare de propulsie), care calculeaz� local rezultatul votului. În plus, fiecare calculator compar� rezultatele cu celelalte trei, iar atunci când 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 când difer�. Al cincilea calculator con�ine un echipament de control complet separat, dezvoltat de alt� companie, care intr� în func�iune când 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 sfâr�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 câteva modific�ri simple, astfel încât 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 sfâr�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�, depinzând de tipul de program executat. Performan�a în modul cu fiabilitate ridicat� este invers propor�ional� cu

Cap. 7. Fiabilitatea echipamentelor de calcul 158

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, când executam programul duplicând 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 având 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 atât erori tranzitorii, cât �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 decât 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�). Când 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 sfâr�itul anilor ’40. În continuare se prezint� metodele propuse de ei pentru a stoca informa�ie utilizând 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

Cap. 7. Fiabilitatea echipamentelor de calcul 160

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 cât m e mai mare ca n, cu atât 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 decât 3, atunci o schimbare de 1 bit poate fi întotdeauna corectat�: cel mai apropiat cuvânt 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 cuvântul 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. Depinzând 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 încât oricare cuvânt de nou� bi�i are un num�r par de bi�i ”1” (de aici �i numele schemei). Când 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 încât 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 cuvânt de 64 de bi�i. Pentru acest scop memoria stocheaz� fiecare cuvânt 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

Cap. 7. Fiabilitatea echipamentelor de calcul 162

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� cuvântul de cod este corect, iar dac� nu, calculeaz� automat cel mai apropiat cuvânt de cod pe care apoi îl decodific�. Aceste opera�ii sunt destul de complicate, astfel încât un echipament cu memorii ECC func�ioneaz� cu aproximativ 5% mai lent decât 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 decât 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 cuvânt 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 când rescrie sectorul (niciodat� nu va rescrie începând chiar din acela�i loc). Codurile folosite pentru discuri se numesc CRC, de la Cyclic Redundancy Check: coduri ciclice. Un cuvânt de cod const� din chiar cuvântul de date urmat de informa�ii de control. Decodificarea codurilor CRC este foarte simpl�: se extrage direct cuvântul 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 cuvânt de control. Când 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 când 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. Pân� acum singura solu�ie era utilizarea unui hard-disk cu o capacitate minim� de 3-4 GB. În pofida excedentului de memorie, se putea întâmpla 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�, generând erori soft (de citire) sau crescând considerabil timpul de acces (dureaz� pân� când se repozi�ioneaz� pe pista corect�).

Cap. 7. Fiabilitatea echipamentelor de calcul 164

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 decât 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 decât 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, pân� 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. Când 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� întârzieri 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� decât hard-diskul. ”Aplica�ie tipic�” este cea în care datele sunt citite de 4-5 ori mai des decât 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 decât 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).

Cap. 7. Fiabilitatea echipamentelor de calcul 166

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 vârf, ”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 pân� la valoarea de 13.312 MB. Aceste dispozitive nu con�in componente în mi�care, care reprezint� principala cauza a defect�rilor �i întârzierilor 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, câmpuri 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� decât 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 încât 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� strânge 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, câte o felie pe fiecare disc.

Cap. 7. Fiabilitatea echipamentelor de calcul 168

Func�ionarea degradat�: este început� când 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� când 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�tând 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 sârme. 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 sârmele formeaz� o gril�. Fiecare poart� este configurabil�, adic� poate fi for�at� s� efectueze orice opera�ie logic�. La fiecare intersec�ie de sârme se afl� un mic comutator configurabil, care poate fi, de asemenea, programat s� conecteze sârmele. Configurarea por�ilor �i a sârmelor se face prin semnale electrice. Fiecare poart� �i fiecare comutator are o mic� memorie asociat�, în care-�i stocheaz� configurarea. Pentru c� schimbând 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 decât por�ile obi�nuite. Pe de alt� parte, semnalele electrice care traverseaz� doar sârme î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 sârm� 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 sârm� legate cu comutatoare. În cazul defect�rii unora dintre por�ile universale plasarea �i rutarea le pot ocoli, sintetizând un circuit perfect func�ional, situa�ie ilustrat� în figura 7.3-b.

Cap. 7. Fiabilitatea echipamentelor de calcul 170

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, exploatând 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� decât 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 când proceseaz� acelea�i date de intrare. Cu toate acestea, de fapt fiabilitatea programelor este mult mai sc�zut� decât 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�pânit� 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 atât de complicate încât nici nu pot fi specificate în mod precis. În consecin�� programatorii întâlnesc tot felul de incertitudini când î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 pân� î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, reparând defec�iunile descoperite �i ad�ugând 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 reînnoirea 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 curând suficient de puternic� pentru a manipula în mod interactiv chiar filme.

Cap. 7. Fiabilitatea echipamentelor de calcul 172

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 cât 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 decât pagube, astfel de presupuneri se întâlnesc 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 când 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�. Când 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 când 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 atât 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 târziu în execu�ia programului, când 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 întâlnit� în programare, relativ greu de descoperit. În mod normal o astfel de eroare nu afecteaz� corectitudinea programului: rezultatele produse la final sunt corecte. Când 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

Cap. 7. Fiabilitatea echipamentelor de calcul 174

întâlne�te în interiorul unei bucle, cu timpul memoria pierdut� va cre�te pân� când 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 ”reîntinerirea programelor” (software rejuvenation). Reîntinerirea 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. Reîntinerirea se aplic� cu prec�dere programelor de tip server, care execut� tot timpul o bucl�, acceptând cereri de la clien�i �i r�spunzându-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. Reîntinerirea este eficace dac� costul repornirilor periodice este mai redus decât costul repornirii dup� o c�dere catastrofic�, care poate s� implice o procedur� sofisticat� de recuperare a datelor pierdute. Reîntinerirea este de asemenea folosit� cu succes când serverele care ofer� serviciul au rezerve, astfel încât 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�.

Când s-a descris echipamentul DIVA s-a f�cut men�iunea c� a verifica corectitudinea unui rezultat este mult mai simplu decât 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�� întâietatea î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 decât î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

Cap. 7. Fiabilitatea echipamentelor de calcul 176

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� cât 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 încât î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). Când toate conexiunile punct-la-punct între centrale sunt stabilite se genereaz� un ton de ”apel”. Când 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 câte 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 când trebuie. Când 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� pân� la destina�ie. Unele pachete se pot pierde, alte pot fi duplicate, �i ele pot sosi la destina�ie în alt� ordine decât 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: când un calculator intermediar prime�te un pachet se uit� întâi 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 decât 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� câtu�i de pu�in, �i c� informa�ia ajunge câteodat� 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 când 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 reîntineririi 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 utilizând un protocol numit Transmission Control Protocol (TCP),

Cap. 7. Fiabilitatea echipamentelor de calcul 178

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 rândul 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 decât 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

întârziate 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 câteva 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.

Cap. 7. Fiabilitatea echipamentelor de calcul 180

� 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 utilizând 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 tân�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.

top related