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

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

Programação Funcional
SISTEMAS OPERACIONAIS (SO) Aula 5 Luciana A. F. Martimiano 2002
Pesquisa de Informação
Pearson Education Slide 1. Pearson Education Slide 2 Capítulo 2 Criado por Frederick H. Colclough, Colorado Technical University Fluxo de Controle.
VHDL Linguagem de Descrição e Síntese de Circuitos Digitais
Linguagens de Programação Orientadas a Objetos
Universidade Federal do Pará Serviço Público Federal Centro de Ciências Exatas e Naturais Departamento de Informática Abril/2001.
Prof. Heloise Manica Paris Teixeira
Monitores.
JavaCC e JJTree Geração de compiladores implementados em Java
9 Controle de fluxo Seqüenciadores. Jumps. Escapes. Exceções.
Hardware Description Language (HDL)
7 Abstração Genérica Unidades genéricas e instanciação.
Sintaxe de Fortran 25/abril/2006. Comandos Fortran PROGRAM PRINT READ STOP END.
Paradigmas da Programação
Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos
Sincronização e Comunicação entre Processos
Robson Godoi / Sandra Siebra
Tópicos Tipos de Dados Variáveis por Valor Variáveis por Referência
Universidade do Vale do Rio dos Sinos - São Leopoldo -
João Lucas de Oliveira Torres
Linguagem de Expressão (EL)
Unidade 3 Controle de Concorrência
Aula Prática 4 Monitoria IP/CC (~if669).
SVA e SVL Sidney Nogueira e André Didier. Roteiro Criar um algoritmo usando seções atômicas. Verificar as propriedades de seção crítica. – Usar diretiva.
Matlab Mini Curso PET 2012.
Estruturas de Controle entre Instruções
Teoria e Implementação de Linguagens Computacionais – IF688
Detalhes sobre o curso
Alexandre Mota/Augusto Sampaio {acm,
Paradigmas de Linguagens de Programação Linguagem Imperativa 1
Geração de Código Intermediário
Adalberto Farias Alexandre Mota
Modelos de Paradigmas de programação
Linguagem de Programação JAVA
Estruturas de Dados Aula 9: Listas (parte 1)
Introdução à Programação Orientada a Objetos com Java Paulo Borba Centro de Informática Universidade Federal de Pernambuco Programação Imperativa (e Ponteiros.
Capítulo III Modularização Procedimentos e Funções Universidade Federal de São Carlos Departamento de Computação Aluna: Luanna Lopes Lobato
Linguagem Pascal Prof. Sérgio Rodrigues.
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa
SVA e SVL Sidney Nogueira e André Didier. Ambiente Versão mais nova de sva (sva2) – Descompactar versao mais nova ant run Java 1.6 FDR 2.91 (busca no.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota (com material da Qualiti Software Process)
Roteiro Rodando FDR e Probe Dicas de uso das ferramentas.
Aula Prática de ESD ( Usando FDR e Probe Sidney Nogueira Última atualização: 01/05/10.
Modelos de sistema: Larch Linguagem de especificação algébrica: Larch Arthur Bispo de Castro ra Luciano Antonio Digiampietri ra
Laboratório I Mateus Raeder. Mateus Raeder – maio de 2010 Arrays  Variável: armazena apenas um valor  Como criar em uma única variável, espaço para.
1 Communicating Sequential Processes (CSP) MO409 – Eng. de Software Profa. Eliane Martins Fernando J. C. de Lima F o - RA Rodrigo Teruo Tomita –
Aula Prática 5 Monitoria IP/CC (~if669). Roteiro 1. 1.Recursão 2. 2.Escopo de Variáveis 3. 3.Arrays 4. 4.Strings.
Recursividade Profs. De Prog2 e Lab2.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Semântica de Linguagens de Programação
Aula Prática de ESD (
Introdução a VHDL Monitoria de Digitais.
Video Capítulo 7: Sincronização de Processos. Silberschatz, Galvin and Gagne  Video Operating System Concepts Assuntos n Cenário n O problema.
Arquivos. Motivação Imagine dar entrada (digitar), a cada execução do programa, em todos os dados de um sistema. por exemplo, todos os registro de livros.
Programação de Computadores - 1
Paradigmas de Linguagens de Programação Conceitos da Linguagem Imperativa 1 Augusto Sampaio e Paulo Borba Centro de Informática Universidade Federal de.
Semântica de Ações Conceitos Básicos de Semântica de Ações, Especificações em Semântica de Ações, Primeiros Exemplos de Ações, WebAni.
Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos Parte 2.
Adalberto Farias Alexandre Mota Augusto Sampaio
OCLE Object Constraint Language Environment Fábio Moura CIn-UFPE.
Array e ArrayList LPOO – 01/09/14.
Computadores vs. Programas / Algoritmos Computadores vs. Programas -> Algoritmos O tratamento de problemas através do computador geralmente envolve uma.
MATA56 Tipos, Verificação de Tipos Agenda Objetivo desta aula: Introduzir os principais aspectos semânticos de variáveis Palavras-chave – nomes.
Especificação de Sistemas Distribuídos Alexandre Mota/Augusto Sampaio {acm,
PROBE – CSP Animator FDR – CSP Model Checker Adalberto Farias Alexandre Mota Augusto Sampaio.
ProgramaçãoConcorrente Glêdson Elias
Transcrição da apresentação:

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

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

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

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

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 { }

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

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

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

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

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

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 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

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(( >, (,<>)))

Exclusão Mútua de Hyman (Propriedades)

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