Carregar apresentação
A apresentação está carregando. Por favor, espere
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.