Sistemas Distribuídos
Walfredo Cirne & Fubica Brasileiro
http://walfredo.dsc.ufcg.edu.br/cursos/2005/distsis20052
Aula 2: Introdução a Sistemas Distribuídos
As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o
consentimento dos mesmos.
Uma Visão Macro
O que é um sistema distribuído?
• Características de um sistema distribuído
– Vários computadores
– Interconectados por uma rede
– Compartilhando um estado
Exemplos de sistemas distribuídos
•
•
•
•
A Internet é um sistema distribuído?
A Web é um sistema distribuído?
O DNS é um sistema distribuído?
Um multiprocessador é um sistema
distribuído?
• Um cluster é um sistema distribuído?
• Um grid é um sistema distribuído?
O que é um sistema distribuído
(revisitado)?
• Que características fazem com que a
construção de um sistema distribuído seja
mais difícil?
– Componentes com diferentes modos de falha
– Falhas parciais
– Inexistência de relógio global exato
– Grandes variações nos atrasos associados com
a comunicação entre processos
Quando distribuir?
• Por que complicar?
– Às vezes o problema é distribuído
• Ex. Groupware
– Soluções distribuídas podem trazer benefícios
inerentes à distribuição (mais sobre isso
adiante)
• Escala, incremento na confiança do funcionamento
(dependability)
– Soluções distribuídas são mais adaptáveis
• Upgrade gradativo
Sistemas centralizados
vs
Sistemas distribuídos
• 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, custo menor
Que valores a distribuição pode
adicionar?
• Confiabilidade
– 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!
Arquiteturas de Sistemas
Distribuídos e um Pouco de História
• Quais os drivers da evolução das
arquiteturas?
– Avanços tecnológicos
– Mudanças nos requisitos definidos pelos
usuários
– Avanços tecnológicos
–…
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)
Arquiteturas peer-to-peer
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)
Comunicação sincrona
vs
Comunicação assíncrona
Conceitos Fundamentais e
Convenções de Notação
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 eip
– Um evento modifica o estado de p
• A história H é uma seqüência de tuplas contendo um
evento eip e o estado de p após eip
• Uma execução (run) é um conjunto ordenado de eventos
descrito por uma história
Eventos e tempo
– Eventos podem ser locais ou podem ser trocas
de mensagem
• Eventos ordenados e concorrentes
– t(e) é o tempo real em que e ocorreu
• Mas, o que é o tempo real?
– Timestamps
Estados globais
Propriedades de um sistema
• Safety
– Alguma coisa ruim não pode acontecer
• Liveliness
– Alguma coisa boa vai acontecer
• Timeliness
– Adicionam requisitos de tempo real às
propriedades de liveliness
Download

Introdução a Sistemas Distribuídos