1 / 15

Verificando Propriedades de Programas Concorrentes em Java

Verificando Propriedades de Programas Concorrentes em Java. Sérgio Soares. Flavers - FLow Analysis for VERification of Systems. Sistemas concorrentes como um grafo de fluxo Análise de fluxo de dados. Flavers - FLow Analysis for VERification of Systems. Inicialmente implementado para Ada

ardith
Download Presentation

Verificando Propriedades de Programas Concorrentes em Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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

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

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

  6. p1 p3 1 2 3 4 p1 p1,p3 p3 p1,p3 Verificando propriedades • Propriedades descritas por FSA

  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. initial p1 p2 p3 E final Traces inválidos (infeasible paths ) 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. p2 E p3 E,p2 p2,p3 1 3 v 4 2 E,p2,p3 E,p3 E,p2,p3 Feasibility constraint

  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 399-410. ACM press Los Angeles, California, USA, May 1999.

More Related