Tópicos em redes e
sistemas distribuídos B
Carlos Oberdan Rolim
Ciência da Computação
Sistemas Distribuídos
Conceitos básicos
Sistemas distribuídos
Necessidade de realizar tarefas com maior intensidade.
Opções:
Trabalhar mais
Trabalhar de uma maneira mais eficiente
Pedir ajuda
Sistemas distribuídos
Sistemas distribuídos se diferenciam dos demais
computadores pelo acoplamento fraco entre os
processadores, ou seja, os computadores não tem acesso a
uma memória comum. Toda a interação deve ser realizada
por troca de mensagens através de canais de comunicação
Sistemas distribuídos
sem memória compartilhada
sem relógio global
modelos
modelo físico
processador
relógio local
memória local volátil
armazenamento não volátil
interface de rede
software
nodos e rede
modelo lógico
Processos e canais
Sistemas distribuídos: modelos
Sistemas distribuídos: modelos
Modelo físico
Comunicação: topologias ponto a ponto
Topologia barramento
bus, barra ou via
Modelo lógico...
cada processo pode estar
em um nodo diferente
aplicação distribuída
conjunto de processos concorrentes
processos cooperam para realizar uma computação
cada processo é seqüencial
todos os processos avançam na execução
progresso finito
nada pode ser dito sobre velocidades relativas entre os processos
Modelo lógico...
Rede completamente conectada
topologia não é considerada
Processos e canais
existe um canal entre quaisquer dois processos que interagem
canais com buffer infinito e livres de erros
canais entregam mensagens na ordem que foram enviadas (ordem
preservada no canal)
carac. não necessariamente válidas para o meio físico
Modelo lógico...
ordenação de mensagens
ordem das mensagens é preservada em um canal
nada é estabelecido sobre mensagens que chegam a um nodo vindos de
diferentes canais
não existe ordenação total de mensagens, apenas ordenação parcial
razão: retardos nos canais (delay)
Canal
Canais entre múltiplos processos
Sistemas síncronos e assíncronos
definidos pela existência de limites de tempo
sistema síncrono
bounded-time model
existe um limite de tempo finito e conhecido
sistema correto opera dentro desse limite
sistema assíncrono
time-free model
não existe um limite de tempo
impossível determinar se o sistema está simplesmente atrasado por
sobrecarga ou se está com defeito
Vantagem do modelo síncrono
detecção de falha
falha de um componente do sistema pode ser deduzida pela
ausência de resposta
time-out
usado para detectar defeitos em
nodos e perda de mensagens
se um nodo não responde após certo intervalo de tempo
sistema síncrono - nodo com defeito
sistema assíncrono - nada se pode afirmar
Vantagem do modelo assíncrono
algoritmos desenvolvidos para esse modelo são mais
“genéricos” e portáveis
independem de sistema operacional
independem de rede
na prática os sistemas são geralmente assíncronos
mas assume-se que são síncronos
time-outs superdimensionados
aplicações não são críticas e colapsos podem ser ignorados
Modelo de falhas
Comunicação entre processos
troca de mensagens
SEND e RECEIVE
vamos usar apenas
troca de mensagens
primitivas de comunicação e sincronização
RPC (remote procedure call)
mais alto nível que SEND e RECEIVE
interação cliente / servidor
invocação remota de métodos
orientação a
objetos
Comunicação entre processos
troca de mensagens
assíncrona
síncrona (sem buffer - CSP)
troca de mensagens assíncrona
buffer infinito
transmissor nunca bloqueia
buffered message passing
buffer finito
opera assincronamente até buffer ficar cheio
Comunicação entre processos
RPC
call service (value_args, result_args)
comunicação síncrona
Orientação a objetos
modelo orientado a objetos
outro paradigma de comunicação de alto nível
atualmente muito popular
um processo executa um método em um objeto particular
objeto pode residir em qualquer nodo
processo envia mensagem ao objeto
objeto executa uma ação e retorna resultado
Ordenação de eventos
dificuldade de determinar relações temporais
RAZÃO: inexistência de clock global
problema
determinar ordenação temporal de eventos que ocorrem em nodos
diferentes, medidos por relógios diferentes
global time
físico (sincronização de relógios) ou lógico
Clocks lógicos
relógios lógicos
Lamport (78)
meio de assinalar um número a um evento
nenhuma relação com o tempo físico
sistema de clock lógico
Ci - clock local ao proc Pi, C - sistema de clock
um sistema de clock lógico é correto se é consistente com a
relação →
para quaisquer eventos a e b,
se a → b então C(a) < C(b)
Clocks lógicos
clock lógico
a maior parte dos problemas de ordenação
podem ser resolvidos com clocks lógicos, sem
necessidade de relógios físicos sincronizados
carimba um evento de forma que a relação de ordem parcial é
mantida
pode ser facilmente implementado
usando contadores
numerando mensagens com numeração crescente
exemplo de implementação: timestamp T
Download

Tópicos em redes e sistemas distribuídos B