System wiarygodny
Transkrypt
System wiarygodny
WIARYGODNOŚĆ (1) INSTYTUT INFORMATYKI WIARYGODNOŚĆ = pewność działania systemu, która pozwala mieć uzasadnione zaufanie do usług, które ten system dostarcza System wiarygodny = dyspozycyjny (available) – dostępny na bieżąco = niezawodny (reliable) – odporny na awarie = bezpieczny (secure) – zapewniający ochronę danych = bezpieczny (safe) – dla środowiska © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) WIARYGODNOŚĆ (2) INSTYTUT INFORMATYKI Podstawowe definicje defekt (failure) – występuje gdy system przestaje być zgodny ze specyfikacją błąd (error) – część stanu systemu odpowiedzialna za będący jego następstwem defekt – symptom defektu, który właśnie lub wcześniej wystąpił uszkodzenie / awaria (fault) – stwierdzona lub hipotetyczna przyczyna wystąpienia błędu [1] FAULT Manufacturing problems Erroneous system state © Michał Szychowiak, 2003 Design errors External disturbances Error Fatigue & deterioration Process/System Failure Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) WIARYGODNOŚĆ (3) INSTYTUT INFORMATYKI Wiarygodność = zapobieganie uszkodzeniom (fault prevention): jak zapobiec wystąpieniu lub dostarczanie wprowadzeniu uszkodzeń wiarygodności (procurement) tolerowanie uszkodzeń (fault tolerance): jak zapewnić zgodność usługi ze specyfikacją mimo uszkodzeń usuwanie uszkodzeń (fault removal): jak ograniczyć obecność (liczbę, walidacja dotkliwość) uszkodzeń wiarygodności (validation) prognozowanie uszkodzeń (fault forecasting): jak oszacować aktualną liczbę, możliwość przyszłego wystąpienia oraz konsekwencje uszkodzeń © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) WIARYGODNOŚĆ (4) INSTYTUT INFORMATYKI Podstawowe definicje (2) naruszenia (impairments) wiarygodności – niepożądane i na ogół nieoczekiwane okoliczności powodujące lub wynikające z niewiarygodności, środki zapewniające (means) wiarygodność – zapobieganie uszkodzeniom, tolerowanie uszkodzeń, usuwanie i prognozowanie uszkodzeń – metody i techniki pozwalające z jednej strony zapewnić zdolność dostarczania usługi , do której można mieć zaufanie, a z drugiej – osiągnąć zaufanie w tę zdolność atrybuty (attributes) wiarygodności – parametry pozwalające oszacować własności oczekiwane od systemu oraz oszacować jakość systemu z uwzględnieniem naruszeń wiarygodności i przeciwdziałających im środków © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) WIARYGODNOŚĆ (5) INSTYTUT INFORMATYKI Drzewo wiarygodności WIARYGODNOŚĆ NARUSZENIA ATRYBUTY ŚRODKI − uszkodzenia − błędy − defekty − − − − DOSTARCZANIE − profilaktyka − tolerowanie © Michał Szychowiak, 2003 dostępność niezawodność bezpieczeństwo ochrona WALIDACJA − usuwanie − prognozowanie Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) NARUSZENIA WIARYGODNOŚCI (1) INSTYTUT INFORMATYKI NARUSZENIA WIARYGODNOŚCI Uszkodzenia Natura uszkodzeń: uszkodzenia przypadkowe uszkodzenia umyślne Źródło uszkodzeń: uszkodzenia fizyczne uszkodzenia spowodowane przez człowieka Granice źródła uszkodzeń: uszkodzenia wewnętrzne uszkodzenia zewnętrzne © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) NARUSZENIA WIARYGODNOŚCI (2) INSTYTUT INFORMATYKI Faza powstania uszkodzeń: uszkodzenia projektowe uszkodzenia operacyjne Trwałość uszkodzeń: uszkodzenia trwałe (permanent) uszkodzenia przemijające (transient) / przerywane (intermittent) Przykłady: − uszkodzenie projektowe jest wynikiem defektu spowodowanego przez projektanta − uszkodzenie zewnętrzne fizyczne lub spowodowane przez człowieka jest de facto uszkodzeniem projektowym: niemożność przewidzenia wszystkich sytuacji lub rezygnacja z rozpatrywania niektórych z nich (np. w przypadku wystąpienia zakłócenia elektromagnetycznego: czy jest to uszkodzenie zewnętrzne, czy brak odpowiedniego ekranowania?) © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) NARUSZENIA WIARYGODNOŚCI (3) INSTYTUT INFORMATYKI Błędy błąd odpowiada za defekt wystąpienie błędu doprowadzi faktyczne do defektu w zależności od: budowy systemu (w szczególności np. istnienia redundancji) działanie systemu (błąd może zostać skasowany np. przez zapisanie nowych danych zanim spowoduje szkody) postrzegania defektu przez użytkownika (np. czas przestoju systemu może być, albo nie, postrzegany jako defekt w zależności od ziarnistości czasu konkretnego użytkownika) wykonanie α . . . T1 . . . T2 wykonanie β defekt . . . stan poprawny wykonanie γ stan błędny © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) NARUSZENIA WIARYGODNOŚCI (4) INSTYTUT INFORMATYKI Defekty Kryterium dziedziny defektu: defekty wartości (value failures) defekty synchronizacji (timing failures) Kryterium percepcji defektu: defekty zgodne (consistent failures) – wszyscy użytkownicy zgodnie postrzegają ten sam defekt defekty niezgodne (inconsistent failures) – użytkownicy różnie postrzegają ten sam defekt Kryterium dotkliwości defektu: defekty łagodne (benign failures) – konsekwencje są tego samego rzędu, co korzyści wynikające z dostarczanej usługi przy braku defektu defekty katastroficzne (catastrophic failures) – konsekwencje nieporównywalnie większe © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) NARUSZENIA WIARYGODNOŚCI (5) INSTYTUT INFORMATYKI Podstawowe klasy defektów: zatrzymanie (stopping failures) – praca systemu przestaje być dostrzegalna dla użytkowników – należą zarówno do typu defektów wartości jak i synchronizacji zaniechanie (omission failures) – specjalny typ klasy zatrzymania – graniczny przypadek defektów wartości (wartość nieistotna) i synchronizacji (nieskończone opóźnienie) upadek (crash failures) – trwały defekt zaniechania bizantyjskie (Byzantine failures, malicious failures) – arbitralne defekty niezgodne (najogólniejsza klasa) © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) NARUSZENIA WIARYGODNOŚCI (6) INSTYTUT INFORMATYKI Patologia uszkodzeń Mechanizmy powstawania i ujawniania się uszkodzeń, błędów i defektów uszkodzenie jest aktywne (active) wtedy, gdy powoduje błąd; jest ono: uszkodzeniem wewnętrznym, które było uśpione (dormant) lub uszkodzeniem zewnętrznym błąd może być: ukryty (latent) – jeszcze nie rozpoznany wykryty (detected) przez algorytm lub mechanizm detekcji błędów defekt elementu powoduje uszkodzenie w systemie zawierającym ten element elementach, z którymi prowadził interakcje (klasa defektu uszkodzonego elementu staje się klasą pochodnych uszkodzeń) Łańcuch podstawowy: ... © Michał Szychowiak, 2003 defekt uszkodzenie błąd defekt ... Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) RELIABILITY ENGINEERING (1) INSTYTUT INFORMATYKI INNE PODEJŚCIE Systemy elektroniczne od wielu lat są przedmiotem badań z dziedziny analizy uszkodzeń i inżynierii niezawodności. W.G. Ireson, C.F. Coombs, R.Y. Moss: “Handbook of Reliability Engineering and Management”. McGraw-Hill, New York 1996 M.L. Shooman: “Reliability of Computer Systems and Networks”. McGraw-Hill, New York 1996 Uszkodzenie = zdarzenie losowe polegające na tym, że przynajmniej jedna cech obiektu przestanie spełniać wymagania stawiane obiektowi (systemowi). Zmienność w czasie intensywności uszkodzeń J 1) okres wstępnej eksploatacji (docieranie): J jest funkcją malejącą 2) normalna eksploatacja: J jest stała 3) okres starzenia: stały wzrost J © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) RELIABILITY ENGINEERING (2) INSTYTUT INFORMATYKI Niezawodność = własność obiektu (systemu) mówiąca o tym, czy spełnia on poprawnie wszystkie funkcje przez wymagany czas w obecności danego zespołu czynników wymuszających. Za miarę matematyczną niezawodności przyjmuje się prawdopodobieństwo zdarzenia, że czas pracy bez uszkodzenia jest niemniejszy od założonego (wymaganego) czasu pracy bez uszkodzenia. Obiekt może być: a) elementarny – podstawowy, nienaprawialny komponent b) złożony – złożony z obiektów elementarnych system o strukturze: szeregowej równoległej uszkodzenie pojedynczego komponentu powoduje uszkodzenie całego systemu mieszanej © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) RELIABILITY ENGINEERING (3) INSTYTUT INFORMATYKI Parametry charakteryzujące niezawodność MTTFF (Mean Time To First Failure) – wartość oczekiwana czasu poprawnej pracy obiektu np. dla obiektów elementarnych (nienaprawialnych) gdy J jest stała: MTTFF = 1 J MTBF (Mean Time Between Failures) – średni czas pomiędzy uszkodzeniami np. dla systemów N-elementowych o strukturze szeregowej (system przechodzi ze stanu sprawności lub niesprawności w wyniku uszkodzenia jednego z N elementów): MTBF = MTTFF = © Michał Szychowiak, 2003 1 NJ Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) MODELE PRZETWARZANIA (1) INSTYTUT INFORMATYKI MODELE PRZETWARZANIA Środowisko rozproszone Niedeterminizm przetwarzania: nieznana liczba procesów nieznana topologia sieci współbieżność procesów uruchamianych w różnych momentach czasu i wykonywanych z różnymi prędkościami niezależne dane wejściowe niedeterminizm procesorów nieokreślone opóźnienia komunikacyjne nieokreślone uporządkowanie wiadomości zawodność procesów i łącz komunikacyjnych heterogeniczność elementów © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) MODELE PRZETWARZANIA (2) INSTYTUT INFORMATYKI Modele komunikacji Message Passing Distributed Shared Memory easy to implement hard to program hard to implement easy to program no common memory LOCAL MEMORY SHARED MEMORY no global clock PROCESSOR PROCESSOR LOCAL MEMORY PROCESSOR © Michał Szychowiak, 2003 PROCESSOR Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) MODELE PRZETWARZANIA (3) INSTYTUT INFORMATYKI Modele systemu 1) system synchroniczny: kroki algorytmu wykonywane jednocześnie przez wszystkie procesy (synchronous rounds) P1 ∆t ∆t ∆t ∆t P2 P3 znane ograniczenia: prędkości procesorów opóźnień komunikacyjnych możliwa synchronizacja zegarów © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) MODELE PRZETWARZANIA (4) INSTYTUT INFORMATYKI przykłady: atomowa (natychmiastowa) komunikacja: P1 P2 P3 jednostkowe czasy komunikacji komunikacja poprzez współdzielone zmienne: − state-reading model − link-register model © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) MODELE PRZETWARZANIA (5) INSTYTUT INFORMATYKI 2) system asynchroniczny: niezależne wykonywanie operacji przez procesy, w różnym tempie, skończonym, ale nieznanym opóźnienia komunikacyjne skończone, lecz nieznane 3) system quasi-synchroniczny (timing-based): ograniczenia względnych prędkości procesów i czasów komunikacji istnieją, lecz nie są znane ograniczenia są znane, lecz występują dopiero po nieznanym z góry czasie ograniczenia nie są znane i występują dopiero po nieznanym czasie ograniczenia występują tylko w czasie pewnych nieznanych z góry okresów (stable periods) ... i 30 innych modeli © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) MODELE PRZETWARZANIA (6) INSTYTUT INFORMATYKI Graf połączeń G (communication graph) distance(i,j) = min. ścieżka między Pi a Pj w G diameter(G) = max distance(i,j) i,j Modele błędów fail-stop – defekty w systemie mogą być tylko klasy zatrzymanie fail-silent – defekty w systemie mogą być tylko klasy upadek fail-safe © Michał Szychowiak, 2003 – defekty w systemie mogą być tylko typu łagodnego Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) MODELE PRZETWARZANIA (7) INSTYTUT INFORMATYKI Przetwarzanie sterowane zdarzeniami (event-driven) Procesy: uporządkowana sekwencja niepodzielnych zdarzeń czas trwania zdarzenia – przyjmujemy natychmiastowość zdarzeń stan sik procesu Pi jest zbiorem wartości jego zmiennych lokalnych Ogólne typy zdarzeń: init (Pi, sik) – lokalny stan procesu Pi zostaje zainicjowany wartością sik ; wyróżniamy wirtualne zdarzenie e0=init0(Pi , si0) rozpoczynające przetwarzanie na procesie Pi stop (Pi) – Pi kończy działanie send (Pi, P, m) – Pi wysyła wiadomość m do procesów Pi ∈ P recv (Pi, Pj, m) – Pi odbiera wiadomość m od procesu Pj internal (Pi) – Pi zmienia wartości zmiennych lokalnych fail (Pi) – występuje defekt w procesie Pi © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) MODELE PRZETWARZANIA (8) INSTYTUT INFORMATYKI Stan lokalny procesu Pi: w chwili t jest reprezentowany sekwencją zdarzeń ei0, ei1, ... eit, (zwaną historią), które zaszły od momentu wystąpienia zdarzenia init0(Pi, si0) do chwili t zdarzenia zachodzące na procesie Pi są w pełni uporządkowane zdarzenia w całym przetwarzaniu rozproszonym są częściowo uporządkowane relacją poprzedzania → (happen before) [2] określającą porządek przyczynowy (causal precedence) stan będący efektem zajścia zdarzenia eik oznaczamy sik stany procesów są również częściowo uporządkowane następującą relacją poprzedzania →: sik → sjl ⇔ eik+1 → ejl lub eik+1 = ejl © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) MODELE PRZETWARZANIA (9) INSTYTUT INFORMATYKI Stan globalny systemu rozproszonego jest wektorem stanów lokalnych procesów i stanów kanałów komunikacyjnych C = 〈s1t, s2t, ... , snt〉 ∪ 〈... , cijt, ... 〉 stan globalny jest spójny ⇔ 1) (e ∈ C ∧ e’ → e ) ⇒ e’ ∈ C 2) e = send (Pi, Pj, m) ∧ e’ = recv (Pj, Pi, m): (e ∈ C ∧ e’ ∈ C) ⇒ m ∉ C 3) e = send (Pi, Pj, m) ∧ e’ = recv (Pj, Pi, m): (e ∈ C ∧ e’ ∉ C) ⇒ m ∈ C 4) e = send (Pi, Pj, m): e ∉ C ⇒ m ∉ C stan globalny jest silnie spójny ⇔ jest spójny oraz ∀ e e’ e = send (Pi, Pj, m) ∧ e’ = recv (Pj, Pi, m): e ∈ C ⇔ e’ ∈ C © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) AUTOMAT I/O (1) INSTYTUT INFORMATYKI AUTOMAT I/O Automat I/O A = 〈 Sig(A), States(A), Start(A), Trans(A), Task(A) 〉 Sig(A) – sygnatura (zbiór akcji) automatu: Sig(A) = 〈Input(A), Output(A), Internal(A)〉 actions(A) = Input(A)∪Output(A)∪Internal(A) external(A) = Input(A)∪Output(A) locally_controlled(A) = Internal(A)∪Output(A) States(A) – niekoniecznie skończony zbiór stanów Start(A) – niepusty zbiór stanów początkowych Trans(A) – relacja przejść: Trans(A) ⊆ States(A) × Sig(A) × States(A) ∀s∈States(A) ∀a∈Input(A) ∃s’∈States(A): (s, a, s’)∈Trans(A) Task(A) © Michał Szychowiak, 2003 – podzbiory (klasy) akcji automatu kontrolowanych lokalnie (locally_controlled(A)) akcja a jest dopuszczalna w stanie s Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) AUTOMAT I/O (2) INSTYTUT INFORMATYKI Przykład automatu Clock Sig: IN: request States: counter∈N, początkowo := 0; flag: Boolean, początkowo := false; Trans: tick Precondition: true Effect: counter++ Task: OUT: return(t), t∈N request Effect: flag:=true INTERNAL: tick return(t) Precondition: flag==true counter==t Effect: flag:=false { tick } { return(t): t∈N } © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) AUTOMAT I/O (3) INSTYTUT INFORMATYKI Poprawność wykonania automatu A Wykonanie α automatu A jest poprawne jeżeli dla każdej klasy C operacji z Task(A): 1. jeśli α jest skończone, to C nie jest dopuszczalne w stanie końcowym wykonania α 2. jeśli α jest nieskończone, to a) α zawiera nieskończenie wiele zdarzeń z C albo b) nieskończenie wiele wystąpień stanów, w których C nie jest dopuszczalne Przykład dla Clock poprawne wykonania: tick, tick, tick, ... tick, tick, request, tick, tick, return(4), tick, tick, ... niepoprawne wykonania: tick, tick, tick tick, tick, request, tick, tick, tick, ... © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) KANAŁY KOMUNIKACYJNE (1) INSTYTUT INFORMATYKI KANAŁY KOMUNIKACYJNE Automat Channel Cij Sig: IN: send(m)ij m∈M States: Q: kolejka FIFO elementów z M, początkowo := ∅; Trans: send(m)ij Effect: Q := Q ∪ {m} Task: { recv(m)ij m∈M } © Michał Szychowiak, 2003 OUT: recv(m)ij m∈M recv(m)ij Precondition: m jest na początku Q Effect: Q := Q \ {m} Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) KANAŁY KOMUNIKACYJNE (2) INSTYTUT INFORMATYKI Cause function There exists a function cause mapping each receive event in execution β to a preceding send event in execution β such that: 1. for every receive event ε, ε and cause(ε) contain the same message argument 2. cause is surjective (onto) 3. cause is injective (one-to-one) 4. cause prevents order, that is, there do not exist receive events ε1 and ε2 with ε1 preceding ε2 in execution β and cause(ε2) preceding cause(ε1) in execution β The cause function is a tool for identifying which send event “causes” each receive event. First condition says that only correct messages are delivered, second one ensures that messages are not lost, third condition prevents duplication of events and the last one says that they are not reordered [2]. © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) KANAŁY KOMUNIKACYJNE (3) INSTYTUT INFORMATYKI Osłabiamy własności funkcji cause: Strong loss limitation (SLL) If there are infinitely many send(m) events in β execution (for any particular m), then there are infinitely many send(m) events in the range of the cause function. Weak loss limitation (WLL) If there are infinitely many send events in execution β, then the range of the cause function is infinite. Finite duplication (FDp) The cause function maps only finitely many receive events to any particular send event. © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) TYPY KANAŁÓW (1) INSTYTUT INFORMATYKI TYPY KANAŁÓW reliable FIFO channel zachowanie tego kanału opisuje funkcja cause reliable reordering channel zachowuje semantykę exactly-once delivery, bez uporządkowania zdarzeń (funkcja cause bez warunku 4) Sig: IN: send(m)ij m∈M States: C: zbiór elementów z M, początkowo := ∅; Trans: send(m)ij Effect: C := C ∪{m} © Michał Szychowiak, 2003 OUT: recv(m)ij m∈M recv(m)ij Precondition: m∈C Effect: C := C \ {m} Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) TYPY KANAŁÓW (2) INSTYTUT INFORMATYKI unreliable channel dopuszcza zagubienie i / lub powielenie wiadomości (funkcja cause bez warunku 3 lub bez 3 i 4); np. losing FIFO channel = WLL + FDp + uporządkowanie States: Q: kolejka FIFO elementów z M, początkowo := ∅; Trans: send(m)ij Effect: Q := Q ∪ [{m}∪...∪{m}] (skończona liczba kopii ≥0) recv(m)ij Precondition: m jest na początku Q Effect: Q := Q \ {m} losing reordering channel = WLL + FDp + brak uporządkowania States: C: zbiór z powtórzeniami elementów z M, początkowo := ∅; Trans: send(m)ij Effect: C := C ∪{m}∪...∪{m} (skończona liczba kopii ≥0) © Michał Szychowiak, 2003 recv(m)ij Precondition: m∈C Effect: C := C \ {m} Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) RESILIENCE (1) INSTYTUT INFORMATYKI RESILIENCE Def.: A f-crash fair execution of N processes is an execution which is correct on at least N - f processes (i.e. at least N - f processes is correct). Def.: The maximal number of faulty processes that can be handled by an algorithm is called the resilience of the algorithm. © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) FAULT TOLERANCE (1) INSTYTUT INFORMATYKI TOLEROWANIE USZKODZEŃ (FAULT TOLERANCE) Fault Tolerance masking (of failures) © Michał Szychowiak, 2003 nonmasking def: even in the presence of faults the system continues to satisfy its input/output relation def: input/output relation is violated temporarily and the system is guaranteed to resume it eventually (well-defined failure behavior) comfortable and costly when masking is: impossible (e.g. consensus) impractical (e.g. amount of redundancy) unnecessary Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) FAULT TOLERANCE (2) INSTYTUT INFORMATYKI Fault Tolerance masking techniques: redundancy (error correction codes, replication, voting) broadcasts agreement © Michał Szychowiak, 2003 nonmasking techniques: checkpointing & recovery Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) FAULT TOLERANCE (3) INSTYTUT INFORMATYKI FURTHER TOPICS IN FOCUS FAULT TOLERANCE ROBUST ALG. STABILIZATION REPLICATION each step of each process is taken with sufficient care to ensure that correct processes take correct steps in spite of failures © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający) LITERATURA (1) INSTYTUT INFORMATYKI LITERATURA [1] Jean-Claude Laprie ed. “Dependability: Basic Concepts and Terminology”. Dependable Computing end Fault Tolerant Systems, vol.5, Springer-Verlag, Wien - New York 1991; tłumaczenie: Stanisław J. Piestrak. „Wiarygodność: Pojęcia podstawowe i terminologia”. EDCC-2 Companion Workshop on Dependable Computing, Politechnika Śląska, Gliwice 1996. [2] Lamport L. (1978), “Time, clocks, and the ordering of events in a distributed system”, Communication of the ACM, vol. 21, no. 7, pp. 558–565 [3] N. A. Lynch. “Distributed Algorithms”. Morgan Kaufmann Pub. Inc., San Francisco 1996. [4] Gerard Tel, “Introduction to Distributed Algorithms”. Cambridge University Press, 1994. © Michał Szychowiak, 2003 Wiarygodność Systemów Rozproszonych (Wykład wprowadzający)