Formalismos para Concorrência Por Paulo Maciel Centro de Informática Universidade Federal de...
-
Upload
amelia-de-vieira-ximenes -
Category
Documents
-
view
217 -
download
0
Transcript of Formalismos para Concorrência Por Paulo Maciel Centro de Informática Universidade Federal de...
Formalismos para Formalismos para ConcorrênciaConcorrência
PorPorPaulo MacielPaulo Maciel
Centro de InformáticaCentro de InformáticaUniversidade Federal de Universidade Federal de
PernambucoPernambuco
ObjetivoObjetivo
Apresentar alguns formalismos para Apresentar alguns formalismos para a modelagem de sistemas a modelagem de sistemas concorrentes.concorrentes.
Descrever as principais Descrever as principais características destes modelos.características destes modelos.
Modelagem de Problemas.Modelagem de Problemas. Ressaltar as pontencialidades destes Ressaltar as pontencialidades destes
modelos.modelos.
Apresentacão Apresentacão Máquinas de Estados FinitosMáquinas de Estados Finitos (Finite State Machines)(Finite State Machines) LTS – Sistema de Transição RotuladoLTS – Sistema de Transição Rotulado
(Labeled Transitions Systems)(Labeled Transitions Systems) CSP – CSP – Communicating Sequential ProcessCommunicating Sequential Process
Estruturas TracesEstruturas Traces
Redes de PetriRedes de Petri
Máquinas de Estados Máquinas de Estados FinitosFinitos
(Finite State Machines)(Finite State Machines)
Finite State MachineFinite State MachineModelo MealyModelo Mealy
FSM= (S,I,O,f,h)FSM= (S,I,O,f,h)
– S – Conjunto de EstadosS – Conjunto de Estados– ss00 S– Estado inicial S– Estado inicial– I – Alfabeto de entradaI – Alfabeto de entrada– O – Alfabeto de saídaO – Alfabeto de saída– f : S f : S I I S – Função de próximo estado S – Função de próximo estado– h: S h: S I I O – Função de saída O – Função de saída
a
Máquinas de Estados Máquinas de Estados FinitosFinitos
Modelo Mealy Modelo Mealy FSM= (S,I,O,f,h)FSM= (S,I,O,f,h)
– Impossibilidade da modelagem direta da Impossibilidade da modelagem direta da concorrência.concorrência.
a
CONSISTE DE UM CONJUNTO DE ESTADOS, UM CONJUNTO DE TRANSIÇÕES ENTRE OS ESTADOS E UM CONJUNTO DE AÇÕES OU EVENTOS ASSOCIADOS COM ESSES ESTADOS OU TRANSIÇÕES
FORMALMENTE:
< S, I, O, f :S x I S, h : S x I O >
ONDE S É UM CONJUNTO DE ESTADOS, I É UM CONJUNTO DE ENTRADAS E O É UM CONJUNTO DE SAÍDAS
f É UMA FUNÇÃO DE PRÓXIMO ESTADO E h É UMA FUNÇÃO DE SAÍDA,CUJO VALOR DEPENDE DOS ESTADOS E DOS VALORES DE ENTRADA
Máquinas de Estados Máquinas de Estados FinitosFinitos
Modelo MealyModelo Mealy
I={a1,a2,a3}O={d2,d1,n,s1,s2}
ANDAR DESEJADO
a2/s1
a1/d1
a3/s1a2
/d1a1/d2a3/s2
a1/p a2/p
a3/p
S1 S2
S3 DIREÇÃO E NÚMERO
DE ANDARES
Máquinas de Estados Máquinas de Estados FinitosFinitos
Modelo MealyModelo Mealy
Máquinas de Estados Máquinas de Estados Finitos Finitos
Modelo MooreModelo Moore FSM= (S,I,O,f,h)FSM= (S,I,O,f,h)
– S – Conjunto de EstadosS – Conjunto de Estados– ss00 S– Estado inicial S– Estado inicial– I – Alfabeto de entradaI – Alfabeto de entrada– O – Alfabeto de saídaO – Alfabeto de saída– f : S f : S I I S – Função de próximo estado S – Função de próximo estado– h: S h: S O – Função de saída O – Função de saída
a
CONSISTE DE UM CONJUNTO DE ESTADOS, UM CONJUNTO DE TRANSIÇÕES ENTRE OS ESTADOS E UM CONJUNTO DE AÇÕES OU EVENTOS ASSOCIADOS COM ESSES ESTADOS OU TRANSIÇÕES
FORMALMENTE:
< S, I, O, f :S x I S, h : S O >
ONDE S É UM CONJUNTO DE ESTADOS, I É UM CONJUNTO DE ENTRADAS E O É UM CONJUNTO DE SAÍDAS
f É UMA FUNÇÃO DE PRÓXIMO ESTADO E h É UMA FUNÇÃO DE SAÍDA,CUJO VALOR DEPENDE APENAS DOS ESTADOS
Máquinas de Estados Máquinas de Estados FinitosFinitos
Modelo MooreModelo Moore
a3S11 /d2
S12 /d1
S13 /p
S21 /d1 S31 /p
S32 /s1S22 /p
S23 /s1 S33 /s2
a1a1
a1a1
a2a2
a3a3
a3a2a3a2
a2a1
a3a3
a3
a1 a2
a2a1a1
a2
a2
a1
a3
Máquinas de Estados Máquinas de Estados FinitosFinitos
Modelo MooreModelo Moore
CSPCSP É uma linguagem para a É uma linguagem para a
especificação de sistemas especificação de sistemas concorrentes.concorrentes.
Proposta por C. A. Hoare no Proposta por C. A. Hoare no começo dos anos 80.começo dos anos 80.
CSPCSP AlfabetoAlfabeto
(P) = {a(P) = {a0,…. 0,…. aamm}}é o conjunto de eventos é o conjunto de eventos
de Pde P
P::=P::=
STOP STOP SKIPSKIPaaP P P | Q P | Q P[]Q P[]Q P ||P ||AA Q Q P[b/a] P[b/a] P[\ P[\
b]b]
CSPCSP STOP – um processo que não faz STOP – um processo que não faz
nada é escrito como STOP.nada é escrito como STOP.
VendingMachine = STOPVendingMachine = STOP
CSPCSP Ação Prefixo - aAção Prefixo - aP P
VMVM11=moeda =moeda STOP STOP
VMVM22=moeda =moeda chocolate chocolate STOP STOP
RecursãoRecursão Muitas vezes estamos interessados Muitas vezes estamos interessados
em processos que são executados em processos que são executados sempre. Podemos, em CSP, sempre. Podemos, em CSP, especificar este comportamento especificar este comportamento pela recursão.pela recursão.
VMVM33=moeda =moeda chocolate chocolate VM VM33
Sistema de Transição Sistema de Transição RotuladoRotulado
(Labeled Transition System)(Labeled Transition System)
Sistema de Transição Sistema de Transição RotuladoRotulado
TS = (S,sTS = (S,s00,L,tran),L,tran)
– S – Conjunto de EstadosS – Conjunto de Estados– ss00 – Estado inicial – Estado inicial– L – Conjunto de rótulosL – Conjunto de rótulos– tran tran S S L L S, normalmente indicada por s S, normalmente indicada por s
s’ s’a
Sistema de Transição Sistema de Transição RotuladoRotulado
Sejam dois processos concorrentes A e BSejam dois processos concorrentes A e B Processo A{Processo A{ Processo B {Processo B {
Enquanto C=T {Enquanto C=T { e4e4e1e1 e5e5e2e2 }}
}}e3e3e5e5
}}
Sistema de Transição Sistema de Transição RotuladoRotulado
Se A e B são dois processos, entãoSe A e B são dois processos, então (A||B) representa a execução concorrente de A e B.
Processo A =Processo A = Processo B =Processo B =(e1 (e1 -> e2 e2 -> Process A) Process A) (e4 (e4 -> e5 e5 - Process B)Process B)
Process C = ((Process A || Process B) Process C = ((Process A || Process B) -> Process C )Process C )
Sistema de Transição Sistema de Transição RotuladoRotulado
e3
e1
e2
e4
e1
e2e4e3 e4
e5
s0
s5s1
s4s3
s6
s7
Composição Paralela Composição Paralela InterleavingInterleaving de Ações de Ações
thinktalkscratchthinkscratchtalkscratchthinktalk
Possible traces as a result of action interleaving.
Se P e Q são dois processos, então (P||Q) representa a execução concorrente de P e Q. O operador || é o operador de composição paralela.ITCH = (scratch->STOP).CONVERSE = (think->talk->STOP).
||CONVERSE_ITCH = (ITCH || CONVERSE).
Composição Paralela Composição Paralela InterleavingInterleaving de Ações de Ações
(0,0)
(0,1)
(0,2)
(1,2)
(1,1)
(1,0)
de CONVERSEde ITCH
3 estados
2 x 3 estados
CONVERSEthink talk
0 1 2
CONVERSE_ITCH
scratch
think
scratch
talk scratch
talk think
0 1 2 3 4 5
2 estados
ITCH
scratch
0 1
Modelando Interações Modelando Interações Ações CompartilhadasAções Compartilhadas
MAKER = (make->ready->MAKER).USER = (ready->use->USER).
||MAKER_USER = (MAKER || USER).
MAKER sincroniza-se com USER quando ready.
Se processoes em uma composição têm ações em comum, estas ações são ditas compartilhadas.Ações compartilhadas modelam as interações entre processos. Enquanto ações não compartilhadas podem ser arbitrariamente interleaved , ações compartilhadas devem ser executadas ao mesmo tempo por todos os processos.
MAKERv2 = (make->ready->used->MAKERv2).USERv2 = (ready->use->used ->USERv2).
||MAKER_USERv2 = (MAKERv2 || USERv2).
Modelando Interações Modelando Interações Ações CompartilhadasAções Compartilhadas
Interação restringe o comportamento global
3 estados3 estados
3 x 3 estados?
4 estados
make ready use
used
0 1 2 3
Modelando InteraçõesModelando InteraçõesMúltiplos ProcessosMúltiplos Processos
MAKE_A = (makeA->ready->used->MAKE_A).MAKE_B = (makeB->ready->used->MAKE_B).ASSEMBLE = (ready->assemble->used->ASSEMBLE).||FACTORY = (MAKE_A || MAKE_B || ASSEMBLE).
makeA
makeB makeA ready assemble
usedmakeB
0 1 2 3 4 5
modeling interaction - modeling interaction - multiple processesmultiple processes
MAKE_A = (makeA->ready->used->MAKE_A).MAKE_B = (makeB->ready->used->MAKE_B).ASSEMBLE = (ready->assemble->used->ASSEMBLE).||FACTORY = (MAKE_A || MAKE_B || ASSEMBLE).
Multi-party synchronization:
makeA
makeB makeA ready assemble
usedmakeB
0 1 2 3 4 5