SIECI KOMPUTEROWE wykład dla kierunku informatyka semestr 4 i 5

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

Sieci Petriego. Sieć Petriego

miejsca przejścia, łuki i żetony

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

Modelowanie procesów współbieżnych

WOJSKOWA AKADEMIA TECHNICZNA WYDZIAŁ CYBERNETYKI

Praktyczne metody weryfikacji

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU

5. Model komunikujących się procesów, komunikaty

KARTA PRZEDMIOTU. Systemy czasu rzeczywistego: D1_9

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Logika Temporalna i Automaty Czasowe

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Systemy zdarzeniowe - opis przedmiotu

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

Spis treúci. 1. Wprowadzenie... 13

1 Automaty niedeterministyczne

Wykład 1 Inżynieria Oprogramowania

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

Egzamin / zaliczenie na ocenę*

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

Stan globalny. Krzysztof Banaś Systemy rozproszone 1

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

Wytwórstwo oprogramowania. michał możdżonek

Wykład I. Wprowadzenie do baz danych

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Technologie informacyjne - wykład 12 -

KIERUNKOWE EFEKTY KSZTAŁCENIA

Automat skończony FSM Finite State Machine

Pojęcie bazy danych. Funkcje i możliwości.

Projekt prostego układu sekwencyjnego Ćwiczenia Audytoryjne Podstawy Automatyki i Automatyzacji

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

KIERUNKOWE EFEKTY KSZTAŁCENIA

Przetwarzanie rozproszone

Problem zakleszczenia

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

Najkrótsza droga Maksymalny przepływ Najtańszy przepływ Analiza czynności (zdarzeń)

Sterowniki Programowalne (SP) Wykład 11

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Podsumowanie wyników ankiety

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Baza danych to zbiór wzajemnie powiązanych ze sobą i zintegrowanych danych z pewnej dziedziny.

Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia.

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

Spis treści. Przedmowa Wykaz oznaczeń Wstęp Układy kombinacyjne... 18

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

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Etapy życia oprogramowania

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Testowanie i walidacja oprogramowania

Modelowanie i Programowanie Obiektowe

Inżynieria Programowania - Projektowanie architektoniczne

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa, Inżynieria oprogramowania, Technologie internetowe

Kierunkowe efekty kształcenia (wiedza, umiejętności, kompetencje) Kierunek Informatyka

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

Wstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego. Przetwarzanie współbieżne, równoległe i rozproszone

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

Wykład 5: Specyfikacja na poziomie systemowym

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

Opis przedmiotu zamówienia

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Definicja sieci. Sieć Petriego jest czwórką C = ( P, T, I, O ), gdzie: P = { p 1, p 2,, p n } T = { t 1, t 2,, t m }

DLA SEKTORA INFORMATYCZNEGO W POLSCE

Współczesna problematyka klasyfikacji Informatyki

rodzaj zajęć semestr 1 semestr 2 semestr 3 Razem Lp. Nazwa modułu E/Z Razem W I

MODELOWANIE I WERYFIKACJA PROTOKOŁU SCTP Z WYKORZYSTANIEM AUTOMATÓW CZASOWYCH ZE ZMIENNYMI

Metodyki i techniki programowania

PRZEWODNIK PO PRZEDMIOCIE

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Inżynieria Programowania Inżynieria wymagań. Plan wykładu. Motto. Wstęp. Notatki. Notatki. Notatki. Notatki. Arkadiusz Chrobot

KARTA PRZEDMIOTU. Projektowanie systemów czasu rzeczywistego D1_13

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

Plan zarządzania projektem

UML w Visual Studio. Michał Ciećwierz

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Czujniki obiektowe Sterowniki przemysłowe

Zadania badawcze prowadzone przez Zakład Technik Programowania:

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

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

rodzaj zajęć semestr 1 semestr 2 semestr 3 Razem Lp. Nazwa modułu E/Z Razem W I

Gry społecznościowe. wykład 0. Joanna Kołodziejczyk. 24 lutego Joanna Kołodziejczyk Gry społecznościowe 24 lutego / 11

WPROWADZENIE DO UML-a

SIECI KOMPUTEROWE wykład dla kierunku informatyka semestr 4 i 5

Jacek Skorupski pok. 251 tel konsultacje: poniedziałek , sobota zjazdowa

Wprowadzenie do programowania współbieżnego

Detekcja zakleszczenia (1)

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Definicja 2. Twierdzenie 1. Definicja 3

Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys.

Mechanizmy pracy równoległej. Jarosław Kuchta

Sterowniki Programowalne (SP)

TEORIA GRAFÓW I SIECI

Modele bezpieczeństwa logicznego i ich implementacje w systemach informatycznych / Aneta Poniszewska-Marańda. Warszawa, 2013.

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja II

SWB - Projektowanie synchronicznych układów sekwencyjnych - wykład 5 asz 1. Układy kombinacyjne i sekwencyjne - przypomnienie

T. Łuba, B. Zbierzchowski Układy logiczne Podręcznik WSISiZ, Warszawa 2002.

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI

Projektowanie. Projektowanie mikroprocesorów

Transkrypt:

SIECI KOMPUTEROWE wykład dla kierunku informatyka semestr 4 i 5 dr inż. Michał Sajkowski Instytut Informatyki PP pok. 227G PON PAN, Wieniawskiego 17/19 Michal.Sajkowski@cs.put.poznan.pl tel. +48 (61) 8 582 100 http://www.man.poznan.pl/~michal/

sieci komputerowe wykład 15 2

literatura podstawowa (w porządku chronologicznym) G.V. Bochmann, C.A. Sunshine, Formal Methods in Communication Protocol Design, IEEE Trans. on Communications, vol 28, no 4, April 1980 P. Zafiropulo et al. Towards Analyzing and Synthesizing Protocols, IEEE Trans. on Communications, Vol 28, No 4, April 1980 D.P. Brand, P. Zafiropulo, On Communicating Finite State Machines, JACM, v 30, no 2, April 1983 T.F. Piatkowski, Protocol Engineering, ICC 83, 1983 M.G. Gouda, C.H. Chow, S.S. Lam, Detection of Livelocks in Networks of Communicating Finite State Machines, PSTV IV, IFIP 1985 M. Sajkowski, Protocol Verification Techniques: Status Quo and Perspectives, PSTV IV, IFIP 1985 3

literatura podstawowa (w porządku chronologicznym) M. Sajkowski, On Verifying Time Dependent Protocols, SETTS, 1986 J. Billington, Protocol Engineering and Nets, European PN Workshop 1987 H. Rudin, Protocol Engineering: A Critical Assessment, PSTV VIII, IFIP 1988 G.J. Holzmann, Design and Validation of Computer Protocols, Prentice-Hall 1991 E.M. Clarke, R.P. Kurshan, Computer-aided verification, IEEE Spectrum, June 1996 G.J. Holzmann, The Model Checker SPIN, IEEE Trans on Software Engineering, vol 23, no 5, May 1997 M. Sajkowski, Weryfikacja dynamicznych cech protokołów sieci komputerowych, rozprawa doktorska, WE PP, Poznań 2000 (promotor Prof. Jerzy Brzeziński) 4

geneza inżynierii protokołów (1) od końca lat sześćdziesiątych trwa nieustanny rozwój sieci komputerowych, zarówno sprzętu jak i oprogramowania w zakresie oprogramowania, jednym z najistotniejszych kierunków jest rozwój szeroko rozumianych algorytmów rozproszonych, w tym również asynchronicznych systemów współbieżnych i protokołów sieci komputerowych protokoły sieci komputerowych charakteryzują się ogromną różnorodnością, wynikającą z wielości specyficznych wymagań, uwarunkowań historycznych, polityki wielkich firm informatycznych i stale pojawiających się nowych dziedzin zastosowań 5

geneza inżynierii protokołów (2) z teoretycznego punktu widzenia, protokoły to specyficzne systemy współbieżne, obejmujące zbiory współbieżnie wykonywanych procesów specyfika protokołu, jako systemu współbieżnego jest konsekwencją, z jednej strony, przyjętej funkcjonalności protokołu, a z drugiej, własności środowiska, w którym jest on wykonywany protokół definiuje i realizuje funkcje odpowiadające regułom rządzącym wymianą komunikatów przez kanały utworzone między dwoma lub więcej procesami, nazywanymi tu tradycyjnie stacjami 6

geneza inżynierii protokołów (3) protokół wykonywany jest w środowisku rozproszonym, w ogólności asynchronicznym, w którym brak jest współdzielonej pamięci i zegara, nie można ignorować niebezpieczeństwa awarii, a jedynym dostępnym mechanizmem komunikacji i synchronizacji jest wymiana komunikatów stąd też konstrukcja protokołów była i wciąż jest zadaniem bardzo złożonym, wymagającym silnego wsparcia ze strony formalnych narzędzi matematycznych, zarówno do opisu, jak i analizy zjawisk występujących w rzeczywistych protokołach doprowadziło to do powstania nowej dziedziny, nazwanej inżynierią protokołów - przez analogię do inżynierii oprogramowania - która podjęła to wyzwanie 7

definicja inżynierii protokołów inżynieria protokołów obejmuje całość działań związanych z wykorzystaniem metod formalnych i metod inżynierii oprogramowania w procesie tworzenia protokołu sieci komputerowej 8

działania podejmowane w inżynierii protokołów w ogólności dzielą się na syntezę i analizę do syntezy należą: określenie wymagań zleceniodawcy na zamawiany protokół (jest to punkt wyjściowy projektu protokołu) formalne zdefiniowanie usługi synteza protokołu automatyczna implementacja protokołu analiza dzieli się na analizę jakościową i analizę ilościową doanalizy jakościowej należą: weryfikacja, testowanie i walidacja do analizy ilościowej należą: predykcja efektywności i ocena efektywności 9

działania podejmowane w inżynierii protokołów legenda stan realizacji projektu protokołu synteza analiza jakościowa analiza ilościowa 10

działania podejmowane w inżynierii protokołów [Billington87] walidacja weryfikacja testowanie określenie wymagań zleceniodawcy na zamawiany protokół wymagania zleceniodawcy na zamawiany protokół zdefiniowanie usługi formalna specyfikacja usługi synteza protokołu formalna specyfikacja protokołu automatyczna implementacja predykcja efektywności implementacja protokołu ocena efektywności 11

działania podejmowane w inżynierii protokołów legenda stan realizacji projektu protokołu synteza analiza jakościowa (domena poprawności logicznej) analiza ilościowa (domena efektywności) 12

działania podejmowane w inżynierii protokołów [Billington87] walidacja weryfikacja testowanie poprawność logiczna określenie wymagań zleceniodawcy na zamawiany protokół wymagania zleceniodawcy na zamawiany protokół zdefiniowanie usługi formalna specyfikacja usługi synteza protokołu formalna specyfikacja protokołu automatyczna implementacja implementacja protokołu efektywność predykcja efektywności ocena efektywności 13

działania podejmowane w inżynierii protokołów działania związane z syntezą: określenie wymagań zleceniodawcy na zamawiany protokół podaje w sposób nieformalny usługi, jakie protokół ma świadczyć i środowisko, w jakim ma pracować, może być wynikiem negocjacji między zamawiającym a projektantem protokołu zdefiniowanie usługi określa w sposób formalny interfejs usługobiorcy z protokołem synteza protokołu w sposób formalny wyprowadza specyfikację protokołu ze specyfikacji usługi automatyczna implementacja dokonuje transformację formalnej specyfikacji protokołu w implementację, za pomocą kompilatora 14

działania podejmowane w inżynierii protokołów działania związane z analizą: weryfikacja polega na zbadaniu poprawności formalnej specyfikacji protokołu i zgodności tej specyfikacji z formalną specyfikacją usługi testowanie bada zgodność implementacji z formalną specyfikacją protokołu walidacja bada zgodność implementacji z wymaganiami co do jakości, nałożonymi przez zleceniodawcę predykcja efektywności ocenia parametry ilościowe protokołu na podstawie jego formalnej specyfikacji ocena efektywności ocenia parametry na podstawie implementacji protokołu 15

ewolucja inżynierii protokołów z czasem inżynieria protokołów stała się jednym z głównych nurtów badawczych w sieciach komputerowych 16

ewolucja inżynierii protokołów (formalna specyfikacja) pierwsze prace w dziedzinie inżynierii protokołów dotyczyły modeli pozwalających w sposób matematyczny, czyli formalnie, opisać protokoły, ten kierunek badawczy był wyróżnikiem lat osiemdziesiątych pokazano, jak opisać protokoły za pomocą dziesiątek formalnych metod opisu (FDTs formal description techniques), do metod tych należały: automaty, sieci Petriego, gramatyki, algebry procesów, logiki temporalne, języki specyfikacji, języki programowania i wiele innych w związku z pojawieniem się ogromnej liczby metod, zdecydowano się trzy z nich uznać za normę międzynarodową dla opisu protokołów komunikacyjnych: Estelle, Lotos i SDL 17

ewolucja inżynierii protokołów (testowanie) również na lata osiemdziesiąte, równolegle do prac nad specyfikacją, przypada gwałtowny rozwój metod testowania implementacji protokołów, zapoczątkowany pionierską konferencją zorganizowaną przez Dave a Raynera z NPL w 1981 wspomniany rozwój dotyczy również zagadnień architektury systemów testowania, jak samych metod testowania intensywne prace nad testowaniem kontynuowano w latach dziewięćdziesiątych, w Europie i w Stanach 18

ewolucja inżynierii protokołów (weryfikacja) szczególną rolę w inżynierii protokołów zyskała sobie weryfikacja, podejmowanie nierozwiązanych problemów w tej dziedzinie od samego początku miało wysoką rangę, zarówno w środowisku projektantów i badaczy protokołów, jak i użytkowników istniejących protokołów oraz, w szczególności, zleceniodawców i inwestorów nowych produktów powód był i jest jeden finanse weryfikacja jest pierwszą z przeprowadzanych analiz jakościowych w procesie projektowania protokołu, w związku z tym, nakłady na nią poniesione, zmniejszają ewentualne środki wydatkowane w późniejszych etapach, zwłaszcza na testowanie i walidację 19

działania podejmowane w inżynierii protokołów [Billington87] walidacja weryfikacja testowanie określenie wymagań zleceniodawcy na zamawiany protokół wymagania zleceniodawcy na zamawiany protokół zdefiniowanie usługi formalna specyfikacja usługi synteza protokołu formalna specyfikacja protokołu automatyczna implementacja predykcja efektywności implementacja protokołu ocena efektywności 20

ewolucja inżynierii protokołów (weryfikacja cech statycznych) weryfikacja była przedmiotem stałego zainteresowania badaczy od wielu lat w latach osiemdziesiątych metody weryfikacji protokołów skupiały się głównie na wykrywaniu niezależnych od czasu, statycznych cech protokołów, takich jak np. zakleszczenia pionierską pracę w tej dziedzinie wykonano w IBM Zurich, w tym również w zakresie pierwszych prób stosowania narzędzi automatycznej weryfikacji, przegląd i ocenę metod stosowanych w tamtych czasach zawiera praca [Sajkowski85] 21

ewolucja inżynierii protokołów (weryfikacja protokołów zależnych od czasu) znaczenie weryfikacji wzrosło jeszcze w latach dziewięćdziesiątych, w związku ze zwiększającym się zapotrzebowaniem na protokoły, spełniające określone wymagania czasowe i efektywnościowe, zwłaszcza w systemach czasu rzeczywistego i w hybrydowych (dyskretno-ciągłych) systemach sterowania nowe zastosowania, odnoszące się do zależności czasowych, wymagają bardziej złożonych i dokładnych modeli, prowadzą więc do większych przestrzeni stanów poddanych analizie 22

ewolucja inżynierii protokołów (komputerowo wspomagana weryfikacja) doprowadziło to, w konsekwencji, do bardzo szybkiego rozwoju metod formalnych, narzędzi programowych i algorytmów, stosowanych do komputerowo wspomaganej weryfikacji systemów współbieżnych czasu rzeczywistego, a w szczególności protokołów sieci komputerowych rozwój tych metod był tak intensywny, że komputerowo wspomagana weryfikacja protokołów stała się wyróżnikiem lat dziewięćdziesiątych w swojej dziedzinie osiągnięcia lat dziewięćdziesiątych to głównie prace nad narzędziami automatycznej weryfikacji protokołów, np. nad profesjonalnym systemem SPIN [Holzmann91] 23

ewolucja inżynierii protokołów (weryfikacja cech dynamicznych) na przełomie lat osiemdziesiątych i dziewięćdziesiątych podejmowano próby wykrywania cech dynamicznych w protokołach, stosowanych w sieciach komputerowych, w systemach czasu rzeczywistego i dyskretno-ciągłych systemach sterowania cechy dynamiczne dotyczą własności, których charakter, albo wręcz obecność, zależy od relacji czasowych występujących między zdarzeniami w protokole w celu weryfikacji cech dynamicznych, wprowadzono do modeli formalnych protokołów czas w postaci jawnej, zasadniczą zaletą takich modeli, w porównaniu do modeli bez czasu, jest możliwość dokładniejszego opisywania zjawisk występujących w protokołach i w rezultacie wierniejsze odtworzenie przestrzeni stanów osiąganych w rzeczywistym protokole 24

pojęcia podstawowe - protokół nieformalnie, protokołem komunikacyjnym, lub krótko protokołem, nazywamy reguły rządzące wymianą komunikatów przez kanały utworzone między dwoma (lub więcej niż dwoma procesami) taki proces, zaangażowany w protokół nazywamy stacją formalnie, protokołem nazywamy zbiór stacji: Pr = <ent 1, ent 2,..., ent 3 > zauważmy, że zbiór kanałów utworzony między dwoma stacjami nie pojawia się jawnie w definicji protokołu - jest tak dlatego, ponieważ specyfikacja każdej ze stacji już określa, które ze stacji są połączone za pomocą poszczególnych kanałów, oraz które komunikaty są przesyłane w określonym kierunku 25

pojęcia podstawowe automat skończony stację protokołu można zdefiniować formalnie za pomocą pojęcia komunikującego się automatu skończonego rozpoczniemy jednak od pojęcia automatu skończonego, którym nazywamy czwórkę: w której: S jest zbiorem stanów X = (S, E, δ, q 0 ) E jest zbiorem zdarzeń, które powodują zmianę stanu δ jest funkcją częściową, δ : S E S, zwaną funkcją przejścia, określa ona następny stan automatu, oznaczony przez δ(s, e), do którego automat przechodzi ze stanu s pod wpływem zdarzenia e q 0 jest stanem początkowym, q 0 S 26

pojęcia podstawowe komunikujący się automat skończony uwzględniając fakt, że automat skończony może porozumiewać się z innym automatem skończonym, za pomocą wymiany komunikatów, w naturalny sposób dochodzi się do pojęcia komunikującego się automatu skończonego (CFSM), którym nazywamy automat skończony połączony z innym automatem skończonym za pomocą kolejek wejściowych i wyjściowych, taki, w którym zbiór zdarzeń E dzieli się na zbiór zdarzeń nadania komunikatu E, zbiór zdarzeń odbioru komunikatu +E i zbiór zdarzeń wewnętrznych ie 27

pojęcia podstawowe stacja protokołu pojęcie CFSM jest podstawą pojęcia stacji protokołu stacją protokołu nazywamy komunikujący się automat skończony: w którym: ent I = ES I, -E I, +E I, ie I, δ I, es 0,I ES I jest zbiorem stanów stacji -E I jest zbiorem zdarzeń nadania komunikatu, komunikat nadawany przez stację ent I do stacji ent J oznaczamy przez x IJ, a zdarzenie nadania komunikatu x IJ przez x IJ 28

pojęcia podstawowe stacja protokołu +E I jest zbiorem zdarzeń odbioru komunikatu, komunikat odbierany przez stację ent I od stacji ent J oznaczamy przez x JI, a zdarzenie odbioru komunikatu x JI przez +x JI ie jest I zbiorem zdarzeń wewnętrznych stacji ent I, zdarzenie wewnętrzne stacji ent I oznaczamy przez x I δ jest funkcją przejścia, δ I I : ES I (-E I +E I ie I ), która definiuje stan następny, do którego stacja przechodzi ze stanu bieżącego, po wystąpieniu zdarzenia nadania komunikatu, zdarzenia odbioru komunikatu, lub zdarzenia wewnętrznego es 0,I jest stanem początkowym stacji, es 0,I ES I 29

pojęcia podstawowe stan protokołu aby można było coś powiedzieć na temat zachowania się protokołu, należy znać stan protokołu na stan protokołu można patrzeć jak na stan wszystkich jego stacji i kanałów stanem s k protokołu nazywamy parę: S, C = (es 1, es 2,..., es K ), (cs 12, cs 21,..., cs IJ, cs JI,..., cs K,K-1,..., cs K-1,K ) gdzie es I jest stanem stacji ent I, a cs IJ jest stanem kanału od stacji ent I do stacji ent J zazwyczaj, stan protokołu nazywa się stanem globalnym, a stany stacji i kanałów nazywa się stanami lokalnymi 30

pojęcia podstawowe funkcja następnego stanu projektant protokołu powinien wiedzieć, do jakich kolejnych stanów może przejść protokół, może to osiągnąć korzystając z funkcji następnego stanu: jest to funkcja częściowa taka, że I i J, I J, i e i E I E J : i. jeżeli e i =-x IJ to (S,C) = ((S,C),-x IJ ) wtedy i tylko wtedy, gdy es i =δ I (es I,-x IJ ) i c IJ =c IJ x IJ ii. jeżeli e i =+x IJ to (S,C) = ((S,C),+x IJ ) wtedy i tylko wtedy, gdy es j =δ j (es j,+x IJ ) i c IJ = x IJ c IJ iii. jeżeli e i =x I(J) to (S,C) = ((S,C),x I(J) ) wtedy i tylko wtedy, gdy es I(j) =δ I(J) (es I(j),x I(J) ) i c IJ =c IJ i c JI =c JI znak oznacza operację konkatenacji 31

pojęcia podstawowe relacja osiągalności funkcję następnego stanu można łatwo rozszerzyć do relacji osiągalności * między stanami, którą nazywamy zwrotne i przechodnie domknięcie funkcji następnego stanu każdy stan s k znajdujący się w relacji osiągalności ze stanem początkowym s 0 jest z niego osiągalny. Stan taki nazywamy osiągalnym: stanem osiągalnym nazywamy stan s k, taki, że s 0 *s k, gdzie s 0 jest stanem początkowym 32

pojęcia podstawowe przestrzeń stanów zbiór wszystkich stanów osiągalnych przez protokół nazywamy przestrzenią stanów przestrzeń ta występuje, między innymi, w postaci grafu stanów osiągalnych, zwanych zwyczajowo grafem osiągalności, jest to graf skierowany, którego wierzchołki odpowiadają stanom protokołu, a krawędzie przejściom między stanami po to, aby w procesie generacji przestrzeni stanów uzyskać graf, należy zidentyfikować stany równoważne, które można następnie zagregować do do pojedynczego wierzchołka w grafie dwa stany uznajemy za równoważne jeżeli ich reprezentacja jest identyczna 33

USER przykład opisu protokołu User Server Protocol (USP) SERVER -req READY +alarm +req IDLE -alarm -ack +ack WAIT +done REGISTER SERVICE -done FAULT 34

graf stanów osiągalnych protokołu USP -req READY,IDLE,E,E -alarm WAIT,IDLE,E,req -alarm -req READY,FAULT, alarm,e +req WAIT,FAULT,alarm,req +alarm WAIT,SERVICE,E,E -done REGISTER,FAULT,E,E -ack +done WAIT,IDLE,done,E READY,FAULT,E,ack +ack -alarm +done +ack -req WAIT,FAULT,done alarm,e WAIT,FAULT,E,ack req 35

stan globalny w protokole USP -legenda WAIT,FAULT,E,ack req stan stacji User (tutaj WAIT) stan stacji Server (tutaj FAULT) stan kolejki (kanału) wejściowej stacji Server (tutaj dwa komunikaty w kolejce wejściowej: ack oraz req) stan kolejki (kanału) wejściowej stacji User (tutaj E kolejka pusta) 36

graf stanów osiągalnych protokołu USP -req READY,IDLE,E,E -alarm WAIT,IDLE,E,req -alarm -req READY,FAULT, alarm,e +req WAIT,FAULT,alarm,req +alarm WAIT,SERVICE,E,E -done REGISTER,FAULT,E,E -ack +done WAIT,IDLE,done,E READY,FAULT,E,ack +ack -alarm +done +ack -req WAIT,FAULT,done alarm,e WAIT,FAULT,E,ack req 37

weryfikacja przestrzeń stanów protokołu cecha do zweryfikowania wykrywanie obecności cechy w przestrzeni stanów protokołu koniec tak cecha istnieje? nie generacja kontrprzykładu 38

analiza osiągalności graf osiągalności cecha do zweryfikowania (właściwość grafu) analizator stanów osiągalnych koniec tak cecha istnieje? nie generacja raportu o ścieżce prowadzącej do błędu 39

cechy statyczne protokołu zakleszczenie stan, w którym nie są możliwe żadne zdarzenia nadawania, a kanały są puste niespecyfikowany odbiór odbiór, który występuje w rzeczywistości nie jest umieszczony w projekcie niewykonalna interakcja projekt zawiera zdarzenia nadawania i odbioru, które nie mogą wystąpić w rzeczywistości dwuznaczność stanów stan lokalny jednej stacji współistnieje stabilnie z kilkoma innymi stanami lokalnymi w drugiej stacji stan stabilny, to taki, w którym oba kanały są puste 40

przykłady cech statycznych protokołu dwie z tych cech pokażemy na przykładzie protokołu USP: niespecyfikowany odbiór oraz zakleszczenie 41

niespecyfikowany odbiór w protokole USP -req READY,IDLE,E,E -alarm WAIT,IDLE,E,req -alarm -req READY,FAULT, alarm,e +req WAIT,SERVICE,E,E -done WAIT,FAULT,alarm,req niespecyfikowany odbiór +alarm REGISTER,FAULT,E,E -ack +done WAIT,IDLE,done,E READY,FAULT,E,ack +ack -alarm +done +ack -req WAIT,FAULT,done alarm,e WAIT,FAULT,E,ack req 42

zakleszczenie w protokole USP (medium ze stratami komunikatów) -req READY,IDLE,E,E -alarm WAIT,IDLE,E,req -alarm -req READY,FAULT, alarm,e +req WAIT,FAULT,alarm,req +alarm WAIT,SERVICE,E,E lossalarm lossreq REGISTER,FAULT,E,E -done WAIT,FAULT,E,req WAIT,FAULT,alarm,E -ack +done WAIT,IDLE,done,E lossreq lossalarm READY,FAULT,E,ack +ack -alarm -req WAIT,FAULT,done alarm,e +done WAIT,FAULT,E,E zakleszczenie +ack WAIT,FAULT,E,ack req 43

cechy dynamiczne protokołu blokada dynamiczna wejście w nieakceptowalną sekwencję stanów zakleszczenie dynamiczne blokada dynamiczna, z której nie ma wyjścia blokowanie tempa blokada dynamiczna, z której jest wyjście 44

blokada dynamiczna najkrótsza sekwencja świadcząca usługę protokołu wejście wyjście blokada dynamiczna (wejście w nieakceptowalną sekwencję stanów) 45

blokowanie tempa najkrótsza sekwencja świadcząca usługę protokołu wejście wyjście blokada dynamiczna, z której jest wyjście 46

zakleszczenie dynamiczne najkrótsza sekwencja świadcząca usługę protokołu wejście blokada dynamiczna, z której nie ma wyjścia 47

klasyfikacja cech dynamicznych hierarchiczna, dwustopniowa blokada dynamiczna jest wyjście nie ma wyjścia blokowanie tempa zakleszczenie dynamiczne 48

blokada dynamiczna w protokole User Server Protocol (USP) USER SERVER -req READY +alarm +req IDLE -alarm -ack +ack WAIT +done REGISTER SERVICE -done FAULT 49

blokada dynamiczna w grafie stanów osiągalnych protokołu USP -req READY,IDLE,E,E -alarm WAIT,IDLE,E,req -alarm -req READY,FAULT, alarm,e +req WAIT,FAULT,alarm,req +alarm WAIT,SERVICE,E,E -done REGISTER,FAULT,E,E -ack +done WAIT,IDLE,done,E READY,FAULT,E,ack +ack -alarm +done +ack -req WAIT,FAULT,done alarm,e WAIT,FAULT,E,ack req 50

blokada dynamiczna - podsumowanie wniosek: blokada dynamiczna występuje, gdy cykle w stacjach protokołu tworzą jeden lub więcej cykli w grafie osiągalności, zwanych cyklami blokady dynamicznej [Gouda85] 51