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

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

Shared Variables Analyser (SVA) Ferramenta desenvolvida pelo Computing Laboratory (Oxford University) Analisa programas concorrentes com variáveis compartilhadas.

Apresentações semelhantes


Apresentação em tema: "Shared Variables Analyser (SVA) Ferramenta desenvolvida pelo Computing Laboratory (Oxford University) Analisa programas concorrentes com variáveis compartilhadas."— Transcrição da apresentação:

1 Shared Variables Analyser (SVA) Ferramenta desenvolvida pelo Computing Laboratory (Oxford University) Analisa programas concorrentes com variáveis compartilhadas – Simula programas através de uma rede processos CSP – Análise é realizada por FDR de forma transparente Front-end da ferramenta implementado em Java

2 Fluxo de SVA Programa + propriedades (Shared Variables Language) Programa + propriedades (Shared Variables Language) Representação intermediária (CSP M ) Representação intermediária (CSP M ) Java Parser Compilador escrito em CSP M + Análise de refinamentos com FDR Resultado das análises (GUI/log) input.sva output.csp results share2priorities.csp

3 Rodando SVA Pré-requisitos: Java 1.6 e FDR2 no PATH Pacote da ferramenta (sva.tar) Compilador share2priorities.csp deve estar no diretório Rodando interface – java InterpreterGUI in.sva Traduz in.sva para output.csp e roda GUI. Resultados armazenados em results

4 GUI Lista de propriedades Informações de debug Verificar propriedades

5 Programa em SVL Tipos são inteiros e booleanos Setup: – atomicidade de expressões – tamanho máximo dos arrays (estáticos) – faixa de valores (se ultrapassado exceção é lançada) Contém variáveis, constantes e sinais É uma lista de processos que podem ser parâmetrizados por inteiros Processo é uma lista de comandos separados por ; – cada comando é delimitado entre { }

6 Exclusão Mútua de Hyman (Setup de SVL) %atomic_exprs = false %sba = 3 %sia = 0 %MinI = 0 %MaxI = 3 %InitI = MinI %InitB = false declarações precedidas por % não são traduzidas pelo compilador se expressões são atômicas se expressões são atômicas tamanho de arrays booleanos e inteiros mínimo e máximo para inteiros valor default para inteiros e booleanos

7 Exclusão Mútua de Hyman em SVL int count,t=1; bool[] b; sig mutexerror; P(i) = {iter {b[i] := true; while !(t = i) do {while b[3-i] do skip; t := i }; count := count + 1; if count > 1 then sig(mutexerror); count := count -1; b[i] := false; } Prog = sinal (evento) variáveis inteiras array de booleanos mesmo que: while true do {} processo programa

8 Exclusão Mútua de Hyman (Representação intermediária) P(i) = Iter.Sq.( Bassign.(BA.1.i,True), Sq.(While.(Not.Eq.IVar.I.2.Const.i, Sq.(While.(BVar.BA.1.(3-i),Skip), Iassign.(I.2,Const.i)) ), Sq.(Iassign.(I.1,Plus.IVar.I.1.Const.1), Sq.(Cond.(Gt.IVar.I.1.Const.1, Sig.mutexerror,Skip), Sq.(Iassign.(I.1, Minus.IVar.I.1.Const.1), Bassign.(BA.1.i,False))) ) Prog = Compile(( >, (,<>))) b[i] := true while !(t = i)... while b[3-i]... t := i count := count + 1 if count > 0... count := count =1 b[i] := true t = 1

9 Verificando Propriedades do Programa Validade de expressões booleanas (BEXPR) – assert always BEXPR in PROGRAM – assert never BEXPR in PROGRAM Presença de sinais durante a execução – assert nosignal { SIGNALS } in PROGRAM Sinal outofrange – exceção levantada quando o valor de uma expressão inteira extrapola os limites especificados

10 Exclusão Mútua de Hyman (Propriedades) Propriedade em SVL assert nosignal {outofrange, mutexerror} in Prog Propriedade em CSPM assert CHAOS(diff(Events,{|outofrangeT, mutexerrorT|})) [T= Prog

11 Exclusão Mútua de Hyman (Propriedades) Checking output.csp Checking CHAOS(diff(Events,{|outofr angeT,mutexerrorT|})) [T= Prog xfalse BEGIN TRACE example=0 process=1 bvwriteT.BA.1.2.true.0 breq.BE.1 ivevalT.I.2.1.0 beval.BE.1.true bvevalT.BA.1.1.false.0... mutexerrorT.1 END TRACE example=0 process=1 Log de FDR (results) Debug do log Pelo log vemos: (1) expressões não são atômicas, (2) leitura e escrita de variáveis são atômicas

12 Exclusão Mútua de Hyman (Propriedades) Propriedade em SVL assert never (count > 1) in Prog Propriedade em CSPM assert CHAOS(diff(Events, {|assertionfailedT|})) [T= Compile(( >, (,<>)))

13 Exclusão Mútua de Hyman (Propriedades)

14 Referências A. W. Roscoe. Compiling Shared Variable Programs into CSP. In Proceedings of PROGRESS workshop 2001, 2001. A. W. Roscoe and D. Hopkins. Sva, a tool for analysing shared-variable programms. In Proceedings of AVoCS 2007, pages 177–183, 2007. Ferramenta e artigos em http://web.comlab.ox.ac.uk/activities/concurrenc y/tools/sva/ http://web.comlab.ox.ac.uk/activities/concurrenc y/tools/sva/


Carregar ppt "Shared Variables Analyser (SVA) Ferramenta desenvolvida pelo Computing Laboratory (Oxford University) Analisa programas concorrentes com variáveis compartilhadas."

Apresentações semelhantes


Anúncios Google