Numarul de erori care pot duce la catastrofa

Numarul de erori care pot duce la catastrofa

(Credit de imagine:

Getty Images

)

O eroare surprinzator de simpla afecteaza computerele care controleaza avioanele, navele spatiale si multe altele – acestea sunt confundate de un numar mare. Dupa cum descopera Chris Baraniuk, eroarea a dus la explozii, lipseste sondele spatiale si multe altele.

T

Marti, 4 iunie 1996, va fi amintita pentru totdeauna ca o zi intunecata pentru Agentia Spatiala Europeana (Esa). Primul zbor al rachetei Ariane 5 fara echipaj, care transporta cu sine patru sateliti stiintifici foarte scumpi, s-a incheiat dupa 39 de secunde intr-o minge nesfarsita de fum si foc. Se estimeaza ca explozia a dus la o pierdere de 370 milioane de dolari (240 milioane de lire sterline).

Ce s-a intamplat? Nu a fost o defectiune mecanica sau un act de sabotaj. Nu, lansarea sa incheiat in dezastru datorita unei simple erori de software. Un computer isi greseste matematica – in esenta este coplesit de un numar mai mare decat se astepta.

Cum este posibil ca computerele sa fie confundate cu numerele in acest fel? Se pare ca astfel de erori sunt raspunzatoare pentru o serie de dezastre si nenorociri din ultimii ani, distrugand rachete, facand ca sondele spatiale lipsesc si trimitand rachete in afara tintei. Deci, ce sunt aceste bug-uri si de ce se intampla?

Imaginati-va ca incercati sa reprezentati o valoare de, sa zicem, 105.350 mile pe un contor care are o valoare maxima de 99.999. Contorul s-ar „roti” la 00.000 si apoi va numara pana la 5.350, valoarea ramasa. Aceasta este aceeasi specie de inexactitate care a condamnat lansarea Ariane 5 din 1996.

Array

Mai tehnic, se numeste „depasire de numar intreg”, ceea ce inseamna, in esenta, ca numerele sunt prea mari pentru a fi stocate intr-un sistem informatic si, uneori, acest lucru poate provoca defectiuni.

Lansare esuata

O investigatie completa a incidentului Ariane a constatat ca un proces ramas din software-ul din generatia anterioara de rachete, Ariane 4, a capturat o lectura neasteptat de mare pentru viteza laterala a vehiculului mai nou si mai rapid – iar software-ul rachetei Ariane 5 nu a putut ‘ Nu te descurci cu aceasta cifra inalta. A fost initiata o secventa de autodistrugere. Cateva secunde mai tarziu, racheta era istorie, asa cum arata videoclipul de mai jos.

Acest videoclip nu mai este disponibil

Astfel de erori apar cu o frecventa surprinzatoare. Se suspecteaza ca motivul pentru care NASA a pierdut contactul cu sonda spatiala Deep Impact in 2013 a fost atingerea unei limite intregi.

Si chiar saptamana trecuta s-a raportat ca avioanele Boeing 787 ar putea suferi de o problema similara. Unitatea de control care gestioneaza furnizarea de energie catre motoarele avionului va intra automat intr-un mod de siguranta – si va opri motoarele – daca a fost lasata pornita de peste 248 de zile. Ipotetic, motoarele s-ar putea opri brusc chiar si in timpul zborului. Directiva Administratiei Aviatiei Federale in acest sens prevede ca un contor din software-ul unitatii de control va „deborda” dupa aceasta perioada specifica de timp, provocand o eroare. Desi au fost date putine detalii – FAA si Boeing au refuzat sa comenteze acest articol – unii observatori amatori au subliniat ca 248 de zile (atunci cand sunt numarate in 100 de secunde) este egala cu numarul 2.147.483.647 – ceea ce este semnificativ.

Cum asa? Se intampla ca 2.

147.483.647 sa fie valoarea maxima pozitiva care poate fi stocata de un „registru semnat pe 32 de biti”, instalat in mod obisnuit pe multe sisteme de calculatoare. Pe Ariane, in comparatie, software-ul folosea un spatiu „de 16 biti”, care este mult mai mic si capabil sa stocheze doar o valoare maxima de 32.767.

Limita de puzzle

Numerele sunt infinite, deci de ce sa alegeti astfel de spatii de stocare limitate? Raspunsul este ca computerele au cerut in mod traditional eficienta in toate lucrurile. Spatiul de stocare a fost mult mai costisitor decat este astazi, iar procesarea valorilor mai mari a durat mai mult. Daca ati pastrat anumite limite, se astepta ca software-ul sa functioneze mai usor. Sistemele de ghidare a rachetelor fac o multime de cifre critice foarte repede, astfel incat aceste cheltuieli generale conteaza cu siguranta. Problema cu acest lucru, asa cum a demonstrat Ariane 5, este ca astfel de limitari nu sunt intotdeauna prevazute ca problematice.

„Trebuie sa recunoastem ca in software ne apropiem intotdeauna de realitate”, explica Bill Scherlis, expert in software la Universitatea Carnegie Mellon. „Exista intotdeauna un compromis ingineresc intre costul unei reprezentari mai precise si beneficiul eficientei.”

Matematicianul Douglas Arnold de la Universitatea din Minnesota include incidentul Ariane 5 pe o pagina web intitulata „Unele dezastre atribuite unui calcul numeric defectuos”. Arnold noteaza, de asemenea, cazul din 1991 al unei rachete Patriot care nu a reusit sa intercepteze un atac Scud irakian asupra unei cazarme ale armatei SUA in timpul razboiului din Golf. In acest caz, o eroare de revarsare a insemnat ca sistemul de aparare antiracheta a urmarit gresit proiectilul Scud, care calatorea cu 1,7 km / s, si a scanat in schimb o zona a spatiului aerian la mai mult de 500 de metri de tinta.

Drept urmare, Scudul a lovit cazarmele, a ucis 28 de soldati si a ranit alte 98 de persoane. Detaliile complete despre eroarea computerului in acest caz sunt destul de complicate, dar inginerul software Andrew Lum de la Universitatea din Sydney a postat o explicatie utila a ceea ce s-a intamplat, inclusiv diagrame ale sistemului Patriot.

Gangnam glitch

Nu toate erorile de rasturnare sunt la fel de distructive ca aceste exemple, dar creeaza frecvent efecte neasteptate. De exemplu, in jocul video Civilization, o eroare neprevazuta in aceasta vena a facut ca personajul pasnic Gandhi sa devina neobisnuit de ostil. Cand jucatorii au ales un anumit mod in care sa joace, valoarea care a definit agresivitatea lui Gandhi s-a invartit inapoi, la zero, la maxim. In consecinta, el ar ameninta jucatorii cu arme nucleare la fiecare pas – spre amuzamentul multor jucatori.

Si in decembrie, s-a raportat ca Gangnam Style, cel mai popular videoclip din toate timpurile de pe YouTube, a „spart” contorul de vizualizari al site-ului. Aparent, contorul fusese programat sa ruleze doar la 2.147.483.647 – din nou, valoarea maxima pozitiva a unui registru semnat pe 32 de biti. S-a transformat intr-un PR bun pentru YouTube, care a actualizat spatiul de stocare al numarului de vizionari, in timp ce se ascundea in acoperirea mondiala a celui mai popular videoclip al site-ului. Noul maxim depaseste cu mult peste noua quintilioane.

Psy’s Gangnam Style este creditat cu site-ul YouTube de partajare a videoclipurilor „de rupere” (credit: Getty Images)

Scherlis observa ca limitarea anterioara releva asteptarile programatorilor originali care au construit YouTube. „Cu siguranta, cand software-ul YouTube a fost dezvoltat pentru prima data, cred ca probabil a fost greu pentru orice dezvoltator sau designer sa-si imagineze ca vor revarsa [acest numar]”, spune el.

Adesea, acest tip de presupunere, care initial poate parea rezonabila, cauzeaza probleme de ani de zile. Cea mai discutata eroare de revarsare din istorie, de care multi isi vor aminti, a fost mult-hyped-ul Millennium Bug. Desi considerat in mare masura un squib umed, problema Y2K a provocat unele dureri de cap.

Cu Y2K, bug-ul a fost simplu. Ce se intampla cand inregistrati ani cu ultimele doua cifre? 1900 devine identic cu 2000. Multi oameni si-au dat seama ca acest lucru ar provoca confuzie pentru orice sistem de calculatoare care stocheaza valorile anului in acest mod. Ca rezultat, o multime de sfaturi au fost publicate in avans catre programatori, astfel incat acestia sa poata actualiza sistemele inainte sau la 1 ianuarie 2000. Avioanele nu au cazut din cer, dar au existat cateva consecinte interesante. De exemplu, echipamentele de detectare a radiatiilor din prefectura japoneza Ishikawa s-au prabusit la miezul noptii; 150 de sloturi la o pista de curse din Delaware au esuat; si mai multe site-uri web au dat noii date „1 ianuarie 19100”.

Temerile privind o criza globala din „Bugul Mileniului” s-au dovedit a fi nefondate (Credit: Getty Images)

Doisprezece ani mai tarziu, intr-un incident similar, o femeie de 105 ani din Suedia, numita Anna Eriksson, a primit o scrisoare prin care o invita sa inceapa pre-scoala, deoarece software-ul a fost conceput pentru a contacta persoane nascute in „07”. Designerii au intentionat acest lucru pentru persoanele cu data nasterii in 2007, nu in 1907, asa cum a fost cazul doamnei Eriksson. Incapacitatea de a recunoaste corect anul a dus chiar la milioane de carduri de credit si de debit germane care au devenit inutilizabile in ziua de Anul Nou in 2010.

Anul 2038

In urma cu aproximativ 15 ani, programatorul William Porquet a avut ideea de a gandi inainte o alta data cruciala – GMT 3.14.07am marti, 19 ianuarie 2038. Acesta este momentul in care numarul de secunde de la 1 ianuarie 1970 va depasi una dintre valorile maxime ale data si ora multor computere se inregistreaza in zilele noastre. La fel ca Bugul Millennium, esecul pregatirii pentru acest lucru poate duce la blocarea computerului.

„In 1999 am scris prima data despre acest lucru”, comenteaza Porquet. „Am achizitionat numele de domeniu 2038.org si la inceput a fost foarte nebun. A fost aproape o bucata de satira, un fel de gluma cu o multime de biscuiti de computer care spun, „da, vom rezolva asta in 2037 …” Dar apoi mi-am dat seama ca exista de fapt unele probleme cu acest lucru. ”

O dimineata de ianuarie din 2038 va vedea computerele prabusindu-se peste tot in lume? (Credit: Getty Images)

Porquet este ingrijorat de bucatile vechi de software pe care nimeni nu le mai tinde – in retelele de multa vreme sau in hardware-ul vechi utilizat in parti indepartate ale lumii. Cati dintre acestia vor mai fi folositi in 23 de ani de acum si ce consecinte ar putea avea aceste presupuneri ale oricui.

„O multime de sisteme informatice”, noteaza Porquet, „pot provoca esecuri intr-un mod previzibil. Dar acesta este un esec intr-o maniera imprevizibila. ”

Glitch la timp

Markus Kuhn, informatician la Universitatea din Cambridge, explica faptul ca erorile legate de timp creeaza interes partial pentru ca consecintele lor sunt imprevizibile, dar si pentru ca nu sunt „neasteptate” si ca oamenii sunt capabili sa speculeze ce se va intampla cand va sosi data fatidica .

Kuhn crede ca problema din 2038 va fi mai putin semnificativa decat Y2K, deoarece Millennium Bug a pregatit industria calculatoarelor pentru a face remedierile necesare. Intr-adevar, asta face parte din planul lui William Porquet. „Sper ca este ceva care ma va scoate din semi-pensionare pentru o suma foarte mare de bani”, spune el, doar pe jumatate glumind.

Viteza de rotatie a Pamantului poate provoca, de asemenea, o usoara schimbare de timp care ar putea prabusi computerele (Credit: Getty Images)

Pentru Kuhn, problema de timp interesanta pentru computerele momentului nu este o eroare de revarsare in sine, dar este una in iunie care vine. Anul 2015 va fi cu o secunda mai lung decat 2014, datorita unei miscari de a corecta discrepanta dintre timpul astronomic (timpul de pe Pamant in functie de rotatia planetei noastre) si timpul atomic (cea mai precisa metoda de pastrare a timpului cunoscuta, in ceea ce priveste numararea de secunde ). In timp ce timpul atomic, care urmeaza sa fie ajustat cu saltul din acest an, este extrem de precis, este de fapt usor de sincronizat cu timpul astronomic, deoarece rotatia Pamantului se decelereaza treptat. Evenimentele geologice, cum ar fi cutremurele, pot provoca modificari ale vitezei acestei rotatii, ceea ce inseamna ca adaugarea de secunde bisective, spre deosebire de anii bisectivi, este variabila. Ultimul a fost in 2012 si a prabusit multe computere. Din fericire, spune Kuhn,

Se pare ca, indiferent de ceea ce facem, anumite numere si calcule vor confunda intotdeauna computerele, provocand defectiuni – sau mai rau. „Am invatat multe din experienta Y2K si din alte evenimente similare”, noteaza Scherlis. „Dar realitatea in care facem intotdeauna aproximari si trebuie sa navigam intr-un compromis de inginerie? Asta este cu noi pentru totdeauna. ”

Distribuiti aceasta poveste pe  Facebook Google+  sau  Twitter .