Sistemas Distribuídos
Prof. Marcus [email protected]
Introdução aos Sistemas Distribuídos
Capítulo 1 – Aulas 3 e 4
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Introdução aos Sistemas Distribuídos
Material baseado no livro
Distributed Systems: Principles and Paradigms
Prentice Hall
Copyright © Andrew S. Tanembaum, Maarten van Steen, 2001
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Conceitos de software
Sistemas distribuídos são como sistemas operacionais tradicionais• Gerenciador de recursos
• Máquina virtual
“Hardware é importante para sistemas distribuídos, mas é o software que determina amplamente com o que sistema distribuído se parece”
[Tanembaum & van Steen]
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Conceitos de software
DOS (Distributed Operating Systems) NOS (Network Operating Systems) Middleware
Sistema Descrição Principal meta
DOS
Sistema operacional fortemente acoplado para sistemas multiprocessados e multicomputadores homogêneos
Ocultar e gerenciar recursos de hardware
NOSSistema operacional fracamente acoplado para multi-computadores heterogêneo (LAN e WAN)
Oferecer serviços locais para clientes remotos
MiddlewareCamada adicional sobre o NOS implementando serviços de propósito geral
Prover transparência distribuída
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Sistemas Operacionais Distribuídos Há dois tipos de Sistemas Operacionais
Distribuídos (SOD):• Sistemas Operacionais Multiprocessados
• Sistemas Operacionais Multicomputadores
A funcionalidade de SOD é essencialmente a mesma de sistemas operacionais tradicionais para sistemas monoprocessados, exceto que eles tratam múltiplas CPUs.
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Sistema Operacional Monoprocessado (1) Máquina virtual Gerenciador de recursos Conveniência x eficiência Modos de execução kernel x usuário Organização de sistemas operacionais
• Arquitetura monolítica
...
• Arquitetura microkernel
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Sistema Operacional Monoprocessado (2)
Aplicações separadas do código do sistema operacional através de um micro-kernel
1.11
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Sistema Operacional Multiprocessado (1) Múltiplos processadores tendo acesso a
uma memória compartilhada Dados compartilhados sendo acessados
concorrentemente por múltiplos processadores• Garantir consistência
• Primitivas de sincronização Aumento de desempenho através de
múltiplos processadores• Número de CPUs transparente para a aplicação
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Sistema Operacional Multiprocessado (2) Exemplo de um monitor para proteger uma variável inteira
contra acesso concorrente
monitor Counter {
private:
int count = 0;
public:
int value() { return count;}
void incr () { count = count + 1;}
void decr() { count = count – 1;}
}
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Sistema Operacional Multiprocessado (3) Exemplo de um monitor para proteger uma variável inteira contra
acessos concorrentes, com uso de bloqueio de processos.
monitor Counter {
private:
int count = 0;
int blocked_procs = 0;
condition unblocked;
public:
int value () { return count;}
void incr () {
if (blocked_procs == 0)
count = count + 1;
else
signal (unblocked);
}
void decr() {
if (count ==0) {
blocked_procs = blocked_procs + 1;
wait (unblocked);
blocked_procs = blocked_procs – 1;
}
else
count = count – 1;
}
}
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Sistema Operacional Multicomputador (1) Estrutura e complexidade totalmente
diferente de sistemas multiprocessados
• Não há compartilhamento de memória
• Modo de comunicação• Passagem de mensagem
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Sistema Operacional Multicomputador (2) Estutura geral de um sistema operacional multicomputador
1.14
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Sistema Operacional Multicomputador (2) Alternativas para bloqueio e buferização em passagem de
mensagens.
1.15
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Sistema Operacional Multicomputador (3)
Relação entre bloqueio, buferização e comunicação confiável.
Ponto de sincronizaçãoBuffer de transmissão
Comunicação confiável garantida ?
Bloqueio do transmissor até que o buffer não esteja cheio
Sim Não necessário
Bloqueio do transmissor até que a mensagem seja enviada
Não Não necessário
Bloqueio do transmissor até que a mensagem seja recebida
Não Necessário
Bloqueio do transmissor até que a mensagem seja entregue
Não Necessário
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Sistemas de Memória Compartilhada Distribuído (1) Prática mostra que programar sistemas
multicomputadores é mais difícil que programar sistemas multiprocessadores• Primitivas de sincronização x Passagem de
mensagem Emular memória compartilhada em
sistemas multicomputadores• Máquina de memória compartilhada virtual
• Usar capacidade de memória virtual de cada nó• Memória compartilhada distribuída (DSM – Distributed
Shared Memory)
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Sistemas de Memória Compartilhada Distribuído (2)
a) Páginas do espaço de endereçamento distribuídas entre quatro máquinas
b) Situação após CPU 1 referenciar página 10
c) Situação se a página 10 é apenas de leitura e replicação é usada
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Sistemas de Memória Compartilhada Distribuído (3) Falso compartilhamento de uma página entre dois
processos independentes
1.18
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Sistemas Operacionais de Redes (1) SOR provêm facilidades que permitam que
usuários façam uso de serviçõs disponíveis em uma máquina específica
Plataforma de hardware heterogênea Ausência de transparência Exemplos de serviços
• rlogin máquina
• rcp máquina1:arquivo1 máquina2:arquivo2
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Sistemas Operacionais de Redes (2) Estrutura geral de um sistema operacional de redes
1-19
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Sistemas Operacionais de Redes (3) Dois clientes e um servidor em um sistema operacional de
redes
1-20
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Sistemas Operacionais de Redes (4) Diferentes clientes podem montar os servidores em
diferentes locais
1.21
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Middleware (1)
Ambos, individualmente, não são qualificados com um sistema distribuído, de acordo com o que foi definido. • “Uma coleção de computadores independentes
que parecem aos usuários como um único computador” [Tanenbaum &van Steen 01]
Solução?
SOR x SOD
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Middleware (2) Estrutura geral de um sistema distribuído como middleware
1-22
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Middleware (3) Cada sistema local integrante do sistema
operacional de redes é responsável por prover gerenciamento de recursos locais, além de meios para conectar a outros computadores
Meta:• Ocultar heterogeneidade da plataforma de
hardware da aplicação usuária do sistema distribuída
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Modelos de Middleware Para tornar o desenvolvimento e integração de
aplicações distribuídas o mais simples possível, a maioria dos middlewares é baseada em algum modelo, ou paradigma, para descrever a distribuição e comunicação dos componentes
Exemplos de Modelos:• Tudo é tratado como arquivo
• Chamada remota de procedimentos
• Objetos distribuídos
• Documentos distribuídos
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Serviços de um Middleware Facilidade de comunicação
• Transparência de acesso • Ocultar a passagem de mensagens através da rede
Nomeação Persistência Transações distribuídas Segurança
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Middleware e Flexibilidade
Em um sistema distribuído baseado em middleware aberto os protocolos usados por cada middleware devem ser os mesmos, bem como as interfaces oferecidas às aplicações.
1.23
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Pro
f. M
arcu
s R
odrig
ues
Comparação entre os Sistemas
Ítem
SO DistribuídoSO de Redes
SO baseado em Middleware
Multiproc.
Multicomp.
Grau de transparência
Muito alto Alto Baixo Alto
Mesmo SO em todos os nós
Sim Sim Não Não
Número de cópias do SO
1 N N N
Base para comunicação
Memória compart.
Mensagem ArquivoModelo específico
Gerenciamento de recursos
Global, central
Global, distribuído
Por nó Por nó
Escalabilidade NãoModeradamente
Sim Variável
Flexibilidade (“Openness”)
Fechado Fechado Aberto Aberto