SlideShare una empresa de Scribd logo
1 de 37
Sincronização de um 
Sistema Distribuído 
www.trsampaio.com 
Tiago R. Sampaio
Sumário 
 Motivação 
 Sincronização de Relógio 
 Relógios Lógicos 
 Relógio Físico 
 Relógios Sincronizados 
 Sincronização Física de Relógios 
◦ Algoritmos de Christian’s 
◦ Algoritmos de Berkeley 
◦ Clock Lógico 
◦ Algoritmo de Lamport 
◦ Algoritmo de Eleição 
◦ Algoritmo “Bully’ 
◦ Algoritmo do Anel 
◦ Exclusão Mútua 
◦ Algoritmo Token Ring 
 Conclusão
Motivação da Sincronização 
 Necessário pois informações 
centralizadas não é desejável 
 Tão importante quanto a Comunicação 
 Sincronização é fazer a coisa certa na 
hora certa 
 Para tratar problemas como região 
crítica, exclusão mútua 
 Técnicas convencionais para sistemas de 
CPU única não resolvem o problema
Sincronização de Relógio 
 Necessário o uso de algoritmos 
distribuídos 
 Algoritmos distribuídos possuem as 
seguintes propriedades: 
◦ 1− A informação relevante está espalhada em 
múltiplas máquinas 
◦ 2− Processos tomam decisões baseadas 
somente nas informações locais 
◦ 3− Um único ponto de falha no sistema deve 
ser evitado 
◦ 4− Não existe um relógio em comum ou outro 
tipo preciso de tempo global
Sincronização de Relógio 
 Atingir a sincronização sem 
centralização requer fazer coisas de 
um modo diferente dos sistemas 
operacionais tradicionais. 
 Nos sistemas centralizados, o tempo 
não é ambíguo 
 Atingir a concordância do tempo não é 
trivial
Sincronização de Relógio 
 Exemplo: Make do Unix 
 Objeto no tempo 2144 desatualizado 
 Editado no tempo 2143
Relógio Lógico 
 Com um único computador e clock, não 
importa se o relógio estiver fora do tempo 
 Tudo o que realmente importa são os 
tempos relativos 
 Em sistema com n computadores, os 
relógios podem ficarem gradualmente 
fora de sincronismo 
 Para muitos propósitos, é suficiente que 
todas as máquinas estejam no mesmo 
tempo
Relógio Físico 
 Em alguns sistemas (sistemas de 
tempo real), o tempo real é 
importante 
 Relógios físicos externos são 
necessários. 
 Multiplos relógios são desejáveis por: 
◦ Eficiência 
◦ Redundância
Relógio Físico 
 Problemas: 
 (1) Como será feito a sincronização 
deles com os relógios do mundo real 
 (2) Como sincronizar os relógios entre 
si 
 Hoje o tempo medido 
astronomicamente. Com relógio 
atômico
Relógios Sincronizados 
 Novos algoritmos que fazem uso da 
sincronização 
 Sincronização física 
 Para uma aplicação local o que vale é 
a sequência em que os eventos 
ocorrem 
 Problemas: 
◦ Um relógio não pode voltar atrás 
◦ Não se pode determinar com precisão o 
delay de transmissão da rede.
Algoritmo de Christian’s 
 Para sistemas com Servidor de 
Tempo 
 Periodicamente cada máquina envia 
uma mensagem para o Servidor de 
Tempo perguntando pelo tempo 
corrente. 
 Essa responde o mais rápido 
possível o tempo corrente
Algoritmo de Christian’s
Algoritmo de Berkeley 
 Servidor de Tempo é sempre ativo e 
requer, periodicamente de cada 
máquina, o tempo do seu relógio 
 O Sevidor de Tempo calcula a média 
dos tempos e diz para cada máquina 
como ajustar seu relógio
Algoritmo de Berkeley 
 (a) O servidor envia sua hora para todas as máquinas (b) 
As máquinas retornam o quanto estão adiantadas ou 
atrasadas (c) O servidor calcula uma média e retorna o 
quanto o horário deve ser adiado ou atrasado
Clock Lógico 
 Lamport mostra que: 
 Se dois processos não interagem, não 
é necessário que seus clocks sejam 
sincronizados 
 Usualmente, o que importa é que os 
processos concordem com a ordem 
em que os eventos ocorreram
Clock Lógico 
 Clock Lógico: Consistencia interna é o 
que importa 
 Clock Físico: Os clocks não podem 
divergir de mais que uma certa 
quantidade
Algoritmo de Lamport 
 Relação “acontece antes” ab (a 
acontece antes de b) 
 Todos os processos concordam que 
primeiro o evento a ocorreu e depois o b 
 “acontece antes” é uma relação transitiva: 
Se a b e bc então ac 
 Precisamos medir o tempo onde todo 
evento a, assumimos que ele ocorreu em 
um tempo C(a) e que todos os processos 
concordem. 
 Se a b, então C(a) < C(b)
Algoritmo de Lamport
Algoritmo de Lamport
Algoritmo de Lamport 
 Cada mensagem carrega o tempo de 
envio, de acordo com o clock do 
processo que a enviou 
 Quando a mensagem chega e o 
relógio do receptor mostra um valor 
anterior, o receptor avança o seu 
relógio para : 
◦ o tempo de envio da mensagem mais um
Algoritmo de Eleição 
 Muitos algoritmos distribuídos requerem 
um processo como coordenador 
 Muito utilizado para seleção de 
coordenador e seleção de superpares 
em sistemas P2P 
 Não importa quem seja o coordenador, 
mas é necessário haver um 
 Algoritmo Bully (Garcia e Molina1982) 
◦ Quando um processo nota que o 
coordenador não está respondendo a uma 
requisição, inicia-se uma ELEIÇÃO
Algoritmo Bully 
 Quando um processo nota que o 
coordenador não responde: 
1. P envia uma mensagem de Eleição 
para os processos maiores que ele 
2. Se nenhum responde, P ganha a 
eleição 
3. Se um processo com o número 
maior responde, ele assume a 
coordenação
Algoritmo Bully 
 Quando um processo recebe uma 
mensagem de eleição de um processo 
menor, ele envia um OK indicando que 
vai tomar o comando 
 Depois ele inicia uma eleição 
 Eventualmente todos os processos 
abandonam a disputa, com exceção do 
novo coordenador 
 Ele envia uma mensagem a todos 
avisando que é o novo coordenador 
 Se um processo que estava “fora do ar” 
volta, ele inicia uma eleição
Algoritmo Bully
Algoritmo Bully
Algoritmo do Anel 
 Baseado no uso do anel mas sem o ‘token’ 
 Quando um processo nota que o 
coordenador não está funcionando ele envia 
uma mensagem de eleição para o seu 
sucessor, com o numero do seu processo 
 A mensagem segue e a cada passo é 
incluido o numero do processo na lista 
 Quando a mensagem dá a volta no anel o 
novo coordenador é determinado 
 Uma mensagem circula informando quem é 
o novo coordenador
Algoritmo do Anel
Exclusão Mútua 
 Assim como em um sistema 
centralizado: 
 Um processo é eleito como coordenador 
 Quando um processo quer entrar na 
região crítica, ele envia uma mensagem 
de requisição 
 Se nenhum outro está na região, o 
coordenador permite 
 Quando a resposta chega, o processo 
entra na região
Exclusão Mútua 
 Supondo que outro processo peça 
permissão, o coordenador não envia 
resposta a ele, bloqueando a entrada 
 Quando o processo deixa a região ele 
envia uma mensagem ao coordenador 
liberando a região
Exclusão Mútua 
(a) O processo 1 solicita ao coordenador permissão para acessar o 
recurso (b) O processo 2 solicita permissão para acessar o mesmo 
recurso, o Coordenador não responde (c) Quando o processo 1 libera 
o recurso, informa ao coordenador, que então responde ao 2
Exclusão Mútua - Distribuído 
 Quando um processo quer entrar na 
região crítica ele constrói uma 
mensagem com o nome da região, n° do 
processo e tempo corrente e envia a 
todos 
 Quando um processo recebe a 
requisição de outro: 
1. Se o receptor não está na região e não 
quer entrar, ele envia OK de volta 
2. Se o receptor está na região ele não 
responde e coloca a requisição na fila
Exclusão Mútua - Distribuído 
3. Se o receptor quer entrar mas ainda 
não o fez, ele compara os tempos e o 
menor vence. Se for menor ele envia 
OK. 
 Após pedir permissão um processo 
espera que todos deem permissão 
 Quando todas chegam, ele entra na 
região 
 Quando ele sai, envia OK para todos os 
processos na sua fila
Exclusão Mútua - Distribuído 
(a) Dois processos querem acessar um recurso compartilhado no 
mesmo momento. (b) O processo 0 tem a marca de tempo mais 
baixa, portanto vence. (c) Quando o processo 0 conclui, também 
envia uma mensagem OK, portanto agora o processo 2 pode 
acessar o recurso.
Algoritmo “Token Ring” 
 É construido um anel lógico por SW 
onde cada processo recebe uma 
posição 
 Quando é inicializado, o processo 0 
ganha o token 
 O token circula o anel, e quem o 
recebe verifica se quer entrar na 
região, se sim, ele entra. Se não, 
passa o token 
 Se nenhum quiser, o token fica
Algoritmo “Token Ring” 
 Problemas: 
 Se o token é perdido ele precisa ser 
regenerado 
 A detecção de perca é difícil 
 Se um processo falha, ocorrem 
problemas 
 É necessário confirmar o recebimento do 
token 
 O processo que falhou é retirado 
 Todos os processos precisam conhecer 
o anel
Algoritmo “Token Ring” 
a) Um grupo de processos não ordenado em uma rede 
b) Um anel lógico é construído em software
Conclusão 
 Necessário conhecer os vários tipos de 
algoritmos de sincronização para 
aplicação correta no cenário ideal 
 Existem algoritmos centralizados e 
distribuídos, cada um tem suas 
desvantagens (falta de segurança vs 
falhas de comunicação e processo)

Más contenido relacionado

La actualidad más candente

Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosFrederico Madeira
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosHélio Jovo
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Leinylson Fontinele
 
Distributed system lamport's and vector algorithm
Distributed system lamport's and vector algorithmDistributed system lamport's and vector algorithm
Distributed system lamport's and vector algorithmpinki soni
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosFrederico Madeira
 
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 IndiretaVictor Hazin da Rocha
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosMessias Batista
 
Aula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a FalhasAula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a FalhasVictor Hazin da Rocha
 
Middleware and Middleware in distributed application
Middleware and Middleware in distributed applicationMiddleware and Middleware in distributed application
Middleware and Middleware in distributed applicationRishikese MR
 
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ídosPortal_do_Estudante_SD
 
Sistemas De Arquivos Distribuídos (SAD)
Sistemas De Arquivos Distribuídos (SAD)Sistemas De Arquivos Distribuídos (SAD)
Sistemas De Arquivos Distribuídos (SAD)Frederico Madeira
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoFrederico Madeira
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockWellington Oliveira
 
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo EscalonadorCategorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo EscalonadorSofia Trindade
 
Group Communication in distributed Systems.docx
Group Communication in distributed Systems.docxGroup Communication in distributed Systems.docx
Group Communication in distributed Systems.docxMsecMca
 
Redes - Camada Enlace
Redes - Camada EnlaceRedes - Camada Enlace
Redes - Camada EnlaceLuiz Arthur
 

La actualidad más candente (20)

Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidos
 
Aula 03-deadlock
Aula 03-deadlockAula 03-deadlock
Aula 03-deadlock
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)
 
Distributed system lamport's and vector algorithm
Distributed system lamport's and vector algorithmDistributed system lamport's and vector algorithm
Distributed system lamport's and vector algorithm
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
 
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
 
Agreement protocol
Agreement protocolAgreement protocol
Agreement protocol
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - Processos
 
Aula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a FalhasAula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a Falhas
 
Middleware and Middleware in distributed application
Middleware and Middleware in distributed applicationMiddleware and Middleware in distributed application
Middleware and Middleware in distributed application
 
Sd06 (si) exclusão mútua
Sd06 (si)   exclusão mútuaSd06 (si)   exclusão mútua
Sd06 (si) exclusão mútua
 
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
 
6.Distributed Operating Systems
6.Distributed Operating Systems6.Distributed Operating Systems
6.Distributed Operating Systems
 
Sistemas De Arquivos Distribuídos (SAD)
Sistemas De Arquivos Distribuídos (SAD)Sistemas De Arquivos Distribuídos (SAD)
Sistemas De Arquivos Distribuídos (SAD)
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de Código
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 Deadlock
 
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
 
Group Communication in distributed Systems.docx
Group Communication in distributed Systems.docxGroup Communication in distributed Systems.docx
Group Communication in distributed Systems.docx
 
Redes - Camada Enlace
Redes - Camada EnlaceRedes - Camada Enlace
Redes - Camada Enlace
 

Destacado

Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Arthur Emanuel
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBASistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBAAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCSistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOASistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOAAdriano Teixeira de Souza
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosArthur Emanuel
 
Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Arthur Emanuel
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebArthur Emanuel
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketAdriano Teixeira de Souza
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Arthur Emanuel
 
Sistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosSistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosValdir Junior
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareAdriano Teixeira de Souza
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Arthur Emanuel
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosGustavo Monteiro
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosrobsons75
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoAdriano Teixeira de Souza
 

Destacado (20)

Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 
Sd07 (si) eleição
Sd07 (si)   eleiçãoSd07 (si)   eleição
Sd07 (si) eleição
 
Protocolo IPsec
Protocolo IPsecProtocolo IPsec
Protocolo IPsec
 
Sistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBASistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBA
 
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCSistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
 
Sistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOASistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOA
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
 
Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos Web
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids Computacionais
 
Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - Socket
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00
 
Sistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosSistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de Dados
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – Middleware
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas Distribuídos
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidos
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de Projeto
 

Similar a Sincronização de um sistema distribuído

16-Sistemas Distribuídos.pptx
16-Sistemas Distribuídos.pptx16-Sistemas Distribuídos.pptx
16-Sistemas Distribuídos.pptxRoberto Aragy
 
Resolução da atividade pagina 84 a 87 so
Resolução da atividade pagina 84 a 87 soResolução da atividade pagina 84 a 87 so
Resolução da atividade pagina 84 a 87 soCristiano Silva
 
Escalonamento de Processos
Escalonamento de ProcessosEscalonamento de Processos
Escalonamento de ProcessosFatec Jales
 
(ACH2044) Sistemas Operacionais - Aula 05
(ACH2044) Sistemas Operacionais - Aula 05(ACH2044) Sistemas Operacionais - Aula 05
(ACH2044) Sistemas Operacionais - Aula 05Norton Trevisan Roman
 
Algoritimo de threads
Algoritimo de threadsAlgoritimo de threads
Algoritimo de threadsIsraelCunha
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisAbadia Cardoso
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2Gustavo Souza
 
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
 
Categorias de escalonamento e objetivos do algoritmo de escalonamento
Categorias de escalonamento e objetivos do algoritmo de escalonamentoCategorias de escalonamento e objetivos do algoritmo de escalonamento
Categorias de escalonamento e objetivos do algoritmo de escalonamentoThaís Favore
 
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
 
Comunicacao entre Processos
Comunicacao entre ProcessosComunicacao entre Processos
Comunicacao entre ProcessosRafaelPessoa22
 
Gerência de Transações Distribuídas de Consultas
Gerência de Transações Distribuídas de ConsultasGerência de Transações Distribuídas de Consultas
Gerência de Transações Distribuídas de ConsultasWendel Moreira
 
Tipologias lógicas
Tipologias lógicas Tipologias lógicas
Tipologias lógicas Bananazul
 
Canais Assíncronos II - Aplicações
Canais Assíncronos II - AplicaçõesCanais Assíncronos II - Aplicações
Canais Assíncronos II - AplicaçõesHeron Carvalho
 

Similar a Sincronização de um sistema distribuído (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
 
Questionário sobre processos
Questionário sobre processosQuestionário sobre processos
Questionário sobre processos
 
Relógios Lógicos
Relógios LógicosRelógios Lógicos
Relógios Lógicos
 
Resolução da atividade pagina 84 a 87 so
Resolução da atividade pagina 84 a 87 soResolução da atividade pagina 84 a 87 so
Resolução da atividade pagina 84 a 87 so
 
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)
 
Impasses S.O
Impasses S.OImpasses S.O
Impasses S.O
 
Escalonamento de Processos
Escalonamento de ProcessosEscalonamento de Processos
Escalonamento de Processos
 
(ACH2044) Sistemas Operacionais - Aula 05
(ACH2044) Sistemas Operacionais - Aula 05(ACH2044) Sistemas Operacionais - Aula 05
(ACH2044) Sistemas Operacionais - Aula 05
 
Algoritimo de threads
Algoritimo de threadsAlgoritimo de threads
Algoritimo de threads
 
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
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2
 
Lamport
LamportLamport
Lamport
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
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
 
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
 
Comunicacao entre Processos
Comunicacao entre ProcessosComunicacao entre Processos
Comunicacao entre Processos
 
Gerência de Transações Distribuídas de Consultas
Gerência de Transações Distribuídas de ConsultasGerência de Transações Distribuídas de Consultas
Gerência de Transações Distribuídas de Consultas
 
Tipologias lógicas
Tipologias lógicas Tipologias lógicas
Tipologias lógicas
 
Canais Assíncronos II - Aplicações
Canais Assíncronos II - AplicaçõesCanais Assíncronos II - Aplicações
Canais Assíncronos II - Aplicações
 

Más de Tiago R. Sampaio

Padrão de projeto de software Composite
Padrão de projeto de software CompositePadrão de projeto de software Composite
Padrão de projeto de software CompositeTiago R. Sampaio
 
Web Semantica - Simple HTML Ontology Extension SHOE
Web Semantica - Simple HTML Ontology Extension SHOEWeb Semantica - Simple HTML Ontology Extension SHOE
Web Semantica - Simple HTML Ontology Extension SHOETiago R. Sampaio
 
Linguagem de Programação PERL
Linguagem de Programação PERLLinguagem de Programação PERL
Linguagem de Programação PERLTiago R. Sampaio
 

Más de Tiago R. Sampaio (8)

Linux - Um estudo de caso
Linux - Um estudo de casoLinux - Um estudo de caso
Linux - Um estudo de caso
 
Padrão de projeto de software Composite
Padrão de projeto de software CompositePadrão de projeto de software Composite
Padrão de projeto de software Composite
 
Web Semantica - Simple HTML Ontology Extension SHOE
Web Semantica - Simple HTML Ontology Extension SHOEWeb Semantica - Simple HTML Ontology Extension SHOE
Web Semantica - Simple HTML Ontology Extension SHOE
 
Diagrama UML Pergamum
Diagrama UML PergamumDiagrama UML Pergamum
Diagrama UML Pergamum
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Banco de Dados XML
Banco de Dados XMLBanco de Dados XML
Banco de Dados XML
 
Linguagem de Programação PERL
Linguagem de Programação PERLLinguagem de Programação PERL
Linguagem de Programação PERL
 
Bioinformática
BioinformáticaBioinformática
Bioinformática
 

Sincronização de um sistema distribuído

  • 1. Sincronização de um Sistema Distribuído www.trsampaio.com Tiago R. Sampaio
  • 2. Sumário  Motivação  Sincronização de Relógio  Relógios Lógicos  Relógio Físico  Relógios Sincronizados  Sincronização Física de Relógios ◦ Algoritmos de Christian’s ◦ Algoritmos de Berkeley ◦ Clock Lógico ◦ Algoritmo de Lamport ◦ Algoritmo de Eleição ◦ Algoritmo “Bully’ ◦ Algoritmo do Anel ◦ Exclusão Mútua ◦ Algoritmo Token Ring  Conclusão
  • 3. Motivação da Sincronização  Necessário pois informações centralizadas não é desejável  Tão importante quanto a Comunicação  Sincronização é fazer a coisa certa na hora certa  Para tratar problemas como região crítica, exclusão mútua  Técnicas convencionais para sistemas de CPU única não resolvem o problema
  • 4. Sincronização de Relógio  Necessário o uso de algoritmos distribuídos  Algoritmos distribuídos possuem as seguintes propriedades: ◦ 1− A informação relevante está espalhada em múltiplas máquinas ◦ 2− Processos tomam decisões baseadas somente nas informações locais ◦ 3− Um único ponto de falha no sistema deve ser evitado ◦ 4− Não existe um relógio em comum ou outro tipo preciso de tempo global
  • 5. Sincronização de Relógio  Atingir a sincronização sem centralização requer fazer coisas de um modo diferente dos sistemas operacionais tradicionais.  Nos sistemas centralizados, o tempo não é ambíguo  Atingir a concordância do tempo não é trivial
  • 6. Sincronização de Relógio  Exemplo: Make do Unix  Objeto no tempo 2144 desatualizado  Editado no tempo 2143
  • 7. Relógio Lógico  Com um único computador e clock, não importa se o relógio estiver fora do tempo  Tudo o que realmente importa são os tempos relativos  Em sistema com n computadores, os relógios podem ficarem gradualmente fora de sincronismo  Para muitos propósitos, é suficiente que todas as máquinas estejam no mesmo tempo
  • 8. Relógio Físico  Em alguns sistemas (sistemas de tempo real), o tempo real é importante  Relógios físicos externos são necessários.  Multiplos relógios são desejáveis por: ◦ Eficiência ◦ Redundância
  • 9. Relógio Físico  Problemas:  (1) Como será feito a sincronização deles com os relógios do mundo real  (2) Como sincronizar os relógios entre si  Hoje o tempo medido astronomicamente. Com relógio atômico
  • 10. Relógios Sincronizados  Novos algoritmos que fazem uso da sincronização  Sincronização física  Para uma aplicação local o que vale é a sequência em que os eventos ocorrem  Problemas: ◦ Um relógio não pode voltar atrás ◦ Não se pode determinar com precisão o delay de transmissão da rede.
  • 11. Algoritmo de Christian’s  Para sistemas com Servidor de Tempo  Periodicamente cada máquina envia uma mensagem para o Servidor de Tempo perguntando pelo tempo corrente.  Essa responde o mais rápido possível o tempo corrente
  • 13. Algoritmo de Berkeley  Servidor de Tempo é sempre ativo e requer, periodicamente de cada máquina, o tempo do seu relógio  O Sevidor de Tempo calcula a média dos tempos e diz para cada máquina como ajustar seu relógio
  • 14. Algoritmo de Berkeley  (a) O servidor envia sua hora para todas as máquinas (b) As máquinas retornam o quanto estão adiantadas ou atrasadas (c) O servidor calcula uma média e retorna o quanto o horário deve ser adiado ou atrasado
  • 15. Clock Lógico  Lamport mostra que:  Se dois processos não interagem, não é necessário que seus clocks sejam sincronizados  Usualmente, o que importa é que os processos concordem com a ordem em que os eventos ocorreram
  • 16. Clock Lógico  Clock Lógico: Consistencia interna é o que importa  Clock Físico: Os clocks não podem divergir de mais que uma certa quantidade
  • 17. Algoritmo de Lamport  Relação “acontece antes” ab (a acontece antes de b)  Todos os processos concordam que primeiro o evento a ocorreu e depois o b  “acontece antes” é uma relação transitiva: Se a b e bc então ac  Precisamos medir o tempo onde todo evento a, assumimos que ele ocorreu em um tempo C(a) e que todos os processos concordem.  Se a b, então C(a) < C(b)
  • 20. Algoritmo de Lamport  Cada mensagem carrega o tempo de envio, de acordo com o clock do processo que a enviou  Quando a mensagem chega e o relógio do receptor mostra um valor anterior, o receptor avança o seu relógio para : ◦ o tempo de envio da mensagem mais um
  • 21. Algoritmo de Eleição  Muitos algoritmos distribuídos requerem um processo como coordenador  Muito utilizado para seleção de coordenador e seleção de superpares em sistemas P2P  Não importa quem seja o coordenador, mas é necessário haver um  Algoritmo Bully (Garcia e Molina1982) ◦ Quando um processo nota que o coordenador não está respondendo a uma requisição, inicia-se uma ELEIÇÃO
  • 22. Algoritmo Bully  Quando um processo nota que o coordenador não responde: 1. P envia uma mensagem de Eleição para os processos maiores que ele 2. Se nenhum responde, P ganha a eleição 3. Se um processo com o número maior responde, ele assume a coordenação
  • 23. Algoritmo Bully  Quando um processo recebe uma mensagem de eleição de um processo menor, ele envia um OK indicando que vai tomar o comando  Depois ele inicia uma eleição  Eventualmente todos os processos abandonam a disputa, com exceção do novo coordenador  Ele envia uma mensagem a todos avisando que é o novo coordenador  Se um processo que estava “fora do ar” volta, ele inicia uma eleição
  • 26. Algoritmo do Anel  Baseado no uso do anel mas sem o ‘token’  Quando um processo nota que o coordenador não está funcionando ele envia uma mensagem de eleição para o seu sucessor, com o numero do seu processo  A mensagem segue e a cada passo é incluido o numero do processo na lista  Quando a mensagem dá a volta no anel o novo coordenador é determinado  Uma mensagem circula informando quem é o novo coordenador
  • 28. Exclusão Mútua  Assim como em um sistema centralizado:  Um processo é eleito como coordenador  Quando um processo quer entrar na região crítica, ele envia uma mensagem de requisição  Se nenhum outro está na região, o coordenador permite  Quando a resposta chega, o processo entra na região
  • 29. Exclusão Mútua  Supondo que outro processo peça permissão, o coordenador não envia resposta a ele, bloqueando a entrada  Quando o processo deixa a região ele envia uma mensagem ao coordenador liberando a região
  • 30. Exclusão Mútua (a) O processo 1 solicita ao coordenador permissão para acessar o recurso (b) O processo 2 solicita permissão para acessar o mesmo recurso, o Coordenador não responde (c) Quando o processo 1 libera o recurso, informa ao coordenador, que então responde ao 2
  • 31. Exclusão Mútua - Distribuído  Quando um processo quer entrar na região crítica ele constrói uma mensagem com o nome da região, n° do processo e tempo corrente e envia a todos  Quando um processo recebe a requisição de outro: 1. Se o receptor não está na região e não quer entrar, ele envia OK de volta 2. Se o receptor está na região ele não responde e coloca a requisição na fila
  • 32. Exclusão Mútua - Distribuído 3. Se o receptor quer entrar mas ainda não o fez, ele compara os tempos e o menor vence. Se for menor ele envia OK.  Após pedir permissão um processo espera que todos deem permissão  Quando todas chegam, ele entra na região  Quando ele sai, envia OK para todos os processos na sua fila
  • 33. Exclusão Mútua - Distribuído (a) Dois processos querem acessar um recurso compartilhado no mesmo momento. (b) O processo 0 tem a marca de tempo mais baixa, portanto vence. (c) Quando o processo 0 conclui, também envia uma mensagem OK, portanto agora o processo 2 pode acessar o recurso.
  • 34. Algoritmo “Token Ring”  É construido um anel lógico por SW onde cada processo recebe uma posição  Quando é inicializado, o processo 0 ganha o token  O token circula o anel, e quem o recebe verifica se quer entrar na região, se sim, ele entra. Se não, passa o token  Se nenhum quiser, o token fica
  • 35. Algoritmo “Token Ring”  Problemas:  Se o token é perdido ele precisa ser regenerado  A detecção de perca é difícil  Se um processo falha, ocorrem problemas  É necessário confirmar o recebimento do token  O processo que falhou é retirado  Todos os processos precisam conhecer o anel
  • 36. Algoritmo “Token Ring” a) Um grupo de processos não ordenado em uma rede b) Um anel lógico é construído em software
  • 37. Conclusão  Necessário conhecer os vários tipos de algoritmos de sincronização para aplicação correta no cenário ideal  Existem algoritmos centralizados e distribuídos, cada um tem suas desvantagens (falta de segurança vs falhas de comunicação e processo)