Escolar Documentos
Profissional Documentos
Cultura Documentos
Material Adaptado
Comunicação em Sistemas Distribuídos
Virtualização
Modelo OSI
◼ Um sistema aberto é preparado para se comunicar com
qualquer outro sistema aberto através de regras que ditam
o formato, conteúdo e significado das mensagens enviadas
e recebidas.
Máquina 1 Máquina 2
Processo A Processo B
protocolo de aplicação
aplicação aplicação
protocolo de apresentação
apresentação apresentação
protocolo de sessão
sessão sessão
Rede de comunicação
Modelo OSI
A Camada Física
◼ Responsável pela transmissão dos bits de
informação (0’s e 1’s) no meio de comunicação
⚫ Padronização elétrica
⚫ Sincronização
⚫ Padronização de conectores
◼ Ex.: RS-232-C
⚫ Comunicação serial
Modelo OSI
A Camada de Rede
◼ Determina as Rotas que os pacotes seguem
do remetente ao destinatário
⚫ Roteamento
⚫ Custo
Modelo OSI
A Camada de Rede
◼ Procura a melhor rota
⚫ Distância
⚫ Velocidade (tráfego)
Atrasos
Variante com o tempo
◼ Protocolos Orientados a Conexão
◼ Protocolos Sem Conexão
Modelo OSI
A Camada de Transporte
◼ Conexão confiável
A Camada de Sessão
◼ Provê sincronização
◼ Uma evolução da camada de transporte
◼ Permite inserir pontos de verificação em
mensagens longas
◼ Raramente é implementada
Modelo OSI
A Camada de Apresentação
◼ Relacionada ao significado dos bits
⚫ Mensagens
A Camada de Aplicação
◼ Coletânea de protocolos para atividades comuns
⚫ E-mail (smtp, pop e imap)
⚫ FTP
⚫ HTTP
⚫ DNS
⚫ Etc.
Modelo OSI - Resumo
Funções e Serviços Camada do RM-OSI
• Lembremos 2 ou 3 coisas...
• Camada de rede (no nosso caso IP):
– Responsável por comunicação best-effort de pacotes entre nós
– Pacotes podem seguir rotas diferentes ou não chegar
• Camada de transporte:
– Comunicação entre processos
– Multiplexamos a comunicação do IP com portas
Transporte: TCP, UDP
Endereço de Processo:
◼ Composto
Localização do Servidor
◼ Servidor de Nomes
⚫ Processos servidores são referenciados por
nomes (strings ASCII)
⚫ Cada nome é mapeado para o endereço de
máquina + ID local do processo
⚫ Solução centralizada
Escalabilidade
Falha
⚫ Replicação
Vários servidores de nomes
COMUNICAÇÃO
ENTRE
PROCESSOS
DISTRIBUÍDOS
Troca de Mensagens
Troca de Mensagens
Troca de Mensagens
Troca de Mensagens
Troca de Mensagens
Troca de Mensagens-Destinatários
Troca de Mensagens-Comunicação Através de Sockets
Troca de Mensagens-Comunicação Através de Sockets
• Os sockets estão entre a camada de
transporte e a de aplicações. Estando
nesse ponto de intercessão, eles
conseguem fazer uma interface entre a
aplicação e rede de maneira bem
transparente. Assim, aplicações são
implementadas através de uma
comunicação lógica. Lógica no sentido
de que para esses programas, eles estão
se comunicando diretamente um com o
outro, mas na prática, eles estão
passando pela rede para trocar
mensagens.
Troca de Mensagens-Comunicação Através de Sockets
• Principais funções utilizadas ao criar um programa utilizando
socket:
Troca de Mensagens-Comunicação Através de Sockets
• Socket do destinatário (servidor) deve estar
exclusivamente acoplado a uma porta do computador
local;
• Um mesmo socket pode ser usado tanto para enviar
quanto para receber mensagens (comunicação
bidirecional) ;
• Um processo pode usar múltiplas portas, mas não
pode compartilhar portas com outros processos do
mesmo computador (exceto no caso de sockets
associados a endereços multicast).
Troca de Mensagens-Comunicação Através de Sockets
• Os sockets abstraem as camadas de rede para que
programadores possam se preocupar com a comunicação
de maneira distribuída de seus processos e aplicações.
• A implementação dos sockets foi concebida como uma API
com interface para o sistema operacional; que é o
responsável por controlar e garantir segurança da criação e
destruição desses sockets.
• Como um padrão, os sockets hoje estão presentes em
praticamente todos programas que utilizam a rede para se
comunicar e permitindo que novos sistemas distribuídos
apareçam.
Primitivas de Comunicação
◼ Bufferização
◼ Confiabilidade
Como c o m p u t a d o r g u a r d a o t e m p o ?
I g u a l a relógio d i g i t a l : oscilador d e cristal
cristal e n e r g i z a d o oscila e m f re q u ê n c i a pré-
determinada
c a d a o s c i l aç ão i n c re m e n t a u m contador (tic d e
relógio)
RTC: R e al Time Clock
circuito i n t e gr ad o d e d i c a d o,
a l i m e n t a d o t a m b é m por b a t e r i a
(computador d e s l i g a d o )
f re q u ê n c i a d e 3 2 . 7 6 8 kHz, q u e é 2 1 5
tics por s e g u n d o
p o d e ser inicializado c o m u m valor
Ho ra d o S i s t e m a
RTC é c h a m a d o d e Hardware Clock ou BIOS Clock
Ao iniciar, SO utiliza o RTC p a r a inicializar s e u próprio
relógio
System Clock ou Kernel Clock
Dá t a m b é m b a s e a d o e m c o n t a g e m d e ticks, mas pode usar o
origem:
t i c k s q u e a l i m e n t a m a CPU e a d a p t a ç õ e s (por software)
Hora do S i s t e m a (System Time): n ú m e ro d e ticks d e s d e
u m a cer ta d a t a (epoch)
Unix: 1 d e janeiro d e 1 9 7 0 à s 0 0 : 0 0 : 0 0 UT
Conver tida p a r a Hora do Calendário (Calendar Time)
l e v a e m c o n s i d e r a ç ã o f u s o horário, horário d e ve r ã o,
etc .
A c e r t a n d o a Hora
Como a j u s t a r a hora do s e u
computador?
Id eia 0 : o l h a a hora no celular, c op i a o
valor p a r a c om p u t a do r ( a j u s t a Hora do
S i s t e m a , a j u s t a RTC)
N e n h u m oscilador é f u n d a m e n t a l m e n t e
idêntico a outro
Diversos fatores a f e t a m f re q u ê n c i a :
c o m p o s i ç ã o e f a b r i c a ç ã o, e fatores externos
( t e n s ã o elétrica, t e m p e r a t u r a , p re s s ã o, etc)
Até os osciladores do TAI p o s s u e m v a r i a ç õ e s
10-9 s
Ajuste do
relógio
Erro entre relógios
104 s
Tempo (de referência)
Gustavo Mansur and Luiz Ferreira, “Error Behavior Of Atomic Clocks Aboard Gps Satellites”
Bol. Ciênc. Geod. 25 (4) • 2019
Ajustando Relógios
Clock drift: a j u s t a r c o n s t a n t e m e n t e os
relógios d o s c o m p u t a d o re s
ve r d a d e a t é p a r a UTC!
Como a j u s t a r a hora do s e u
computador?
TA
A
tempo
B tempo
d
B e n v i a p e d i d o d e hora p a r a A
A re s p o n d e c o m s u a hora, T
A
P ro b l e m a : Como de t e r m i n ar o valor d e d ?
L i d a n d o c o m Atraso
Prob l e ma f u n d a m e n t a l : Determinar d
( n a f i g u r a anterior)
T : horário q u e resposta c h e g a
r
E s t i m a r d = (T – T ) / 2
p r
B a j u s t a relógio p a r a T A + d
TA
A
tempo
B
T d T tempo
p r
I d e i a : m a rc a r hora d e c h e g a d a e m A,
d e s c o n tar t e m p o entre c h e g a d a / s a í d a
T T
2 3
A
tempo
B tempo
T1 d T4
E s t i m a r d = [(T 4 - T 1) – (T 3- T 2)] / 2
B a j u s t a relógio p a r a T + d
3
Problema: a s s u m e q u e retardo d e i d a i g u a l
a o d e volta
Algoritmo d e Berkeley
Sincronizaç ão d e relógio p a r a m á q u i n a s n a m e s m a
rede local
o r i g i n a l m e n t e , s e m referência externa
Ser vidor i n fo r m a s u a hora p a r a m á q u i n a s clientes
M á q u i n a s clientes re s p o n d e m c o m d i fe re n ç a entre
valor recebido e s e u s relógios
Ser vidor f a z a m é d i a d a s d i fe re n ç a s re c e b i d a s
( re m ove n d o p o s s í ve i s outliers)
Ser vidor t r a n s m i t e p a r a c a d a cliente a j u s t e
n e c e s sár i o
Clientes f a z e m a j u s t e s e m s e u s relógios
Exemplo
Menos precisão!
Sincronizaç ão c o n t i n u a d a do relógio do s i s t e m a
SO f a z controle fino d a f re q u ê n c i a do relógio do
s i s t e m a ( u s a n d o NTP)
Objetivo: Manter erro e m torno d e zero
Sincronização d e Relógios
Prob l e ma f u n d a m e n t a l e difícil
TAI utiliza s at é l i t e s !
E ve n t o s e m diferentes processos do SD
escrever no l o g , e nv i a r p e l a rede , a t u a l i z a r BD, etc
e8 e9 e10
Linha peq área
“corrida do
e1 artilheiro”
Linha grd área
e11
Linha de fundo
tempo
D i a g r a m a ilustrativo: n ã o s a b e m o s s e e 4 ocorreu
antes de e5
D i a g r a m a a j u d a a e n t e n d e r ordem parcial
ex . “ s e t a ” i n d i c a q u e o r i g e m ocorreu a n t e s do
destino por c a u s a l i d a d e
Relacionando eventos