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

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

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.

Apresentações semelhantes


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

1 SVA e SVL Sidney Nogueira e André Didier

2 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

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

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

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

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


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

Apresentações semelhantes


Anúncios Google