sistemas distribuídos walfredo cirne & fubica brasileiro aula 3:conceitos básicos as figuras...
TRANSCRIPT
![Page 1: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/1.jpg)
Sistemas DistribuídosWalfredo Cirne & Fubica Brasileiro
Aula 3:Conceitos Básicos
As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento dos mesmos.
![Page 2: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/2.jpg)
Conceitos Fundamentais e Convenções de Notação
![Page 3: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/3.jpg)
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 do processo 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
![Page 4: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/4.jpg)
Eventos
• Eventos podem ser locais ou podem ser trocas de mensagem– Eventos ordenados e concorrentes
![Page 5: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/5.jpg)
Eventos e tempo
• t(e) é o tempo real em que e ocorreu
• Relógios locais e timestamps– Granularidade do relógio
![Page 6: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/6.jpg)
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!– Há protocolos de snapshot que resolvem este
problema
![Page 7: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/7.jpg)
Snapshots distribuídos
![Page 8: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/8.jpg)
Propriedades de um sistema
• Safety– Alguma coisa ruim não pode acontecer
• Liveliness– Alguma coisa boa vai acontecer um dia
• Timeliness– Adicionam requisitos de tempo real às
propriedades de liveliness
![Page 9: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/9.jpg)
Nomes e endereços
• Nomes identificam objetos– Nomes únicos globalmente × contexto de nomes– Nomes “puros” × “impuros”
• Endereços são nomes usados por algum sistema de comunicação para entregar mensagens
• Nomes são resolvidos em endereços– “Ciência da Computação é a ciência que resolve
problemas adicionando níveis de indireção”– Quais resoluções temos quando enviamos um email
para [email protected]?– Nomes podem ter seu significado mudado ao longo do
tempo
![Page 10: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/10.jpg)
Mapeamento/resolução 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
• O servidor de nomes precisa usar um endereço bem conhecido
![Page 11: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/11.jpg)
Servidores de nomes
![Page 12: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/12.jpg)
Troca de mensagens
• Mecanismo básico de interação em sistemas distribuídos• Endereçamento, protocolo e formato das mensagens• Confiabilidade
![Page 13: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/13.jpg)
Semântica de Bloqueio
• O send pode retornar quando:– Se recebe um ack– Quando o dado enviado está bufferizado – Imediatamente
• Cada opção tem impactos de performance e interface
• Respose-and-reply × Notification/events
![Page 14: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/14.jpg)
Operação remota
• Chamada/invocação remota de procedimento/método– Marshalling/unmarshalling– Bloqueio durante a execução– Semântica de falhas
• Mecanismo básico usado no paradigma cliente/servidor– Amplamente usada (ex Java RMI)
![Page 15: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/15.jpg)
Usando multiplas threads com operações remotas
![Page 16: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/16.jpg)
Comunicação em grupo
• Difusão de conteúdo– especialmente streaming
• Grupo de servidores– melhor disponibilidade e/ou performance
• 1 multicast ≠ n unicasts
![Page 17: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/17.jpg)
Multicast para difusão de conteúdo
![Page 18: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/18.jpg)
Group membership
• Serviço usado para construção de grupos de replicas– Provê serviço de alto nível– Entrega confiável de mensagens
• Visão do grupo– Os membros do grupo sabem quem está no
grupo
• Ordenação de mensagens– O enviador recebe suas próprias mensagens
![Page 19: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/19.jpg)
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)
![Page 20: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/20.jpg)
Tempo e relógios
• O que é o tempo real?– Função monotônica contínua e crescente [Newtoniano]
• O que é 1 segundo?– Divisor de um dia solar– Relógios atômicos
• A linha do tempo– timestamps– duração de intervalos
• Relógios
![Page 21: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/21.jpg)
O papel do tempo
• Gravar e observar a localização de eventos na linha do tempo– seqüênciamento de eventos que formam um
estado global– medir a duração entre dois eventos
• Forçar o futuro posicionamento de eventos na linha do tempo– sincronização
![Page 22: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/22.jpg)
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 × tempo absoluto
![Page 23: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/23.jpg)
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 ()
![Page 24: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/24.jpg)
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– Depende da qualidade do relógio e das
condições do ambiente (ex. temperatura)• 0 ≤ 1- ≤ (rf(tk+1) – rf(tk))/g ≤ 1+
![Page 25: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/25.jpg)
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
![Page 26: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/26.jpg)
Relógios globais
• Um relógio global é construído através da sincronização de relógios locais por um protocolo de sincronização de relógio– 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– NTP é o protocolo mais comum para isso
![Page 27: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/27.jpg)
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
• Exatidão (): quão próximos os relógios estão sincronizados em relação a uma linha de tempo absoluta de referência– Requer um dispositivo de sincronização externa
(ex. GPS) em algum lugar do sistema
• Taxa de desvio (): é a taxa instantâneo de desvio do relógio global
![Page 28: Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas](https://reader035.vdocuments.site/reader035/viewer/2022062623/552fc10b497959413d8c2f73/html5/thumbnails/28.jpg)
Propriedades de um relógio global