sistemas distribuídos prof. marcus rodrigues [email protected]

29
Sistemas Distribuídos Prof. Marcus Rodrigues [email protected]

Upload: internet

Post on 22-Apr-2015

120 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

Sistemas Distribuídos

Prof. Marcus [email protected]

Page 2: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

Introdução aos Sistemas Distribuídos

Capítulo 1 – Aulas 3 e 4

Page 3: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 4: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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]

Page 5: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 6: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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.

Page 7: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 8: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 9: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 10: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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;}

}

Page 11: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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;

}

}

Page 12: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 13: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 14: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 15: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 16: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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)

Page 17: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 18: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 19: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 20: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 21: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 22: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 23: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 24: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 25: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 26: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 27: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 28: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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

Page 29: Sistemas Distribuídos Prof. Marcus Rodrigues marcus.rodrigues@gmail.com

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