Algebra procesów CCS, bisymulacja Seminarium - Protokoły komunikacyjne 28 – 10 - 2003 Paweł Kozioł 189411
Jan 06, 2016
Algebra procesów CCS, bisymulacja
Seminarium - Protokoły komunikacyjne28 – 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 i E2
– 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
• Mamy: oraz, stąd:
, stąd:
• Ale te tranzycje nie dotyczą komunikacji A z B
• Rozważmy na przykład komunikację
• 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
• Dla niego graf tranzycji wygląda następująco:
•Na przykładzie procesów A i B
•Rozważmy proces (A | B)\c
Drzewo tranzycji
dla (A|B)\c
• Wygląda następująco:
Formalizacja CCS
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.
Składnia CCS
• 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
Reguły semantyczne CCS
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
Przykład – algorytm Dekkera
Dekker – zapis procesów
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/03http://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