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 TempoReal
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ção
Os 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
p1


p2
Síncrona (blocking)
Assíncrona (non-blocking)
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árquico
coordenador
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

Atomicidade
 Atomic

e group_receive
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)
0
0
6
12
18
24
30
36
42
48
54
60
1
A
D
2
0
8
16
24
B
32
40
C
48
56
64
72
80
0
0
10
20
30
40
50
60
70
80
90
100
0
6
12
18
24
30
36
42
48
70
76
1
A
D
2
0
8
16
24
B
32
40
C
48
61
69
77
85
0
10
20
30
40
50
60
70
80
90
100
Sincronização (cont.)
Transações Atômicas
A
100
0
100
C
0
100
150 0
B
300
250
50
D
150
0
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
pode “falhar”
ocasionalmente
 Hard: perder um deadline é
inaceitável
 Soft:
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 timetriggered
 Previsibilidade
Download

Sistemas Distribuídos