informatycznych Witold Paluszyński Katedra Cybernetyki i Robotyki Wydzia l Elektroniki, Politechnika Wroc lawska

Podobne dokumenty
SYSTEM DIAGNOSTYCZNY OPARTY NA LOGICE DOMNIEMAŃ. Ewa Madalińska. na podstawie prac:

Wieloprogramowy system komputerowy

Functionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ

Szeregowanie w systemach czasu rzeczywistego

Projektowanie oprogramowania. Wykład Weryfikacja i Zatwierdzanie Inżynieria Oprogramowania Kazimierz Michalik

Drzewa podstawowe poj

us lugi katalogowe? Czym różni si e serwer katalogowy od serwera bazy danych:

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

Funkcje. Piotr Zierhoffer. 7 października Institute of Computer Science Poznań University of Technology

Uruchamianie SNNS. Po uruchomieniu. xgui & lub snns & pojawia si e okno. programu. Symulator sztucznych sieci neuronowych SNNS 1

Paradygmaty programowania. Paradygmaty programowania

Tablice i funkcje. Marcin Makowski. 26 listopada Zak lad Chemii Teoretycznej UJ

Funkcje systemu Unix

Rozdział 5: Zarządzanie testowaniem. Pytanie 1

Paradygmaty programowania. Paradygmaty programowania

Praktyka testowania dla początkujących testerów

Jak matematyka pomaga w wyszukiwanie wzorca

Jarosław Kuchta Jakość Systemów Informatycznych Jakość Oprogramowania. Pomiary w inżynierii oprogramowania

Systemy wejścia/wyjścia

Ćwiczenie nr 520: Metody interpolacyjne planowania ruchu manipulatorów

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE

Ekonomia matematyczna i dynamiczna optymalizacja

O autorze... 9 Wprowadzenie... 11

Wieloprogramowy system komputerowy

Organizacja systemu plików

Projekty Zaliczeniowe Laboratorium Sieci Komputerowych

Wyk lad 7 Metoda eliminacji Gaussa. Wzory Cramera

Paradygmaty programowania

Testowanie oprogramowania. Testowanie oprogramowania 1/34

20PLN dla pierwszych 50 sztuk oraz 15PLN dla dalszych. Zysk ze sprzedaży biurka wynosi 40PLN dla pierwszych 20 sztuk oraz 50PLN dla dalszych.

Szeregowanie w systemach czasu rzeczywistego

Etapy życia oprogramowania

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2016/2017. Forma studiów: Niestacjonarne Kod kierunku: 11.

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Plan. Zapewnienie jakości produktu informatycznego. Zarządzanie jakością i metryki oprogramowania. Podstawowe parametry mierzalne

Statystyka w analizie i planowaniu eksperymentu

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Sterowniki Programowalne (SP)

ep Podstawy j Wst ezyka Tcl zaawansowany GUI-Tk Zastosowania Tcl/Tk Ireneusz So lczyk 26 kwietnia 2006

Pochodne cz ¾astkowe i ich zastosowanie.

Systemy Operacyjne Ćwiczenia

Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013. Forma studiów: Stacjonarne Kod kierunku: 06.

WNIOSKOWANIE W MODELU REGRESJI LINIOWEJ

Zastosowanie Robotów. Ćwiczenie 6. Mariusz Janusz-Bielecki. laboratorium

Software Achitecture Document Pó l-internetowy System Obs lugi Turystyki Gminnej

Najwyżej ocenione raporty dla Mr Buggy 4

Cykle życia systemu informatycznego

Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Testowanie oprogramowania

Wyk lad 9 Podpierścienie, elementy odwracalne, dzielniki zera

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

Statystyka w analizie i planowaniu eksperymentu

Statystyka w analizie i planowaniu eksperymentu

Sukces vs porażka. Sukces. Porażka

przerwany proces móg l zareagować na określone zdarzenie. Można je traktować jako software owe wersje przerwań sprz etowych.

Wskaźniki, funkcje i tablice

Wykład 1 Inżynieria Oprogramowania

przypadków wywo lanie systemowe (funkcja systemowa) lub funkcja biblioteczna zwraca wartość 1(czasamiNULL) iprzypisujezmiennej zewn etrznej,

Ghost in the machine

Normy wektorów i macierzy

Procedura Walidacyjna Interfejs

Systemy zabezpieczeń

Testowanie modeli predykcyjnych

Porównanie metod i technik testowania oprogramowania. Damian Ryś Maja Wojnarowska

Here comes the sun. Wyk lad niesystematyczny. Marcin Makowski. 24 października Zak lad Chemii Teoretycznej UJ

Testowanie hipotez statystycznych

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

Jeden przyk lad... czyli dlaczego warto wybrać MIESI.

Załącznik nr 19 do Umowy nr... z dnia... Plan Testów Systemu. Projekt ZEFIR 2

Opis programu ERWIN. System Zarządzania Postępowaniem. Warszawa ERWIN

Charakterystyka systemów plików

QualitySpy moduł persystencji

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

Zasady organizacji projektów informatycznych

IO - Plan testów. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

P. Urzyczyn: Materia ly do wyk ladu z semantyki. Uproszczony 1 j. ezyk PCF

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Wykład 7. Projektowanie kodu oprogramowania

Plan wyk ladu. Kodowanie informacji. Systemy addytywne. Definicja i klasyfikacja. Systemy liczbowe. prof. dr hab. inż.

Praktyczne aspekty stosowania metody punktów funkcyjnych COSMIC. Jarosław Świerczek

PROGRAMOWALNE STEROWNIKI LOGICZNE

Inżynieria Programowania Weryfikacja i zatwierdzanie

LEKCJA TEMAT: Zasada działania komputera.

PODSTAWOWE W LASNOŚCI W ZBIORZE LICZB RZECZYWISTYCH

Zaawansowane programowanie w C++

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Statystyka w analizie i planowaniu eksperymentu

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

Przewodnik użytkownika (instrukcja) AutoMagicTest

In ż ynieria oprogramowania wykład II Modele i fazy cyklu życia oprogramowania

Jak efektywnie wykrywać podatności bezpieczeństwa w aplikacjach? OWASP The OWASP Foundation

Roboty. wirutalnym, a wi ec nie symulator software owy). Rodzaje robotów:

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE INTEGRACYJNE

Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład:

Bezpieczeństwo systemów komputerowych

Transkrypt:

Niezawodność i odporność na b l edy systemów informatycznych Witold Paluszyński Katedra Cybernetyki i Robotyki Wydzia l Elektroniki, Politechnika Wroc lawska http://www.kcir.pwr.edu.pl/~witold/ 2011 2013 Ten utwór jest dost epny na licencji Creative Commons Uznanie autorstwa- Na tych samych warunkach 3.0 Unported Utwór udost epniany na licencji Creative Commons: uznanie autorstwa, na tych samych warunkach. Udziela si e zezwolenia do kopiowania, rozpowszechniania i/lub modyfikacji treści utworu zgodnie z zasadami w/w licencji opublikowanej przez Creative Commons. Licencja wymaga podania oryginalnego autora utworu, a dystrybucja materia lów pochodnych może odbywać si e tylko na tych samych warunkach (nie można zastrzec, w jakikolwiek sposób ograniczyć, ani rozszerzyć praw do nich).

Obs luga b l edów Jeśli zwyk ly program napotka b lad, którego nie potrafi rozwiazać albo naprawić, to typowym i normalnie stosowanym zachowaniem programu jest zakończenie pracy, z możliwie starannym i dok ladnym poinformowaniem użytkownika (jeśli taki istnieje) o powstaniu b l edu i jego okolicznościach. Systemy czasu rzeczywistego i systemy wbudowane maja inne wymagania i inne podejście do traktowania i obs lugi b l edów, i powyższe podejście jest zwykle nie do przyj ecia. Na przyk lad, system sterujacy procesem przemys lowym, po napotkaniu b l edu fatalnego, nie może po prostu zatrzymać procesu, ponieważ mog loby to być kosztowne i/lub niebezpieczne. Zamiast tego, powinien przejść do trybu podtrzymania minimalnej funkcjonalności, unikajac ca lkowitej awarii. Niezawodność i odporność na b l edy systemów informatycznych 3

Niezawodność i odporność na b l edy Systemy czasu rzeczywistego i systemy wbudowane maja również specjalne wymagania dotyczace niezawodności. W celu ich osiagni ecia stosuje si e ca ly zestaw technik: minimalizm w specyfikacji wymagań i projektowaniu systemów, specjalne metody projektowania i budowy oprogramowania, m.in. używanie bezpiecznych j ezyków programowania, odpowiednie szkolenie programistów, itp., weryfikacja i testowanie, odporność na b l edy, efektywne usuwanie skutków awarii. Niezawodność i odporność na b l edy systemów informatycznych 4

Metryki z lożoności oprogramowania Niezawodność systemu oprogramowania jest zwiazana z jego z lożonościa. Bardzo z lożone oprogramowanie jest kosztowne do wytworzenia, i trudno zapewnić jego niezawodność. Stosuje si e różne miary z lożoności systemów oprogramowania, zwane metrykami. W czasie projektowania nowego systemu oszacowanie z lożoności pomaga w przewidywaniu kosztów, niezb ednego nak ladu czasu, oraz innych potrzebnych zasobów. Po zakończeniu budowy systemu obliczenie jego metryk i innych charakterystyk pomaga w zbudowaniu bazy doświadczeń dla przysz lych projektów. Stosowane metryki z lożoności oprogramowania: Liczba wierszy programu (Lines of Code, KLOC), cz esto liczona z pomini eciem komentarzy, plików nag lówkowych, itp. W oczywisty sposób metryka ta nie bierze pod uwag e z lożoności samego programu. Ponadto, cz esto trudno obliczyć ja dla dopiero projektowanego systemu. Niezawodność i odporność na b l edy systemów informatycznych metryki z lożoności oprogramowania 5

Z lożoność cyklomatyczna (cyclomatic complexity) C, obliczona na podstawie schematu blokowego programu (flow graph), gdzie e liczba kraw edzi grafu, a n liczba wierzcho lków: C = e n+2 Ilustracja z lożoności cyklomatycznej dla prostych fragmentów programów sa nast epuj ace schematy blokowe: Obliczenia z lożoności cyklomatycznej można dokonać automatycznie, w trakcie kompilacji programu, lub przez analiz e kodu źród lowego. Niezawodność i odporność na b l edy systemów informatycznych metryki z lożoności oprogramowania 6

Punkty funkcyjne (Function Points) jest innego rodzaju metryka, próbujac a oszacować interakcje pomi edzy modu lami projektowanej aplikacji, oparta o pewne jej parametry zewn etrzne. Wielka jej zaleta jest możliwość obliczenia na etapie projektowania, gdy żaden kod nie jest jeszcze napisany. Wykorzystuje takie parametry: liczba źróde l wejściowych (I) liczba wyjść (O) liczba dialogów z użytkownikiem (Q) liczba używanych plików (F) liczba zewn etrznych interfejsów (X) FP = 4I +4O+5Q+10F +7X Istnieja bardziej rozbudowane wzory na FP, biorace pod uwag e dodatkowe aspekty projektowanej aplikacji. Niezawodność i odporność na b l edy systemów informatycznych metryki z lożoności oprogramowania 7

Poprzednie metryki nie uwzgl ednia ly specyfiki programów obiektowych. Definiuje si e metryki podobne do FP, uwzgl edniaj ace w przypadku aplikacji obiektowych takie parametry jak: ważona liczba metod na klas e g l ebokość drzewa dziedziczenia liczba potomków w drzewie dziedziczenia zwiazki mi edzy klasami brak spójności mi edzy metodami Należy podkreślić, że stosowanie metryk ma ograniczone zastosowanie. Na przyk lad, przyk ladanie nadmiernej wagi do metryki KLOC może doprowadzić do sytuacji, w której programiści, lub ca la firma realizujaca projekt, b ed a tworzyli oprogramowanie o zawyżonej KLOC, w celu wykazania si e i podniesienia rangi swojego produktu, z oczywista szkoda dla projektu. Niezawodność i odporność na b l edy systemów informatycznych metryki z lożoności oprogramowania 8

Terminologia niezawodności Defektem (fault) nazywamy wad e programu, b l edny fragment kodu, np. brak sprawdzenia wielkości bufora przed wczytaniem do niego danych nieznanej wielkości. Istnienie defektu w programie nie oznacza, że b l edny kod zostanie kiedykolwiek wykonany, gdy b edzie wykonany to czy nastapi sytuacja b l edna (np. dane przekrocza rozmiar bufora), a gdy wystapi, to czy spowoduje to jakiekolwiek negatywne konsekwencje. B l edem (error) nazywamy sytuacj e, gdy program znajdzie si e w stanie różnym niż stan pożadany i poprawny. Np. przypadek, odwo lanie si e programu do adresu spoza dozwolonego zakresu jest b l edem. B l ad taki może być jednak zauważony przez system, który może wys lać programowi sygna l. Jeśli program jest wyposażony w handler obs lugujacy sygna l danego typu, to program ma szans e poprawnego zachowania si e w przypadku takiego b l edu, i podj ecia w laściwych dzia lań. Awaria (failure) nazywamy sytuacj e, kiedy program nie jest w stanie realizować swojej funkcji wskutek wystapienia b l edu. Niezawodnościa b edziemy nazywać zdolność programu takiego radzenia sobie z defektami, a także b l edami, które nie dopuszcza do wystapienia awarii. Niezawodność i odporność na b l edy systemów informatycznych terminologia niezawodności 9

B l edy B l edy można podzielić na dwie istotne kategorie: b l edy powtarzalne takie, dla których znana jest przynajmniej jedna ścieżka prowadzaca do ich wystapienia, b l edy ulotne (transient error) to takie, dla którego nie można precyzyjnie określić warunków jego wystapienia, a zatem nie ma możliwości wywo lania go w prosty i powtarzalny sposób. Znaczenie powyższego rozróżnienia b l edów jest takie, że procedury zwiazane z wykrywaniem b l edów sa inne dla tych kategorii. Niezawodność i odporność na b l edy systemów informatycznych terminologia niezawodności 10

Zapobieganie defektom Zapobieganie defektom (fault prevention) sprowadza si e do dwóch grup procedur: unikanie defektów (fault avoidance) rygorystyczna i/lub formalna specyfikacja wymagań zastosowanie sprawdzonych metod projektowania użycie j ezyków z mechanizmami wspierajacymi abstrakcje, weryfikacj e, itp. użycie narz edzi inżynierii oprogramowania usuwanie defektów (fault removal) weryfikacja walidacja testowanie Niezawodność i odporność na b l edy systemów informatycznych terminologia niezawodności 11

Niezawodność i odporność na b l edy systemów informatycznych terminologia niezawodności 12

Weryfikacja, walidacja, i testowanie Weryfikacja jest procesem realizowanym na wielu etapach cyklu rozwoju oprogramowania, w celu potwierdzenia poprawności i zgodności ze specyfikacja danego modu lu, i ca lego systemu. Do weryfikacji można wykorzystać wiele narz edzi, w tym narz edzi analizy formalnej. Walidacja jest procesem analizy ukończonego produktu, lub prototypu, dla stwierdzenia czy jest zgodny z wszystkimi wymaganiami, w tym również czy formalna specyfikacja jest zgodna z intencja i oczekiwaniami użytkownika, oraz czy uruchomiony w środowisku produkcyjnym program realizuje swoje funkcje. Podstawowym narz edziem walidacji jest testowanie. Niezawodność i odporność na b l edy systemów informatycznych weryfikacja, walidacja, i testowanie 13

Testowanie Testowanie jest procesem powtarzalnego uruchamiania programu z określonymi danymi wejściowymi, w celu stwierdzenia, czy program produkuje w laściwe sygna ly wyjściowe. Jakkolwiek w trakcie testowania ujawniaja si e defekty i b l edy, które powinny nast epnie być korygowane, wykrywanie i poprawianie b l edów nie jest jedynym celem testowania. Ogólnie, testowanie nie jest w stanie ani wykryć wszystkich b l edów, ani potwierdzić ich braku. Na odwrót, za pomoca testowania można jedynie wykrywać istniejace b l edy. Natomiast dodatkowa rola testowania jest wytworzenie zaufania do programu, jeśli zachowuje si e on poprawnie w dobrze zaprojektowanych, wszechstronnych testach. Niezawodność i odporność na b l edy systemów informatycznych weryfikacja, walidacja, i testowanie 14

Testowanie oprogramowania Testowanie może przeanalizować jedynie ma la cz eść ca lej przestrzeni możliwych danych wejściowych. Powinno ono być zatem tak przeprowadzone, aby jego wyniki w przekonujacy sposób potwierdzi ly hipotez e, że system b edzie dzia la l poprawnie dla wszystkich danych. Metody wyboru danych wejściowych: wybór losowy, pokrycie wymagań dla każdego z wymagań zestawy danych potwierdzajace spe lnienie danego wymagania, testowanie white-box realizowane jest pokrycie wed lug jakiegoś kryterium wynikajacego z analizy programu, np. przejście wszystkich rozga l ezień logicznych w programie, wybór oparty na modelu dane sa generowane z modelu systemu pracujacego w po laczeniu z modelem obiektu fizycznego, profil operacyjny baza do wyboru danych testowych jest profil operacyjny, szczytowe obciażenie generowane jest ekstremalne obciażenie systemu, i w takich warunkach sprawdzane spe lnienie wymagań czasowych, przypadek najgorszego czasu wykonania (WCET) dane generowane na podstawie analizy kodu w kierunku WCET, mechanizmy tolerancji defektów testowanie z zastosowaniem wstrzykiwania defektów, systemy cykliczne testowanie w zakresie jednego pe lnego cyklu. Niezawodność i odporność na b l edy systemów informatycznych weryfikacja, walidacja, i testowanie 15

Testowanie sprz etu testowanie CPU testowanie pami eci ROM testowanie pami eci RAM testowanie innych urzadzeń Niezawodność i odporność na b l edy systemów informatycznych weryfikacja, walidacja, i testowanie 16

Odporność na b l edy Podstawa zbudowania odporności systemu na b l edy (software fault tolerance) jest sformu lowanie hipotezy defektów określajacej jakie rodzaje defektów maja być tolerowane przez system. Hipoteza dzieli przestrzeń stanów systemu na trzy regiony: Dodatkowo: strategia NGU (Never Give Up Nigdy Nie Rezygnuj). Niezawodność i odporność na b l edy systemów informatycznych odporność na b l edy 17

Redundancja Redundancja (nadmiarowość) jest jedna z g lównych technik budowania odporności na b l edy, zarówno w sprz ecie jak i oprogramowaniu. W oczywisty sposób, ponieważ prowadzi ona do budowy bardziej z lożonych systemów, może sama w sobie wprowadzać ryzyko dalszych defektów i zwiazanych z nimi awarii. Redundancja statyczna (maskujaca) jest wbudowana wewnatrz systemu, który usi luje dzi eki niej utrzymać poprawne dzia lanie maskujac wyst epuj ace b l edy. Jedna z podstawowych technik jest TMR (Triple Modular Redundancy), polegajaca na zastosowaniu trzech identycznych elementów, i uk ladu g losowania, który porównuje sygna ly na wyjściach wszystkich elementów, i jeśli jeden różni si e od dwóch pozosta lych to na wyjście uk ladu kierowany jest sygna l wyjściowy wybrany wi ekszościowo. TMR ma g lównie zastosowanie do uodpornianie na b l edy sprz etu. Redundancja dynamiczna polega na wbudowaniu w system elementu oceniajacego, czy nie wyst epuj a b l edy. W przypadku wykrycia b l edu, uk lad sygnalizuje to, pozostawiajac jednak elementom zewn etrznym podj ecie odpowiednich dzia lań. Redundancja dynamiczna jest zatem metoda wykrywania b l edów. Przyk ladami moga być bity parzystości pami eci, albo sumy kontrolne w pakietach komunikacji. Niezawodność i odporność na b l edy systemów informatycznych odporność na b l edy 18

Programowanie N-wersji Zastosowanie redundancji typu TMR opiera si e na za lożeniu, że b lad powstanie wewnatrz jednego z uk ladów, i b edzie to b lad przypadkowy, albo wynikajacy ze starzenia si e sprz etu. Ponieważ systemy programowe nie starzeja si e, a b l edy przypadkowe nie sa najważniejszymi b l edami, na które system powinien być odporny, zatem podejście typu TMR ma ograniczone zastosowanie do systemów oprogramowania. Zamiast tego, budowanie odporności koncentruje si e na możliwych b l edach programowych. Metoda zwana programowaniem N-wersji (N-version programming) polega na stworzeniu N funkcjonalnie równoważnych programów odpowiadajacych jednej specyfikacji. Programy powinny być budowane przez N różnych programistów (lub grup), bez komunikowania si e mi edzy soba. Programy nast epnie wykonywane sa jednocześnie w systemie, i dodatkowy proces drivera porównuje uzyskane wyniki i wybiera jeden metoda g losowania. Skuteczność tej metody opiera si e na za lożeniu, że programy stworzone niezależnie, maja różne defekty, i b ed a powodowa ly b l edy niezależnie od siebie. To za lożenie może być nies luszne, jeśli np. programy zosta ly napisane w tym samym j ezyku programowania, i skompilowane tym samym kompilatorem. Niezawodność i odporność na b l edy systemów informatycznych odporność na b l edy 19

Dublowanie procesów Technika znacznie prostsza niż programowanie N-wersji jest dublowanie procesów. Ma ona zastosowanie do uodporniania systemu na b l edy ulotne. Metoda polega na tworzeniu nadmiarowego podprocesu do wykonywania obliczeń, a w przypadku gdyby napotka l on na jakiś b lad, zamyka si e on zwracajac odpowiedni kod b l edu. Proces nadzorujacy stwierdza wystapienie b l edu, i tworzy identyczny proces do ponownego wykonania tych samych obliczeń. Niezawodność i odporność na b l edy systemów informatycznych odporność na b l edy 20

Dublowanie procesów może być stosowane wielokrotnie na różnych poziomach. Na przyk lad procedura może najpierw inicjalizować środowisko obliczeń, pozyskiwać dane, itp., a dopiero potem inicjować zasadnicze obliczenia. Zarówno pierwsza faza jak i druga moga podlegać oddzielnemu dublowaniu. W oczywisty sposób, dublowanie drugiej fazy jest mniej uciażliwe i nie powoduje konsekwencji wykraczajacej poza program. Zastosowanie tego podejścia jest szczególnie latwe i atrakcyjne w systemach Unikso-podobnych, wykorzystujacych model tworzenia procesu przez klonowanie funkcja fork. Niezawodność i odporność na b l edy systemów informatycznych odporność na b l edy 21

Punkty kontrolne Metoda polega ona na tworzeniu w programie punktów bezpiecznego wycofania si e. Jeżeli program w trakcie pracy sam wykryje b l ad, to znaczy jakiś niepoprawny stan, to najlepiej by loby cofnać si e o kilka kroków, kiedy stan by l jeszcze poprawny, i powtórzyć ma la porcj e obliczeń. Aby to by lo możliwe, należy w trakcie pracy okresowo, po zweryfikowaniu, że stan programu jest poprawny, zapami etać go w sposób umożliwiajacy cofni ecie programu do tego stanu. W ten sposób program tworzy punkt kontrolny. Po wykryciu b l edu, program cofa si e do ostatniego takiego punktu, i wznawia obliczenia tak jakby nic si e nie sta lo. Za lożeniem tej metody jest, że ponowne wykonanie pewnej fazy obliczeń da tym razem inne wyniki. Za lożenie jest poprawne jeśli b lad by l wywo lany czynnikami zewn etrznymi, albo jakaś kombinacja mikrostanów programu, która nie zostanie powtórzona. Niezawodność i odporność na b l edy systemów informatycznych odporność na b l edy 22

Bloki wznawiania (recovery blocks) Metoda bloków wznawiania wykorzystuje zwyk le bloki programowe uzupe lnione o punkt wznawiania umieszczony na poczatku bloku, i test akceptowalności na końcu. Test jest wykonywany dla stwierdzenia czy system znajduje si e w akceptowalnym stanie po wykonaniu bloku. Jeśli nie, to wykonanie programu wraca do stanu na wejściu do bloku. Po wznowieniu obliczeń, program powinien wykorzystać alternatywny modu l obliczeniowy. (Jeśli obliczenia zostana wznowione z użyciem tego samego modu lu, to ta metoda można si e zabezpieczyć jedynie przed b l edami ulotnymi.) Gdyby obliczenia wszystkich alternatywnych modu lów zawiod ly, to sterowanie wraca do modu lu nadrz ednego, który też może mieć swój blok wznawiania. Metoda bloków wznawiania jest popularna technika, jednak jej zastosowanie w systemach czasu rzeczywistego jest ograniczone do przypadków, w których ograniczenia czasowe pozwalaja na ponawianie obliczeń, i wynik uzyskany po dodatkowym nak ladzie obliczeń jest nadal przydatny. Zastosowanie tego podejścia w systemach Unikso-podobnych, wykorzystuje na ogó l funkcje setjmp i longjmp do zachowywania stanu i wznawiania obliczeń. Niezawodność i odporność na b l edy systemów informatycznych odporność na b l edy 23

Odm ladzanie Metoda odm ladzania procesów opiera si e na za lożeniu, że stan poczatkowy po uruchomieniu jest zawsze najlepiej przetestowany, i przez jakiś czas po starcie system pracuje bezawaryjnie. Metoda jest ograniczona przez tzw. stan twardy systemu, to jest stan po inicjalizacji, komunikacji z urzadzeniami zewn etrznymi, itp. Ten stan zwykle nie powinien być utracony w procesie odm ladzania. Jednak idea odm ladzania polega na porzuceniu poprzedniego stanu, i zainicjowaniu go od nowa!! Niezawodność i odporność na b l edy systemów informatycznych odporność na b l edy 24

Mikro restarty Restart systemu może być środkiem zapobiegania b l edom, albo metoda przywrócenia systemu do stanu poprawnego. O ile jednak restart ca lego systemu cz esto powoduje zaburzenie lub utrudnienie w pracy, to metoda może być podzia l systemu na szereg mniejszych elementów, które można restartować niezależnie od innych. Zauważmy, że w niektórych systemach, jak Windows, po operacjach takich jak instalacja lub reinstalacja jakiegoś programu wymagany jest restart ca lego systemu. Wynika to z faktu, że bezpośrednio po starcie system konfiguruje sobie ca le dost epne oprogramowanie. Gdyby t e warstw e konfiguracji oprogramowania wydzielić jako osobny podsystem, który móg lby być restartowany samodzielnie, nie by loby konieczności restartu ca lego systemu. Metoda ta jest szeroko stosowana w innych systemach operacyjnych. Niezawodność i odporność na b l edy systemów informatycznych odporność na b l edy 25

Watchdog W systemach czasu rzeczywistego procedura restartu po wystapieniu i wykryciu awarii jest cz esto zautomatyzowana i rutynowo implementowana. Jedna ze stosowanych metod jest tzw. watchdog, czyli system monitorujacy prac e systemu, i wykonujacy fizyczny restart po zauważeniu nieprawid lowości. Watchdog może być zrealizowany sprz etowo i niezależny od reszty systemu, co daje gwarancj e jego poprawnej pracy nawet jeśli awaria systemu wy lacza z akcji inne jego mechanizmy odpornościowe. Niezawodność i odporność na b l edy systemów informatycznych odporność na b l edy 26

Poprawianie stanu Poprawianie stanu polega na podj eciu dzia lań doraźnych, w przypadku wykrycia nieprawid lowości. Jednak zamiast poszukiwania jej źróde l, i podj ecia próby radykalnej naprawy sytuacji, likwidowane sa tylko objawy. Jest to wi ec podobne do objawowego leczenia choroby. Zamiast podawać antybiotyk, podajemy lekarstwo zbijajace goraczk e. Jak wiemy, takie leczenie stosuje si e, i jest to s luszna metoda, jeśli nic innego w danej chwili nie można zrobić, a poprawienie stanu może spowodować niedopuszczenie do natychmiastowej awarii, i dalsze dzia lanie systemu, przynajmniej przez jakiś czas. Niezawodność i odporność na b l edy systemów informatycznych odporność na b l edy 27