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

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

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

1 SVA e SVL Sidney Nogueira e André Didier

2 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=...

3 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

4 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á.

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

6 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; } }

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

8 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

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

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

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

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


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google