PEPA
Performance Evaluation Process Algebra ( PEPA ) to stochastyczna algebra procesów przeznaczona do modelowania systemów komputerowych i komunikacyjnych, wprowadzona przez Jane Hillston w latach 90. Język rozszerza klasyczne algebry procesów, takie jak CCS Milnera i CSP Hoare'a , wprowadzając probabilistyczne rozgałęzienia i synchronizację przejść.
Stawki są pobierane z rozkładu wykładniczego , a modele PEPA są skończone, a zatem powodują proces stochastyczny , w szczególności proces Markowa w czasie ciągłym (CTMC). Dzięki temu język może być wykorzystany do badania właściwości ilościowych modeli systemów komputerowych i komunikacyjnych, takich jak przepustowość , wykorzystanie i czas odpowiedzi , jak również właściwości jakościowych, takich jak brak zakleszczenia . Język jest formalnie zdefiniowany przy użyciu ustrukturyzowanej semantyki operacyjnej w stylu wymyślonym przez Gordona Plotkina .
Podobnie jak w przypadku większości algebr procesów, PEPA jest językiem oszczędnym. Ma tylko cztery kombinatory, przedrostek , wybór , współpracę i ukrywanie . Prefiks to podstawowy element konstrukcyjny komponentu sekwencyjnego: proces ( a , r ). P wykonuje czynność a z szybkością r , zanim ewoluuje, by zachowywać się jak składnik P . Wybór ustanawia konkurencję między dwiema możliwymi alternatywami: w procesie ( a , r ). P + ( b , s ). Q albo a wygrywa wyścig (i proces następnie zachowuje się jak P ), albo b wygrywa wyścig (i proces następnie zachowuje się jak Q ).
Operator kooperacji wymaga, aby dwa „kooperandy” łączyły się dla tych czynności, które są określone w zbiorze kooperacji: w procesie P < a , b > Q procesy P i Q muszą współpracować przy czynnościach a ib , ale wszelkie inne czynności mogą być wykonywane samodzielnie. Twierdzenie o odwróconym czynniku złożonym daje zestaw warunków wystarczających, aby współpraca miała iloczyn z rozkładu stacjonarnego .
Wreszcie proces P /{ a } ukrywa aktywność a przed widokiem (i uniemożliwia innym procesom dołączanie się do niej).
Składnia
Biorąc pod uwagę zestaw nazw akcji, zestaw procesów PEPA jest zdefiniowany przez następującą gramatykę BNF :
Części składni są w kolejności podanej powyżej
- działanie
- proces , \ lambda). może wykonać akcję z szybkością i kontynuować jako proces .
- wybór
- procesu P+Q może zachowywać się albo jak proces P albo proces Q .
- współpracy
- procesy P i Q istnieją jednocześnie i zachowują się niezależnie dla akcji, których nazwy nie pojawiają się w L . W przypadku akcji, których nazwy pojawiają się w L , akcja musi być przeprowadzona wspólnie, a warunki wyścigu określają czas, jaki to zajmie.
- ukrywanie
- procesu P zachowuje się jak zwykle dla nazw akcji spoza L i wykonuje cichą akcję dla nazw akcji, które pojawiają się L
- zapisz { aby użyć identyfikatora A w odniesieniu do procesu P.
- identyfikator procesu
Narzędzia
- Wtyczka PEPA dla środowiska Eclipse
- ipc: imperialny kompilator PEPA
- GPAnalyser do analizy płynów w układach masowo równoległych