Paradigmas em Sistemas
Distribuídos
•
•
•
•
•
•
•
Paradigmas em Sistemas
Distribuídos
Nomes e Endereçamento
Troca de Mensagens
Operações Remota
Comunicação em Grupo
Time e Clocks
Sincronismo
Ordenação
Paradigmas em SD
•
•
•
•
Thais Batista
Nomes e Endereçamento
• Em Sistemas Distribuídos
Coordenação
Consistência
Concorrência
Atomicidade
Paradigmas em SD
Thais Batista
Nomes e Endereçamento
• Endereços
– binding: associação de um nome a um objeto
– context: associação de um objeto a um contexto
• Nomes
– São usados para interagir com uma entidade
com a qual o nome refere-se
• Resolução de Nomes
– Puros: nenhuma informação adicional pode ser
extraída do nome
– Obter um atributo, em geral o endereço, de
um dado nome chama-se resolver o nome
• nameserver
– Impuros: permite inferir informação adicional sobre o
objeto (ex.: localização)
• nameserver.dimap.ufrn.br
Paradigmas em SD
Thais Batista
Paradigmas em SD
Thais Batista
1
Nomes e Endereçamento
• Tipos de Endereços
• Serviço de Nomes
– Endereço Lógico de Grupo:
• permite interagir com o grupo como um todo sem
necessidade de conhecer endereços individuais
• requer o uso de protocolos de comunicação em grupo –
capazes de reconhecer o endereço
– Endereços específicos de protocolos
• IP: endereço independe da arquitetura ou sistema
operacional da máquina
• Mobile-IP: endereço “independe” da localização da máquina
em dado momento
• Multicast-IP: o emissor não precisa se preocupar se os
receptores estão ativos
Paradigmas em SD
Thais Batista
Resolução de Nomes
– Primitivas:
• Lookup: recebe um nome e retorna o endereço
correspondente
• Bind: associa um endereço a um nome
• Unbind: cancela uma associação de nome a
endereço
– Como obter o endereço do Serviço de
Nomes:
• Deve ser um endereço bem conhecido (wellknown address)
Paradigmas em SD
Thais Batista
Troca de Mensagens
• Serviço de Nomes
– Implementação Escalável:
• Usar um conjunto de Servidores de Nomes (SN)
• Cada SN armazena uma parte dos dados
• A divisão do espaço de nomes entre os vários
servidores pode ser feita de acordo com vários
critérios como localização geográfica, limites
administrativos, etc
Paradigmas em SD
Resolução de Nomes
Thais Batista
• Forma mais básica de interação em Sistemas
Distribuídos
• Para trocar mensagens entre dois elementos:
– Selecionar um protocolo
– Obter o endereço do destino
– Primitivas
• Send: usada para enviar mensagens
• Receive: usada para receber mensagens
• Acknowledged-Send: para confiabilidade
Paradigmas em SD
Thais Batista
2
Troca de Mensagens
Operações Remotas
• Protocolo Request-Reply
USER
PROCESS
1
3
send
receive
1
send
– Usado em comunicação cliente-servidor
– Cliente envia solicitação, servidor processo e envia
o resultado
USER
PROCESS
USER
PROCESS
USER
PROCESS
2
USER
PROCESS
USER
PROCESS
4
ack
6
ack
3
USER
PROCESS
USER
PROCESS
receive
2
1
request
1
2
receive
reply
5
2
reply
1
request
2
OPER. SYS SUP.
NETWORK
OPER. SYS SUP.
(a)
OPER. SYS SUP.
NETWORK
OPER. SYS SUP.
ack
1a
2
send
(b)
OPER. SYS SUP.
Acknowledge-Send
Paradigmas em SD
send
OPER. SYS SUP.
NETWORK
OPER. SYS SUP.
2a
NETWORK
OPER. SYS SUP.
Request-Reply com Acknowledgement
Paradigmas em SD
Thais Batista
Comunicação um-para-muitos
• Comunicação ponto-a-ponto é um caso
particular da comunicação multiponto
• Comunicação um-para-muitos
Paradigmas em SD
2
ack
(b)
Request-Reply
Thais Batista
Comunicação em Grupo
– Unicast: ponto-a-ponto
– Broadcast: o destino inclui
participantes de um sistema
– Multicast: o destino é um
participantes do sistema
2
reply
1
send
(a)
Send-Receive
1
receive
reply
1
send
• Aplicação envia
múltiplos Unicast
• IP multicast
R
todos
os
grupo
de
Thais Batista
S
Paradigmas em SD
R
S
R
R
R
R
Thais Batista
3
Grupo
Time e Clocks
• Em Sistemas Distribuídos a noção de grupos é
uma forma de referir-se coletivamente a um
grupo de componentes que cooperam para
realizar uma tarefa ou que são réplicas
• Tempo em SD está relacionado com
ordenação,
sincronização,
sequenciamento.
• O uso de tempo em SD não é muito
simples
– exemplo clássico: tolerância a falhas
– Diferentes máquinas têm relógios diferentes!
Necessidade de Tempo Global!!!
Paradigmas em SD
Thais Batista
Paradigmas em SD
Tempo Global
Thais Batista
Sincronismo
• Um tempo global em um SD é construído
através da sincronização de todos os relógios
locais (um clock virtual)
• Uso dos termos Síncrono X Assíncrono
em SD
Paradigmas em SD
Paradigmas em SD
Thais Batista
– Bloqueio X Não Bloqueio
– Ao mesmo tempo X Em tempos diferentes
Thais Batista
4
Ordenação
Coordenação
• A noção de ordem dos eventos aparece
naturalmente quando descrevendo-se
computações distribuídas
• É comum resolver um problema
distribuído
usando
uma
estratégia
centralizada onde há um elemento que
coordena tarefas
– O importante é qual evento aconteceu
primeiro
Paradigmas em SD
Thais Batista
Paradigmas em SD
Consistência
Concorrência
• Um sistema é dito consistente se ele não
viola restrições de integridade impostas na
sua especificação
• Alguns mecanismos usados para forçar
consistência:
• Controle de Concorrência
– Competição para uso de recurso comum
Exclusão Mútua
– Consenso Distribuído
– Broadcast atômico
– Determinismo de Réplica
Paradigmas em SD
Thais Batista
Thais Batista
Paradigmas em SD
Thais Batista
5
Atomicidade
•
•
1.
2.
3.
4.
5.
6.
Atomicidade
Operação atômica = operação indivisível
Exemplo: reserva de uma sequência de vôos para um
passageiro
• Mecanismos em SD
– Transações Atômicas
– Protocolo de Duas-Fases
NATAL – PORTO – NATAL
NAT – SP
SP – LISBOA
LISBOA – PORTO
PORTO – LISBOA
LISBOA – SP
SP - NAT
Paradigmas em SD
Thais Batista
Paradigmas em SD
Thais Batista
6