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

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

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

Apresentações semelhantes


Apresentação em tema: "Verificando Propriedades de Programas Concorrentes em Java Sérgio Soares."— Transcrição da apresentação:

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

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

3 Flavers - FLow Analysis for VERification of Systems zInicialmente implementado para Ada yprogramas vistos como grafos de fluxo de traces (TFG) ycomponentes do programa vistos como grafos de fluxo de controle (CFG) yo TFG é a composição dos CFGs de cada componente do sistema

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

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

6 Verificando propriedades zPropriedades descritas por FSA 12 3 p1p3 p1 p3 p1,p3 4

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

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

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

10 Feasibility constraint 13 v p2p3 E,p2 E,p3 E,p2,p3 42 E p2,p3

11 Flavers para Java zModelos de comunicacao ybaseados em monitores (Java) yrendezvous (Ada e CSP) zFeasibility constraints representam interações entre threads yinterações entre componentes (threads) não estão representadas no TFG como em ADA

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

13

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 Sérgio Soares."

Apresentações semelhantes


Anúncios Google