sistemas distribuídos carlos a. g. ferraz di/ufpe aula 04
TRANSCRIPT
Sistemas Distribuídos
Carlos A. G. Ferraz
DI/UFPE
Aula 04
Conceitos - Tópicos Processos e Threads Concorrência Sistemas Abertos Comunicação Sincronização Tolerância a Falhas Segurança Sistemas Distribuídos de Tempo-
Real
Sistemas Distribuídos Abertos
Um sistema aberto é aquele que se comunica com outro sistema aberto usando regras que tratam do formato, conteúdo e significado das mensagens enviadas e recebidas. As regras são formalizadas como protocolos.
Interfaces publicadas Facilitam propriedades como
escalabilidade flexibilidade
ComunicaçãoOs componentes distribuídos
(lógica e fisicamente) de um sistema devem se comunicar para interagir
Transferência de dados Sincronização
Comunicação (cont.)Passagem de mensagem Primitivas send e receive Abstrações: canal e porta
Síncrona (blocking) Assíncrona (non-blocking)
p1 p2
Comunicação (cont.)Modelos de comunicação Cliente-Servidor Grupo
Comunicação em Grupo Grupo fechado x grupo aberto
Comunicação em Grupo (cont.)
Peer group x grupo hierárquicocoordenador
trabalhador
Comunicação em Grupo (cont.) Endereçamento
Multicasting (Ex. TV a cabo) Broadcasting (Ex. TV) Unicasting
0 1 2 3 0 1 2 3 0 1 2 3
Comunicação em Grupo (cont.)
Primitivas de comunicação group_send e group_receive
Atomicidade Atomic broadcast (tudo-ou-nada)
Ordem de mensagens Garantias que msg “A” chegue
em todos os membros do grupo antes de “B”
Sincronização Distribuição leva a novas
considerações: Ex: como implementar região
crítica? semáforos e monitores, como
conhecemos, não são apropriados, pois são baseados no compartilhamento de memória
Tempo é importante
Sincronização (cont.) Em sistemas distribuídos:
Informação relevante é espalhada em diferentes máquinas
Processos tomam decisões baseados apenas em informação local
Não há um relógio comum
Sincronização (cont.) Em grande parte dos sistemas, o
que importa é a consistência interna dos relógios, e não se eles são próximos do tempo real relógios lógicos se os relógios não podem desviar
muito do tempo real, eles são chamados de relógios físicos
Sincronização (cont.) Algoritmo de Lamport para sincronização de
relógios lógicos (Relação aconteceu-antes)
A
B
C
D
0 0 0
6 8 1012
182430364248
70
76
1624
3240486169
77
85
20304050607080
90
100
0 1 2
A
B
C
D
0 0 0
6 8 1012
182430364248
54
60
1624
3240485664
72
80
20304050607080
90
100
0 1 2
Sincronização (cont.)Transações Atômicas
A
B
C D1000
300250
0100
150 0
0150
100
50
150
Sincronização (cont.)Propriedades das Transações Atômicas Atomicidade: tudo-ou-nada Consistência: uma transação leva o sistema de
um estado consistente a outro estado consistente
Isolamento: transações concorrentes não interferem umas nas outras
Duração: terminada uma transação, as mudanças são permanentes
Sincronização (cont.)Multimídia Mídias contínuas Sincronização intra-stream
Áudio: 8000 amostras/seg Vídeo: 30 quadros/seg
Sincronização inter-stream Ex: lip-sync
Compensação de atraso buffering descarta chegada atrasada
Segurança Criptografia
C = E(P,KE) e P = D(C,KD) C: texto criptografado E: função de criptografia P: texto original KE: chave de criptografia D: função de decriptografia KD: chave de decriptografia
Autenticação
Tolerância a Falhas Ex: sistema de fornecedores de
supermercado se fornecedor de produto “X”
falhar? Tipos de falha
Transiente: pode acontecer uma vez
Intermitente: acontece de tempos em tempos
Permanente: acontece sempre
Tolerância a Falhas (cont.) Técnicas
Redundância de hardware Replicação de componentes de
software e de dados Tolerância por software:
algoritmos
Sistemas de Tempo-Real
Em sistemas de tempo-real, não cumprir uma condição dependente de tempo é uma falha
Tipos de sistemas de tempo-real Soft: pode “falhar”
ocasionalmente Hard: perder um deadline é
inaceitável
Sistemas de Tempo-Real (cont.)Mitos: Computação em tempo-real é
computação rápida Em alguns casos, o que importa
é a precisão Ex: algumas estrelas só podem
ser observadas a cada 1/2 hora, precisamente (o sistema tem tempo suficiente para iniciar a observação no momento exato)
Sistemas de Tempo-Real (cont.)Mitos (cont.): Computadores rápidos fazem
sistemas de tempo-real obsoletos Ao contrário, os sistemas de
tempo-real são encorajadores, permitindo atender novas demandas
Sistemas de Tempo-Real (cont.)Projeto - algumas considerações: Sincronização de relógios Sistemas event-triggered x time-
triggered Previsibilidade