Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 04.

Post on 19-Apr-2015

107 views 0 download

Transcript of Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 04.

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