Solução de software mutex
Seminário: Solução de software mutex. Pesquise 861.000+ trabalhos acadêmicosPor: BRUNO • 26/11/2013 • Seminário • 472 Palavras (2 Páginas) • 225 Visualizações
Exclusão mútua solução de software
A solução mais simples para evitar os problemas de compartilhamento é impedir que dois ou mais processos estiver acessando determinado recurso, todos os demais processos deverão esperar pelo término da utilização do recurso.
A exclusão mútua deve afetar apenas os processos concorrentes somente quando um deles estiver fazendo acesso ao recurso compartilhado. A parte do programa onde é feito o acesso compartilhado é denominada REGIÃO CRÍTICA(RC).
Os protocolos de entrada e saída garantem a exclusão mútua da região crítica de um programa.
BEGIN
.
Entra_Regiao_Critica; (* Protocolo de Entrada *)
Regiao_Critica;
Sai_Regiao_Critica; (* Protocolo de saída *)
.
END.
Diversas soluções foram desenvolvidas com esse propósito; porém, duas situações indesejadas também devem ser evitadas.
Espera indefinida e o processo fora da sua região crítica impede que outros entrem nas suas próprias regiões críticas.
Solução de Software
Primeiro Algoritmo – Looping infinito
• Repeat/until
• Variável de bloqueio para liberar o recurso (variável global)
A sequência de comandos, dentro do loop, é formada por um protocolo de entrada, uma região crítica e um protocolo de saída. A região crítica é representada por uma rotina, onde o acesso ao recurso realmente acontece
Limitações
Quando um processo A permanece muito tempo em uma rotina, é possível que um processo B queira executar sua região crítica e não consiga, mesmo eu o processo A não esteja utilizando o recurso.
Segundo Algoritmo
Como o primeiro algoritmo utiliza a mesma variável global entre ambos os processos, o segundo introduz uma variável para cada processo (CA e CB) que indica se o processo está ou não em sua região crítica.
Limitação
Caso um processo tenha um problema dentro da sua região crítica ou antes de alterar a variável, o outro processo ficará indefinidamente bloqueado.
Terceiro Algoritmo
Soluciona o problema do segundo colocando a instrução de atribuição das variáveis antes do LOOP de teste, garantindo a Exclusão Mútua. Porém introduz um novo problema.
Ambos os processos não poderão entrar em suas regiões críticas como se o recurso já estivesse alocado.
Quarto Algoritmo
Altera o estado da variável antes de entrar na sua região crítica, com a possibilidade de ser revertida.
Limitação
O bloqueio simultâneo dos processos
Algoritmo de Dekker
...