(Cálculo de Sistemas Comunicantes) Caesar Ralf Franz Hoppen¹, Elias Ricken Medeiros¹ ¹Instituto de Informática Universidade Federal do Rio Grande do Sul (UFRGS) Caixa Postal 15.064 91.501-970 Porto Alegre RS Brasil { crfhoppen, ermeideiros } @inf.ufrgs.br
Roteiro Introdução Modelagem de Expressões Regras Propriedades Conclusao
Introdução Desde o começo da computação, diferentes maneiras de modelar sistemas podem chegar em construção de sistemas equivalentes, se considerarmos um certo nível de abstração. Por exemplo, dados dois sistemas determinísticos, podemos supor que estes são equivalentes quando, dada qualquer entrada de valor igual para os dois, geram a mesma saída. Mas quanto aos sistemas concorrentes? a.(b.0 + c.0) e a.b.0 + a.c.0 são equivalentes?
Uma possível solução Entrarmos no nível de execução do sistema: Assim, sistemas que caminham de forma diferente durante sua execução serão obviamente diferentes. No entanto, para enxergarmos a execução de um sistema, necessitamos de ferramentas que modelem e nos façam compreender estes mesmos de forma abstrata.
a) b) a a a b c b c Representação em árvores de sincronização dos sistemas a) a.(b.0 + c.0) b) a.b.0 + a.c.0
Cálculo de Processos Cálculo de Processos ( Process Calculi), também conhecido como álgebra de processos, é um formalismo para modelagem de sistemas concorrentes que se utiliza de : Agentes (agent) Também chamado de processos. É qualquer sistema concorrente o qual seu comportamento é uma ação discreta. Ações (actions) É a interação (comunicação) entre dois agentes ou interação independente do agente consigo mesmo. A comunicação entre agentes somente ocorre quando ambos estão sincronizados, ou seja, os dois se encontram prontos para se comunicar.
Tipo cálculo de processos, criado em 1974 por Robin Milner, que se utiliza de uma sintaxe muito simples de expressões denotando agentes. Framework matemático para comparar e construir diferentes tipos de agentes ajudando a evitar ambiguidades na interpretação de sistemas para estudos de equivalências.
Modelagem de Expressões Há 5 maneiras de se montar expressões denotando agentes. Essas maneiras irão nos ajudar a enxergar o comportamento dos agentes e ações no sistema, possibilitando-nos a entender como modela-los.
Prefixo - Expressão 'a.e' (lê-se 'a' então 'E') aonde 'a' é uma ação e 'E' uma expressão CCS. Somatório - Expressão E1 + E2 (lê 'E1' ou 'E2') aonde 'E1' e 'E2' são expressões. Composição - Expressão do tipo 'E1 E2' (lê-se 'E1' composto com 'E2') aonde 'E1' e 'E2' são expressões.
Restrição - Expressão do tipo 'E\L' (lê-se 'E' restringido por 'L'), aonde 'E' é uma expressão denotando um agente e L é um conjunto de ações. Renomeação - Expressão do tipo 'E[f]' (lê-se 'E' renomeado por 'f') aonde 'E' é uma expressão denotando um agente e 'f' é uma função de renomeação
Exemplos Suponha os seguintes sistemas : Sistema 'Máquina de Refrigerante' MR = moeda.(fanta.0 + guarana.0) Sistema 'Pessoa' PES = moeda.fanta.0 Composição dos sistemas acima SYS = (PES MR)\{moeda, fanta}
Uma visão mais formal O significado de expressões CCS pode ser interpretado precisamente vendo cada expressão como definindo um sistema de transições rotuladas do tipo t SXS Aonde t T e : T = conjunto de todas as ações de um agente S = conjunto de todas as expressões de um agente
Regras Semânticas
Propriedades das Equações Propriedades da soma: o operador "+" é comutativo, associativo, idempotente e possui 0 como elemento neutro : Propriedades do Prefixo:
Propriedades das Equações parte II Outras propriedades:
Exemplos
Conclusão Fica evindente que a verifição de equivalência de agentes concorrentes é uma tarefa bem mais díficil que verificar a equivalência de dois autômatos em Teoria dos Autômatos. Neste sentido, o CCS mostra-se como uma poderosa ferramenta, provendo regras que facilitam esta tarefa.
Referências [1] http:\\en.wikipedia.org \wiki\robin_milner [2] Milner, R (1989). 'Communication and Concurrency'. Springer Verlag, International Series in Computer Science. Prentice Hall, 1989.(ISBN: 0-13-114984-9) [3] Cheng, M. H. M., 'Calculus of Communicating System : A Synopsis' [4] http:\\pt.wikipedia.org\wiki\redes_de_petri