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

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

Verificando Propriedades de Programas Concorrentes em Java

Apresentações semelhantes


Apresentação em tema: "Verificando Propriedades de Programas Concorrentes em Java"— Transcrição da apresentação:

1 Verificando Propriedades de Programas Concorrentes em Java
Sérgio Soares

2 Flavers - FLow Analysis for VERification of Systems
Sistemas concorrentes como um grafo de fluxo Análise de fluxo de dados

3 Flavers - FLow Analysis for VERification of Systems
Inicialmente implementado para Ada programas vistos como grafos de fluxo de traces (TFG) componentes do programa vistos como grafos de fluxo de controle (CFG) o TFG é a composição dos CFGs de cada componente do sistema Componentes do programa são os módulos de execução independentes (threads)

4 Criando CFGs task body T1 is begin p1; T2.E; end T1; task body T2 is
accept E; p3; end T2; initial initial p2 p1 E E final p3 final

5 Criando o TGF Fluxo de execução MIP (interleaving) rendezvous E
initial p2 p1 E final p3 Fluxo de execução MIP (interleaving) rendezvous

6 Verificando propriedades
Propriedades descritas por FSA 1 2 3 p1 p3 p1,p3 4 Esta propriedade diz que no sistema os procedimentos p1 e p3 deve sempre serem executados e que p3 só pode ser executado após a execução de p1.

7 Verificando propriedades
Uma propriedade se verifica para um programa se: a projeção da linguagem do TFG no alfabeto da propriedade está contida na linguagem da propriedade Data Flow analysis verificar incrementalmente que autômatos verificam propriedades de cada nó de execução do TFG.

8 Traces inválidos (infeasible paths )
initial p2 p1 E final p3 Exemplo de trace inválido: initial, p1, E, final

9 Removendo traces inválidos
Definição de FSAs que modelem restrições semânticas na execução do programa, não contempladas pelo TFG remover infeasible paths (traces não executáveis)

10 Feasibility constraint
1 3 v p2 p3 E,p2 E,p3 E,p2,p3 4 2 E p2,p3

11 Flavers para Java Modelos de comunicacao
baseados em monitores (Java) rendezvous (Ada e CSP) Feasibility constraints representam interações entre threads interações entre componentes (threads) não estão representadas no TFG como em ADA

12 Criando TFGs para programas em Java
Um CFG para cada thread Compor os CFGs com os possíveis interleavings formando o TFG labels na forma: (object, method, thread) (*, method, thread) (object, *, thread) (object, method, *)

13 Criando TFGs para programas em Java

14 Exemplo de Constraint

15 Referências Gleb Naumovich, George S. Avrunin, and Lori A. Clarke. Data Flow Analysis for Checking Properties of Concorrent Java Programs. In 21st International Conference on Software Engineering, pages ACM press Los Angeles, California, USA, May 1999.


Carregar ppt "Verificando Propriedades de Programas Concorrentes em Java"

Apresentações semelhantes


Anúncios Google