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

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

Programação Concorrente e Distribuída/Especificação de Sistemas Distribuídos Alexandre Mota/Augusto Sampaio {acm,

Apresentações semelhantes


Apresentação em tema: "Programação Concorrente e Distribuída/Especificação de Sistemas Distribuídos Alexandre Mota/Augusto Sampaio {acm,"— Transcrição da apresentação:

1 Programação Concorrente e Distribuída/Especificação de Sistemas Distribuídos Alexandre Mota/Augusto Sampaio {acm,

2 Motivação Lidar simultaneamente com várias tarefas não é simples Memória compartilhada ou troca de mensagens Deadlock, livelock e não-determinismo Especificação muito longe da implementação Programação é complicada devido aos detalhes e possíveis erros

3 Objetivo Introduzir alguns conceitos fundamentais Concorrência com memória compartilhada Modelar sistema concorrente e/ou distribuído usando linguagem de especificação CSP Analisar suas propriedades Detalhar (refinar) a especificação até chegar em implementação (JCSP/UML- RT)

4 Conceitos fundamentais

5 15/08/2014 Programação Concorrente e Distribuída5 Conceitos Fundamentais Programa concorrente 2 ou mais processos trabalham simultaneamente para realizar tarefa Processo É um programa seqüencial (seqüência de comandos executados um após o outro)

6 15/08/2014 Programação Concorrente e Distribuída6 Programas Concorrentes Processos comunicam-se através de Variáveis compartilhadas Passagem de mensagens E sincronizam por Exclusão mútua Seções críticas não devem executar ao mesmo tempo Sincronização condicional Retarda um processo até uma dada condição ser true

7 Comunicação Passagem de mensagens Modelo de mais alto nível Erros são mais simples de resolver Baixa performance em geral Compartilhamento de memória Modelo de mais baixo nível Erros são mais delicados de resolver Alta performance

8 15/8/2014 Programação Concorrente e Distribuída8 Conceitos Fundamentais Ação Atômica Ações indivisíveis que acessam ou alteram o estado do programa Load/store (memória) Instrução de máquina que não pode ser interrompida Processo: seqüência de comandos Comando: seqüência de ações atômicas

9 15/8/2014 Programação Concorrente e Distribuída9 Conceitos Fundamentais História (trace) Execução particular de um Prog. Conc. pode ser vista como uma história Interleaving de seqüências de ações executadas por cada processo Sejam s0 um estado inicial, sn um estado subseqüente e  uma transição causada por uma açao atômica s0  s1 ...  sn Execução paralela pode ser modelada como uma história linear

10 15/8/2014 Programação Concorrente e Distribuída10 Propriedades Fato verificado em todas as histórias Tipos Propriedades de segurança Nunca entra em um estado ruim Propriedades de liveness Eventualmente um estado bom é alcançado

11 15/8/2014 Programação Concorrente e Distribuída11 Propriedades Segurança Corretude Parcial Estado final está correto Se o programa terminar Liveness Terminação Todo laço e chamada de procedimento terminam (toda história é finita) Corretude Total Combina a parcial com terminação Sempre termina com uma resposta correta

12 Concorrência com Memória Compartilhada Seção crítica/exclusão mútua Spin locks Barreiras Semáforos Monitores

13 Desenvolvendo Sistemas Concorrentes e Seguros

14 CSP Notação conveniente para modelar sistemas concorrentes Alto nível de abstração Ferramentas para analisar propriedades automaticamente Possui biblioteca para Java (JCSP)

15 gCSP

16 ProBE (Animador de CSP)

17 FDR (Analisador de CSP)

18

19 Projeto 1 Escolher sistema concorrente para ser especificado A partir da modelagem, estudar as seguintes propriedades clássicas: deadlock, livelock e determinismo Na presença indesejável, ajustar o modelo Resultado: modelo e análises básicas

20 Jantar dos Filósofos em CSP

21 JCSP Biblioteca para Java que suporta CSP Programação concorrente elegante Possível usar memória compartilhada/passagem de mensagens Todos os recursos de Java Talvez requeira refinamento Ou UML-RT…

22 Projeto 2 A partir do modelo em CSP, implementar em JCSP Adicionar à implementação requisitos não- funcionais Portanto, o projeto deve ser desafiador e não meramente teórico Pode usar dos conceitos usados nos fundamentos Resultado: documentação de descrição e programa

23 Jantar Filósofos em JCSP

24

25

26 Desenvolvendo o Sistema AnáliseProjeto Implementação (CSP) … (JCSP) (UML-RT)(Java) Projeto baseado em Refinamento Análise automática de propriedades {deadlock, livelock, determinismo} (CSP.Net)

27 Avaliação Projeto CSP (A) Projeto JCSP (B) Prova (C) Nota = ((A+B)/2+C)/2 Presença requisitada Definir projeto até 20/08/09

28 Referências Andrews, G.R. Multithreaded, Parallel, and Distributed Programming. Addison-Wesley, Roscoe, A.W. The Theory and Practice of Concurrency. Prentice-Hall, Hoare, C.A.R. Communicating Sequential Processes. Prentice-Hall, 1985.Communicating Sequential Processes Welch, P. Communicating Sequential Processes for Java Communicating Sequential Processes for Java CSP.Net QuickStone. JCSP Network Edition JCSP Network Edition QuickStone. xCSP Technology xCSP Technology


Carregar ppt "Programação Concorrente e Distribuída/Especificação de Sistemas Distribuídos Alexandre Mota/Augusto Sampaio {acm,"

Apresentações semelhantes


Anúncios Google