Algebra procesów CCS, bisymulacja

Preview:

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

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

Recommended