Sistemas Distribuídos
Prof. Marcus Rodrigues
[email protected]
Introdução aos Sistemas
Distribuídos
Capítulo 1 – Aulas 3 e 4
Introdução aos Sistemas
Distribuídos
Prof. Marcus Rodrigues

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
Conceitos de software
Prof. Marcus Rodrigues
“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 são como sistemas
operacionais tradicionais
• Gerenciador de recursos
• Máquina virtual
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Prof. Marcus Rodrigues
Conceitos de software
Sistema
Descrição
Principal meta
DOS
Sistema operacional fortemente acoplado
para sistemas multiprocessados e
multicomputadores homogêneos
Ocultar e
gerenciar recursos
de hardware
NOS
Sistema operacional fracamente acoplado
para multi-computadores heterogêneo (LAN
e WAN)
Oferecer serviços
locais para
clientes remotos
Middleware
Camada adicional sobre o NOS
implementando serviços de propósito geral
Prover
transparência
distribuída



DOS (Distributed Operating Systems)
NOS (Network Operating Systems)
Middleware
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Sistemas Operacionais
Distribuídos

Há dois tipos de Sistemas Operacionais
Distribuídos (SOD):
Prof. Marcus Rodrigues
• 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
Sistema Operacional
Monoprocessado (1)



Prof. Marcus Rodrigues


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
Sistema Operacional
Monoprocessado (2)

Aplicações separadas do código do
sistema operacional através de um microkernel
Prof. Marcus Rodrigues
1.11
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Sistema Operacional
Multiprocessado (1)

Prof. Marcus Rodrigues

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
Sistema Operacional
Multiprocessado (2)

Exemplo de um monitor para proteger uma variável inteira
contra acesso concorrente
monitor Counter {
private:
Prof. Marcus Rodrigues
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
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:
Prof. Marcus Rodrigues
int count = 0;
void decr() {
if (count ==0) {
int blocked_procs = 0;
blocked_procs = blocked_procs + 1;
condition unblocked;
wait (unblocked);
public:
blocked_procs = blocked_procs – 1;
int value () { return count;}
}
void incr () {
else
if (blocked_procs == 0)
count = count + 1;
else
count = count – 1;
}
}
signal (unblocked);
}
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Sistema Operacional
Multicomputador (1)

Estrutura e complexidade totalmente
diferente de sistemas multiprocessados
Prof. Marcus Rodrigues
• Não há compartilhamento de memória
• Modo de comunicação
• Passagem de mensagem
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Sistema Operacional
Multicomputador (2)

Estutura geral de um sistema operacional multicomputador
Prof. Marcus Rodrigues
1.14
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Sistema Operacional
Multicomputador (2)

Alternativas para bloqueio e buferização em passagem de
mensagens.
Prof. Marcus Rodrigues
1.15
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Prof. Marcus Rodrigues
Sistema Operacional
Multicomputador (3)
Ponto de sincronização
Buffer 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

Relação entre bloqueio, buferização e comunicação confiável.
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
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
Prof. Marcus Rodrigues
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
Sistemas de Memória
Compartilhada Distribuído (2)
a)
Prof. Marcus Rodrigues
b)
c)
Páginas do
espaço de
endereçamento
distribuídas entre
quatro máquinas
Situação após
CPU 1
referenciar
página 10
Situação se a
página 10 é
apenas de leitura
e replicação é
usada
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Sistemas de Memória
Compartilhada Distribuído (3)

Falso compartilhamento de uma página entre dois
processos independentes
Prof. Marcus Rodrigues
1.18
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Sistemas Operacionais de Redes (1)

Prof. Marcus Rodrigues



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
Sistemas Operacionais de Redes (2)

Estrutura geral de um sistema operacional de redes
Prof. Marcus Rodrigues
1-19
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Sistemas Operacionais de Redes (3)

Dois clientes e um servidor em um sistema operacional de
redes
Prof. Marcus Rodrigues
1-20
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Sistemas Operacionais de Redes (4)
Prof. Marcus Rodrigues

Diferentes clientes podem montar os servidores em
diferentes locais
1.21
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Middleware (1)
SOR x SOD
Prof. Marcus Rodrigues

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?
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Middleware (2)

Estrutura geral de um sistema distribuído como middleware
Prof. Marcus Rodrigues
1-22
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Middleware (3)
Prof. Marcus Rodrigues


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
Modelos de Middleware
Prof. Marcus Rodrigues


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
Serviços de um Middleware

Facilidade de comunicação
• Transparência de acesso
• Ocultar a passagem de mensagens através da rede
Prof. Marcus Rodrigues




Nomeação
Persistência
Transações distribuídas
Segurança
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Middleware e Flexibilidade
Prof. Marcus Rodrigues
1.23

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.
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Comparação entre os Sistemas
Prof. Marcus Rodrigues
Ítem
SO Distribuído
SO 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
Arquivo
Modelo
específico
Gerenciamento de
recursos
Global,
central
Global,
distribuído
Por nó
Por nó
Escalabilidade
Não
Moderadamente
Sim
Variável
Flexibilidade
(“Openness”)
Fechado
Fechado
Aberto
Aberto
Sistemas Distribuídos – Capítulo 1 – Conceitos de Software
Download

Sistemas Distribuídos