Upload
internet
View
105
Download
1
Embed Size (px)
Citation preview
Sistemas DistribuídosWalfredo Cirne & Fubica Brasileiro
http://walfredo.dsc.ufcg.edu.br/cursos/2005/distsis20052
Aula 3:Conceitos Básicos
As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento dos mesmos.
Conceitos Fundamentais e Convenções de Notação
Notações formais
• É normalmente conveniente tratar com processos ao invés de processadores– Um sistema distribuído é composto por N processos que executam
em M processadores– Processadores são conectados por canais de comunicação
• A evolução do sistema é modelada por uma sequência de eventos ei
p
– Um evento modifica o estado de p
• A história H é uma seqüência de tuplas contendo um evento ei
p e o estado de p após eip
• Uma execução (run) é um conjunto ordenado de eventos descrito por uma história
Eventos
• Eventos podem ser locais ou podem ser trocas de mensagem– Eventos ordenados e concorrentes
Eventos e tempo
• t(e) é o tempo real em que e ocorreu
• Relógios locais e timestamps– Granularidade do relógio
Estado global
• Especificação– Se no tempo t cada processo está no estado Si
e as mensagens em transito no canal cij que liga pi a pj é S(cij), então o estado global é dado por S = {S1, S2, ... Sn} U {S(cij), 1≤I,j≤n, i ≠j}
• Como computar S internamente?– Troca de mensagens mudará o estado do
sistema!
Snapshots distribuídos
Propriedades de um sistema
• Safety– Alguma coisa ruim não pode acontecer
• Liveliness– Alguma coisa boa vai acontecer
• Timeliness– Adicionam requisitos de tempo real às
propriedades de liveliness
Nomes e endereços
• Endereços são úteis para localizar componentes do sistema distribuído
• Nomes, além de serem mais fáceis de serem lembrados– São independentes do protocolo e da localização do
componente– Podem ter seu significado mudado ao longo do tempo
• Nomes únicos globalmente e contexto de nomes• Nomes “puros” vs “impuros”• Níveis de abstração
– [email protected] é um nome ou um endereço?
Mapeamento de nomes
• Serviços de nomes traduzem nomes em endereços– Binding
• Associa um nome a um endereço
– Lookup• Recupera (resolve) um endereço a partir de um nome
– Unbiding• Desassocia um nome a um endereço
• Como descobrir o endereço do servidor de nomes?
Troca de mensagens
• Mecanismo básico de interação em sistemas distribuídos– Endereçamento, protocolo de comunicação e formato das
mensagens– Confiabilidade
Primitivas bloqueantes vs não bloqueantes
Operação remota
• Chamada/invocação remota de procedimento/método– Marshalling/unmarshalling
– Passagem de parâmetros
– Semântica de falhas
Comunicação em grupo
• Serviços de uma plataforma de grupos– Filiação
• Visões• Propriedades
– Exatidão– Consistência
– Multicast• Confiabilidade• Ordenação
Principais componentes de um protocolo de multicast
• Serviço de transporte– Roteamento– Tolerância a omissões– Controle de fluxo
• Ordenação
• Gerência de filiação (incluindo recuperação de falhas)
Tempo e relógios
• O que é o tempo real?– Função monotônica contínua e crescente
• O que é 1 segundo?– Várias definições
• Divisor de um dia solar• Relógios atômicos
• A linha do tempo– timestamps– duração de intervalos– Timers e relógios locais
O papel do tempo
• Crucial na ordenação de eventos• Dois usos principais em sistemas
distribuídos– Gravar e observar a localização de eventos na
linha do tempo• seqüênciamento de eventos que formam um estado
global
– Forçar o futuro posicionamento de eventos na linha do tempo
• sincronização
Medindo tempo em sistemas distribuídos
• Como medir durações distribuídas?– Como reconciliar diferentes linhas do tempo?
• Ex. qual o tempo de transmissão de uma mensagem?
• Tempo global vs tempo absoluto
Relógios locais físicos
• O hardware (rf) implementa uma função monotônica discreta e crescente que mapeia o tempo real t em um tempo de relógio rf(t)– Imperfeições de relógios físicos
• Granularidade (g)• Taxa de desvio ()
Propriedades de um relógio físico
• Granularidade– Relógios físicos avançam em ticks (tk)
• g = rf(tk+1) – rf(tk)
• Taxa de desvio– Dependendo da qualidade do relógio e das
condições do ambiente (ex. temperatura)• 0 ≤ 1- ≤ (rf(ttk+1) – rf(ttk))/g ≤ 1+ para 0 ≤ ttk ≤ ttk+1
Para que serve um relógio local?
• Prover timestamps para eventos locais
• Medir durações locais– Qual o erro causado pela taxa de desvio?– é tipicamente na ordem de 10-5
• Definir timeouts
• Medir durações de atraso round-trip
Relógios globais
• Um relógio global é construído através da sincronização de relógios locais– Cada processo p cria um relógio virtual (rvp) a
partir do seu relógio local (rfp)
– Os relógios virtuais são criados de forma a estarem sincronizados
– São resincronizados de tempos em tempos
Propriedades de um relógio global
• Convergência (): quão próximo os relógios estão sincronizados logo após uma resincronização
• Precisão (): quão próximos os relógios se mantêm sincronizados entre si em qualquer tempo (sincronização interna)
• Exatidão (): quão próximos os relógios estão sincronizados em relação a uma linha de tempo absoluta de referência (sincronização externa)
• Taxa (): é a taxa instantâneo de desvio
Propriedades de um relógio global