SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Mais procurados

Deadlocks
DeadlocksDeadlocks
Algoritmo de servidor centralizado
Algoritmo de servidor centralizadoAlgoritmo de servidor centralizado
Algoritmo de servidor centralizado
stevencueva3
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Mauro Duarte
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
Paulo Fonseca
 
Aula 12 - Escalonamento
Aula 12 - EscalonamentoAula 12 - Escalonamento
Aula 12 - Escalonamento
camila_seixas
 
dos mutual exclusion algos
dos mutual exclusion algosdos mutual exclusion algos
dos mutual exclusion algos
Akhil Sharma
 
Multilevel queue scheduling
Multilevel queue schedulingMultilevel queue scheduling
Multilevel queue scheduling
AditiPawaskar5
 
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, DeadlockApresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
Williams Gomes da Silva
 
CPU Scheduling
CPU SchedulingCPU Scheduling
CPU Scheduling
Christalin Nelson
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de Uso
Natanael Simões
 
Algoritmo lamport
Algoritmo lamportAlgoritmo lamport
Algoritmo lamport
Verônica Veiga
 
Signal Handling in Linux
Signal Handling in LinuxSignal Handling in Linux
Signal Handling in Linux
Tushar B Kute
 
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)
Faculdade Mater Christi
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Wellington Oliveira
 
Escalonamento de processos
Escalonamento de processosEscalonamento de processos
Escalonamento de processos
Rodrigo Rodrigues
 
11. operating-systems-part-2
11. operating-systems-part-211. operating-systems-part-2
11. operating-systems-part-2
Muhammad Ahad
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
davinson garcia
 
Algoritmo de Anillo
Algoritmo de AnilloAlgoritmo de Anillo
Algoritmo de Anillo
CoronaCarrilloEmmanu
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
Cloves da Rocha
 
Basic concept of process
Basic concept of processBasic concept of process
Basic concept of process
Nabin Dahal
 

Mais procurados (20)

Deadlocks
DeadlocksDeadlocks
Deadlocks
 
Algoritmo de servidor centralizado
Algoritmo de servidor centralizadoAlgoritmo de servidor centralizado
Algoritmo de servidor centralizado
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Aula 12 - Escalonamento
Aula 12 - EscalonamentoAula 12 - Escalonamento
Aula 12 - Escalonamento
 
dos mutual exclusion algos
dos mutual exclusion algosdos mutual exclusion algos
dos mutual exclusion algos
 
Multilevel queue scheduling
Multilevel queue schedulingMultilevel queue scheduling
Multilevel queue scheduling
 
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, DeadlockApresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
 
CPU Scheduling
CPU SchedulingCPU Scheduling
CPU Scheduling
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de Uso
 
Algoritmo lamport
Algoritmo lamportAlgoritmo lamport
Algoritmo lamport
 
Signal Handling in Linux
Signal Handling in LinuxSignal Handling in Linux
Signal Handling in Linux
 
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)
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
 
Escalonamento de processos
Escalonamento de processosEscalonamento de processos
Escalonamento de processos
 
11. operating-systems-part-2
11. operating-systems-part-211. operating-systems-part-2
11. operating-systems-part-2
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Algoritmo de Anillo
Algoritmo de AnilloAlgoritmo de Anillo
Algoritmo de Anillo
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
 
Basic concept of process
Basic concept of processBasic concept of process
Basic concept of process
 

Semelhante a Sd06 (si) exclusão mútua

SincronizacaoDist.pdf
SincronizacaoDist.pdfSincronizacaoDist.pdf
SincronizacaoDist.pdf
AntnioNorbertoIncio
 
16-Sistemas Distribuídos.pptx
16-Sistemas Distribuídos.pptx16-Sistemas Distribuídos.pptx
16-Sistemas Distribuídos.pptx
Roberto Aragy
 
Sd07 (si) eleição
Sd07 (si)   eleiçãoSd07 (si)   eleição
Sd07 (si) eleição
Computação Depressão
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senai
Carlos Melo
 
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
Thaís Favore
 
Sistemas Distribuídos
Sistemas DistribuídosSistemas Distribuídos
Sistemas Distribuídos
Roberto Aragy
 
Sd04 (si) comunicação em sd
Sd04 (si)   comunicação em sdSd04 (si)   comunicação em sd
Sd04 (si) comunicação em sd
Computação Depressão
 
Impasses S.O
Impasses S.OImpasses S.O
Impasses S.O
Amanda Ferreira
 
Escalonamento de Processos
Escalonamento de ProcessosEscalonamento de Processos
Escalonamento de Processos
Fatec Jales
 
Aula3 escalonamento
Aula3 escalonamentoAula3 escalonamento
Aula3 escalonamento
Bruno 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 Operacionais
Abadia Cardoso
 
Questionário sobre processos
Questionário sobre processosQuestionário sobre processos
Questionário sobre processos
Francisco Soares Lima Filho
 
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
Maria194536
 
Servidores de Aplicações
Servidores de AplicaçõesServidores de Aplicações
Servidores de Aplicações
Wellington Oliveira
 
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
Gilberto Angelucci Jr.
 
Aula 6 a camada de rede
Aula 6   a camada de redeAula 6   a camada de rede
Aula 6 a camada de rede
O Cara Ivan Silva
 
Comunicacao entre Processos
Comunicacao entre ProcessosComunicacao entre Processos
Comunicacao entre Processos
RafaelPessoa22
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2
Gustavo Souza
 
Redes Avançadas - 1.Aspectos de Interconexão
Redes Avançadas - 1.Aspectos de InterconexãoRedes Avançadas - 1.Aspectos de Interconexão
Redes Avançadas - 1.Aspectos de Interconexão
Mauro Tapajós
 
4 scada hardware-firmware1
4  scada hardware-firmware14  scada hardware-firmware1
4 scada hardware-firmware1
Francisco Liszt Nunes Junior
 

Semelhante a Sd06 (si) exclusão mútua (20)

SincronizacaoDist.pdf
SincronizacaoDist.pdfSincronizacaoDist.pdf
SincronizacaoDist.pdf
 
16-Sistemas Distribuídos.pptx
16-Sistemas Distribuídos.pptx16-Sistemas Distribuídos.pptx
16-Sistemas Distribuídos.pptx
 
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 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
 
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
 
Servidores de Aplicações
Servidores de AplicaçõesServidores de Aplicações
Servidores de Aplicações
 
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
 
Aula 6 a camada de rede
Aula 6   a camada de redeAula 6   a camada de rede
Aula 6 a camada de rede
 
Comunicacao entre Processos
Comunicacao entre ProcessosComunicacao entre Processos
Comunicacao entre Processos
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2
 
Redes Avançadas - 1.Aspectos de Interconexão
Redes Avançadas - 1.Aspectos de InterconexãoRedes Avançadas - 1.Aspectos de Interconexão
Redes Avançadas - 1.Aspectos de Interconexão
 
4 scada hardware-firmware1
4  scada hardware-firmware14  scada hardware-firmware1
4 scada hardware-firmware1
 

Mais de Computação Depressão

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
Computação Depressão
 
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
Computação Depressão
 
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
Computação Depressão
 
Sd01 (si) sistemas de arquivos
Sd01 (si)   sistemas de arquivosSd01 (si)   sistemas de arquivos
Sd01 (si) sistemas de arquivos
Computação Depressão
 
Ufbamat2013
Ufbamat2013Ufbamat2013
Ufbaingles2013
Ufbaingles2013Ufbaingles2013
Ufbaingles2013
Computação Depressão
 
Ufbagab mat 2013
Ufbagab mat 2013Ufbagab mat 2013
Ufbagab mat 2013
Computação Depressão
 
Ufbagab ingles2013
Ufbagab ingles2013Ufbagab ingles2013
Ufbagab ingles2013
Computação Depressão
 
Ufbagab fis 2013
Ufbagab fis 2013Ufbagab fis 2013
Ufbagab fis 2013
Computação Depressão
 
Ufbafisqui2013
Ufbafisqui2013Ufbafisqui2013
Ufbafisqui2013
Computação Depressão
 
Ufbagab qui 2013
Ufbagab qui 2013Ufbagab qui 2013
Ufbagab qui 2013
Computação Depressão
 
Questesdetecnologia ano2002
Questesdetecnologia ano2002Questesdetecnologia ano2002
Questesdetecnologia ano2002
Computação Depressão
 
Questesdematemtica ano2003
Questesdematemtica ano2003Questesdematemtica ano2003
Questesdematemtica ano2003
Computação Depressão
 
Questesdematemtica ano2002
Questesdematemtica ano2002Questesdematemtica ano2002
Questesdematemtica ano2002
Computação Depressão
 
Questesdefundamentos ano2002
Questesdefundamentos ano2002Questesdefundamentos ano2002
Questesdefundamentos ano2002
Computação Depressão
 
Gabarito ano2011
Gabarito ano2011Gabarito ano2011
Gabarito ano2011
Computação Depressão
 
Gabarito ano2010
Gabarito ano2010Gabarito ano2010
Gabarito ano2010
Computação Depressão
 

Mais de 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
 

Sd06 (si) exclusão mútua

  • 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