Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouGabriela Aires Martini Alterado mais de 8 anos atrás
1
Especificação de Sistemas Distribuídos Alexandre Mota/Augusto Sampaio {acm, acas}@cin.ufpe.br
2
Motivação Lidar com tarefas simultaneamente não é simples Memória compartilhada ou troca de mensagens Deadlock, livelock e não-determinismo Especificação muito longe da implementação
3
Objetivo Modelar sistema concorrente e/ou distribuído usando uma linguagem de especificação (CSP) Analisar propriedades dessa especificação Detalhar (refinar) a especificação até chegar em implementação (JCSP/UML-RT)
4
CSP Notação conveniente para modelar sistemas concorrentes Alto nível de abstração Ferramentas para analisar propriedades automaticamente Possui biblioteca para Java (JCSP)
5
Exemplo de CSP Considere o problema do jantar dos filósofos, com 5 filósofos envolvidos PHIL(0) PHIL(1) PHIL(4) PHIL(3) PHIL(2) FORK(0)FORK(1) FORK(2) FORK(4) FORK(3)
6
Exemplo de CSP PHIL(i) = sitdown.i -> pickup.i.inc(i) -> pickup.i.i -> putdown.i.inc(i) -> putdown.i.i -> getup.i -> PHIL(i) FORK(i) = pickup.i.i -> putdown.i.i -> FORK(i) [] pickup.dec(i).i -> putdown.dec(i).i -> FORK(i) PHILS = || i:{0..4} @ [{|...|}] PHIL(i) FORKS = || i:{0..4} @ [{|...|}] FORK(i) COLLEGE = PHILS [ |...| ] FORKS
7
ProBE Será que nossa especificação CSP se comporta como imaginamos? Para saber isso, podemos animar seu comportamento através de ProBE Vamos exercitar o exemplo anterior (dphil.csp) com o ProBE…dphil.csp
8
FDR Será que nossa especificação CSP obedece a requisitos essenciais sobre sistemas concorrentes e distribuídos? Dealock, Livelock e Não-determinismo Vamos investigar nosso exemplo usando o verificador de modelos FDR… FDR
9
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
10
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…
11
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, programa e análise com o Java PathFinder
12
Jantar Filósofos em JCSP
15
Java PathFinder Java PathFinder (JPF) is a system to verify executable Java bytecode programs. In its basic form, it is a Java Virtual Machine (JVM) that is used as an explicit state software model checker, systematically exploring all potential execution paths of a program to find violations of properties like deadlocks or unhandled exceptions (JPF site)
16
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) JPF ProBE, FDR FDR
17
Avaliação Projeto CSP (A) Projeto JCSP (B) Prova (C) Nota = ((A+B)/2+C)/2 Presença requisitada Definir projeto até 03/10/07
18
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.Communicating Sequential Processes Welch, P. Communicating Sequential Processes for Java. 2003.Communicating Sequential Processes for Java CSP.Net QuickStone. JCSP Network Edition. 2004.JCSP Network Edition QuickStone. xCSP Technology. 2004.xCSP Technology
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.