A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Formalismos para Concorrência Por Paulo Maciel Centro de Informática Universidade Federal de Pernambuco.

Apresentações semelhantes


Apresentação em tema: "Formalismos para Concorrência Por Paulo Maciel Centro de Informática Universidade Federal de Pernambuco."— Transcrição da apresentação:

1 Formalismos para Concorrência Por Paulo Maciel Centro de Informática Universidade Federal de Pernambuco

2 Objetivo n Apresentar alguns formalismos para a modelagem de sistemas concorrentes. n Descrever as principais características destes modelos. n Modelagem de Problemas. n Ressaltar as pontencialidades destes modelos.

3 Apresentacão n Máquinas de Estados Finitos (Finite State Machines) (Finite State Machines) n LTS – Sistema de Transição Rotulado (Labeled Transitions Systems) n CSP – Communicating Sequential Process n Estruturas Traces n Redes de Petri

4 Máquinas de Estados Finitos (Finite State Machines)

5 Finite State Machine Modelo Mealy n FSM= (S,I,O,f,h) –S – Conjunto de Estados –s 0  S– Estado inicial –I – Alfabeto de entrada –O – Alfabeto de saída –f : S  I  S – Função de próximo estado –h: S  I  O – Função de saída a

6 Máquinas de Estados Finitos Modelo Mealy n FSM= (S,I,O,f,h) –Impossibilidade da modelagem direta da concorrência. a

7 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:  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 Finitos Modelo Mealy

8 I={a1,a2,a3} O={d2,d1,n,s1,s2} ANDAR DESEJADO a2/s1 a1/d1 a3/s1 a2/d1 a1/d2 a3/s2 a1/p a2/p a3/p S1 S2 S3 DIREÇÃO E NÚMERO DE ANDARES Máquinas de Estados Finitos Modelo Mealy

9 Máquinas de Estados Finitos Modelo Moore n FSM= (S,I,O,f,h) –S – Conjunto de Estados –s 0  S– Estado inicial –I – Alfabeto de entrada –O – Alfabeto de saída –f : S  I  S – Função de próximo estado –h: S  O – Função de saída a

10 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:  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 Finitos Modelo Moore

11 a3 S 11 /d2 S 12 /d1 S 13 /p S 21 /d1S 31 /p S 32 /s1S 22 /p S 23 /s1S 33 /s2 a1 a2 a3 a2a3 a2 a1 a3 a1 a2 a1 a2 a1 a3 Máquinas de Estados Finitos Modelo Moore

12 CSP Communicating Sequential Process

13 CSP n É uma linguagem para a especificação de sistemas concorrentes. n Proposta por C. A. Hoare no começo dos anos 80.

14 CSP n Alfabeto  (P) = {a 0,…. a m } é o conjunto de eventos de P n P::= STOP  SKIP a  P  P | Q  P[]Q  P || A Q  P[b/a]  P[\b]

15 CSP n STOP – um processo que não faz nada é escrito como STOP. n VendingMachine = STOP

16 CSP n Ação Prefixo - a  P n VM 1 =moeda  STOP n VM 2 =moeda  chocolate  STOP

17 Recursão n Muitas vezes estamos interessados em processos que são executados sempre. Podemos, em CSP, especificar este comportamento pela recursão. n VM 3 =moeda  chocolate  VM 3

18 Sistema de Transição Rotulado (Labeled Transition System)

19 Sistema de Transição Rotulado n TS = (S,s 0,L,tran) –S – Conjunto de Estados –s 0 – Estado inicial –L – Conjunto de rótulos –tran  S  L  S, normalmente indicada por s  s’ a

20 Sistema de Transição Rotulado n Sejam dois processos concorrentes A e B n Processo A{Processo B { Enquanto C=T {e4 e1e5 e2} }e3e5}

21 Sistema de Transição Rotulado n Se A e B são dois processos, então n Se A e B são dois processos, então (A||B) representa a execução concorrente de A e B. Processo A =Processo B = (e1 e2 Process A)(e4 e5 Process B) (e1 -> e2 -> Process A)(e4 -> e5 - Process B) Process C = ((Process A || Process B) Process C ) Process C = ((Process A || Process B) -> Process C )

22 Sistema de Transição Rotulado e3 e1 e2 e4 e1 e2 e4 e3 e4 e5 s0 s5s1 s4 s3 s6 s7

23 Composição Paralela Interleaving de Ações think  talk  scratch think  scratch  talk scratch  think  talk 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).

24 Composição Paralela Interleaving de Ações (0,0 ) (0,1 ) (0,2 ) (1,2 ) (1,1)(1,0 ) de CONVERSE de ITCH 3 estados 2 x 3 estados 2 estados ITCH scratch 01

25 Modelando Interações Açõ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.

26 MAKERv2 = (make->ready->used->MAKERv2). USERv2 = (ready->use->used ->USERv2). ||MAKER_USERv2 = (MAKERv2 || USERv2). Modelando Interações Ações Compartilhadas Interação restringe o comportamento global 3 estados 3 x 3 estados? 4 estados

27 Modelando Interações Mú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).

28 modeling interaction - multiple 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:


Carregar ppt "Formalismos para Concorrência Por Paulo Maciel Centro de Informática Universidade Federal de Pernambuco."

Apresentações semelhantes


Anúncios Google