Algebra procesów CCS, bisymulacja
description
Transcript of Algebra procesów CCS, bisymulacja
![Page 1: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/1.jpg)
Algebra procesów CCS, bisymulacja
Seminarium - Protokoły komunikacyjne28 – 10 - 2003
Paweł Kozioł
189411
![Page 2: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/2.jpg)
Spis treści
• Wprowadzenie do algebry procesów
• Język CCS
• Przykłady
• Bisymulacja
![Page 3: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/3.jpg)
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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/4.jpg)
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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/5.jpg)
Wprowadzenie – komunikacja
• W każdą komunikację zaangażowane są dokładnie 2 procesy
• Komunikacja jest:– synchroniczna – niebuforowana
![Page 6: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/6.jpg)
CCS – (Calculus of Communicating Systems)
• Przykład:
• Odbiera wartość x i wysyła ją dalej
![Page 7: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/7.jpg)
• 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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/8.jpg)
Język graficzny
• Odzwierciedla strukturę połączeń komunikacyjnych
• Porty wyjściowe są oznaczone kreską u góry
![Page 9: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/9.jpg)
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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/10.jpg)
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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/11.jpg)
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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/12.jpg)
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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/13.jpg)
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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/14.jpg)
Przemianowanie [ a/a` ]
• Niech A:
• Wtedy
A` =def A [ a`/a, b`/b, c`/c ]
![Page 15: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/15.jpg)
Proces ‘0’
• Proces nieaktywny
• Kiedy obliczenie dotrze do niego następuje zakleszczenie (deadlock)
![Page 16: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/16.jpg)
Zdarzenie • Oznacza „cichą” komunikację między
procesami– nieobserwowalną z zewnątrz
![Page 17: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/17.jpg)
• 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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/18.jpg)
• 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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/19.jpg)
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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/20.jpg)
Drzewo tranzycji
dla (A|B)\c
• Wygląda następująco:
![Page 21: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/21.jpg)
Formalizacja CCS
![Page 22: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/22.jpg)
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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/23.jpg)
Składnia CCS
![Page 24: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/24.jpg)
• 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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/25.jpg)
Reguły semantyczne CCS
![Page 26: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/26.jpg)
Dowodzenie
• Tranzycja zachodzi wtw da się ją wywieść za pomocą powyższych reguł
• Np. Dowodzimy tranzycję
![Page 27: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/27.jpg)
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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/28.jpg)
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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/29.jpg)
Operator fix – reguła semantyczna
• Reguła pokazuje, że jest to operator najmniejszego punktu stałego
![Page 30: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/30.jpg)
Przykład – algorytm Dekkera
![Page 31: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/31.jpg)
![Page 32: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/32.jpg)
Dekker – zapis procesów
![Page 33: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/33.jpg)
Równoważność procesów
• silna i słaba bisymulacja
• silna i słaba równoważność
![Page 34: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/34.jpg)
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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/35.jpg)
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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/36.jpg)
Bisymulacja - wprowadzenie
• Np.
• Te systemy ‘’rozpoznają’’ identyczne języki (acd)*ab
• Początkowo mogą wykonać tylko a:
![Page 37: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/37.jpg)
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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/38.jpg)
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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/39.jpg)
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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/40.jpg)
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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/41.jpg)
Kongruencja
• Silna równoważność jest kongruencją względem wszystkich operatorów
![Page 42: Algebra procesów CCS, bisymulacja](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/42.jpg)
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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/43.jpg)
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](https://reader036.fdocuments.pl/reader036/viewer/2022062304/56813b7c550346895da4916c/html5/thumbnails/44.jpg)
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