Sistemas Distribuídos
Walfredo Cirne & Fubica Brasileiro
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)?
• Comunicação por mensagem entre os
componentes
• Falhas parciais
• Inexistência de relógio global exato
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
– Homogeneidade, facilidade de gerência, maior
consistência, controle centralizado
• Características de sistemas distribuídos
– Heterogeneidade, modularidade,
escalabilidade, compartilhamento de recursos,
degradação paulatina, mais sujeito a ataques,
custo menor, controle distribuído
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 um processo 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