1 / 44

Algebra procesów CCS, bisymulacja

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

luce
Télécharger la présentation

Algebra procesów CCS, bisymulacja

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Spis treści • Wprowadzenie do algebry procesów • Język CCS • Przykłady • Bisymulacja

  3. 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

  4. 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)

  5. Wprowadzenie – komunikacja • W każdą komunikację zaangażowane są dokładnie 2 procesy • Komunikacja jest: • synchroniczna • niebuforowana

  6. CCS – (Calculus of Communicating Systems) • Przykład: • Odbiera wartość x i wysyła ją dalej

  7. in(x) wiąże x w (1) • X – parametr, oznacza dowolną liczbę: xZ • .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’

  8. Język graficzny • Odzwierciedla strukturę połączeń komunikacyjnych • Porty wyjściowe są oznaczone kreską u góry

  9. 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

  10. Operator ‘+’ • ‘+’ zapewnia niedeterministyczny wybór • E1 +E2 oznacza proces zachowujący się jak E1 albo E2 • Zapis choice:

  11. 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

  12. 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 ]

  13. 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 

  14. Przemianowanie [ a/a` ] • Niech A: • Wtedy A` =def A [ a`/a, b`/b, c`/c ]

  15. Proces ‘0’ • Proces nieaktywny • Kiedy obliczenie dotrze do niego następuje zakleszczenie (deadlock)

  16. Zdarzenie  • Oznacza „cichą” komunikację między procesami– nieobserwowalną z zewnątrz

  17. Rozważmy na przykład komunikację • Mamy: , stąd: oraz , stąd: • Ale te tranzycje nie dotyczą komunikacji A z B

  18. 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

  19. 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:

  20. Drzewo tranzycji dla (A|B)\c • Wygląda następująco:

  21. Formalizacja CCS

  22. 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.

  23. Składnia CCS

  24. 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

  25. Reguły semantyczne CCS

  26. Dowodzenie • Tranzycja zachodzi wtw da się ją wywieść za pomocą powyższych reguł • Np. Dowodzimy tranzycję

  27. 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

  28. 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

  29. Operator fix – reguła semantyczna • Reguła pokazuje, że jest to operator najmniejszego punktu stałego

  30. Przykład – algorytm Dekkera

  31. Dekker – zapis procesów

  32. Równoważność procesów silna i słaba bisymulacja silna i słaba równoważność

  33. 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

  34. 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ą

  35. Bisymulacja - wprowadzenie • Np. • Te systemy ‘’rozpoznają’’ identyczne języki (acd)*ab • Początkowo mogą wykonać tylko a:

  36. Bisymulacja cd • W przypadku systemu A rezultat jest jednoznaczny (deterministyczny) • W przypadku B wybór jest niejednoznaczny • Eksperyment odróżnia zatem A od B

  37. 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

  38. 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

  39. 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ą

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

  41. 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

  42. 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

  43. 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

More Related