PRIMENA<>
012006<><>

Računarske greške

Kad sokoćalo pogreši

Greške u radu računara uzrok su priličnog broja nezgoda, a opšta je tendencija da se mnoge od njih kriju ili zataškavaju

U vreme kada su se računari mogli naći jedino u laboratorijama naučnika, a sve se radilo ručno i u kombinaciji s analognom opremom, u slučaju nezgode koja bi uzrokovala štetu krivica je uglavnom padala na ljudski faktor. Ponekada je to bio zamor materijala, otkazivanje avionskog motora ili kočnica, ali sva odgovornost i donošenje ključnih odluka bili su na čoveku. Sada kad računari zamenjuju ljude u sve složenijim i složenijim zadacima, za koje je doskoro bilo nezamislivo da ih može obavljati mašina, imamo situaciju da računari svojim radom utiču na ključne faktore odvijanja nekog procesa ili funkcionisanje sistema.

Iako su koristi koje donose računarski automatizovani sistemi velike (ili su nas ubedili u to), činjenica je da zbog greške u radu računar može izazvati nevolju. Što je sistem složeniji i što je odgovornost koja se prebacuje na računar veća i potencijalna mogućnost greške može biti veća, a posledice teže.

Da računar ne bude krivac za pad aviona, neophodno je da sve njegove komponente budu kvalitetne i pouzdane: hard diskovi, procesori, matične ploče, operativni sistem, aplikacije, drajveri... To je obilje komponenti, ali i obilje mogućnosti za otkazivanje ili grešku. Naravno, nezgoda uzrokovanih računarskim greškama je već bilo, a verovatno će ih biti sve više jer se ljudsko društvo sve više oslanja na njihov rad. Velike kompanije nevoljno priznaju greške u kojima su njihovi računari bili uzrok neke nesreće jer to znači gubitak poverenja klijenata, što automatski znači i gubitak novca. Kompanije dosta uspešno odbijaju ovakve optužbe jer su obično teško dokazive ili se zataškavaju, a najlakše je i najjeftinije krivicu prebaciti na ljudski faktor. Računari su uzrokovali mnoge nevolje; pored svih zataškanih slučajeva, predstavićemo vam nekoliko dokazanih.

Loše projektovan softver?

Kao što računari nalaze mesto u brojnim oblicima ljudske delatnosti, tako i primeri nezgoda uzrokovanih njihovim nepravilnostima mogu biti različiti po svom ispoljavanju, kao i po posledicama. Ovakve nezgode mogu se podeliti u nekoliko grupa: otkazivanje hardverskih komponenti bilo kog dela sistema, greške nastale u radu softvera, loše projektovan softver i greške u radu softvera nastale kao posledica nepravilne upotrebe. U praksi računarskih nezgoda mogla bi se izdvojiti još jedna kategorija gde su hardversko-softverski uzroci povezani. Recimo, zbog neispravne radne memorije računara može doći do pojave grešaka u radu softvera, što u radu sistema od kojeg zavise ljudski životi može imati ozbiljne konsekvence.

Otkazivanje hardverskih komponenti je najmanje opasno jer se lako uočava i obično rešava bez većih posledica. Važni računarski sistemi imaju rezervne kritične komponente koje preuzimaju funkciju u slučaju otkazivanja. Uprkos ovome, ima primera kada je neispravan hardver izazvao nezgode, kao u slučaju vojnih aviona čije su kočnice otkazivale zbog greške u sistemu za prenos komande od računara do kočionog dela.

Greške u radu softvera obično su teško dokazive i ne odnose se pre svega na samu aplikaciju, već pre dolaze kao posledica nekog dubljeg poremećaja u radu operativnog sistema, loših algoritama, grešaka u programskom kôdu itd. Sama aplikacija je površni sloj koji može da reflektuje neki dublji poremećaj. Može se reći da najveći broj nezgoda čiji uzroci dolaze od strane računara zapravo spadaju u ovu kategoriju. Ovde takođe možemo svrstati nezgode koje su nastale infekcijom računarskim virusima, kao što je bio slučaj pada energetskog sistema u Americi.

Loše projektovan softver kao uzrok nezgoda izazvanih računarima može se svrstati u prethodnu kategoriju, ali smatramo da zaslužuje da se izdvoji jer zapravo nije povezan sa situacijom nastajanja greške u računarskom sistemu. Recimo, ako jedna aplikacija obavlja odgovarajuća izračunavanja desetine hiljada puta dnevno i svaki put to uradi korektno, a onda u jednom trenutku dođe do greške, jasno je da je ona nastala zbog neke vrste hardversko-softverskog kvara. Međutim, ako programeri softvera nisu predvideli odgovarajuću situaciju koja se može javiti u toku eksploatacije, a ona se iznenada pojavi te sistem nije sposoban da pravilno reaguje i tako izazove nezgodu, pitanje je koga možemo okriviti. Jer sistem je zapravo bio ispravan, ali loše projektovan.

Greške u radu softvera nastale kao posledica nepravilne upotrebe mogu imati zapanjujuće efekte, posebno u visoko automatizovanim sistemima. Jedna mala greška koju može načiniti operater tokom vremena postaje „aždaja sa deset glava”. U ovoj situaciji računarske sisteme možemo kriviti zbog toga što nemaju određeni stepen veštačke inteligencije da prepoznaju nelogičnost. Dovoljno je da se otkuca jedna ili dve nule više, da se pomeri decimalni zarez...

Pogrešni vojni algoritmi

Jedan od dokazanih slučajeva u kojem je za gubitke života okrivljena računarska greška dolazi iz vremena rata u Persijskom zalivu. Amerikanci su se u velikoj meri oslanjali na uspešnost delovanja svog raketnog sistema Patriot koji je zadužen za presretanje neprijateljskih projektila. Za markiranje ciljeva i navođenje antiraketnih projektila koristio se računarski sistem u sprezi s radarom. Ako se uzme u obzir njihova brzina kretanja, jasno je da bez pomoći računara zadatak ne može biti obavljen.

Prilikom jednog napada Iračana na američki stacionar, poslata je raketa Scud čija je brzina kretanja 1600 metara u sekundi. Odbrambeni sistem nije ni reagovao na raketu, a posledica je bila pogibija tridesetak vojnika. Analiza događaja je utvrdila da je uzrok otkazivanja rakete Patriot netačno izračunavanje vremena koje je nastalo u trenutku podizanja računarskog Patriot sistema, a uzrokovano je aritmetičkim greškama.

Računar je merio vreme tako što su sekunde izračunavane deljenjem perioda od deset sekundi. Pošto je korišćen 24-bitni sistem, periodi su pri izračunavanju „seckani” na 24 dela. Mala greška u ovom procesu se kasnije povećala zbog množioca koji se uvećavao kako je proticalo vreme rada sistema pa je greška u izračunavanju vremena postajala sve veća. Pošto je računar u pomenutom sistemu Patriot do konkretnog događaja radio bez prekida oko 100 časova, greška u računanju vremena se uvećala do 1/3 sekunde. Iz ovog razloga, računar je putanju rakete Scud postavio sa velikom greškom, izračunavši da ona ne ugrožava branjeno područje jer ona za trećinu sekunde prevali 500 metara.

Pao krov, a račun dobar

Još jedan primer nezgode uzrokovane loše projektovanim softverom dolazi iz 1978. godine, a glavni krivac je CAD program. Bez svake sumnje, ovaj softver je u današnje vreme daleko bolji u odnosu na verzije iz tog vremena, a arhitekta je očigledno pogrešio jer se suviše oslonio na njegov rad.

Jednog zimskog dana je zbog 30 centimetara snega pao krov sportske hale u gradu Hartford (SAD), iako su računarski proračuni pokazali da konstrukcija može da izdrži daleko veći teret. Na sreću nije bilo žrtava jer je krov pao nekoliko časova pošto su svi napustili halu posle završene košarkaške utakmice.

Krov je bio dizajniran korišćenjem CAD programa, nosivost čelične konstrukcije bila je pravilno izračunata, sa dovoljnom izdržljivošću i za velike snežne nanose. Ipak, krov je pao, a analiza je pokazala da su programeri ove aplikacije propustili da primene sva pravila arhitekture jer su pre svega bili programeri, a ne arhitekte. U slučaju pada ovog krova, uzrok je bio loše dizajniran softver jer deo programa koji izračunava opterećenje čeličnih nosećih elemenata nije uzimao u obzir sve sile koje deluju na konstrukciju. Da stvar bude gora, mogućnost predviđanja pada dela konstrukcije nije bila uključena u program. I tako kada je popustio jedan nosač, sve se srušilo poput kule od karata.

Radioterapija „spržila” pacijente

Tragičan, zastrašujuć primer je slučaj kompjuterizovanog sistema Therac-25 za radioterapiju. Zbog greške u softveru određeni broj pacijenata je dobio suviše veliku dozu zračenja, od koje su neki i umrli. Prema nezvaničnoj analizi stručnjaka, za sve je okrivljen softver koji nije bio pravilno projektovan.

Za razliku od prethodnog modela Therac-20, koji je imao nezavistan sistem zaštite i mehaničke osigurače, Therac-25 se oslanjao na softver. Zbog loše urađenog softvera počele su da se javljaju greške u radu na koje proizvođač nije reagovao jer navodno nije uspevao da ih reprodukuje na svom sistemu. Iako je okrivljen softver, kompanija nije tačno definisala pravi uzrok niti jasno priznala krivicu, a posledice su tragične.

Nedavno je u Velikoj Britaniji zabeležen još jedan slučaj povezan sa uređajima za radioterapiju, ali ovoga puta bez ozbiljnih posledica. Naime, u jednoj ustanovi koja se bavi ovim lečenjem kompjuterizovani sistem je zaražen virusom. Posledica je bio prekid lečenja onih kojima je to potrebno sve dok se uljez ne otkloni.

Kao poslednji primer imamo nešto vedrije i komično. Na japanskoj berzi su greškom ponuđene deonice jedne kompanije po ceni manjoj od jednog centa umesto po ceni od 5080 USD. Desilo se ono što u stručnim krugovima zovu „sindrom debelih prstiju” i primer je greške koja je inicirana od strane čoveka. Unoseći podatke u odgovarajući finansijski softver, jedan od brokera je permutovao vrednosti; umesto da jedna deonica ima vrednost 610.000 jena (5080 USD), on je uneo vrednosti tako da je ponuđeno 610.000 deonica po vrednosti od jednog jena. Greška nije primećena odmah, a automatizovani sistemi su odradili svoje. Deonice su prodate po toj ceni, a nakon otkrivanja greške kompanija koja ih je ponudila pokušala je da ih panično kupi nazad, neizbežno po nešto višoj ceni. Procenjena šteta je najmanje 225 miliona dolara, a ovaj incident početkom decembra ove godine zatalasao je kompletan berzanski sistem.

• • •

Ljudi su napravili računare. Računari prave greške. Ljudi radeći na računarima prave greške – izgleda da smo sasvim lep tandem!

Mirko PERAK

 
 NOVE TEHNOLOGIJE
Optički kompjuteri

 PRIMENA
Računarske greške
Šta mislite o ovom tekstu?

 IZLOG
Međusklopovi od A do Š
Teorija pre prakse

 SERVIS
Podešavanje memorijskih modula
Home / Novi brojArhiva • Opšte temeInternetTest driveTest runPD kutakCeDetekaWWW vodič • Svet igara
Svet kompjutera Copyright © 1984-2018. Politika a.d. • RedakcijaKontaktSaradnjaOglasiPretplata • Help • English
SKWeb 3.22
Opšte teme
Internet
Test Drive
Test Run
PD kutak
CeDeteka
WWW vodič
Svet igara



Naslovna stranaPrethodni brojeviOpšte informacijeKontaktOglašavanjePomoćInfo in English

Svet kompjutera