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

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

Alexandre Mota/Augusto Sampaio {acm,

Apresentações semelhantes


Apresentação em tema: "Alexandre Mota/Augusto Sampaio {acm,"— Transcrição da apresentação:

1 Alexandre Mota/Augusto Sampaio {acm, acas}@cin.ufpe.br
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 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) 05/04/2017 Programação Concorrente e Distribuída

6 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 05/04/2017 Programação Concorrente e Distribuída

7 Comunicação Passagem de mensagens Compartilhamento de memória
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 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 05/04/2017 Programação Concorrente e Distribuída

9 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 Why can it be modeled in such a way 05/04/2017 Programação Concorrente e Distribuída

10 Programação Concorrente e Distribuída
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 05/04/2017 Programação Concorrente e Distribuída

11 Programação Concorrente e Distribuída
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 05/04/2017 Programação Concorrente e Distribuída

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 FDR (Analisador de CSP)

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 Ou UML-RT… 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 Jantar Filósofos em JCSP

25 Jantar Filósofos em JCSP

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

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, 2000. Roscoe, A.W. The Theory and Practice of Concurrency. Prentice-Hall, 1998. Hoare, C.A.R. Communicating Sequential Processes. Prentice-Hall, 1985. Welch, P. Communicating Sequential Processes for Java CSP.Net QuickStone. JCSP Network Edition QuickStone. xCSP Technology


Carregar ppt "Alexandre Mota/Augusto Sampaio {acm,"

Apresentações semelhantes


Anúncios Google