SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Sistemas Distribuídos II
Parte 03
Exclusão Mútua
Introdução
• Assim como em sistemas centralizados, os sistemas
distribuídos enfrentam o problema de gerenciar
recursos compartilhados sem comprometer sua
consistência
– Dois ou mais processos não podem acessar dados
compartilhados ao mesmo tempo
– Ou seja, o acesso é feito por meio de “exclusão
mútua”
Introdução
• Em sistemas centralizados criou-se o conceito de
“região crítica”, que funciona da seguinte forma:
– Para que um processo seja autorizado a entrar no estado de
região crítica, nenhum outro processo pode fazer isso
– Deste modo fica garantida a exclusão mútua em um recurso
compartilhado
– Os sistemas centralizados mantém esta estrutura de acesso
funcionando por meio de mecanismos como semáforos,
monitores e outras soluções similares
Introdução
• Qual o problema em usar essas soluções nos SDs?
– Todas estas soluções se baseiam na existência de:
• Relógio único: Os eventos em cada processo acontecem
sincronizados pelo mesmo relógio
• Memória compartilhada: Toda a informação de controle
armazenada na memória compartilhada está facilmente
disponível para qualquer processo envolvido
– Em sistemas distribuídos não meios de garantir que
nenhuma das duas condições vá acontecer
Introdução(cont.)
• É preciso implementar outro tipo de solução
baseada na forma de comunicação adotada: a troca
de mensagens
– Mas as características de exclusão mútua e região crítica
devem ser preservadas
Como você resolveria o problema de exclusão mútua e
região crítica sem abrir mão das suas características
fundamentais?
- Discuta propostas em sala
Soluções para Exclusão Mútua
• Veremos três possibilidades:
– Opção 1: Algoritmo Centralizado
• Uma implementação usando troca de mensagens, mas mantendo
as mesmas características de ambientes monoprocessados
– Opção 2: Algoritmo Distribuído
• Uma alternativa que elimina a centralização característica da
opção 1
– Opção 3: Algoritmo em Anel
• Outra solução descentralizada, mas com abordagem diferente da
opção 2
Algoritmo Centralizado
• Objetivo
– Simular a metodologia de um sistemas
monoprocessado, ou seja, centralizar o controle
em um processo coordenador
• Existem várias formas de se obter um coordenador,
mas o algoritmo não se preocupa em exigir uma única
forma de fazer isso, apenas deve garantir a existência
do coordenador e um funcionamento padronizado
perante os processos que interagem com ele
Algoritmo Centralizado
• Preparação
– É preciso existir um processo coordenador para este
algoritmo. O coordenador pode ser:
• Estático:
– existir de forma independente, sem ter sua existência
vinculada a uma única situação de exclusão mútua
(prestando apenas o serviço de coordenação)
• Eleito:
– Eleito pelos processo participantes usando um algoritmo
distribuído (o funcionamento do algoritmo será discutido
futuramente)
– O critério usado na eleição não vem ao caso (endereço de
rede, identificação do processo, idade do processo,...)
Algoritmo Centralizado
• Funcionamento
– Quando um processo deseja entrar em região crítica ele
envia uma mensagem para o coordenador solicitando
permissão
• Se nenhum outro processo estiver executando sua
região crítica o coordenador envia uma mensagem de
resposta ao solicitante autorizando a entrada em
região crítica
• Se algum processo estiver executando a região crítica
– O coordenador não responde
– O processo solicitante fica aguardando a resposta
– A requisição do processo solicitante é colocada em
uma fila
Algoritmo Centralizado
• Funcionamento (cont.)
– Quando o processo deixa a região crítica ele envia uma
mensagem ao coordenador abrindo mão de seu acesso
– O coordenador envia uma mensagem concedendo a
permissão ao primeiro processo da fila
Algoritmo Centralizado (cont.)
• Características do algoritmo:
– É justo
• Requisições são atendidas por ordem de chegada
– Nenhum processo espera indefinidamente
• A menos que ocorra algum tipo de falha, o que não faz
parte do funcionamento normal do algoritmo
– É fácil de ser implementado:
• Necessita de apenas 3 mensagens (requisição,
permissão e liberação) para se garantir o acesso a
determinada região crítica
Algoritmo Centralizado (cont.)
• Problemas do algoritmo:
– O coordenador é um ponto único de falha, o que
é uma condição indesejável em um SD
– Se coordenador não responde em caso de
permissão negada:
• Processos bloqueados não têm como distinguir a
situação “coordenador fora do ar” da situação
“permissão de acesso negado”
– Para sistemas muito grandes:
• um único coordenador pode degradar a performance
do sistema (gargalo)
Algoritmo Centralizado
• IMPORTANTE:
– A descrição do funcionamento dos algoritmos de
exclusão mútua (todos – não apenas o
centralizado) consideram uma situação ideal,
onde não está prevista a ocorrência de falhas nas
entregas das mensagens ou término anormal de
processos.
– O tratamento de possíveis falhas varia de acordo
com a implementação de cada solução, mas na
maioria das vezes se baseia em controle de
timeout e retransmissão de mensagens
Algoritmo Distribuído
• Funcionamento:
– Quando um processo deseja entrar em uma
região crítica, envia mensagem para todos os
processos (inclusive ele próprio) contendo o
nome da região crítica, seu próprio número
(identificação) e o tempo corrente
– (continua)
Algoritmo Distribuído
• Funcionamento (cont.):
– Quando um processo recebe uma mensagem de
requisição:
• Se o receptor não estiver executando a região
crítica e não deseja executar:
– Envia de volta ao transmissor um mensagem de OK
• Se o receptor estiver executando a região
crítica:
– Não deve responder (deixa o solicitante esperando) e guarda
a requisição em uma fila
– (continua)
Algoritmo Distribuído
• Funcionamento (cont.):
– Quando um processo recebe uma mensagem de
requisição (continuação):
• Se o receptor também deseja executar a região crítica,
mas ainda não iniciou:
– Compara o tempo da mensagem recebida com o
tempo da mensagem de requisição que ele enviou
Se o tempo da mensagem recebida for menor
envia um OK ao transmissor
Se o tempo de sua própria mensagem for
menor coloca a requisição recebida em uma fila
e não responde
– (continua)
Algoritmo Distribuído
• Funcionamento (cont.):
– Após enviar uma requisição para executar uma região
crítica aguarda até que todos os demais processos lhe
deem permissão
– Ao terminar a execução da região crítica envia
mensagem de “OK” a todos os processo de sua fila
Algoritmo Distribuído
• Características do algoritmo:
– Exige ordenação global de todos os eventos do
sistema
• Para qualquer par de eventos, deve haver um
consenso sobre qual deles aconteceu antes
• Baseado no algoritmo de Lamport para
sincronização de relógios lógicos
Algoritmo Distribuído
• Características do algoritmo (cont.):
– Nenhum processo espera indefinidamente (não
há starvation)
– Não há impasses (deadlocks)
– Número de mensagens por entrada na região
crítica:
• 2 (n-1) mensagens
• Onde n é o número de processos do sistema
Algoritmo Distribuído
• Problemas do algoritmo:
– O ponto único de falha foi substituído por n pontos de
falha
• A falha de um processo bloqueia todas as tentativas subsequentes
de acesso à região crítica
– O tráfego gerado na rede é muito maior
– Em sistemas muito grandes todos os processos se tornam
possíveis gargalos
Algoritmo Distribuído
• Problemas do algoritmo
– Ou seja:
• Este algoritmo funciona melhor para pequenos grupos
de processos
• Podemos aumentar a eficiência do algoritmo com duas
pequenas alterações:
1. Envio de mensagem de negação de acesso à
região crítica (problema: mais mensagens)
2. O processo pode entrar na região crítica quando
obtiver a permissão da maioria dos processos
(muito arriscado)
Algoritmo Token Ring
• Preparação
– Construção de um anel lógico (ordenação de
processos)
• Atribui-se a cada processo uma posição no anel
– Não importa o critério de ordenação (ordem
numérica de endereços de rede, número de
processo, ou qualquer outro meio conveniente)
– O importante é que cada processo conheça o
próximo na sequência
– Continua
Algoritmo Token Ring
• Funcionamento:
– Quando o anel é inicializado o processo 0 (primeiro)
recebe um bastão (token)
– O token fica circulando no anel, obedecendo a ordenação
estabelecida
– Se um processo estiver de posse do token e deseja entrar
em uma região crítica:
• Executa a região crítica (não é permitido que ele entre em
uma segunda região crítica)
• Ao terminar a execução da região crítica envia o token ao
seu vizinho
– Continua
Algoritmo Token Ring
• Funcionamento (cont.):
– Se um processo estiver de posse
do token e NÃO deseja entrar em
uma região crítica:
• Envia o token ao seu
vizinho
Algoritmo Token Ring
• Características do algoritmo:
– Não há ocorrência de starvation
– Quando um processo deseja entrar em uma
região crítica, o que pode acontecer de pior é ter
que esperar que todos os processos antes dele
executem alguma região crítica
Algoritmo Token Ring
• Problemas do algoritmo:
– Se o token se perder há a necessidade de se criar
um novo
– É difícil detectar a perda do token:
• O fato do token não aparecer por muito tempo
não significa que ele esteja perdido
– Se algum processo falhar, seu vizinho deve
identificar a falha e removê-lo do anel
• Para isso, é necessário que todos conheçam a
configuração do anel (quais os integrantes)
Comparação:
Quantidade de Mensagens
• Algoritmo Centralizado:
– Mais simples e mais eficiente
– Número de mensagens por entrada na região crítca:
• Apenas 3 (requisição, autorização e liberação)
• Algoritmo Distribuído:
– Número de mensagens por entrada na região crítca :
• 2(n-1) mensagens, sendo (n-1) requisições e (n-1) autorizações
• Algoritmo Token Ring:
– Número de mensagens por entrada na região crítca:
• É variável e imprevisível
– Se todos os processos desejam entrar em região crítica:
necessita de apenas 1 mensagem
– Se ninguém desejar entrar em região crítica: imprevisível (o
token pode circular por horas sem que haja nenhum processo
interessado)
Comparação:
Tempo de Espera(medido em quantidade de mensagens)
• Algoritmo Centralizado:
– Retardo (tempo de espera) para entrar na região crítica:
• Apenas o tempo de 2 mensagens
• Algoritmo Distribuído:
– Retardo (tempo de espera) para entrar na região crítica:
• O tempo equivalente a 2(n-1) mensagens
• Algoritmo Token Ring:
– Retardo (tempo de espera) para entrar na região crítica:
• O tempo varia:
– O token acaba de chegar: 0 mensagens
– O token acaba de ser passado: n-1 mensagens

Weitere ähnliche Inhalte

Was ist angesagt?

Cpu scheduling in operating System.
Cpu scheduling in operating System.Cpu scheduling in operating System.
Cpu scheduling in operating System.Ravi Kumar Patel
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceçõesAlvaro Oliveira
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de SistemasGuilherme
 
Linha de Produto de Software: Diferentes produtos para diferentes clientes
Linha de Produto de Software: Diferentes produtos para diferentes clientesLinha de Produto de Software: Diferentes produtos para diferentes clientes
Linha de Produto de Software: Diferentes produtos para diferentes clientesPriscylla Silva
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosDaniel Brandão
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaDaniel Brandão
 
Tratamento de exceções java
Tratamento de exceções   javaTratamento de exceções   java
Tratamento de exceções javaAntonio Oliveira
 
Laboratório de Programação II: Tipo Abstrato de Dados (TAD)
Laboratório de Programação II: Tipo Abstrato de Dados (TAD)Laboratório de Programação II: Tipo Abstrato de Dados (TAD)
Laboratório de Programação II: Tipo Abstrato de Dados (TAD)Alex Camargo
 
Apostila Linguagens Formais e Autômatos (LFA)
Apostila Linguagens Formais e Autômatos (LFA)Apostila Linguagens Formais e Autômatos (LFA)
Apostila Linguagens Formais e Autômatos (LFA)Ricardo Terra
 
Normalização de Banco de Dados
Normalização de Banco de DadosNormalização de Banco de Dados
Normalização de Banco de Dadoselliando dias
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeRegis Magalhães
 
Teoria Lista Exercicios 1.0
Teoria Lista Exercicios 1.0Teoria Lista Exercicios 1.0
Teoria Lista Exercicios 1.0Thayse
 
Aula 10 - Diagrama de Sequencia.pdf
Aula 10 - Diagrama de Sequencia.pdfAula 10 - Diagrama de Sequencia.pdf
Aula 10 - Diagrama de Sequencia.pdfIvanFontainha
 

Was ist angesagt? (20)

Estrutura de repetição
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetição
 
Cpu scheduling in operating System.
Cpu scheduling in operating System.Cpu scheduling in operating System.
Cpu scheduling in operating System.
 
Aula 7 diagramas_classes2
Aula 7 diagramas_classes2Aula 7 diagramas_classes2
Aula 7 diagramas_classes2
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceções
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas
 
Linha de Produto de Software: Diferentes produtos para diferentes clientes
Linha de Produto de Software: Diferentes produtos para diferentes clientesLinha de Produto de Software: Diferentes produtos para diferentes clientes
Linha de Produto de Software: Diferentes produtos para diferentes clientes
 
System call
System callSystem call
System call
 
06 - Servidor Apache
06 - Servidor Apache06 - Servidor Apache
06 - Servidor Apache
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
LISP: Introduction to lisp
LISP: Introduction to lispLISP: Introduction to lisp
LISP: Introduction to lisp
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
 
Tratamento de exceções java
Tratamento de exceções   javaTratamento de exceções   java
Tratamento de exceções java
 
Laboratório de Programação II: Tipo Abstrato de Dados (TAD)
Laboratório de Programação II: Tipo Abstrato de Dados (TAD)Laboratório de Programação II: Tipo Abstrato de Dados (TAD)
Laboratório de Programação II: Tipo Abstrato de Dados (TAD)
 
Apostila Linguagens Formais e Autômatos (LFA)
Apostila Linguagens Formais e Autômatos (LFA)Apostila Linguagens Formais e Autômatos (LFA)
Apostila Linguagens Formais e Autômatos (LFA)
 
Normalização de Banco de Dados
Normalização de Banco de DadosNormalização de Banco de Dados
Normalização de Banco de Dados
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 Recursividade
 
Teoria Lista Exercicios 1.0
Teoria Lista Exercicios 1.0Teoria Lista Exercicios 1.0
Teoria Lista Exercicios 1.0
 
Aula Tratamento de Exceções
Aula Tratamento de ExceçõesAula Tratamento de Exceções
Aula Tratamento de Exceções
 
Aula 10 - Diagrama de Sequencia.pdf
Aula 10 - Diagrama de Sequencia.pdfAula 10 - Diagrama de Sequencia.pdf
Aula 10 - Diagrama de Sequencia.pdf
 

Ähnlich wie Exclusão Mútua em Sistemas Distribuídos

Sincronização de um sistema distribuído
Sincronização de um sistema distribuídoSincronização de um sistema distribuído
Sincronização de um sistema distribuídoTiago R. Sampaio
 
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaSistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaArthur Emanuel
 
16-Sistemas Distribuídos.pptx
16-Sistemas Distribuídos.pptx16-Sistemas Distribuídos.pptx
16-Sistemas Distribuídos.pptxRoberto Aragy
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senaiCarlos Melo
 
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo EscalonadorCategorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo EscalonadorSofia Trindade
 
Categorias de escalonamento e objetivos do algoritmo de escalonamento
Categorias de escalonamento e objetivos do algoritmo de escalonamentoCategorias de escalonamento e objetivos do algoritmo de escalonamento
Categorias de escalonamento e objetivos do algoritmo de escalonamentoThaís Favore
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 
Sistemas Distribuídos
Sistemas DistribuídosSistemas Distribuídos
Sistemas DistribuídosRoberto Aragy
 
Escalonamento de Processos
Escalonamento de ProcessosEscalonamento de Processos
Escalonamento de ProcessosFatec Jales
 
Aula3 escalonamento
Aula3 escalonamentoAula3 escalonamento
Aula3 escalonamentoBruno Rick
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisAbadia Cardoso
 
2 organização do sistema operativo - sistemas operativos
2   organização do sistema operativo - sistemas operativos2   organização do sistema operativo - sistemas operativos
2 organização do sistema operativo - sistemas operativosMaria194536
 

Ähnlich wie Exclusão Mútua em Sistemas Distribuídos (20)

Sincronização de um sistema distribuído
Sincronização de um sistema distribuídoSincronização de um sistema distribuído
Sincronização de um sistema distribuído
 
SincronizacaoDist.pdf
SincronizacaoDist.pdfSincronizacaoDist.pdf
SincronizacaoDist.pdf
 
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaSistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
 
16-Sistemas Distribuídos.pptx
16-Sistemas Distribuídos.pptx16-Sistemas Distribuídos.pptx
16-Sistemas Distribuídos.pptx
 
Algoritmo lamport
Algoritmo lamportAlgoritmo lamport
Algoritmo lamport
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Sd07 (si) eleição
Sd07 (si)   eleiçãoSd07 (si)   eleição
Sd07 (si) eleição
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senai
 
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo EscalonadorCategorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
 
Sd05 (si) relógios e sincronização
Sd05 (si)   relógios e sincronizaçãoSd05 (si)   relógios e sincronização
Sd05 (si) relógios e sincronização
 
Categorias de escalonamento e objetivos do algoritmo de escalonamento
Categorias de escalonamento e objetivos do algoritmo de escalonamentoCategorias de escalonamento e objetivos do algoritmo de escalonamento
Categorias de escalonamento e objetivos do algoritmo de escalonamento
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Sistemas Distribuídos
Sistemas DistribuídosSistemas Distribuídos
Sistemas Distribuídos
 
Sd04 (si) comunicação em sd
Sd04 (si)   comunicação em sdSd04 (si)   comunicação em sd
Sd04 (si) comunicação em sd
 
Impasses S.O
Impasses S.OImpasses S.O
Impasses S.O
 
Escalonamento de Processos
Escalonamento de ProcessosEscalonamento de Processos
Escalonamento de Processos
 
Aula3 escalonamento
Aula3 escalonamentoAula3 escalonamento
Aula3 escalonamento
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
 
Questionário sobre processos
Questionário sobre processosQuestionário sobre processos
Questionário sobre processos
 
2 organização do sistema operativo - sistemas operativos
2   organização do sistema operativo - sistemas operativos2   organização do sistema operativo - sistemas operativos
2 organização do sistema operativo - sistemas operativos
 

Mehr von Computação Depressão (20)

Sd08 (si) sistemas de arquivos distribuídos
Sd08 (si)   sistemas de arquivos distribuídosSd08 (si)   sistemas de arquivos distribuídos
Sd08 (si) sistemas de arquivos distribuídos
 
Sd03 (si) conceitos básicos de sd
Sd03 (si)   conceitos básicos de sdSd03 (si)   conceitos básicos de sd
Sd03 (si) conceitos básicos de sd
 
Sd02 (si) gerenciamento de entrada e saída
Sd02 (si)   gerenciamento de entrada e saídaSd02 (si)   gerenciamento de entrada e saída
Sd02 (si) gerenciamento de entrada e saída
 
Sd01 (si) sistemas de arquivos
Sd01 (si)   sistemas de arquivosSd01 (si)   sistemas de arquivos
Sd01 (si) sistemas de arquivos
 
Ufbamat2013
Ufbamat2013Ufbamat2013
Ufbamat2013
 
Ufbaingles2013
Ufbaingles2013Ufbaingles2013
Ufbaingles2013
 
Ufbagab mat 2013
Ufbagab mat 2013Ufbagab mat 2013
Ufbagab mat 2013
 
Ufbagab ingles2013
Ufbagab ingles2013Ufbagab ingles2013
Ufbagab ingles2013
 
Ufbagab fis 2013
Ufbagab fis 2013Ufbagab fis 2013
Ufbagab fis 2013
 
Ufbafisqui2013
Ufbafisqui2013Ufbafisqui2013
Ufbafisqui2013
 
Ufbagab qui 2013
Ufbagab qui 2013Ufbagab qui 2013
Ufbagab qui 2013
 
Questesdetecnologia ano2002
Questesdetecnologia ano2002Questesdetecnologia ano2002
Questesdetecnologia ano2002
 
Questesdematemtica ano2003
Questesdematemtica ano2003Questesdematemtica ano2003
Questesdematemtica ano2003
 
Questesdematemtica ano2002
Questesdematemtica ano2002Questesdematemtica ano2002
Questesdematemtica ano2002
 
Questesdefundamentos ano2003
Questesdefundamentos ano2003Questesdefundamentos ano2003
Questesdefundamentos ano2003
 
Questesdefundamentos ano2002
Questesdefundamentos ano2002Questesdefundamentos ano2002
Questesdefundamentos ano2002
 
Gabarito ano2011
Gabarito ano2011Gabarito ano2011
Gabarito ano2011
 
Gabarito ano2010
Gabarito ano2010Gabarito ano2010
Gabarito ano2010
 
Gabarito ano2009
Gabarito ano2009Gabarito ano2009
Gabarito ano2009
 
Gabarito ano2008
Gabarito ano2008Gabarito ano2008
Gabarito ano2008
 

Exclusão Mútua em Sistemas Distribuídos

  • 1. Sistemas Distribuídos II Parte 03 Exclusão Mútua
  • 2. Introdução • Assim como em sistemas centralizados, os sistemas distribuídos enfrentam o problema de gerenciar recursos compartilhados sem comprometer sua consistência – Dois ou mais processos não podem acessar dados compartilhados ao mesmo tempo – Ou seja, o acesso é feito por meio de “exclusão mútua”
  • 3. Introdução • Em sistemas centralizados criou-se o conceito de “região crítica”, que funciona da seguinte forma: – Para que um processo seja autorizado a entrar no estado de região crítica, nenhum outro processo pode fazer isso – Deste modo fica garantida a exclusão mútua em um recurso compartilhado – Os sistemas centralizados mantém esta estrutura de acesso funcionando por meio de mecanismos como semáforos, monitores e outras soluções similares
  • 4. Introdução • Qual o problema em usar essas soluções nos SDs? – Todas estas soluções se baseiam na existência de: • Relógio único: Os eventos em cada processo acontecem sincronizados pelo mesmo relógio • Memória compartilhada: Toda a informação de controle armazenada na memória compartilhada está facilmente disponível para qualquer processo envolvido – Em sistemas distribuídos não meios de garantir que nenhuma das duas condições vá acontecer
  • 5. Introdução(cont.) • É preciso implementar outro tipo de solução baseada na forma de comunicação adotada: a troca de mensagens – Mas as características de exclusão mútua e região crítica devem ser preservadas Como você resolveria o problema de exclusão mútua e região crítica sem abrir mão das suas características fundamentais? - Discuta propostas em sala
  • 6. Soluções para Exclusão Mútua • Veremos três possibilidades: – Opção 1: Algoritmo Centralizado • Uma implementação usando troca de mensagens, mas mantendo as mesmas características de ambientes monoprocessados – Opção 2: Algoritmo Distribuído • Uma alternativa que elimina a centralização característica da opção 1 – Opção 3: Algoritmo em Anel • Outra solução descentralizada, mas com abordagem diferente da opção 2
  • 7. Algoritmo Centralizado • Objetivo – Simular a metodologia de um sistemas monoprocessado, ou seja, centralizar o controle em um processo coordenador • Existem várias formas de se obter um coordenador, mas o algoritmo não se preocupa em exigir uma única forma de fazer isso, apenas deve garantir a existência do coordenador e um funcionamento padronizado perante os processos que interagem com ele
  • 8. Algoritmo Centralizado • Preparação – É preciso existir um processo coordenador para este algoritmo. O coordenador pode ser: • Estático: – existir de forma independente, sem ter sua existência vinculada a uma única situação de exclusão mútua (prestando apenas o serviço de coordenação) • Eleito: – Eleito pelos processo participantes usando um algoritmo distribuído (o funcionamento do algoritmo será discutido futuramente) – O critério usado na eleição não vem ao caso (endereço de rede, identificação do processo, idade do processo,...)
  • 9. Algoritmo Centralizado • Funcionamento – Quando um processo deseja entrar em região crítica ele envia uma mensagem para o coordenador solicitando permissão • Se nenhum outro processo estiver executando sua região crítica o coordenador envia uma mensagem de resposta ao solicitante autorizando a entrada em região crítica • Se algum processo estiver executando a região crítica – O coordenador não responde – O processo solicitante fica aguardando a resposta – A requisição do processo solicitante é colocada em uma fila
  • 10. Algoritmo Centralizado • Funcionamento (cont.) – Quando o processo deixa a região crítica ele envia uma mensagem ao coordenador abrindo mão de seu acesso – O coordenador envia uma mensagem concedendo a permissão ao primeiro processo da fila
  • 11. Algoritmo Centralizado (cont.) • Características do algoritmo: – É justo • Requisições são atendidas por ordem de chegada – Nenhum processo espera indefinidamente • A menos que ocorra algum tipo de falha, o que não faz parte do funcionamento normal do algoritmo – É fácil de ser implementado: • Necessita de apenas 3 mensagens (requisição, permissão e liberação) para se garantir o acesso a determinada região crítica
  • 12. Algoritmo Centralizado (cont.) • Problemas do algoritmo: – O coordenador é um ponto único de falha, o que é uma condição indesejável em um SD – Se coordenador não responde em caso de permissão negada: • Processos bloqueados não têm como distinguir a situação “coordenador fora do ar” da situação “permissão de acesso negado” – Para sistemas muito grandes: • um único coordenador pode degradar a performance do sistema (gargalo)
  • 13. Algoritmo Centralizado • IMPORTANTE: – A descrição do funcionamento dos algoritmos de exclusão mútua (todos – não apenas o centralizado) consideram uma situação ideal, onde não está prevista a ocorrência de falhas nas entregas das mensagens ou término anormal de processos. – O tratamento de possíveis falhas varia de acordo com a implementação de cada solução, mas na maioria das vezes se baseia em controle de timeout e retransmissão de mensagens
  • 14. Algoritmo Distribuído • Funcionamento: – Quando um processo deseja entrar em uma região crítica, envia mensagem para todos os processos (inclusive ele próprio) contendo o nome da região crítica, seu próprio número (identificação) e o tempo corrente – (continua)
  • 15. Algoritmo Distribuído • Funcionamento (cont.): – Quando um processo recebe uma mensagem de requisição: • Se o receptor não estiver executando a região crítica e não deseja executar: – Envia de volta ao transmissor um mensagem de OK • Se o receptor estiver executando a região crítica: – Não deve responder (deixa o solicitante esperando) e guarda a requisição em uma fila – (continua)
  • 16. Algoritmo Distribuído • Funcionamento (cont.): – Quando um processo recebe uma mensagem de requisição (continuação): • Se o receptor também deseja executar a região crítica, mas ainda não iniciou: – Compara o tempo da mensagem recebida com o tempo da mensagem de requisição que ele enviou Se o tempo da mensagem recebida for menor envia um OK ao transmissor Se o tempo de sua própria mensagem for menor coloca a requisição recebida em uma fila e não responde – (continua)
  • 17. Algoritmo Distribuído • Funcionamento (cont.): – Após enviar uma requisição para executar uma região crítica aguarda até que todos os demais processos lhe deem permissão – Ao terminar a execução da região crítica envia mensagem de “OK” a todos os processo de sua fila
  • 18. Algoritmo Distribuído • Características do algoritmo: – Exige ordenação global de todos os eventos do sistema • Para qualquer par de eventos, deve haver um consenso sobre qual deles aconteceu antes • Baseado no algoritmo de Lamport para sincronização de relógios lógicos
  • 19. Algoritmo Distribuído • Características do algoritmo (cont.): – Nenhum processo espera indefinidamente (não há starvation) – Não há impasses (deadlocks) – Número de mensagens por entrada na região crítica: • 2 (n-1) mensagens • Onde n é o número de processos do sistema
  • 20. Algoritmo Distribuído • Problemas do algoritmo: – O ponto único de falha foi substituído por n pontos de falha • A falha de um processo bloqueia todas as tentativas subsequentes de acesso à região crítica – O tráfego gerado na rede é muito maior – Em sistemas muito grandes todos os processos se tornam possíveis gargalos
  • 21. Algoritmo Distribuído • Problemas do algoritmo – Ou seja: • Este algoritmo funciona melhor para pequenos grupos de processos • Podemos aumentar a eficiência do algoritmo com duas pequenas alterações: 1. Envio de mensagem de negação de acesso à região crítica (problema: mais mensagens) 2. O processo pode entrar na região crítica quando obtiver a permissão da maioria dos processos (muito arriscado)
  • 22. Algoritmo Token Ring • Preparação – Construção de um anel lógico (ordenação de processos) • Atribui-se a cada processo uma posição no anel – Não importa o critério de ordenação (ordem numérica de endereços de rede, número de processo, ou qualquer outro meio conveniente) – O importante é que cada processo conheça o próximo na sequência – Continua
  • 23. Algoritmo Token Ring • Funcionamento: – Quando o anel é inicializado o processo 0 (primeiro) recebe um bastão (token) – O token fica circulando no anel, obedecendo a ordenação estabelecida – Se um processo estiver de posse do token e deseja entrar em uma região crítica: • Executa a região crítica (não é permitido que ele entre em uma segunda região crítica) • Ao terminar a execução da região crítica envia o token ao seu vizinho – Continua
  • 24. Algoritmo Token Ring • Funcionamento (cont.): – Se um processo estiver de posse do token e NÃO deseja entrar em uma região crítica: • Envia o token ao seu vizinho
  • 25. Algoritmo Token Ring • Características do algoritmo: – Não há ocorrência de starvation – Quando um processo deseja entrar em uma região crítica, o que pode acontecer de pior é ter que esperar que todos os processos antes dele executem alguma região crítica
  • 26. Algoritmo Token Ring • Problemas do algoritmo: – Se o token se perder há a necessidade de se criar um novo – É difícil detectar a perda do token: • O fato do token não aparecer por muito tempo não significa que ele esteja perdido – Se algum processo falhar, seu vizinho deve identificar a falha e removê-lo do anel • Para isso, é necessário que todos conheçam a configuração do anel (quais os integrantes)
  • 27. Comparação: Quantidade de Mensagens • Algoritmo Centralizado: – Mais simples e mais eficiente – Número de mensagens por entrada na região crítca: • Apenas 3 (requisição, autorização e liberação) • Algoritmo Distribuído: – Número de mensagens por entrada na região crítca : • 2(n-1) mensagens, sendo (n-1) requisições e (n-1) autorizações • Algoritmo Token Ring: – Número de mensagens por entrada na região crítca: • É variável e imprevisível – Se todos os processos desejam entrar em região crítica: necessita de apenas 1 mensagem – Se ninguém desejar entrar em região crítica: imprevisível (o token pode circular por horas sem que haja nenhum processo interessado)
  • 28. Comparação: Tempo de Espera(medido em quantidade de mensagens) • Algoritmo Centralizado: – Retardo (tempo de espera) para entrar na região crítica: • Apenas o tempo de 2 mensagens • Algoritmo Distribuído: – Retardo (tempo de espera) para entrar na região crítica: • O tempo equivalente a 2(n-1) mensagens • Algoritmo Token Ring: – Retardo (tempo de espera) para entrar na região crítica: • O tempo varia: – O token acaba de chegar: 0 mensagens – O token acaba de ser passado: n-1 mensagens