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

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

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

Apresentações semelhantes


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

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

13

14

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


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

Apresentações semelhantes


Anúncios Google