Faculdade de Ciências e Tecnologia Mater Christi
Sistemas de informação
Exclusão mútua
Bruna Rafaella da Costa Moura
Silvana dos Santos Lima
Introdução
Problema
Seções críticas
Exclusão mútua
Algoritmos centralizados
Algoritmos distribuídos
Algoritmos anel
Conclusão
Introdução
 Iremos discutir o problema de garantir
exclusividade de execução para um processo,
em um sistema de processos concorrentes.
Assim como os sistemas centralizados, os
sistemas distribuídos enfrentam o problema de
gerenciar recursos compartilhados sem
comprometer a sua consistência.
Problema
 As instruções envolvidas no acesso a recursos globais
compartilhados são intercaladas pelo escalonador fora
do controle do programador.
 Recursos que não podem ser usados simultaneamente
por diversos processos.
Seção crítica
 Trecho de código de um programa onde as instruções
não podem ser intercaladas com a de outro programa,
onde os dados compartilhados são acessados.
 É o trecho de um programa que deve ser executado
sobre exclusão mútua.
Estrutura típica de um processo
Repeat
entrada da seção crítica;
seção crítica;
saída da seção crítica;
resto do processo;
Until false;
Exclusão mútua
 É uma técnica usada em programação concorrente
para evitar que dois processos ou threads tenham
acesso simultaneamente a um recurso compartilhado,
acesso esse, denominado por seção crítica.
Um algoritmo que implementa exclusão
mútua deve satisfazer os seguintes critérios:
 Exclusão mútua: dado um recurso compartilhado que
pode ser acessado por diversos processos ao mesmo
tempo, somente um processo pode acessar aquele
recurso a qualquer momento.
 Starvation: cada processo que requisita o recurso deve
recebê-lo em algum momento.
Algoritmo centralizado
 Um processo é escolhido para ser o coordenador;
 Cada processo tem que pedir autorização ao coordenador
para entrar na SC;
 Se não existe processo acessando a SC, então o
coordenador pode imediatamente garantir acesso ao
processo que fez a requisição;
 Se mais de um pede acesso à SC, então só um ganha
acesso;
 Após termino de uso, próximo informa coordenador;
 Coordenador então pode liberar SC para outro processo (se
existir)
Algoritmo centralizado
Desvantagens
 Baixa tolerância a falhas, se o coordenador falhar,
possivelmente, todo o sistema falhará.
 O coordenador pode se tornar um gargalo do sistema.
 Processo 1 solicita ao coordenador permissão para
entrar na RC.
 Processo 2 solicita ao coordenador permissão para
entrar na mesma RC. Permissão negada.
 Quando o processo 1 sai da RC, ele avisa ao
coordenador que libera o processo 2.
Algoritmo distribuído
 Se o processo deseja acessar SC, então ele envia uma mensagem
para todos os outros processos
 Mensagem contém:
Identificador do processo
nome da SC que ele deseja acessar
um timestamp único gerado pelo processo que enviou a
mensagem
 Ao receber mensagem processo:
Responde ao processo que enviou mensagem e garante acesso a SC se:
não quer acessar a SC
quer acessar a SC, mas seu timestamp é maior que o timestamp do
processo que enviou a mensagem
Não responde se:
processo que recebeu mensagem está executando na SC
processo está esperando para acessar SC e seu timestamp é menor que
o timestamp do processo que enviou a mensagem
Algoritmo distribuído
Desvantagens
 O único ponto de falha foi substituído por n pontos de
falha;
 O tráfego gerado na rede é muito maior;
 Em sistemas muito grandes todos os processos se tornam
possíveis gargalos;
Algoritmo de token
 Neste método, exclusão mútua é conseguida pelo uso de um token único
que circula entre os processos do sistema
 Um token é uma mensagem especial que dá ao detentor da mensagem
direito de acesso a SC
 Para que o algoritmo seja justo, os processos são organizados em um anel
 O token circula entre os processos no anel sempre na mesma direção
Algoritmo de token
Desvantagens
 Se o token se perder há a necessidade de se criar um novo
 É difícil detectar a perda to token;
 Se algum processo falhar, seu vizinho deve identificar a falha e
removê-lo do anel;
Conclusão
Download

Exclusão mútua - WordPress.com