440 likes | 598 Vues
Algebra procesów CCS, bisymulacja. Seminarium - Protokoły komunikacyjne 28 – 10 - 2003 Paweł Kozioł 189411. Spis treści. Wprowadzenie do algebry procesów Język CCS Przykłady Bisymulacja. Wprowadzenie. Opis systemów współbieżnych Systemy są kompozycjonalne
E N D
Algebra procesów CCS, bisymulacja Seminarium - Protokoły komunikacyjne 28 – 10 - 2003 Paweł Kozioł 189411
Spis treści • Wprowadzenie do algebry procesów • Język CCS • Przykłady • Bisymulacja
Wprowadzenie • Opis systemów współbieżnych • Systemy są kompozycjonalne • Zachowanie systemu składa się z niepodzielnych zdarzeń • Zdarzenie • komunikacja z otoczeniem • zdarzenie wewnętrzne, nieobserwowalne z zewnątrz
Wprowadzenie – zdarzenia • Każde zdarzenie jest komunikacją! • Interesują nas zachowania obserwowalne – komunikacja z otoczeniem • Założenia: • ignorujemy czas • nie dopuszczamy jednoczesności zdarzeń (wykonanie zdarzeń w dowolnej kolejności)
Wprowadzenie – komunikacja • W każdą komunikację zaangażowane są dokładnie 2 procesy • Komunikacja jest: • synchroniczna • niebuforowana
CCS – (Calculus of Communicating Systems) • Przykład: • Odbiera wartość x i wysyła ją dalej
in(x) wiąże x w (1) • X – parametr, oznacza dowolną liczbę: xZ • .P. oznacza: wykonaj i kontynuuj wg P - jedyny sposób szeregowania zdarzeń w języku • Np. Proces wykonuje in(7) i staje się procesem C’ • ze stanu C po wykonaniu in(7) przechodzimy do stanu C’
Język graficzny • Odzwierciedla strukturę połączeń komunikacyjnych • Porty wyjściowe są oznaczone kreską u góry
Język graficzny c.d • Nowy dwuargumentowy operator __ • Połączenie dwóch kopii C kanałem komunikacyjnym • nazwy portów przyłączonych do tego kanału są pominięte, bo są nieistotne
Operator ‘+’ • ‘+’ zapewnia niedeterministyczny wybór • E1 +E2 oznacza proces zachowujący się jak E1 albo E2 • Zapis choice:
Operator ‘|’ • E1 |E2 - złożenie równoległe • równoległe wykonanie E1 iE2 • Przykład • Uścisk dłoni (handshake) – synchroniczna, niewidoczna akcja między dwoma procesami • przesłanie wiadomości • synchronizacja – brak wymiany danych
Synchronizacja – przykład ? • Jak połączyć • Opowiedź • Uściski dłoni nie są zaznaczane strzałkami • Jednoznaczność połączenia • przemienność operatora ‘|’ [ A | B = B | A ] • łączność operatora ‘|’ [ A | (B | C) = (A | B) | C ]
Operator ‘\’ • Wykluczenie (restriction) • Niech L – zbiór etykiet • (E | F) \ L to (E | F) z ukrytymi portami L • Konwencja: • (E | F) \ c = (E | F ) \ {c} • Przykład (E | F) \ c
Przemianowanie [ a/a` ] • Niech A: • Wtedy A` =def A [ a`/a, b`/b, c`/c ]
Proces ‘0’ • Proces nieaktywny • Kiedy obliczenie dotrze do niego następuje zakleszczenie (deadlock)
Zdarzenie • Oznacza „cichą” komunikację między procesami– nieobserwowalną z zewnątrz
Rozważmy na przykład komunikację • Mamy: , stąd: oraz , stąd: • Ale te tranzycje nie dotyczą komunikacji A z B
A teraz rozważmy komunikację między A i B • Wtedy obserwator zewnętrzny zauważy : • Opcjonalnie wykluczenie komunikacji przez port z otoczeniem – użycie operatora zakazującego ‘\’: (A|B) \ c
Notacja – drzewo i graf tranzycji • Na przykładzie procesów A i B • Rozważmy proces (A | B)\c • Dla niego graf tranzycji wygląda następująco:
Drzewo tranzycji dla (A|B)\c • Wygląda następująco:
Oznaczenia i założenia • Dany jest zbiór nazw • zawiera ko-nazwy • nazwy komplementarne • Zbiór etykiet , gdzie dla każdej etykiety • Zbiór zdarzeń , • W tym - ma specjalne znaczenie • Tranzycje - proces w stanie P. wykonuje zdarzenie i przechodzi do stanu Q.
A(e1,..., ek) – wyrażenie funkcyjne o arności k • Zmienne ek należy odróżnić od zmiennych procesowych xi X • Zmienne ei to zmienne wartości
Dowodzenie • Tranzycja zachodzi wtw da się ją wywieść za pomocą powyższych reguł • Np. Dowodzimy tranzycję
Operator punktu stałego • Rekurencja pozwala opisać procesy nieskończone np. • Zapis alternatywny: • zamiast , jest • Dodatkowa konstrukcja językowa: • Zbiór zawiera równania definiujące rodzinę procesów indeksowaną I
Operator fix – cd • Wyrażenie oznacza element tego zbioru odpowiadający indeksowi j I • W skrócie, zamiast piszemy • Dodatkowo, niech oznacza P., w którym równolegle podstawiono Ei za zmienną Xi dla wszystkich i I
Operator fix – reguła semantyczna • Reguła pokazuje, że jest to operator najmniejszego punktu stałego
Równoważność procesów silna i słaba bisymulacja silna i słaba równoważność
Intuicje • Aby wykazać równoważność A i B, gramy w grę • Graczami są Kowalski i Nowak • Kowalski dowodzi, że A i B są równoważne • Nowak dowodzi, że się różnią • Obaj wykonują naprzemiennie ruchy • Najpierw Nowak wybiera system i wykonuje dowolne możliwe zdarzenie
Intuicje cd • Kowalski musi odpowiedzieć w drugim systemie tym samym zdarzeniem • Gracz, który nie ma więcej ruchów, przegrywa • Systemy są równoważne, jeśli Kowalski zawsze wygrywa, tzn. gdy ma strategię wygrywającą
Bisymulacja - wprowadzenie • Np. • Te systemy ‘’rozpoznają’’ identyczne języki (acd)*ab • Początkowo mogą wykonać tylko a:
Bisymulacja cd • W przypadku systemu A rezultat jest jednoznaczny (deterministyczny) • W przypadku B wybór jest niejednoznaczny • Eksperyment odróżnia zatem A od B
Definicja równoważności • Definiujemy więc relację równoważności ~ • P i Q są równoważne wtw. gdy nie można ich odróżnić w jednym kroku eksperymentu oraz otrzymane w tym kroku systemy są równoważne
Silna bisymulacja • Relację binarną R pomiędzy procesami nazywamy silną bisymulacją, jeśli dla każdej pary , • Określenie silna bisymulacja odróżnia ją od słabej bisymulacji • Piszemy krótko: bisymulacja
Silna równoważność • Procesy P i Q są silnie równoważne ozn. P ~ Q, jeśli (P,Q) R, dla pewnej bisymulacji R • Innymi słowy, silna równoważność ~ jest sumą wszystkich bisymulacji • Relację ~ będziemy też nazywać silną równoważnością bisymulacyjną
Kongruencja • Silna równoważność jest kongruencją względem wszystkich operatorów
Słaba równoważność bisymulacyjna • Pojęcia słabej bisymulacji i słabej równoważności są analogiczne do poprzednich z dokładnością do relacji tranzycji • Zamiast tranzycji będziemy używać oraz zdefiniowanych następująco
Słaba bisymulacja • Relację binarną pomiędzy procesami nazywamy słabą bisymulacją, jeśli dla każej pary (P,Q) R, • Analogicznie definicja słabej równoważności
Literatura • Wykład monograficzny prof. Lasoty: Wybrane zagadnienia teorii procesów współbieżnych 2002/03 http://www.mimuw.edu.pl/~sl/teaching/02_03/WZTPW/ • R. Milner Communication and Concurrency, Prentice Hall, 1989. • R. Milner Operational and Algebraic Semantics of Concurrent Processes • „Dynamic congruence vs. Progressing bisimulation for CCS*” Ugo Montanari and Vladimiro Sassone