SlideShare uma empresa Scribd logo
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 16-Sistemas Distribuídos.pptx

Algoritmo lamport
Algoritmo lamportAlgoritmo lamport
Algoritmo lamport
Verônica Veiga
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
Paulo 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 03
thomasdacosta
 
Escalonamento de Processos
Escalonamento de ProcessosEscalonamento de Processos
Escalonamento de Processos
Fatec 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, Deadlock
Williams Gomes da Silva
 
Sistemas Distribuídos
Sistemas DistribuídosSistemas Distribuídos
Sistemas Distribuídos
Roberto Aragy
 
Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no Windows
Fee Kosta
 
Aula 2 - IRL
Aula 2 - IRLAula 2 - IRL
Aula 2 - IRL
Henrique Quirino
 
Firewall - Introducao.pdf
Firewall - Introducao.pdfFirewall - Introducao.pdf
Firewall - Introducao.pdf
ssusere0b5a8
 
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
 
Aula 1
Aula 1Aula 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 ...
tdc-globalcode
 
Gerência de Processos: Processos
Gerência de Processos: ProcessosGerência de Processos: Processos
Gerência de Processos: Processos
Alexandre 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.pdf
IvanSaboia1
 
Thread Java
Thread JavaThread Java
Thread Java
Wellington Oliveira
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
Evandro Júnior
 
04_Barramentos.pdf
04_Barramentos.pdf04_Barramentos.pdf
04_Barramentos.pdf
AriclenesDenirio
 
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 Redes
Rogé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 16-Sistemas Distribuídos.pptx (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 ...
 

Último

Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 

Último (8)

Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 

16-Sistemas Distribuídos.pptx

  • 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