44
Algebra procesów CCS, bisymulacja Seminarium - Protokoły komunikacyjne 28 – 10 - 2003 Paweł Kozioł 189411

Algebra procesów CCS, bisymulacja

  • Upload
    luce

  • View
    55

  • Download
    0

Embed Size (px)

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

Page 1: Algebra procesów CCS, bisymulacja

Algebra procesów CCS, bisymulacja

Seminarium - Protokoły komunikacyjne28 – 10 - 2003

Paweł Kozioł

189411

Page 2: Algebra procesów CCS, bisymulacja

Spis treści

• Wprowadzenie do algebry procesów

• Język CCS

• Przykłady

• Bisymulacja

Page 3: Algebra procesów CCS, 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

Page 4: Algebra procesów CCS, bisymulacja

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)

Page 5: Algebra procesów CCS, bisymulacja

Wprowadzenie – komunikacja

• W każdą komunikację zaangażowane są dokładnie 2 procesy

• Komunikacja jest:– synchroniczna – niebuforowana

Page 6: Algebra procesów CCS, bisymulacja

CCS – (Calculus of Communicating Systems)

• Przykład:

• Odbiera wartość x i wysyła ją dalej

Page 7: Algebra procesów CCS, bisymulacja

• 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’

Page 8: Algebra procesów CCS, bisymulacja

Język graficzny

• Odzwierciedla strukturę połączeń komunikacyjnych

• Porty wyjściowe są oznaczone kreską u góry

Page 9: Algebra procesów CCS, bisymulacja

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

Page 10: Algebra procesów CCS, bisymulacja

Operator ‘+’

• ‘+’ zapewnia niedeterministyczny wybór

• E1 + E2 oznacza proces zachowujący się jak E1 albo E2

•Zapis choice:

Page 11: Algebra procesów CCS, bisymulacja

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

Page 12: Algebra procesów CCS, bisymulacja

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 ]

Page 13: Algebra procesów CCS, bisymulacja

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

Page 14: Algebra procesów CCS, bisymulacja

Przemianowanie [ a/a` ]

• Niech A:

• Wtedy

A` =def A [ a`/a, b`/b, c`/c ]

Page 15: Algebra procesów CCS, bisymulacja

Proces ‘0’

• Proces nieaktywny

• Kiedy obliczenie dotrze do niego następuje zakleszczenie (deadlock)

Page 16: Algebra procesów CCS, bisymulacja

Zdarzenie • Oznacza „cichą” komunikację między

procesami– nieobserwowalną z zewnątrz

Page 17: Algebra procesów CCS, bisymulacja

• Mamy: oraz, stąd:

, stąd:

• Ale te tranzycje nie dotyczą komunikacji A z B

• Rozważmy na przykład komunikację

Page 18: Algebra procesów CCS, bisymulacja

• 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

Page 19: Algebra procesów CCS, bisymulacja

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

Page 20: Algebra procesów CCS, bisymulacja

Drzewo tranzycji

dla (A|B)\c

• Wygląda następująco:

Page 21: Algebra procesów CCS, bisymulacja

Formalizacja CCS

Page 22: Algebra procesów CCS, bisymulacja

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.

Page 23: Algebra procesów CCS, bisymulacja

Składnia CCS

Page 24: Algebra procesów CCS, bisymulacja

• 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

Page 25: Algebra procesów CCS, bisymulacja

Reguły semantyczne CCS

Page 26: Algebra procesów CCS, bisymulacja

Dowodzenie

• Tranzycja zachodzi wtw da się ją wywieść za pomocą powyższych reguł

• Np. Dowodzimy tranzycję

Page 27: Algebra procesów CCS, bisymulacja

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

Page 28: Algebra procesów CCS, bisymulacja

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

Page 29: Algebra procesów CCS, bisymulacja

Operator fix – reguła semantyczna

• Reguła pokazuje, że jest to operator najmniejszego punktu stałego

Page 30: Algebra procesów CCS, bisymulacja

Przykład – algorytm Dekkera

Page 31: Algebra procesów CCS, bisymulacja
Page 32: Algebra procesów CCS, bisymulacja

Dekker – zapis procesów

Page 33: Algebra procesów CCS, bisymulacja

Równoważność procesów

• silna i słaba bisymulacja

• silna i słaba równoważność

Page 34: Algebra procesów CCS, bisymulacja

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

Page 35: Algebra procesów CCS, bisymulacja

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ą

Page 36: Algebra procesów CCS, bisymulacja

Bisymulacja - wprowadzenie

• Np.

• Te systemy ‘’rozpoznają’’ identyczne języki (acd)*ab

• Początkowo mogą wykonać tylko a:

Page 37: Algebra procesów CCS, bisymulacja

Bisymulacja cd

• W przypadku systemu A rezultat jest jednoznaczny (deterministyczny)

• W przypadku B wybór jest niejednoznaczny

• Eksperyment odróżnia zatem A od B

Page 38: Algebra procesów CCS, bisymulacja

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

Page 39: Algebra procesów CCS, bisymulacja

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

Page 40: Algebra procesów CCS, 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ą

Page 41: Algebra procesów CCS, bisymulacja

Kongruencja

• Silna równoważność jest kongruencją względem wszystkich operatorów

Page 42: Algebra procesów CCS, bisymulacja

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

Page 43: Algebra procesów CCS, bisymulacja

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

Page 44: Algebra procesów CCS, bisymulacja

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