mc714 - home | instituto de computaÇÃobit/ensino/mc714_2s13/aulas/aula01.pdfintrodução -...
TRANSCRIPT
Prof. Luiz Fernando Bittencourt IC - UNICAMP
MC714 Sistemas Distribuídos 2° semestre, 2013
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Curso • Fundamentos de Sistemas Distribuídos: • Comunicação entre processos: • Sistemas de arquivos • Serviços de nomes • Sincronização • Replicação • Segurança • Memória compartilhada distribuída
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Introdução – sistemas distribuídos
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Introdução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram
para resolver um problema que não poderia ser resolvido individualmente (Kshemkalyani e Singhal).
• 2. Sistema onde componentes de hardware ou software 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 Bittencourt IC - UNICAMP
Introdução - sistemas distribuídos • Existem desde sempre
• Comunicação entre agentes móveis na natureza
• Hoje • Dispositivos computacionais em rede • Ferramenta para resolver problemas • Vontade própria? Comportamento esperado? Autonomia até que
nível?
Prof. Luiz Fernando Bittencourt 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 compartilham memória ou relógio físico 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 coletivamente (Tanenbaum / Van Steen).
Prof. Luiz Fernando Bittencourt 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 multiprocessados (Goscinski) .
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Características • Sem relógio físico comum
• Introduz a noção de distribuição, dando origem à assincronia inerente entre processadores.
• Sem memória compartilhada • 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 compartilhada distribuída.
Prof. Luiz Fernando Bittencourt 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
velocidaes e diferentes SOs
Prof. Luiz Fernando Bittencourt 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 Bittencourt IC - UNICAMP
Componentes - Software • Aplicação distribuída • Middleware • Sistema operacional • Pilha de protocolos de rede • Fig 2
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Arquitetura / Middleware • Execução distribuída é a execução de processos no
sistema distribuído para alcançar um objetivo comum. • Arquitetura em camadas para quebrar complexidade (Fig
2). • Middleware é o software distribuído que coordena o
sistema distribuído enquanto fornece transparência de heterogeneidade.
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Arquitetura / Middleware • Bibliotecas/padrões/mecanismos de middleware:
• CORBA – common object request broker • Normalização de semântica de chamadas entre objetos
• RPC – remote procedure call • DCOM – distributed component object model • RMI – remote method invocation • SOAP – simple object access protocol
• MPI – message passing interface
Prof. Luiz Fernando Bittencourt 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. • Software 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 Bittencourt IC - UNICAMP
Motivação / requisitos • Existem aplicações onde a computação é intrinsecamente
distribuída • Ex: transferência bancária
• Compartilhamento de recursos • Hardware, software/bibliotecas, dados, licenças • Impossível replicar tudo em todo lugar – impraticá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 partir de dispositivos
móveis
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Motivação / requisitos • Aumentar confiabilidade
• Replicação de dados e de software • Disponibilidade: recurso deve estar disponível “sempre” • Integridade: estado/valor de um recurso deve ser
correto, sob acessos concorrentes de múltiplos processadores, de acordo com a semântica esperada pela aplicação
• Tolerância a falhas: habilidade de recuperação de falhas no sistema
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Motivação / requisitos • Melhorar taxa desempenho/custo
• Compartilhamento de recursos e dados remotos • Aumentar vazão (nem sempre é esse o objetivo...) • 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 substituir) processadores heterogêneos sem
degradar desempenho.
• Outras?
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Sistemas paralelos
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Sistemas paralelos • Existem sistemas que possuem algumas, mas não todas, as características de um sistema distribuído
• Como classificá-los? • São sistemas distribuídos ou sistemas multiprocessados?
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Arquiteturas de memória • Dois aspectos: localização e política de acesso. • Uma memória para todos os processadores: memória compartilhada.
• Se memória não é compartilhada: acesso via meios explícitos de comunicação, como troca de mensagens.
Prof. Luiz Fernando Bittencourt 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 compartilhada
• Espaço de endereçamento global • Tempo de acesso diferente, em geral
• Multiprocessadores de memória distribuída • Troca de mensagens • Acesso através do processador • Hierárquica: alguns (2-4) processadores compartilham memória,
formando um nó de computação. Múltiplos nós são conectados em um nível mais alto – IBM Blue Gene L
• Fig 3
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Arquiteturas de memória - diferenças • Memória centralizada
• Extensão intuitiva 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.
• Multiprocessadores de memória distribuída integram as duas abordagens, fornecendo escalabilidade e maior facilidade de programação.
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Sistemas paralelos - classificação • Sistemas multiprocessados. • Multicomputadores. • Processadores vetoriais
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Sistemas multiprocessados • Sistemas paralelos onde os múltiplos processadores tem
acesso direto a uma memória compartilhada, a qual forma um espaço de endereçamento único.
• Geralmente sem um relógio comum. • Geralmente constituem uma Uniform Memory Access
(UMA), onde a latência de acesso à memória é a mesma para todo processador.
• Comunicação entre processos: leitura/escrita da memória compartilhada.
• Processadores geralmente do mesmo tipo em um mesmo container.
• Fig 4
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Sistemas multiprocessados • Interconexão: bus ou multistage switch • Representação: grafo não direcionado
• Vértice = 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 simultanemante entre duas metades da rede.
• Fig 15
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Sistemas multiprocessados • Duas redes de interconexão populares são a omega e a
butterfly. • São redes multi-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 Bittencourt 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
• Função de roteamento
• Para nível s da rede, se o s+1-ésimo bit mais significativo de j é 0, vai pro fio de cima, se for 1 vai pro fio de baixo.
• Fig 5
j =
�2i, 0 ≤ i ≤ n
2 − 1
2i+ 1− n, n2 ≤ i ≤ n− 1
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Sistemas multiprocessados • Butterfly
• 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
significativo
• Função de roteamento • Num nível s, se s+1-ésimo bit mais significativo de j é 0, vai para
o fio de cima, senão vai para o fio de baixo. • Fig 6
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Multicomputadores • Sistema paralelo onde múltiplos processadores não têm
acesso direto a memória compartilhada. • 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 software
homogêneos). • Fig 7
Prof. Luiz Fernando Bittencourt 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áticas interessantes para roteamento • Fig 8
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Array processors (vector processors) • Processadores fisicamente próximos, fortemente
acoplados. • Relógio comum. • Podem não compartilhar memória e podem comunicar-se
por troca de mensagens. • Processamento e troca de dados sincronizados.
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Sistemas paralelos • Distinçã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.