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

Slides:



Advertisements
Apresentações semelhantes
Diagrama de Atividades
Advertisements

IA Importância da IA em jogos Aplicações.
Marco Antonio Montebello Júnior
Desenvolvimento de Sistemas Baseado na Transformação de Modelos
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Máquina de.
Prof. Yandre Maldonado e Gomes da Costa
Dep. Eng. Electrotécnica Diagramas de controle de execução.
Finite State Machines.
Simulador de uma "Coke Machine" utilizando Coke Machine Simulator
Towards Specification, Modelling and Analysis of Fault Tolerance in Self Managed Systems Jeff Magee Imperial College London, London, UK Tom Maibaum McMaster.
Professora: Aline Vasconcelos IF Fluminense
Análise de Circuitos Sequenciais Síncronos
Curso UML Diagramas de Atividade
Linguagem de Prog. e Programas
Máquina de Estados Uma máquina de estados finitos ou autômato finito é uma modelagem de um comportamento composto por estados, transições e ações Um estado.
Máquina de Estados Uma máquina de estados finitos ou autômato finito é uma modelagem de um comportamento composto por estados, transições e ações Um estado.
Processadores – Aula 3 Professor: André Luis Meneses Silva
UML - Unified Modeling Language
Máquina de Estados Finito
UML - Unified Modeling Language
Diagrama de Atividades
Prof.Corradi Finite State Machines.
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Índice SUMÁRIO Introdução ao projeto de lógica seqüencial.
1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 12. Estados Objetivo: compreender a notação do diagrama de estados.
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Álgebras de Processo (FSP e CSP)
Uma introdução ao seu funcionamento
Diagrama de Atividades
Professores: Artulanez Juccelino Silas
Alexandre Mota/Augusto Sampaio {acm,
Redes de Petri 1° Exercício
Alexandre Mota Introdução a CSP Alexandre Mota
Redes de Petri 1° Exercício
CSP: Semântica e Refinamento
Diagramas de Atividade
ENGA78 – Síntese de Circuitos Digitais
Autómatos de Pilha. UM NOVO MODELO PARA OS AUTÓMATOS FINITOS As linguagens regulares são aceites por autómatos finitos. E as linguagens não regulares?
Especificação, Modelação e Projecto de Sistemas Embutidos / 2009.
Inteligência Artificial
CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa
SFC (Sequential Flow Chart) Diagrama Funcional Seqüencial
Unified Modeling Language Professor Mário Dantas A NÁLISE O RIENTADA A O BJETOS Nov/2010.
SISTEMAS OPERACIONAIS I
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos.
Aplicações com flip-flops
Formalismos para Concorrência Por Paulo Maciel Centro de Informática Universidade Federal de Pernambuco.
Prof. André Luis Roland Tancredo Engenheiro da Computação e Pesquisador em Desenvolvimento Tecnológico para Semicondutores pelo CNPq Especialista em Microeletrônica.
CIn.ufpe.br CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa.
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Operadores Básicos.
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Modelos Semânticos e Noções de Refinamento.
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Entrelaçamento e Composição Paralela Generalizada.
Métodos Formais Juan Andrés Mussini.
1 Hiding, Renomeação, Composição Seqüencial e Refinamento Alexandre Mota
Paralelismo Alexandre Mota Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes.
UML Statechart CIn-UFPE.
Alexandre Mota Breve introdução à CSO (Communicating Scala Objects)
Adalberto Farias Alexandre Mota Augusto Sampaio
Eletrônica Digital II ELT013
Aula 6 1 Análise Lexical Compiladores, Aula Nº 6 João M. P. Cardoso.
Disciplina: Lógica de Programação
Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo.
Fundamentos de Engenharia de SW Diagramas da UML Usados no Projeto de Software.
Máquinas de Estados Finitos (cont)
Introdução às Máquinas de Estados Finitos (Finite State Machine - FSM)
Análise e Conceção de Sistemas
18/09/ /12/20082 Testes Baseados Em Modelo Diana Rúbia Paulo César Qualidade, Processos e Gestão de Software Alexandre Vasconcelos {drrr, pco,
Cap. V – Análise e Síntese de Circuitos Sequenciais Síncronos
PROBE – CSP Animator FDR – CSP Model Checker Adalberto Farias Alexandre Mota Augusto Sampaio.
Transcrição da apresentação:

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

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.

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

Máquinas de Estados Finitos (Finite State Machines)

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

Máquinas de Estados Finitos Modelo Mealy n FSM= (S,I,O,f,h) –Impossibilidade da modelagem direta da 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:  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

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

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

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

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

CSP Communicating Sequential Process

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

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]

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

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

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

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

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

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}

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 )

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

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

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

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.

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

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

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: