Professional Documents
Culture Documents
Sistemas Distribuidos - Aula 01
Sistemas Distribuidos - Aula 01
MC714
Sistemas Distribuídos
1° semestre, 2017
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Introdução - sistemas
distribuídos
• 1. Coleção de enJdades independentes que colaboram
para resolver um problema que não poderia ser
resolvido individualmente (Kshemkalyani e Singhal).
• 2. Sistema onde componentes de hardware ou soVware
localizados em computadores em rede comunicam-se e
coordenam suas ações através somente de troca de
mensagens (Couloris, Dollimore e Kindberg).
• 3. Um conjunto de computadores independentes que se
apresenta a seus usuários como um sistema único e
coerente (Tanenbaum e Van Steen).
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Introdução - sistemas
distribuídos
• Existem desde sempre
• Comunicação entre agentes móveis na natureza
• Hoje
• DisposiJvos computacionais em rede
• Ferramenta para resolver problemas
• Vontade própria? Comportamento esperado?
Autonomia até que nível?
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Caracterização – sistemas
distribuídos
• Usuário só descobre que está usando um sistema distribuído
quando alguma falha impede de usar alguma aplicação
(Lamport).
• Coleção de computadores que não comparJlham memória ou
relógio dsico comum, que se comunicam por mensagens
sobre uma rede de comunicação, e cada computador possui
sua própria memória e executa seu próprio sistema
operacional. Tipicamente são semi-autônomos e fracamente
acoplados enquanto cooperam para resolver um problema
coleJvamente (Tanenbaum / Van Steen).
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Caracterização – sistemas
distribuídos
• Um termo que descreve uma ampla gama de
computadores, desde sistemas fracamente acoplados
como redes de longa distância, a sistemas fortemente
acoplados como as LANs, e até sistemas muito
fortemente acoplados como sistemas mulJprocessados
(Goscinski).
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Caracterização – sistemas
distribuídos
• Escrevam suas definições de sistemas
distribuídos em um papel com seu nome.
• Escrevam um exemplo de sistema distribuído
que serve como analogia aos sistemas de
computação distribuídos.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Características
• Sem relógio dsico comum
• Introduz a noção de distribuição, dando origem à
assincronia inerente entre processadores.
• Sem memória comparJlhada
• Requer troca de mensagens para comunicação.
• Deve-se notar que pode fornecer abstração de um
espaço de endereçamento comum através da
abstração de memória comparJlhada distribuída.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Características
• Separação geográfica – quanto mais separado,
“mais é” um sistema distribuído
• Não necessariamente em uma wide area network.
• Clusters – pequenos sistemas distribuídos
• Autonomia e heterogeneidade
• Processadores fracamente acoplados com diferentes
“velocidades” e diferentes SOs
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Componentes - hardware
• Cada computador tem uma unidade de memória
e de processamento
• São conectados por uma rede de comunicação
• Fig 1
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Componentes - Software
• Aplicação distribuída
• Middleware
• Sistema operacional
• Pilha de protocolos de rede
• Fig 2
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquitetura / Middleware
• Execução distribuída é a execução de processos
no sistema distribuído para alcançar um objeJvo
comum.
• Arquitetura em camadas para quebrar
complexidade (Fig 2).
• Middleware é o soVware distribuído que
coordena o sistema distribuído enquanto
fornece transparência de heterogeneidade.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquitetura / Middleware
• Bibliotecas/padrões/mecanismos de
middleware:
• CORBA – common object request broker
• Normalização de semânJca de chamadas entre
objetos
• RPC – remote procedure call
• DCOM – distributed component object model
• RMI – remote method invocaJon
• SOAP – simple object access protocol
• MPI – message passing interface
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquitetura / Middleware
• RPC: conceitualmente igual à chamada de
procedimento local, com a diferença que o
código chamado pode estar em máquina
remota.
• SoVware de RPC envia mensagem pela rede e aguarda
resposta, momento em que a chamada se completa
do ponto de vista do processo invocador.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Motivação / requisitos
• Existem aplicações onde a computação é
intrinsecamente distribuída
• Ex: transferência bancária
• ComparJlhamento de recursos
• Hardware, soVware/bibliotecas, dados, licenças
• Impossível replicar tudo em todo lugar – impraJcável ou
ineficiente
• Impossível colocar tudo em um lugar só – gargalos e
confiabilidade
• Acesso a recursos geograficamente distribuídos
• Dados sensíveis ou muito grandes
• Acesso a dados e supercomputadores a parJr de disposiJvos
móveis
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Motivação / requisitos
• Aumentar confiabilidade
• Replicação de dados e de soVware
• Disponibilidade: recurso deve estar disponível
“sempre”
• Integridade: estado/valor de um recurso deve ser
correto, sob acessos concorrentes de múlJplos
processadores, de acordo com a semânJca esperada
pela aplicação
• Tolerância a falhas: habilidade de recuperação de
falhas no sistema
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Motivação / requisitos
• Melhorar taxa desempenho/custo
• ComparJlhamento de recursos e dados remotos
• Aumentar vazão (nem sempre é esse o objeJvo...)
• Pode oferecer melhor desempenho/custo que máquinas
paralelas especiais
• Oferecer escalabilidade – evitar gargalos
• Adicionar mais processadores não impõe gargalo direto para a
rede.
• Modularidade / facilidade de expansão
• Adicionar (ou subsJtuir) processadores heterogêneos sem
degradar desempenho.
• Outras?
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Sistemas paralelos
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Sistemas paralelos
• Existem sistemas que possuem algumas, mas
não todas, as caracterísJcas de um sistema
distribuído
• Como classificá-los?
• São sistemas distribuídos ou sistemas
mulJprocessados?
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquiteturas de memória
• Dois aspectos: localização e políJca de acesso.
• Uma memória para todos os processadores:
memória compar4lhada.
• Se memória não é comparJlhada: acesso via
meios explícitos de comunicação, como troca de
mensagens.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquiteturas de memória
• Memória centralizada:
• Memória comum acessada por todos os processadores.
• Memória distribuída:
• Fisicamente distribuída com os processadores.
• Memória comparJlhada
• Espaço de endereçamento global
• Tempo de acesso diferente, em geral
• MulJprocessadores de memória distribuída
• Troca de mensagens
• Acesso através do processador
• Hierárquica: alguns (2-4) processadores comparJlham memória,
formando um nó de computação. MúlJplos nós são conectados em
um nível mais alto – IBM Blue Gene L
• Fig 3
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquiteturas de memória -
diferenças
• Memória centralizada
• Extensão intuiJva da arquitetura de um único processador.
• Contenção na comunicação com memória central limita escalabilidade.
• Sistemas baseados em barramento geralmente possuem poucos
processadores (<=8).
• Memória distribuída
• Com troca de mensagem permite projeto mais simples, mas
programação torna-se mais complicada.
• Maior escalabilidade – massively parallel processors (MPP) são
sistemas de memória distribuída que usam troca de mensagens e
podem conter centenas de milhares de processadores.
• MulJprocessadores de memória distribuída integram as duas
abordagens, fornecendo escalabilidade e maior facilidade de
programação.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Sistemas paralelos -
classiFicação
• Sistemas mulJprocessados.
• MulJcomputadores.
• Processadores vetoriais
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Sistemas multiprocessados
• Sistemas paralelos onde os múlJplos processadores tem
acesso direto a uma memória comparJlhada, a qual
forma um espaço de endereçamento único.
• Geralmente sem um relógio comum.
• Geralmente consJtuem uma Uniform Memory Access
(UMA), onde a latência de acesso à memória é a mesma
para qualquer processador.
• Comunicação entre processos: leitura/escrita da
memória comparJlhada.
• Processadores geralmente do mesmo Jpo em um
mesmo container.
• Fig 4
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Sistemas multiprocessados
• Interconexão: bus ou mul4stage switch
• Representação: grafo não direcionado
• VérJce = processador + memória local + switch
• Aresta = enlace de comunicação entre processadores
• Grau – número de mensagens que podem ser manipuladas
simultaneamente por um processador.
• Diâmetro – menor número de nós necessário para
comunicação entre dois nós mais distantes na rede.
• Largura de bisseção – número de enlaces mínimo que
divide a rede na metade. Indica quantas mensagens podem
ser trocadas simultaneamente entre duas metades da rede.
• Fig 15
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Sistemas multiprocessados
• Duas redes de interconexão populares são a
omega e a bu1erfly.
• São redes mulJ-estágio formadas por
comutadores 2x2.
• Permitem dados de qualquer das duas entradas serem
direcionados para qualquer das duas saídas.
• Colisões ocorrem quando mais de um dado é
direcionado ao mesmo tempo para a mesma saída.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Sistemas multiprocessados
• Omega
• Omega: n processadores, n unidades de memória
• (n/2) log2n switches 2x2, log2n níveis
• Função de interconexão
(
n
2i, 0i 2 1
j= n
2i + 1 n, 2 in 1
• Função de roteamento
• Para nível s da rede, se o s+1-ésimo bit mais significaJvo de j é
0, vai pro fio de cima, se for 1 vai pro fio de baixo.
• Fig 5
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Sistemas multiprocessados
• Bu1erfly
• Função de interconexão
• Depende de n e de s
• Seja M=n/2 switches em cada nível, e <x,s> um switch x
no nível s
• Existe uma aresta de <x,s> para <y, s+1> se:
• x=y
• x XOR y tem exatamente um bit 1, que está no s+1-ésimo bit
mais significaJvo
• Função de roteamento
• Num nível s, se s+1-ésimo bit mais significaJvo de j é 0,
vai para o fio de cima, senão vai para o fio de baixo.
• Fig 6
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Multicomputadores
• Sistema paralelo onde múlJplos processadores
não têm acesso direto a memória
comparJlhada.
• Memória pode ou não formar um espaço de
endereçamento comum.
• Geralmente não têm relógio comum.
• Próximos fisicamente.
• Fortemente acoplados (hardware e soVware
homogêneos).
• Fig 7
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Multicomputadores
• Espaço de endereçamento comum ou troca de
mensagens.
• Espaço de endereçamento comum: geralmente
corresponde a arquitetura NUMA (non-uniform
memory access).
• Topologias regulares e simétricas
• Mesh, anel, torus, cubo, hipercubo
• Propriedades matemáJcas interessantes para
roteamento
• Fig 8
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Sistemas paralelos
• DisJnção/caracterização é importante para
projeto de algoritmos.
• Considerar latências
• Muito acesso aos mesmos dados, muito acesso a
dados locais e pouco acesso a dados distribuídos, etc.