MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução -...

32
Prof. Luiz Fernando Bittencourt IC - UNICAMP MC714 Sistemas Distribuídos 2° semestre, 2013

Transcript of MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução -...

Page 1: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

Prof. Luiz Fernando Bittencourt IC - UNICAMP

MC714 Sistemas Distribuídos 2° semestre, 2013

Page 2: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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

Page 3: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Introdução – sistemas distribuídos

Page 4: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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).

Page 5: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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?

Page 6: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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).

Page 7: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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) .

Page 8: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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.

Page 9: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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

Page 10: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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

Page 11: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Componentes - Software • Aplicação distribuída • Middleware • Sistema operacional • Pilha de protocolos de rede •  Fig 2

Page 12: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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.

Page 13: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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

Page 14: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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.

Page 15: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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

Page 16: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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

Page 17: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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?

Page 18: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas paralelos

Page 19: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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?

Page 20: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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.

Page 21: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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

Page 22: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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.

Page 23: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas paralelos - classificação • Sistemas multiprocessados. • Multicomputadores. • Processadores vetoriais

Page 24: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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

Page 25: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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

Page 26: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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.

Page 27: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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

Page 28: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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

Page 29: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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

Page 30: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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

Page 31: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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.

Page 32: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/aula01.pdfIntrodução - sistemas distribuídos • 1. Coleção de entidades independentes que colaboram para resolver

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.