Najbardziej kosztowne błędy komputerowe

"Niebieski ekran śmierci" w Windows, aktualizacje oprogramowania antywirusowego zawieszające komputer, luki w zabezpieczeniach aplikacji... Każdy użytkownik komputera, nawet jeśli się z nimi nie zetknął, to przynajmniej o słyszał o tych niedogodnościach pracy z komputerem. Niektóre błędy w oprogramowaniu bywają jednak znacznie bardziej dolegliwe od innych - zwłaszcza, gdy giną ludzie.

Taka piękna katastrofa

Najbardziej spektakularne błędy w oprogramowaniu w ostatnich latach przytrafiły się... NASA. Ofiarą nieuwagi programistów padały sondy kosmiczne, których przeznaczeniem było zebranie informacji na temat Marsa.

W 1998 r. wystrzelony został Mars Climate Orbiter, który miał pełnić m.in. funkcję przekaźnika telekomunikacyjnego dla pojazdu Mars Polar Lander. Sonda zamilkła 2 września 1999 r. - nieprawidłowy kąt przy wchodzeniu w atmosferę czerwonej planety sprawił, że Orbiter uległ zniszczeniu. Okazało się potem, że dwie grupy inżynierów konstruujących satelitę używały różnych systemów miar - metrycznego (wykorzystywanego przez oprogramowanie sondy) i brytyjskiego (instrumenty pokładowe rejestrujące parametry lotu).

Warto dodać, że Mars Polar Lander też się rozbił - tyle że o powierzchnię Marsa (w czasie lądowania oprogramowanie lądownika zbyt wcześnie wyłączyło silniki hamujące).

Z kolei pod koniec 2006 r. błąd w oprogramowaniu zaważył na losach sondy Mars Global Surveyor. Cztery miesiące wcześniej do sondy załadowany został program, który miał poprawić wydajność procesorów sterujących jej lotem. Tymczasem doprowadził do nadmiernego obciążenia CPU, przegrzania się baterii (przez skierowanie jej promienników w stronę Słońca) i przejścia sondy w "tryb bezpieczny", którego już nie opuściła.

Historia wypadków NASA wywołanych błędami w oprogramowaniu sięga zresztą 1962 r. 22 lipca tego roku, kilka minut po starcie rakieta mająca wynieść w kosmos sondę Mariner 1 zaczęła zbaczać z kursu, wobec czego zniszczono ją.

W oprogramowaniu sterującym lotem rakiety znalazł się błąd, nazwany później najdroższym myślnikiem w historii. W napisanym odręcznie kodzie zawarto znak ( - ), występujący w roli górnego podkreślenia, w oprogramowaniu go zabrakło. A był to znak, jak się okazało, kluczowy. Bez niego drobne zmiany prędkości wznoszenia się rakiety były interpretowane jako poważne: włączały się procedury korekty lotu, które w efekcie zniosły rakietę z kursu.

Europejska Agencja Kosmiczna (ESA) też ma na swoim koncie podobny "wypadek". 4 czerwca 1996 r. rakieta Ariane-5 eksplodowała zaraz po starcie:

Zawinił tzw. bezwładnościowy system nawigacyjny (IRS - Inertial Reference System) rakiety, który nie poradził sobie z konwersją informacji o prędkości wznoszenia się zapisanych w formacie 64-bitowej liczby zmiennoprzecinkowej na 16-bitowe liczby całkowite. Niezgodność formatów zapisu danych doprowadziła do przeciążenia pamięci zbyt wielką ilością kolejnych, stale nadpisywanych informacji, a Ariane zaczęła schodzić z kursu aż zadziałały procedury autodestrukcji rakiety.


Zobacz również