Você está na página 1de 47

Sistemas centralizados

vs
Sistemas distribuídos
Prof. Me. Fábio Gomes
Características de sistemas centralizados
• Acesso local;
• Homogeneidade;
• Facilidade de gerência;
• Maior consistência;
• Segurança contra intrusos.
Características de sistemas distribuídos

•Acesso remoto;
•Heterogeneidade;
•Modularidade;
•Escalabilidade;
•Compartilhamento de recursos;
•Degradação paulatina;
•Mais sujeito a ataques;
Que valores a distribuição pode
• Confiabilidade: adicionar?
•Como calcular a confiabilidade de um
sistema?

•Redundância é natural.
• Crescimento modular;
• Integração de serviços;
• Custo:
•É importante considerar o aumento do custo
com gerência!
Antes dos sistemas distribuídos

• Acesso remoto
Primeiras formas de distribuição

• Distribuição de arquivos e memória (o advento das


estações de trabalho);
O mundo evolui de forma estranha

• De volta ao acesso remoto (o fator custo)


Primeiros sistemas realmente distribuídos

•Arquitetura cliente-servidor (ainda o fator custo


– a era do downsizing)
Uma solução para a síndrome do cliente
“gordo”

• Cliente-servidor em três camadas (o fator WWW)


Mobilidade
• Código e processadores móveis (java, agentes móveis,
PDAs/laptops, telefonia sem fio, redes de sensores, redes ad-hoc,
etc são os drivers).
Arquitetura de sistemas
distribuídos
Me. Fabio Gomes

Agradecimentos a Taisy Silva Weber e Ingrid Jansch Porto pelo


conjunto de slides original, a partir do qual este foi realizado.
Níveis

serviços

software tolerante a falhas

resiliência de processos

resiliência de dados

ações atômicas

recuperação para um estado consistente

difusão confiável e atômica


blocos
básicos processador fail-stop, armazenamento estável,
comunicação confiável, consenso bizantino,
sistema distribuído
12
Sistemas distribuídos
• Modelos de Sistemas Distribuídos (SD): modelos físico e
lógico; comunicação entre processos
• Relógios lógicos e ordenação de eventos
• Estado global do SD
• Canais de comunicação
• Modelos de computação. Modelos de defeitos
• Acordo bizantino
13
Modelos de sistemas distribuídos

• Modelo físico: definido pelos componentes físicos do


sistema. Ë o nível de realização da computação (rede real).
• Modelo lógico: definido do ponto de vista do
processamento ou da computação. Corresponde ao ponto
de vista do usuário; serve de base para a definição de
serviços.
Em sistemas robustos, o modelo lógico é independente das
falhas que ocorrem sobre o modelo físico.
14
Sistemas distribuídos
processador
relógio local
• sem memória compartilhada memória local volátil
armazenamento não volátil
interface de rede
• sem relógio global nodos e rede software

• modelos o modelo físico é de interesse secundário nessa


disciplina; entretanto, para melhorar o
• modelo físico desempenho, características físicas especiais do
meio podem ser consideradas

• modelo lógico
processos e canais
15
Modelo físico

- memória não é compartilhada


com demais nodos
NODO i - o relógio é local a cada nodo

relógio
local memória NODO j
local

processador interface
de mensagens
rede
disco
NODO k

16
Comunicação:
topologias ponto a ponto

totalmente
estrela
conectado
árvore

17
Arquiteturas peer-to-peer
Topologia barramento
bus, barra ou via

nodos

barramento
comum

nodos

uma mensagem enviada pelo barramento pode ser recebida


simultaneamente por todos os nodos (broadcast)

19
Modelo lógico
cada processo pode estar em
um nodo diferente

• aplicação distribuída
• conjunto de processos concorrentes
• processos cooperam para realizar uma computação
• cada processo é seqüencial
todos os processos avançam na execução

• progresso finito
• nada pode ser dito sobre velocidades relativas entre os processos
20
Modelo lógico
•rede completamente conectada
• topologia não é considerada
•processos e canais
• existe um canal entre quaisquer dois processos que
interagem
• canais com buffer infinito e livres de erros
• canais entregam mensagens na ordem que foram
enviadas (ordem preservada no canal)
21
•Observe-se que estas características não são necessariamente
válidas para o meio físico
Modelo lógico
•ordenação de mensagens
• ordem das mensagens é preservada em um canal
• nada é estabelecido sobre mensagens que chegam a
um nodo vindos de diferentes canais

• não existe ordenação total de mensagens, apenas


ordenação parcial
• razão: retardos nos canais (delay)
22
Canal
processo
ordem de mensagens

cb
preservada ordem de
pi

a
envio

can cb
al a
no modelo físico, as
mensagens a, b e c podem pj
trafegar por rotas diferentes

23
Canal
xy

pa pc mxyn
xy

ordem parcial preservada


mn ordem total não preservada

pb mn
pd xmny

24
Sistemas síncronos e assíncronos
definidos pela existência de limites de tempo

• sistema síncrono
• existe um limite de tempo finito e conhecido

• sistema correto opera dentro desse limite

• sistema assíncrono
• não existe um limite de tempo
• impossível determinar se o sistema está simplesmente atrasado por
sobrecarga ou se está com defeito 25
Limites de tempo

• canal de comunicação síncrono


• retardo (delay) máximo é conhecido
• processador síncrono
• tempo de execução de um conjunto de instruções é conhecido e limitado
existem limites de tempo que podem ser estabelecidos para determinar a
conclusão de uma atividade

26
Vantagem do sistema síncrono
• detecção de defeito
• defeito de um componente do sistema pode ser deduzido pela ausência
de resposta
usado para detectar defeitos em nodos
• timeout e perda de mensagens

se um nodo não reponde após certo intervalo de tempo


sistema síncrono - nodo com defeito
sistema assíncrono - nada se pode afirmar

27
Classificação de defeitos
mais restritiva de todas as classes modelo de Cristian

• colapso ou crash
• uma falha que causa a parada de um componente ou a perda do seu estado interno
• omissão
• um componente não responde a determinadas entradas
• engloba crash também chamada falha de
desempenho

• temporização
• o componente responde ou muito cedo ou muito tarde
• engloba omissão 28
Classificação de falhas

• resposta
• computação incorreta, o componente produz respostas incorretas para
algumas entradas
considerada caso especial de
• não engloba as anteriores bizantinas

• bizantinas (arbitrárias ou maliciosas)


• falha arbitrária que provoca um comportamento totalmente arbitrário e
imprevisível do componente durante o defeito
• engloba todas as classes de falhas
29
Classificação de falhas
parada ou perda do sem resposta para
estado interno algumas entradas respostas
incorretas
para algumas
entradas
crash
omissão respo
temporização sta

arbitrária
comportamento
resposta adiantada ou retardada totalmente arbitrário e
imprevisível
30
Exemplos de classes de falhas

• Processador:
• crash ou bizantinas

• Rede de comunicação: todos os tipos


• Clock:
• temporização ou bizantinas

• Meio de armazenamento
• temporização, omissão ou resposta

• Software: resposta 31
Modelos de falhas
várias classificações
• Fred B. Schneider diferentes na literatura,
• Failstop (detectável pelos demais) mas que não diferem
muito das de Cristian e
• Crash (Lamport and Fischer, 1982) Schneider
• crash + link (Budhiraja et al., 1992)
• omissão de recepção (Perry and Toueg, 1986)
• omissão de envio (Hadzilacos, 1984)
• omissão geral (Perry and Toueg, 1986)
• comportamento bizantino (Lamport, Shostak and Pease, 1982) 32
Comunicação entre processos

• troca de mensagens
• SEND e RECEIVE
• primitivas de comunicação e sincronização

• RPC (remote procedure call)


• mais alto nível que SEND e RECEIVE
orientação a
• interação cliente / servidor objetos

• invocação remota de métodos 33


Comunicação entre processos

• troca de mensagens
• assíncrona
• síncrona (sem buffer - CSP)

• troca de mensagens assíncrona


• buffer infinito
• transmissor nunca bloqueia

• buffered message passing


• buffer finito
• opera assincronamente até buffer ficar cheio 34
Comunicação entre processos

• RPC
• call service (value_args, result_args)
• comunicação síncrona
• falhas executando RPC
• órfãos
• execuções indesejadas de procedimento remoto, ocasionada por defeito
durante invocação

• ordem de chamadas 35
Orientação a objetos

• modelo orientado a objetos


• outro paradigma de comunicação de alto nível

• atualmente muito popular

• um processo executa um método em um objeto particular


• objeto pode residir em qualquer nodo

• processo envia mensagem ao objeto

• objeto executa uma ação e retorna resultado


36
Ordenação de eventos

• dificuldade de determinar relações temporais


• RAZÃO: inexistência de clock global
• problema
• determinar ordenação temporal de eventos que ocorrem em nodos
diferentes, medidos por relógios diferentes

• relação: a “aconteceu antes de” b : a→b


37
Ordenação de eventos
• ordem parcial
• se a e b são eventos do mesmo processo e a é executado
antes de b então a → b

• se a é send e b é receive da mesma mensagem então a → b


• a → b e b → c então a → c
• eventos concorrentes:
• nem a → b, nem b → a
38
Clocks lógicos
relógios lógicos

• Lamport (78)
• meio de assinalar um número a um evento

• nenhuma relação com o tempo físico

• sistema de clock lógico


• Ci - clock local ao proc Pi, C - sistema de clock

• um sistema de clock lógico é correto se é consistente com a relação →


para quaisquer eventos a e b,
se a → b então C(a) < C(b) 39
Clocks lógicos
a maior parte dos problemas de ordenação podem ser
resolvidos com clocks lógicos, sem necessidade de
relógios físicos sincronizados

• clock lógico
• carimba um evento de forma que a relação de ordem parcial é mantida
• pode ser facilmente implementado
• usando contadores

• numerando mensagens com numeração crescente

• exemplo de implementação: timestamp T


40
Timestamps

• Pi inclui seu timestamp nas mensagens m que envia


• Tm: timestamp da mensagem m

Ci - clock local ao processo Pi


• Duas condições:
• cada Pi incrementa Ci entre 2 eventos sucessivos

• recebendo mensagem m com Tm ,


Pj torna Cj maior ou igual ao seu valor atual e maior que Tm
41
Timestamps

• as duas condições asseguram realização da ordem parcial


• implementação:
• um contador por nodo é suficiente

• impossível assinalar timestamps consistentes com a relação de ordem


parcial puramente usando relógios físicos

• clocks físicos precisariam ser sincronizados para assegurar a relação de


ordem parcial

42
Ordenação total com clock lógico
• relógio lógico pode ser usado para ordenação total
(Lamport 78)
• mensagens de diferentes processos podem possuir o
mesmo timestamp
• se duas mensagens possuem o mesmo timestamp devem
ter sido originadas em diferentes processos
• para estabelecer uma ordem, basta ordenar os processos
de alguma forma
a mesma forma de ordenação deve ser seguida
por todos os processos

43
Ordenação total
• uma implementação possível
• eventos com mesmo timestamp são ordenados pela ordem
lexicográfica dos nomes dos processos

• preserva a relação de ordem parcial →


• todos os nodos classificam os eventos na mesma ordem,
• não assegura preservação de ordem temporal dos eventos
concorrentes
se a ordem temporal for importante, clocks lógicos não
podem ser empregados

44
Exemplo
Pb envia b1 antes de Pa enviar a1
a1 b1 a2 b3
pa pc
a1 a2
ordem total
preservada
a2 ordem parcial
preservada
a1 b1 a2 b3
pb b1 b3
pd
Pb recebe a2 após enviar b1 b1 a1 b3 a2
45
Atividades

• 1 – O que são sistemas distribuídos?


• 2 – Descreva a arquitetura peer-to-peer
• 3 – Quais são as vantagens do sistema síncrono?
• 4 – Como está dividida a classificação de falhas?
• 5 – Quais são os níveis da arquitetura de sistemas distribuídos?
• 6 – O que você entender por paradigma de orientação a objetos?

46
Arquitetura de sistemas distribuídos

• Material baseado
• Pankaj Jalote. Fault Tolerance in Distributed Systems. Prentice Hall,
1994.

• Mukesh Singhal & Niranjan Shivaratri. Advanced Concepts in


Operating Systems. McGraw Hill, 1994.

• Sape Mullender. Distributed Systems. Addison-Wesley, 2nd edition,


1994.

47

Você também pode gostar