Download as pdf or txt
Download as pdf or txt
You are on page 1of 32

Prof.

Luiz Fernando Bi1encourt IC - UNICAMP

MC714
Sistemas Distribuídos
1° semestre, 2017
Prof. Luiz Fernando Bi1encourt IC - UNICAMP

Introdução – sistemas distribuídos


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, 0i 2 1
j= n
2i + 1 n, 2 in 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

Array processors (vector


processors)
•  Processadores fisicamente próximos, fortemente
acoplados.
•  Relógio comum.
•  Podem não comparJlhar memória e podem
comunicar-se por troca de mensagens.
•  Processamento e troca de dados sincronizados.
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.

You might also like