SlideShare uma empresa Scribd logo
1 de 24
Coordenação
Distribuída
Coordenação – Exclusão mútua
• Uma questão fundamental em SD é a
concorrência e a colaboração entre vários
processos
• Como garantir que o acesso concorrente de
recursos não gere situações de inconsistência
de dados?
• São necessárias soluções que garantam o
acesso mutualmente exclusivo pelos processos
• Algoritmos distribuídos de exclusão mútua
podem ser classificados em duas categorias
• Baseados em ficha e Baseados em permissão
Exclusão Mútua
• Uma questão fundamental em SD é a
concorrência e a colaboração entre vários
processos
• Como garantir que o acesso concorrente de
recursos não gere situações de inconsistência
de dados?
• São necessárias soluções que garantam o
acesso mutualmente exclusivo pelos processos
• Algoritmos distribuídos de exclusão mútua
podem ser classificados em duas categorias
• Baseados em ficha e Baseados em permissão
EXCLUSÃO MÚTUA - ALGORITMO
CENTRALIZADO
• Simula o que é feito em um sistema
monoprocessador:
• Um processo é eleito como coordenador
• Sempre que um processo quiser acessar
determinado recurso, é necessário pedir permissão
ao coordenador, através de uma mensagem
• O coordenador permite acesso ao recurso através de
uma mensagem de concessão, desde que nenhum
outro processo esteja acessando o recurso naquele
momento
• Para usar uma região crítica: REQUISIÇÃO,
CONCESSÃO e LIBERAÇÃO
EXCLUSÃO MÚTUA - ALGORITMO
CENTRALIZADO
EXCLUSÃO MÚTUA - ALGORITMO
CENTRALIZADO
• Prós:
• Simples, fácil de entender e de implementar
• É justo (segue o FCFS)
• Como no FCFS, não há inanição (starvation)
• Contras:
• Como todo sistema centralizado um ponto de
erro e um ponto de gargalo
• Processos não conseguem distinguir
coordenador inativo de permissão negada, caso
se o recurso não está disponível nenhuma
mensagem é enviada
EXCLUSÃO MÚTUA - ALGORITMO
DISTRIBUÍDO
• Requer ordenação total de todos os
eventos no sistema
• Para isso será usado... Algoritmo de Lamport!
• Funcionamento:
• Quando processo deseja acessar um recurso
compartilhado, monta uma mensagem que
contém o nome do recurso, seu número de
processo e a hora corrente (lógica).
• Envia mensagem para todos processos, inclusive
ele mesmo
EXCLUSÃO MÚTUA - ALGORITMO
DISTRIBUÍDO
• Requer ordenação total de todos os
eventos no sistema
• Para isso será usado... Algoritmo de Lamport!
• Funcionamento:
• Quando processo deseja acessar um recurso
compartilhado, monta uma mensagem que
contém o nome do recurso, seu número de
processo e a hora corrente (lógica).
• Envia mensagem para todos processos, inclusive
ele mesmo
EXCLUSÃO MÚTUA - ALGORITMO
DISTRIBUÍDO
• Funcionamento (continuação):
• Quando um processo recebe uma mensagem de
requisição de outro, executa uma ação de acordo
com seu próprio estado em relação ao recurso:
1. Se o receptor não estiver acessando o recurso nem
quer acessá-lo, devolve “OK” ao remetente
2. Se já tem acesso ao recurso, não responde e coloca
requisição em uma fila
3. Se receptor também quer acessar o recurso, mas ainda
não possui a permissão, compara a marca de tempo da
mensagem que chegou com a marca de tempo da
mensagem que enviou a todos. Se a que recebeu é mais
baixa envia OK, senão coloca requisição na fila e não
manda nada
EXCLUSÃO MÚTUA - ALGORITMO
DISTRIBUÍDO
• Funcionamento (continuação):
• Após enviar requisições que peçam permissão,
um processo aguarda recebimento de todas as
respostas
• Quando houver permissão de todos, processo
acessa o recurso
• Processo libera o recurso enviando um “OK” a
todos os processos que estão em sua fila
EXCLUSÃO MÚTUA - ALGORITMO
DISTRIBUÍDO
EXCLUSÃO MÚTUA - ALGORITMO
DISTRIBUÍDO
• Vantagens:
• Exclusão mútua é garantida
• Não há deadlock nem starvation
• Desvantagens:
• Ponto de falha único foi substituído por n pontos de
falha
• Trocou 1 gargalo por n gargalos
• Pode melhorar enviando sempre uma resposta. Se
não chegar resposta quem pediu pode concluir que o
nó morreu
• Tem que ter uma comunicação multicast ou manter
uma lista de associação ao grupo em cada processo
EXCLUSÃO MÚTUA – ALGORITMO TOKEN
RING
• Algoritmo baseado em ficha que circula
ao redor do anel lógico
• Se o processo quer acessar recurso e
tem a ficha, usa recurso e quando acaba
passa ficha
• Se não quer usar recurso, passa a ficha
EXCLUSÃO MÚTUA – ALGORITMO TOKEN
RING
• Garante a exclusão mútua
• Não há deadlock nem starvation
• A dificuldade é recuperar uma ficha
perdida
• Como saber o tempo razoável para um
token não aparecer?
• Se um processo morreu, um vizinho que
tenta enviar o token para ele pode
detectar, e anel pode ser reconfigurado
EXCLUSÃO MÚTUA - COMPARAÇÃO
ALGORITMOS DE ELEIÇÃO
• Usados quando há necessidade de um nó
agir como coordenador. São exemplos
tradicionais de algoritmos de eleição:
• Algoritmo do valentão
• Algoritmo de anel
• Além disso, existem soluções para
ambientes específicos:
• Algoritmos para redes sem fio
• Algoritmos para sistemas de grande escala (como
P2P)
ALGORITMOS DE ELEIÇÃO – ALGORITMO DO
VALENTÃO(BULLY)
• Todos nós possuem um identificador
• Sempre que um nó P percebe que o
coordenador não responde, P inicia uma
eleição:
1. P envia uma mensagem ELEIÇÃO a todos os
processos de números mais altos
2. Se nenhum responder, P vence a eleição e se torna o
coordenador
3. Se um dos processos de número mais alto responder,
ele toma o poder e o trabalho de P está concluído
• Dessa forma é eleito o nó com maior identificador
ALGORITMOS DE ELEIÇÃO – ALGORITMO DO
VALENTÃO(BULLY)
ALGORITMOS DE ELEIÇÃO – ALGORITMO DO
ANEL
• Baseado na utilização de anel (físico ou
lógico), mas não usa ficha:
• Quando qualquer processo nota que o coordenador
não está funcionando, monta uma mensagem
ELEIÇÃO com seu número
• A mensagem é enviada a seu sucessor ou próximo
que esteja em funcionamento
• A cada etapa, o remetente adiciona seu número de
modo a se tornar também um candidato à eleição de
coordenador
• Quando a mensagem retorna ao processo que iniciou
a eleição, este envia a mensagem COORDENADOR
com o número mais alto da sua lista
ALGORITMOS DE ELEIÇÃO – ALGORITMO DO
ANEL
ELEIÇÕES EM AMBIENTES SEM FIO
• Necessários em ambientes onde a troca de
mensagens não é confiável e a topologia da
rede muda com frequência
• Visa eleger o melhor líder
• Exemplo: o nó o que possui maior bateria restante
• Um nó fonte P inicia a eleição enviando a
mensagem ELEIÇÃO a seus vizinhos
• Quando um nó Q recebe a mensagem
ELEIÇÃO pela primeira vez, designa o
remetente como seu pai e envia uma
mensagem ELEIÇÃO a todos vizinhos exceto
seu pai
ELEIÇÕES EM AMBIENTES SEM FIO
• Se Q recebe uma mensagem ELEIÇÃO de um
nó não-pai, apenas confirma o recebimento
• Se todos vizinhos de um nó R já possuem um
pai, R é um nó folha, portanto pode reportar de
volta a Q, passando informações úteis
• Quando Q recebe todas as respostas, reporta a
seu pai qual é o melhor dos recebidos por Q
• O nó P recebe os melhores candidatos e decide
pelo melhor, informando a todos via broadcast.
ELEIÇÕES EM AMBIENTES SEM FIO
ELEIÇÕES EM SISTEMAS DE GRANDE
ESCALA
• Há situações em que é preciso trabalhar com
redes maiores
• Exemplo: é necessário eleger Superpares em redes P2P
• Requisitos a serem cumpridos por superpar:
1. Nós normais devem ter baixa latência de acesso com
superpares
2. Superpares devem estar uniformemente distribuídos pela
rede de sobreposição
3. Deve haver uma porção predefinida de superpares em
relação ao número total de nós na rede de sobreposição
4. Cada superpar não deve precisar atender mais do que um
número fixo de nós normais

Mais conteúdo relacionado

Semelhante a Algoritmos de Exclusão Mútua e Eleição em Sistemas Distribuídos

Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03thomasdacosta
 
Escalonamento de Processos
Escalonamento de ProcessosEscalonamento de Processos
Escalonamento de ProcessosFatec Jales
 
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, DeadlockWilliams Gomes da Silva
 
Sistemas Distribuídos
Sistemas DistribuídosSistemas Distribuídos
Sistemas DistribuídosRoberto Aragy
 
Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no WindowsFee Kosta
 
Firewall - Introducao.pdf
Firewall - Introducao.pdfFirewall - Introducao.pdf
Firewall - Introducao.pdfssusere0b5a8
 
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...tdc-globalcode
 
Gerência de Processos: Processos
Gerência de Processos: ProcessosGerência de Processos: Processos
Gerência de Processos: ProcessosAlexandre Duarte
 
INTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdf
INTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdfINTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdf
INTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdfIvanSaboia1
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsEvandro Júnior
 
TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"Cesar Romero
 
Disciplina_Redes e Segurança de Sistemas - Mapeamento de Redes
Disciplina_Redes e Segurança de Sistemas - Mapeamento de RedesDisciplina_Redes e Segurança de Sistemas - Mapeamento de Redes
Disciplina_Redes e Segurança de Sistemas - Mapeamento de RedesRogério Almeida
 
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...André Leon S. Gradvohl
 

Semelhante a Algoritmos de Exclusão Mútua e Eleição em Sistemas Distribuídos (20)

Algoritmo lamport
Algoritmo lamportAlgoritmo lamport
Algoritmo lamport
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03
 
Escalonamento de Processos
Escalonamento de ProcessosEscalonamento de Processos
Escalonamento de Processos
 
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
 
Sistemas Distribuídos
Sistemas DistribuídosSistemas Distribuídos
Sistemas Distribuídos
 
Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no Windows
 
Aula 2 - IRL
Aula 2 - IRLAula 2 - IRL
Aula 2 - IRL
 
Firewall - Introducao.pdf
Firewall - Introducao.pdfFirewall - Introducao.pdf
Firewall - Introducao.pdf
 
Sd04 (si) comunicação em sd
Sd04 (si)   comunicação em sdSd04 (si)   comunicação em sd
Sd04 (si) comunicação em sd
 
Aula 1
Aula 1Aula 1
Aula 1
 
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
 
Gerência de Processos: Processos
Gerência de Processos: ProcessosGerência de Processos: Processos
Gerência de Processos: Processos
 
INTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdf
INTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdfINTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdf
INTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdf
 
Thread Java
Thread JavaThread Java
Thread Java
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
04_Barramentos.pdf
04_Barramentos.pdf04_Barramentos.pdf
04_Barramentos.pdf
 
TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"
 
Disciplina_Redes e Segurança de Sistemas - Mapeamento de Redes
Disciplina_Redes e Segurança de Sistemas - Mapeamento de RedesDisciplina_Redes e Segurança de Sistemas - Mapeamento de Redes
Disciplina_Redes e Segurança de Sistemas - Mapeamento de Redes
 
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
 

Algoritmos de Exclusão Mútua e Eleição em Sistemas Distribuídos

  • 2. Coordenação – Exclusão mútua • Uma questão fundamental em SD é a concorrência e a colaboração entre vários processos • Como garantir que o acesso concorrente de recursos não gere situações de inconsistência de dados? • São necessárias soluções que garantam o acesso mutualmente exclusivo pelos processos • Algoritmos distribuídos de exclusão mútua podem ser classificados em duas categorias • Baseados em ficha e Baseados em permissão
  • 3. Exclusão Mútua • Uma questão fundamental em SD é a concorrência e a colaboração entre vários processos • Como garantir que o acesso concorrente de recursos não gere situações de inconsistência de dados? • São necessárias soluções que garantam o acesso mutualmente exclusivo pelos processos • Algoritmos distribuídos de exclusão mútua podem ser classificados em duas categorias • Baseados em ficha e Baseados em permissão
  • 4. EXCLUSÃO MÚTUA - ALGORITMO CENTRALIZADO • Simula o que é feito em um sistema monoprocessador: • Um processo é eleito como coordenador • Sempre que um processo quiser acessar determinado recurso, é necessário pedir permissão ao coordenador, através de uma mensagem • O coordenador permite acesso ao recurso através de uma mensagem de concessão, desde que nenhum outro processo esteja acessando o recurso naquele momento • Para usar uma região crítica: REQUISIÇÃO, CONCESSÃO e LIBERAÇÃO
  • 5. EXCLUSÃO MÚTUA - ALGORITMO CENTRALIZADO
  • 6. EXCLUSÃO MÚTUA - ALGORITMO CENTRALIZADO • Prós: • Simples, fácil de entender e de implementar • É justo (segue o FCFS) • Como no FCFS, não há inanição (starvation) • Contras: • Como todo sistema centralizado um ponto de erro e um ponto de gargalo • Processos não conseguem distinguir coordenador inativo de permissão negada, caso se o recurso não está disponível nenhuma mensagem é enviada
  • 7. EXCLUSÃO MÚTUA - ALGORITMO DISTRIBUÍDO • Requer ordenação total de todos os eventos no sistema • Para isso será usado... Algoritmo de Lamport! • Funcionamento: • Quando processo deseja acessar um recurso compartilhado, monta uma mensagem que contém o nome do recurso, seu número de processo e a hora corrente (lógica). • Envia mensagem para todos processos, inclusive ele mesmo
  • 8. EXCLUSÃO MÚTUA - ALGORITMO DISTRIBUÍDO • Requer ordenação total de todos os eventos no sistema • Para isso será usado... Algoritmo de Lamport! • Funcionamento: • Quando processo deseja acessar um recurso compartilhado, monta uma mensagem que contém o nome do recurso, seu número de processo e a hora corrente (lógica). • Envia mensagem para todos processos, inclusive ele mesmo
  • 9. EXCLUSÃO MÚTUA - ALGORITMO DISTRIBUÍDO • Funcionamento (continuação): • Quando um processo recebe uma mensagem de requisição de outro, executa uma ação de acordo com seu próprio estado em relação ao recurso: 1. Se o receptor não estiver acessando o recurso nem quer acessá-lo, devolve “OK” ao remetente 2. Se já tem acesso ao recurso, não responde e coloca requisição em uma fila 3. Se receptor também quer acessar o recurso, mas ainda não possui a permissão, compara a marca de tempo da mensagem que chegou com a marca de tempo da mensagem que enviou a todos. Se a que recebeu é mais baixa envia OK, senão coloca requisição na fila e não manda nada
  • 10. EXCLUSÃO MÚTUA - ALGORITMO DISTRIBUÍDO • Funcionamento (continuação): • Após enviar requisições que peçam permissão, um processo aguarda recebimento de todas as respostas • Quando houver permissão de todos, processo acessa o recurso • Processo libera o recurso enviando um “OK” a todos os processos que estão em sua fila
  • 11. EXCLUSÃO MÚTUA - ALGORITMO DISTRIBUÍDO
  • 12. EXCLUSÃO MÚTUA - ALGORITMO DISTRIBUÍDO • Vantagens: • Exclusão mútua é garantida • Não há deadlock nem starvation • Desvantagens: • Ponto de falha único foi substituído por n pontos de falha • Trocou 1 gargalo por n gargalos • Pode melhorar enviando sempre uma resposta. Se não chegar resposta quem pediu pode concluir que o nó morreu • Tem que ter uma comunicação multicast ou manter uma lista de associação ao grupo em cada processo
  • 13. EXCLUSÃO MÚTUA – ALGORITMO TOKEN RING • Algoritmo baseado em ficha que circula ao redor do anel lógico • Se o processo quer acessar recurso e tem a ficha, usa recurso e quando acaba passa ficha • Se não quer usar recurso, passa a ficha
  • 14. EXCLUSÃO MÚTUA – ALGORITMO TOKEN RING • Garante a exclusão mútua • Não há deadlock nem starvation • A dificuldade é recuperar uma ficha perdida • Como saber o tempo razoável para um token não aparecer? • Se um processo morreu, um vizinho que tenta enviar o token para ele pode detectar, e anel pode ser reconfigurado
  • 15. EXCLUSÃO MÚTUA - COMPARAÇÃO
  • 16. ALGORITMOS DE ELEIÇÃO • Usados quando há necessidade de um nó agir como coordenador. São exemplos tradicionais de algoritmos de eleição: • Algoritmo do valentão • Algoritmo de anel • Além disso, existem soluções para ambientes específicos: • Algoritmos para redes sem fio • Algoritmos para sistemas de grande escala (como P2P)
  • 17. ALGORITMOS DE ELEIÇÃO – ALGORITMO DO VALENTÃO(BULLY) • Todos nós possuem um identificador • Sempre que um nó P percebe que o coordenador não responde, P inicia uma eleição: 1. P envia uma mensagem ELEIÇÃO a todos os processos de números mais altos 2. Se nenhum responder, P vence a eleição e se torna o coordenador 3. Se um dos processos de número mais alto responder, ele toma o poder e o trabalho de P está concluído • Dessa forma é eleito o nó com maior identificador
  • 18. ALGORITMOS DE ELEIÇÃO – ALGORITMO DO VALENTÃO(BULLY)
  • 19. ALGORITMOS DE ELEIÇÃO – ALGORITMO DO ANEL • Baseado na utilização de anel (físico ou lógico), mas não usa ficha: • Quando qualquer processo nota que o coordenador não está funcionando, monta uma mensagem ELEIÇÃO com seu número • A mensagem é enviada a seu sucessor ou próximo que esteja em funcionamento • A cada etapa, o remetente adiciona seu número de modo a se tornar também um candidato à eleição de coordenador • Quando a mensagem retorna ao processo que iniciou a eleição, este envia a mensagem COORDENADOR com o número mais alto da sua lista
  • 20. ALGORITMOS DE ELEIÇÃO – ALGORITMO DO ANEL
  • 21. ELEIÇÕES EM AMBIENTES SEM FIO • Necessários em ambientes onde a troca de mensagens não é confiável e a topologia da rede muda com frequência • Visa eleger o melhor líder • Exemplo: o nó o que possui maior bateria restante • Um nó fonte P inicia a eleição enviando a mensagem ELEIÇÃO a seus vizinhos • Quando um nó Q recebe a mensagem ELEIÇÃO pela primeira vez, designa o remetente como seu pai e envia uma mensagem ELEIÇÃO a todos vizinhos exceto seu pai
  • 22. ELEIÇÕES EM AMBIENTES SEM FIO • Se Q recebe uma mensagem ELEIÇÃO de um nó não-pai, apenas confirma o recebimento • Se todos vizinhos de um nó R já possuem um pai, R é um nó folha, portanto pode reportar de volta a Q, passando informações úteis • Quando Q recebe todas as respostas, reporta a seu pai qual é o melhor dos recebidos por Q • O nó P recebe os melhores candidatos e decide pelo melhor, informando a todos via broadcast.
  • 24. ELEIÇÕES EM SISTEMAS DE GRANDE ESCALA • Há situações em que é preciso trabalhar com redes maiores • Exemplo: é necessário eleger Superpares em redes P2P • Requisitos a serem cumpridos por superpar: 1. Nós normais devem ter baixa latência de acesso com superpares 2. Superpares devem estar uniformemente distribuídos pela rede de sobreposição 3. Deve haver uma porção predefinida de superpares em relação ao número total de nós na rede de sobreposição 4. Cada superpar não deve precisar atender mais do que um número fixo de nós normais