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.

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

Sistemas Operacionais
Sistemas Operacionais Sincronismo e Comunicação entre processos
SISTEMAS OPERACIONAIS (SO) Aula 5 Luciana A. F. Martimiano 2002
Estruturas de Repetição
Sistema Operacional Sincronização e Comunicação entre Processos
Introdução a Algoritmos Seqüenciais
Conceitos de Programação Paralela - 2
Capítulo 6: Sincronização de Processos
Capítulo 7: Deadlocks.
Sistemas Operacionais II
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Aulas.
EQUAÇÕES POLINOMIAIS Prof. Marlon.
SISTEMAS LINEARES II Prof. Marlon.
Sincronização de Processos (3) Exercícios - Semáforos
Sincronização de Processos (3)
Sincronização de Processos (2)
Exclusão Mútua A solução mais simples para evitar os problemas de compartilhamento é impedir que dois ou mais processos estiver acessando determinado recurso,
O Portal do Estudante de Computação
Patrícia Muniz Ferreira Sidney Nogueira
Monitores.
Unidade 3 Controle de Concorrência
Aula prática 8 Ponteiros Monitoria de Introdução à Programação
Aula prática 6 Vetores e Matrizes
PROGRAMAÇÃO ESTRUTURADA II
FTIN Formação Técnica em Informática
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.
Seminário 1: Revisão de C
Instituto de Aplicação Fernando Rodrigues da Silveira (CAp/UERJ)
Subset Sum Algoritmos e Estruturas de Dados – IF672
Sistemas Concorrentes Capítulo 03 – OMP
Alexandre Mota/Augusto Sampaio {acm,
CSP: Semântica e Refinamento
Algoritmo e Programação
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
Bruna Rafaella da Costa Moura Silvana dos Santos Lima
SISTEMAS LINEARES Prof. Moacir.
Programação de PIC em C Exposição das funções básicas para
JAVASCRIPT Tutorial Básico Aden Soares OBS: NÃO CONFUNDIR JAVASCRIPT COM JAVA ► O que é JavaScript? É uma linguagem de programação utilizada para.
Roteiro Rodando FDR e Probe Dicas de uso das ferramentas.
Capítulo VI – Variáveis Indexadas 6.1 – A necessidade de variáveis indexadas 6.2 – Vetores e matrizes 6.3 – Aplicações com vetores numéricos 6.4 – Aplicações.
Aula Prática de ESD ( Usando FDR e Probe Sidney Nogueira Última atualização: 01/05/10.
Shared Variables Analyser (SVA) Ferramenta desenvolvida pelo Computing Laboratory (Oxford University) Analisa programas concorrentes com variáveis compartilhadas.
Aula Prática: A Ferramenta ZANS
Sistemas Distribuídos Aula 04 – Programação Multithread/Paralela
Aula Prática de ESD (
©André Santos, Concorrência: Sincronização de fina granularidade II André Santos CIn-UFPE.
Escalonamento de Tarefas com Compartilhamento de Recursos André Luis Meneses Silva.
Video Capítulo 7: Sincronização de Processos. Silberschatz, Galvin and Gagne  Video Operating System Concepts Assuntos n Cenário n O problema.
ALGORITMIA. ALGORITMO Conjunto de instruções ou acções que ao serem executadas, permitirão realizar uma determinada tarefa.
1 Design Pattern Double Checked Locking. 2 Design Pattern Apresenta soluções para problemas que ocorrem repetidamente em nosso ambiente computacional.
Programas e Refinamento Programming from Specifications Carroll Morgan Prentice-Hall, 1994 [Capítulo 1] Equipe: Klaus Cavalcante Tarcísio Quirino Raquel.
©André Santos, Concorrência: Sincronização de fina granularidade André Santos CIn-UFPE.
1 Hiding, Renomeação, Composição Seqüencial e Refinamento Alexandre Mota
Curso Técnico em Informática Professor Igor Vale.
Prof. Renato de Oliveira Bastos
Linguagens de Programação
Linguagens de Programação
Interpretação do Teorema de Herbrand
Comandos de Repetição (While, Do..While e For)
Felipe Nunes Flores – Programa de Educação Tutorial.
Programação Concorrente
CONDICIONAL IF Desenvolvido pelo Mestrando Rodrigo Moreira Barreto – VHLab (Virtual Humans Simulation Laboratory – PUCRS) 1 Desenvolvido por: Rodrigo Moreira.
Faculdade Pernambucana - FAPE Sistemas Operacionais Prof. Flávio Gonçalves da Rocha.
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
Sistemas Operacionais Sincronização e Comunicação Introdução Aplicações concorrentes (mecanismos de sincronização: variáveis compartilhadas e troca de.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner.
ProgramaçãoConcorrente Glêdson Elias
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Transcrição da apresentação:

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 google fdr 2.91 oxford) – export FDRHOME=...

Roteiro Criar um algoritmo usando seções atômicas. Verificar as propriedades de seção crítica. – Usar diretiva da linguagem Reescrever o algoritmo sem o auxílio das seções atômicas. Verificar as mesmas propriedades de antes. – Algoritmo tie-breaker – Modificação no algoritmo para atender às propriedades de acesso à seção crítica

Propriedades de seção crítica 1.Exclusão Mútua: no máximo um processo está em sua seção crítica. 2.Ausência de deadlock e livelock: se dois ou mais processos tentarem entrar em suas seções críticas, pelo menos um terá sucesso 3.Ausência de atraso desnecessário: se um processo estiver tentando entrar em sua seção crítica e os outros estiverem em seções não-críticas ou tiverem terminado, então o primeiro processo não é impedido de entrar em sua seção crítica. 4.Entrada eventual: Um processo tentando entrar em sua seção crítica eventualmente conseguirá.

Diretiva atomic Crie uma especificação que compartilha uma variável compartilhada count. A especificação deve apenas incrementar e decrementar essa variável. O processo deve ter acesso exclusivo para que a ordem de leitura ou escrita não altere o resultado: count deve ser menor ou igual a 1. Use a diretiva atomic de SVL.

Algoritmo de seção crítica Substitua a diretiva atomic pelo algoritmo tie-breaker visto em aula: Verifique que a propriedade de count ser menor ou igual a 1 continua sendo satisfeita. Pergunta-se: por que essa solução não atende às propriedades de seção crítica? Como identificar o problema com SVA e resolvê-lo? process CS1 { while (true) { in1=true; while (in2) skip; critical section; in1=false; /* exit */ noncritical section; } } process CS2 { while (true) { in2=true; while (in1) skip; critical section; in1=false; /* exit */ noncritical section; } }

Resolução do deadlock Uso da variável last. process CS1 { while (true) { in1=true; last=1; while (in2 and last==1) skip; critical section; in1=false; noncritical section; } process CS2 { while (true) { in2=true; last=2; while (in1 and last==2) skip; critical section; in2=false; noncritical section; }

Verificando refinamentos extatomic.csp Verificar refinamentos entre PP e QQ – Contexto sequencial – Ext_atomic = true/false Escreva – um programa RR que refine PP e QQ no contexto geral com ext_atomic = false – um programa TT o mais simples que refina todos acima, porém não é refinado por nenhum outro

Bakery BakeryDraft.csp Ver se com maxD refina a especificação %SPEC = css?i -> cse!i -> SPEC Trocar maxD por MaxB Verificar novamente

Refinando máximos Verificar com SVA quais implementações são refinamentos uma da outra (ver o porque) – MaxA – MaxB – MaxC – MaxD

CSP vs CSP de SVA mappingSample.csp Incluir processo P(i) e verificar em SVA se P(i) equivale a Psva(i)

Invariante Verifique em SVL se o invariante a seguir é válido nas implementações de Max – turn[i]’>= turn[i]