Sistemas Concorrentes com CSP e Java - PowerPoint PPT Presentation

About This Presentation
Title:

Sistemas Concorrentes com CSP e Java

Description:

GENTe Sistemas Concorrentes com CSP e Java S rgio Soares – PowerPoint PPT presentation

Number of Views:69
Avg rating:3.0/5.0
Slides: 22
Provided by: Srg57
Category:

less

Transcript and Presenter's Notes

Title: Sistemas Concorrentes com CSP e Java


1
Sistemas Concorrentes com CSP e Java
GENTe
  • Sérgio Soares

2
Objetivos
  • Aproximar especificações de programas
  • gerar código automaticamente a partir de
    especificações

3
Motivação
  • Object-Z
  • linguagem de especificação de alto nível
  • CSP
  • oferece poderosos suportes formais para projeto
    de sistemas distribuídos, logo concorrentes
  • Java
  • difundida linguagem de implementação que da
    suporte à distribuição e concorrência.

4
Concorrência em Java
  • Monitores
  • comandos
  • synchronized
  • wait
  • notify, notifyAll
  • qualificador
  • synchronized

5
Concorrência em Java
class Conta ... synchronized void
credito(double v) saldo saldo v
notifyAll() synchronized void
debito(double v) while (saldo lt v)
wait() saldo saldo - v
6
CSP
  • Interação e comunicação entre processos por meio
    de eventos
  • Descrição da ordem de processamento
  • sincronização total, parcial e interleaving
  • Automatic model checking
  • FDR
  • Especificação formal de processos concorrentes
    e/ou distribuídos

7
CSP
  • Conta(n,s) credito.n?v -gt Conta(n,sv)
  • debito.n?v -gt if(s gt v) then
    Conta(n,s-v)

  • else Conta(n,0)
  • saldo.n!s -gt Conta(n,s)
  • Banco Conta(1, 1000) Conta(2, 500)

8
Jass - Java with assertions
  • Assertions descrevem propriedades que devem ser
    verdadeiras em determinados pontos da execução do
    programa
  • Especificação formal como parte da linguagem
  • Especificação documentada no código
  • Pré e pós condições, invariantes e variantes...

9
Jass - Java with assertions
class Conta ... public void
debito(double v) / require saldo gt
v / // ... / ensure
changeonlysaldo
Old.saldo saldo v /
10
Z
Banco
contas NUMERO ? VALOR
Credito
?Banco c? NUMERO v? VALOR c? ? dom
contas contas contas ? c? ? ((contas c?)v?)
11
Especificação
  • CSP-OZ / CSP-Z
  • Z
  • dados, alterações no estado
  • CSP
  • comunicação entre processos/sistemas,
    concorrência, ordem de execução

12
CSP-OZ
13
CSP-OZ
14
TTT Distribuído
15
CSP-OZ ? Jass
  • CSP-OZ deve ter tipos de dados compatíveis com os
    de Java para automatizar a geração de código
    (assertions e assinatura dos métodos)
  • O corpo dos métodos deve ser implementado
    manualmente

16
CSP-OZ ? Jass
17
CSP-OZ-Jass
18
CSP-OZ-Jass-Java
  • Não garante corretude (matemática) da
    implementação
  • implementação não é automática

19
Limitações
  • Número limitado de canais de comunicação
  • Não descreve sistemas com estruturas de
    comunicação dinâmicas
  • Deve trabalhar com fully synchronized threads
    (dois threads não executam um mesmo método ao
    mesmo tempo)
  • o mecanismo de comunicação de CSP é síncrono

20
Trabalhos futuros
  • Uma extensão de UML
  • linguagem de predicados como Object-Z
  • semântica formal precisa substituindo CSP-OZ
  • Uma ligação mais próxima de especificações em UML
    com programas
  • Pode solucionar a limitação de CSP-OZ em não
    lidar com estruturas de comunicação dinâmicas
  • Tornar Jass parte da linguagem Java oficial

21
Referências
  • Jass Java with assertions, May 1999.
    http//semantik.informatik.uni-oldenburg.de/jass.
  • A. W. Roscoe. The Theory and Practice of
    Concurrency. Prentice-Hall, 1997.
  • Clemens Fischer. Software Development with
    Object-Z, CSP and Java A Pragmatic Link from
    Formal Specifications to Programs.
  • Doug Lea. Concurrent Programming in Java.
Write a Comment
User Comments (0)
About PowerShow.com