• Nie Znaleziono Wyników

2. Analiza wpływu bł˛edów na działanie systemu komputerowego

2.5. Analiza efektów bł˛edów

Wyst ˛apienie bł˛edu w systemie mo˙ze powodowa´c ró˙znego typu nast˛epstwa – od maskowania bł˛edu do awarii. Opracowywanie skutecznych technik obsługi bł˛edów wymaga szczegółowej analizy cyklu ˙zycia bł˛edu w systemie. Poni˙zej przedstawiona jest charakterystyka zdarze´n opisuj ˛acych wyst ˛apienie bł˛edu oraz poj˛ecia i miary zwi ˛azane z symulacj ˛a bł˛edów, które pozwalaj ˛a na dogł˛ebn ˛a analiz˛e wpływu bł˛edów na działanie systemu.

27 http://user-mode-linux.sourceforge.net/

2.5.1. Scenariusz wyst ˛apienia bł˛edu

Analiza efektów bł˛edów w systemie komputerowym wymaga opisania zdarze´n, które maj ˛a miejsce w sytuacji wyst ˛apienia bł˛edu. Poni˙zej zamieszczone s ˛a definicje rozpatrywanych zdarze´n:

— wyst ˛apienie bł˛edu na poziomie fizycznym – jest to moment, kiedy działanie układu zostało zaburzone i nie realizuje on funkcji zgodnie ze swoj ˛a specyfikacj ˛a,

— wyst ˛apienie bł˛edu na poziomie logicznym – jest to sytuacja, kiedy zaburzenie na poziomie fizycznym zmienia stan logiczny układu (np. zmiana warto´sci bitów),

— aktywacja bł˛edu – jest to chwila, gdy dane zmodyfikowane na skutek bł˛edu logicznego zostały wykorzystane w procesie wykonania oprogramowania,

— maskowanie – sytuacja, gdy aktywacja bł˛edu nie wpłyn˛eła na działanie systemu komputerowego,

— manifestacja – wyst˛epuje, gdy zaistniała w systemie nieprawidłowo´s´c wywołuje obserwowalne odst˛epstwo od pracy systemu (np. generowanie nieprawidłowych wyników, nieudany wynik sprawdzenia asercji, zniekształcone komunikaty systemu),

— awaria – jest to zdarzenie b˛ed ˛ace manifestacj ˛a bł˛edu oznaczaj ˛ace wyst ˛apienie sytuacji wyj ˛atkowej uniemo˙zliwiaj ˛acej kontynuacj˛e wykonania oprogramowania,

— detekcja bł˛edu – wyst˛epuje, gdy zaistniała w systemie nieprawidłowo´s´c zostaje zamanifestowana i zidentyfikowana jako bł ˛ad sprz˛etowy.

Odst˛ep mi˛edzy wyst ˛apieniem bł˛edu na poziomie fizycznym a jego aktywacj ˛a nazywany jest utajeniem bł˛edu. Natomiast interwał mi˛edzy wyst ˛apieniem bł˛edu, a manifestacj ˛a jest okre´slany opó´znieniem manifestacji bł˛edu. W przypadku powy˙zszych zdarze´n odst˛epy pomi˛edzy nimi mog ˛a by´c mierzone zarówno czasem rzeczywistym jak i czasem logicznym (np. liczba wykona´n instrukcji, czy liczba taktów zegara procesora).

Istotnym zagadnieniem zwi ˛azanym z aktywacj ˛a bł˛edów jest aktywno´s´c zasobów. Zasób, czyli przykładowo komórka pami˛eci RAM, jest aktywny, je˙zeli przechowuje dane, które b˛ed ˛a wykorzystane w przebiegu programu do uzyskania wyniku. Oznacza to, ˙ze zasób jest nieaktywny w przedziałach czasu pomi˛edzy ostatnim odczytem zasobu, a zapisem nowymi warto´sciami28. Nie wszystkie bł˛edy maj ˛a wpływ na obliczenia. Mamy do czynienia z takim scenariuszem, gdy bł ˛ad przemijaj ˛acy wyst ˛apił w okresie nieaktywno´sci zasobu. Chocia˙z mo˙zliwe s ˛a równie˙z przypadki, kiedy bł ˛ad aktywowany nie miał wpływu na obliczenia.

28 Pod warunkiem, ˙ze nowa warto´s´c b˛edzie odczytana. W przypadku, gdy kolejn ˛a operacj ˛a na zasobie jest zapis, to czas nieaktywno´sci zasobu wydłu˙za si˛e do tej operacji.

2.5.2. Symulowanie bł˛edów

W technice symulacji bł˛edów mo˙zliwe jest dokładne okre´slenie skutków wstrzykiwania bł˛edów. Poni˙zej przedstawione s ˛a miary pozwalaj ˛ace okre´sli´c zarówno cechy efektów wstrzykiwania pojedynczych bł˛edów, jak i zbiorczych eksperymentów.

Bł˛edy mog ˛a by´c symulowane w ró˙znych komponentach systemu komputerowego, a tak˙ze w ró˙znych momentach.

Definicja 2.5.1. Zaburzana przestrze´n jest to charakterystyczny dla danego typu bł˛edu zbiór zasobów i momentów symulacji bł˛edu.

Przykładowo dla bł˛edów pami˛eci zaburzan ˛a przestrzeni ˛a s ˛a komórki pami˛eci w czasie pracy systemu komputerowego. Warto zaznaczy´c, ˙ze wprowadzanie bł˛edów w pewnych podzbiorach zaburzanej przestrzeni nie b˛edzie miało wpływu na działanie systemu komputerowego. W przypadku bł˛edów bit-flip pami˛eci celowe jest tylko zaburzanie zasobów aktywnych w danym momencie wstrzykni˛ecia, poniewa˙z w nieaktywnej komórce pami˛eci zostanie zapisana nowa warto´s´c maskuj ˛ac w ten sposób wyst ˛apienie bł˛edu. Natomiast sytuacja jest odmienna w przypadku bł˛edów stuck-at-0/stuck-at-1, kiedy symulacja bł˛edu w nieaktywnej komórce pami˛eci utrzymuje si˛e po zapisie nowej warto´sci.

Oprogramowanie systemu operacyjnego powinno by´c w stanie obsługiwa´c bł˛edy, które pochodz ˛a z urz ˛adze´n systemu komputerowego (komponentów obsługiwanych przez system operacyjny, np. sprz˛etu stanowi ˛acego integraln ˛a cz˛e´s´c systemu komputerowego oraz urz ˛adze´n zewn˛etrznych) jak i bł˛edów w komponentach wykorzystywanych przez system operacyjny do działania – kodu oraz danych. Skutkuje to podziałem na dwa rodzaje symulowanych bł˛edów: bł˛edy zewn˛etrzne oraz bł˛edy wewn˛etrzne. Przykładem bł˛edu zewn˛etrznego jest nieprawidłowo działaj ˛acy kontroler USB generuj ˛acy losowe pakiety. Natomiast bł˛edem wewn˛etrznym mo˙ze by´c przekłamanie typu bit-flip w obszarze pami˛eci RAM przechowuj ˛acej kod systemu operacyjnego.

Opó´znienie awarii jest miar ˛a zwi ˛azan ˛a z opó´znieniem manifestacji bł˛edu w przypadku, gdy bł ˛ad skutkuje awari ˛a.

Definicja 2.5.2. Opó´znienie awarii stanowi liczb˛e instrukcji kodu programu wykonanych przez jednostk˛e przetwarzaj ˛ac ˛a od wykonania pierwszej instrukcji aktywuj ˛acej bł ˛ad do wykonania instrukcji wywołuj ˛acej awari˛e.

Manifestacja bł˛edu dla celów niniejszej rozprawy została podzielona na kategorie uwzgl˛edniaj ˛ace czy system komputerowy wygenerował powierzone mu zadanie (np. prawidłowo przetworzony został pewien plik) oraz czy system operacyjny zgłosił komunikaty sygnalizuj ˛ace nieprawidłowo´sci w działaniu systemu:

— PU – prawidłowy wynik realizowanego zadania; bł ˛ad spowodował odst˛epstwo w pracy aplikacji u˙zytkownika (np. deformacja wypisywanych przez aplikacj˛e u˙zytkownika komunikatów); jest to niekrytyczny przypadek manifestacji bł˛edu,

— PS – prawidłowy wynik realizowanego zadania; system operacyjny zgłosił komunikat o wyst ˛apieniu nieprawidłowo´sci w systemie (np. awaria procesu niemaj ˛acego wpływu na proces realizacji zadania – przykładowo procesu defragmentacji dysku); jest to niekrytyczny przypadek manifestacji bł˛edu z punktu widzenia realizacji zadania, niemniej praca systemu operacyjnego została zaburzona,

— NU – nieprawidłowy wynik realizowanego zadania lub brak wyniku; brak komunikatu zgłoszonego przez system operacyjny; jest to krytyczny scenariusz, poniewa˙z bł ˛ad spowodował bł˛edne działanie aplikacji u˙zytkownika, uniemo˙zliwił dostarczenie wyniku lub wr˛ecz spowodował zawieszenie si˛e systemu operacyjnego,

— NS – nieprawidłowy wynik realizowanego zadania lub brak wyniku; system operacyjny zgłosił komunikat o odst˛epstwie od prawidłowej pracy systemu; jest to krytyczny scenariusz z uwagi na brak prawidłowego wyniku, jednak dostarcza on wi˛ecej informacji o przyczynie nieprawidłowo´sci, ni˙z kategoria NU.

Przykłady wymienionych typów manifestacji wraz z opisem przedstawione s ˛a w 4.2.

Dodatkowo mo˙zliwe jest rozró˙znienie, czy w przypadku manifestacji bł˛edu system komputerowy pozostał dost˛epny i czy u˙zytkownik mógł obserwowa´c manifestacj˛e bł˛edu.

System komputerowy uznawany jest za dost˛epny, kiedy mo˙zliwa jest interakcja z systemem.

Dost˛epno´s´c systemu została podzielona na nast˛epuj ˛ace kategorie:

— DU – system dost˛epny, odst˛epstwa od prawidłowej pracy systemu s ˛a zwi ˛azane z komunikatami zgłaszanymi przez aplikacje u˙zytkownika,

— DS – system dost˛epny, system operacyjny zgłosił komunikat o wyst ˛apieniu nieprawidłowo´sci,

— N DU – system niedost˛epny, brak informacji o wykryciu bł˛edu aplikacyjnego przez system operacyjny,

— N DS – system niedost˛epny, system operacyjny zgłosił komunikat o wyst ˛apieniu nieprawidłowo´sci przed utrat ˛a mo˙zliwo´sci interakcji.

Dla zbiorczej oceny efektów symulowanych bł˛edów wprowadzone zostały nast˛epuj ˛ace współczynniki:

— współczynnik wra˙zliwo´sci na bł˛edy Fs= MW,

— współczynnik naturalnej odporno´sci na bł˛edy I = 1 − WM

a,

— współczynnik detekcji bł˛edów Fd= WWd

a,

— współczynnik naprawy bł˛edów okre´slony Fr = WR

d, gdzie:

— M – liczba bł˛edów zamanifestowanych,

— W – liczba bł˛edów symulowanych w systemie,

— Wa– liczba bł˛edów aktywowanych w systemie,

— Wd– liczba bł˛edów wykrytych w systemie,

— R – liczba bł˛edów, dla których przeprowadzono procedur˛e naprawcz ˛a i uzyskano prawidłowy wynik realizowanego zadania.

Współczynniki te dotycz ˛a eksperymentu składaj ˛acego si˛e z wielu pojedynczych testów symulowania bł˛edu. Wyznaczenie dokładnej warto´sci ka˙zdego ze współczynników wymagałoby zupełnego pokrycia zaburzanej przestrzeni (np. zaburzanie wszystkich adresów pami˛eci RAM), niemniej mo˙zliwe jest oszacowanie ich warto´sci poprzez odpowiednio liczn ˛a i reprezentatywn ˛a prób˛e wstrzykni˛etych bł˛edów (szerzej opisane w 4.2).

Współczynnik wra˙zliwo´sci na bł˛edy okre´sla podatno´s´c systemu na bł˛edy. Współczynnik naturalnej odporno´sci na bł˛edy wyznacza zdolno´s´c systemu do maskowania bł˛edów – okre´sla on liczb˛e bł˛edów, które nie zostały zamanifestowane, pomimo ˙ze były aktywowane.

Współczynnik detekcji bł˛edów okre´sla zdolno´s´c systemu do wykrywania bł˛edów sprz˛etowych.

Przykładowo, je˙zeli system wykrył bł ˛ad w danych tylko do odczytu poprzez wyliczenie sumy kontrolnej i wypisał zwi ˛azany z tym komunikat, to jest to detekcja bł˛edu, natomiast je˙zeli bł ˛ad spowodował awari˛e, to jest to jedynie manifestacja bł˛edu, poniewa˙z nie jest mo˙zliwe okre´slenie, czy awaria jest skutkiem bł˛edu pracy systemu, czy bł˛edu programistycznego.

Współczynnik naprawy bł˛edów wyra˙za zdolno´s´c systemu do przeprowadzenia skutecznych procedur naprawczych w przypadku detekcji bł˛edu sprz˛etowego.