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

Concurrency Control & Deadlock Handling
Concurrency Control & Deadlock HandlingConcurrency Control & Deadlock Handling
Concurrency Control & Deadlock Handling
Meghaj Mallick
 
Aula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação IndiretaAula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação Indireta
Victor Hazin da Rocha
 
Sd01 (si) sistemas de arquivos
Sd01 (si)   sistemas de arquivosSd01 (si)   sistemas de arquivos
Sd01 (si) sistemas de arquivos
Computação Depressão
 
Relógios lógicos
Relógios lógicosRelógios lógicos
Relógios lógicos
Junior Asj
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01
Arthur Emanuel
 
Chapter 6 synchronization
Chapter 6 synchronizationChapter 6 synchronization
Desenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLDesenhando Componentes de Software com UML
Desenhando Componentes de Software com UML
Rildo (@rildosan) Santos
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
Frederico Madeira
 
Modelos de estruturação de sistemas distribuídos
Modelos de estruturação de sistemas distribuídosModelos de estruturação de sistemas distribuídos
Modelos de estruturação de sistemas distribuídos
Portal_do_Estudante_SD
 
Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Sistemas Distribuídos -  Aula 09 - Tempos, Relogios e Sincronizacao de TempoSistemas Distribuídos -  Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Arthur Emanuel
 
Distributed Mutual Exclusion and Distributed Deadlock Detection
Distributed Mutual Exclusion and Distributed Deadlock DetectionDistributed Mutual Exclusion and Distributed Deadlock Detection
Distributed Mutual Exclusion and Distributed Deadlock Detection
SHIKHA GAUTAM
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
Eduardo de Lucena Falcão
 
Processes and Processors in Distributed Systems
Processes and Processors in Distributed SystemsProcesses and Processors in Distributed Systems
Processes and Processors in Distributed Systems
Dr Sandeep Kumar Poonia
 
Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05
Arthur Emanuel
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Charles Fortes
 
Classes de problemas p, np,np completo e np-difícil
Classes de problemas p, np,np completo e np-difícilClasses de problemas p, np,np completo e np-difícil
Classes de problemas p, np,np completo e np-difícil
Guilherme Coelho
 
The Google File System (GFS)
The Google File System (GFS)The Google File System (GFS)
The Google File System (GFS)
Romain Jacotin
 
Telnet
TelnetTelnet
Telnet
Odair Soares
 
Condições de corrida e regiões críticas
Condições de corrida e regiões críticasCondições de corrida e regiões críticas
Condições de corrida e regiões críticas
Beatriz Rodrigues
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidos
Hélio Jovo
 

Mais procurados (20)

Concurrency Control & Deadlock Handling
Concurrency Control & Deadlock HandlingConcurrency Control & Deadlock Handling
Concurrency Control & Deadlock Handling
 
Aula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação IndiretaAula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação Indireta
 
Sd01 (si) sistemas de arquivos
Sd01 (si)   sistemas de arquivosSd01 (si)   sistemas de arquivos
Sd01 (si) sistemas de arquivos
 
Relógios lógicos
Relógios lógicosRelógios lógicos
Relógios lógicos
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01
 
Chapter 6 synchronization
Chapter 6 synchronizationChapter 6 synchronization
Chapter 6 synchronization
 
Desenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLDesenhando Componentes de Software com UML
Desenhando Componentes de Software com UML
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
 
Modelos de estruturação de sistemas distribuídos
Modelos de estruturação de sistemas distribuídosModelos de estruturação de sistemas distribuídos
Modelos de estruturação de sistemas distribuídos
 
Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Sistemas Distribuídos -  Aula 09 - Tempos, Relogios e Sincronizacao de TempoSistemas Distribuídos -  Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
 
Distributed Mutual Exclusion and Distributed Deadlock Detection
Distributed Mutual Exclusion and Distributed Deadlock DetectionDistributed Mutual Exclusion and Distributed Deadlock Detection
Distributed Mutual Exclusion and Distributed Deadlock Detection
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 
Processes and Processors in Distributed Systems
Processes and Processors in Distributed SystemsProcesses and Processors in Distributed Systems
Processes and Processors in Distributed Systems
 
Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
 
Classes de problemas p, np,np completo e np-difícil
Classes de problemas p, np,np completo e np-difícilClasses de problemas p, np,np completo e np-difícil
Classes de problemas p, np,np completo e np-difícil
 
The Google File System (GFS)
The Google File System (GFS)The Google File System (GFS)
The Google File System (GFS)
 
Telnet
TelnetTelnet
Telnet
 
Condições de corrida e regiões críticas
Condições de corrida e regiões críticasCondições de corrida e regiões críticas
Condições de corrida e regiões críticas
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidos
 

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
 
Algoritmo lamport
Algoritmo lamportAlgoritmo lamport
Algoritmo lamport
Verônica Veiga
 
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
 
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 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
Sofia 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 escalonamento
Thaís Favore
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
Paulo Fonseca
 
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
 

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

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
 
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
 
Gabarito ano2007
Gabarito ano2007Gabarito ano2007
Gabarito ano2007
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
 
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
 
Gabarito ano2007
Gabarito ano2007Gabarito ano2007
Gabarito ano2007
 

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