1 / 12

SVA e SVL

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 ) e xport FDRHOME=. Roteiro.

tucker
Download Presentation

SVA e SVL

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. SVA e SVL Sidney Nogueira e André Didier

  2. Ambiente • Versão mais nova de sva (sva2) • Descompactar versao mais nova • antrun • Java 1.6 • FDR 2.91 (busca no googlefdr 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 • Exclusão Mútua: no máximo um processo está em sua seção crítica. • Ausência de deadlock e livelock: se dois ou mais processos tentarem entrar em suas seções críticas, pelo menos um terá sucesso • 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. • 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 CS2 { while (true) { in2=true; while (in1) skip; critical section; in1=false; /* exit */ noncritical section; }} • process CS1 { while (true) { in1=true; while (in2) 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]

More Related