Zanimivosti

Strokovnjak svari, da bi lahko že čez mesec dni "pokleknili" vsi računalniški sistemi

R.T.
19. 5. 2015, 12.33
Posodobljeno: 9. 8. 2017, 09.57
Deli članek:

Presenetljivo preprost hrošč je pogosto preveč za visoko napredne računalnike, saj jih zlahka zmedejo velike številke. Primerov hudih posledic zaradi majhne napake ne manjka.

Arhiv Svet24

V Evropski vesoljski agenciji se bodo 4. junija 1996 za vedno spominjali. Dan prvega leta brezpilotne rakete Ariane 5, na katere krovu so potovali štirje izredno dragi sateliti, skorajda ne bi mogel iti bolj narobe. Let se je po 39 sekundah spremenil v ognjeno kroglo. Izguba? Dobrih 300 milijonov evrov. Za nesrečo ni bila kriva mehanska napaka ali sabotaža. Na delu je bil povsem preprost programski hrošč – računalnik je zmedla številka, večja od pričakovane. Kot se izkaže, so bili podobni primeri zaslužni za marsikatero nesrečo v ne tako oddaljeni preteklosti. Številke so občasno preprosto prevelike za računalniški sistem, ta pa ob dosegu limita prevrti na 00,00 in začne s štetjem preostanka.

»Veliko računalniških sistemov se lahko sesuje na predvidljiv način. V tem primeru pa gre za sesutje na nepredvidljiv način.« – William Proquet

Preiskava izstrelitve Ariane je pokazala, da so v programski opremi ostali procesi predhodnih generacij raket, Ariane 4. Ti si zabeležili nepričakovano visoko bočno hitrost novejše, hitrejše rakete, katero pa programska oprema Ariane 5 ni zmogla. Sprožilo se je samouničenje. Nekaj sekund pozneje je Ariane 5 že bila zgodovina. Takšne napake se dogajajo presenetljivo pogosto. To naj bi bil denimo razlog, da je NASA leta 2013 izgubila povezava s svojo sondo Deep Impact. Nekaj podobnega bi jo lahko zagodlo tudi letalom Boeing 787, katerih motorji bi se sami od sebi zaustavili, če bi letalo bilo prižgano več kot 248 dni. Če te preštejemo v stotinkah sekunde, so ugotovili nekateri, dobimo število 2.147.483.647. To pa je maksimalna pozitivna vrednost, ki jo zmore 32-bitni procesor, običajno nameščen na številnih računalniških sistemih. Če številke tečejo v neskončnost, zakaj jih tako omejiti s prostorom? Računalniki tradicionalno terjajo učinkovitost pri vseh stvareh. Prostor je nekoč stal veliko več kot danes, procesiranje večjih števil pa je trajalo veliko dlje. Če so bili torej upoštevani določeni limit, so stvari tekle bolj gladko. Težava je le, da te omejitve pogosto obveljajo za neproblematične.

Leto 2038

Pred 15 leti se je programer William Porquet domislil še enega kritičnega datuma. Ko bo v torek, 19. januarja leta 2038, ura po našem času odbila 05:14:07, bo število sekund od 1. januarja 1970 preseglo maksimalno vrednost, ki jo zmorejo številni današnji računalniki. Ti bi leta 2038 še lahko bili v uporabi v zakotnih koncih sveta, kot taki pa so obsojeni na propad.

Napaka v času

Markus Kuhn, računalniški znanstveniki z univerze v Cambridgeu, meni, da leto 2038 ne bi smelo biti preveč problematično, saj da je svet izučil milenijski hrošč. Bolj ga zanima težavica, ki se obeta že junija. Leto 2015 bo namreč za sekundo daljše od leta 2014, da bi uskladili astronomski čas in atomski čas. Slednji je izredno točen, a zaradi neenakomernega rotiranja Zemlje ne ravno skladen z astronomskim. Kuhn upa, da smo pripravljeni. Ko se je to nazadnje primerilo leta 2012, računalniških težav ni umanjkalo.