mo809l - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · sistema onde componentes de hardware ou...

154
Prof. Luiz Fernando Bittencourt IC - UNICAMP MO809L Tópicos em Sistemas Distribuídos 1° semestre, 2013

Upload: others

Post on 16-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

MO809L Tópicos em Sistemas Distribuídos 1° semestre, 2013

Page 2: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Apresentação • Professor • Alunos

2

Page 3: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Curso • Sobre o que é:

•  Arquiteturas de sistemas distribuídos; •  Datacenters •  Cluster, grid, cloud, P2P

•  Escalonamento em sistemas distribuídos; •  Comunicação entre tarefas em sistemas distribuídos; •  Modelos/Linguagens de programação paralela/distribuída; •  Cooperação entre sistemas paralelos e distribuídos; •  Desafios

• Sobre o que não é: •  Modelos síncrono e assíncrono; •  Algoritmos distribuídos (eleição de líder, sincronização de relógio,

consenso, detecção de deadlock).

• Abordagem bottom-up

Page 4: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Tópicos •  Introdução ao paralelismo e aos sistemas distribuídos (definição,

arquitetura, redes); •  Representação em grafos / complexidade; •  Datacenters; •  Web services; •  Arquitetura cliente-servidor, P2P; •  Mobilidade / Computação ubíqua; •  Cluster Computing; •  Grid Computing; •  Cloud Computing; •  Aplicações: tarefas independentes e dependentes / workflows; •  Introdução ao escalonamento de tarefas; •  GGPU, APU, Multi-core em computação paralela e distribuída; •  Linguagens/paradigmas de programação (OpenMP, UPC, MPI, RMI,

Hadoop/MapReduce); •  Economia de energia / Computação Verde; •  HPC / e-Science / Computação Científica;

Page 5: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Tópicos • Votação

Page 6: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Avaliação • Seminário + trabalho

Page 7: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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 8: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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? •  Firefox OS - http://www.youtube.com/watch?

feature=player_detailpage&v=-9vktI70iHc#t=165s •  Amazon AWS

Page 9: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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 10: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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 11: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Características • Sem relógio físico comum • Sem memória compartilhada • Separação geográfica – quanto mais separado, “mais é”

um sistema distribuído •  Clusters?

• Autonomia e heterogeneidade

Page 12: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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 13: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

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

•  CORBA •  RPC

•  DCOM •  RMI •  SOAP

•  MPI

Page 14: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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 •  Impossível colocar tudo em um lugar só

• Acesso a recursos geograficamente distribuídos •  Dados sensíveis ou muito grandes •  Acesso a dados e supercomputadores a partir de dispositivos

móveis

Page 15: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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 16: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Motivação / requisitos • Melhorar taxa desempenho/custo • Oferecer escalabilidade – evitar gargalos • Modularidade / facilidade de expansão • Outras?

Page 17: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas distribuídos e sistemas multiprocessados / multicomputadores

Page 18: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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 19: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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 20: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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

• 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. Multiplos nós são conectados em um nível mais alto

• Fig 3

Page 21: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Classificação • Sistemas multiprocessados. • Multicomputadores. • Processadores vetoriais

Page 22: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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 23: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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, diâmetro, largura de bisseção

•  Fig 15

Page 24: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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

The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again.

Page 25: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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 26: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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 27: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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 28: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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 pode comunicar-se

por troca de mensagens. • Processamento e troca de dados sincronizados.

Page 29: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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.

Page 30: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Taxonomia • Processamento (Flynn):

•  SISD, MISD, SIMD, MIMD

• Programação •  Memória compartilhada •  Troca de mensagens •  PRAM – Parallel Random Access Machine •  LogP vs. PRAM

Page 31: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Taxonomia – Flynn • Quatro “modos” de processamento classificando:

•  Como é o processamento de instruções •  Quais são os dados de entrada de cada processador •  Single Instruction, Single Data – SISD •  Single Instruction, Multiple Data – SIMD •  Multiple Instruction, Single Data – MISD •  Multiple Instruction, Multiple Data – MIMD

Page 32: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

SISD • Single instruction stream, single data stream • Modo “convencional” no paradigma de Von Neumann • Uma CPU • Uma unidade de memória • Conectados por bus •  Fig 9

Page 33: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

SIMD • Single instruction stream, multiple data stream. • Processamento: múltiplos processadores homogêneos. • Mesma instrução. •  Itens de dados distintos. • Co-processamento (MMX, SSE). •  Fig 10

Page 34: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

MISD • Multiple instruction stream, single data stream. • Operações diferentes • Mesmo dado •  Fig 11

Page 35: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

MIMD • Multiple instruction stream, multiple data stream. •  Instruções diferentes. • Dados diferentes. • Modo de operação de sistemas distribuídos e paralelos

em geral. • Sem relógio comum. •  Fig 12

Page 36: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Troca de mensagem, memória compartilhada, PRAM, LogP

Page 37: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Memória compartilhada •  Tem espaço de endereçamento comum no sistema. • Comunicação através de variáveis compartilhadas. • Variáveis de controle para sincronização entre processos

(p.ex. semáforos e monitores). •  “Mais fácil” programar que troca de mensagens. • Paradigma de programação (memória compartilhada ou

troca de mensagem) nem sempre corresponde à organização de memória do sistema alvo.

Page 38: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

PRAM, LogP • Modelos para projeto e análise de algoritmos paralelos. • PRAM – Parallel Random Access Machine

•  Memória ideal centralizada e compartilhada, processadores síncronos.

•  Acesso à uma célula: admite acesso exclusivo ou concorrente. •  Células diferentes podem ser acessadas concorrentemente. •  Simples, porém não considera custos de comunicação entre

processos. •  LogP

•  Considera custo de comunicação entre processos. •  Latência, Overhead, Gap (tempo mínimo entre mensagens), # de

Processadores. •  Limita número de mensagens simultâneas (teto(L/g)). •  Modelo assíncrono. •  Fig 13

Page 39: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Acoplamento, paralelismo, concorrência e granularidade

Page 40: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Acoplamento • Grau de acoplamento (hardware ou software):

interdependência e “amarração” e/ou homogeneidade entre módulos. •  Fortemente acoplados (SIMD, MISD / relógio comum) ou

fracamente acoplados.

Page 41: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Acoplamento • Ex MIMD:

•  Multiprocessadores fortemente acoplados (com memória compartilhada Uniform Memory Access). Bus (Sequent, Encore) ou switch (NYU)

•  Multiprocessadores fortemente acoplados (com memória compartilhada Non-Uniform Memory Access – SGI Origin 2000, Sun Ultra HPC – ou troca de mensagens – hipercubo, torus).

•  Multicomputadores (sem memória compartilhada ou relógio comum) fracamente acoplados. Bus (NOW + LAN ou Myrinet), ou usando uma rede genérica, processadores podem ser heterogêneos. Sistema distribuído com característica de sistema paralelo. Abordagens diferentes de redes de longa distância.

•  Multicomputadores fracamente acoplados, fisicamente distantes. Noção convencional de sistemas distribuídos.

Page 42: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo / speedup em um sistema específico • Speedup relativo em uma máquina específica. • Depende do número de processadores e mapeamento do

código nesses processadores. • Razão entre o tempo T(1) em um único processador e

tempo T(n) com n processadores.

Page 43: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo em um programa paralelo/distribuído • Medida agregada da porcentagem de tempo que todos os

processadores estão executando instruções de CPU ao invés de aguardar comunicação.

• Se a medida agregada é somente função do código, paralelismo é independente de arquitetura.

Page 44: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Concorrência de um programa •  Termo mais amplo. • Usado no contexto de sistemas distribuídos. • Razão entre o número de operações locais (sem

comunicação / memória compartilhada) e o número total de operações.

Page 45: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Granularidade de um programa • Razão entre quantidade de computação e quantidade de

comunicação do programa paralelo/concorrente. • Baixa granularidade: se encaixa melhor em sistemas

fortemente acoplados. •  Latência pode degradar vazão.

Page 46: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Primitivas para comunicação distribuída

Page 47: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Primitivas • Envio de mensagem: send();

•  Pelo menos 2 parâmetros: destino e buffer com dados. •  “Bufferizada” (buffer do kernel) ou não.

• Recepção de mensagem: receive(); •  Pelo menos 2 parâmetros: origem (pode ser *) e buffer de destino. •  Geralmente precisa de buffer, pois pode já ter recebido dados ao

ser invocada.

Page 48: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Síncrona / assíncrona • Primitiva síncrona

•  Send() e receive() fazem handshake. •  Processamento do send só termina depois que receive

correspondente foi invocado e a operação de recebimento foi terminada (dados copiados ao buffer de recepção).

• Primitiva assíncrona •  Primitiva send é assíncrona se controle retorna ao processo depois

dos dados serem copiados para fora do buffer do usuário.

Page 49: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Bloqueante / não bloqueante • Primitiva bloqueante

•  Controle retorna ao processo após o processamento da primitiva (síncrona ou assíncrona).

• Primitiva não bloqueante •  Controle retorna ao processo imediatamente após invocá-la,

mesmo com a operação não terminada. •  Para send, controle retorna ao proceso antes da cópia dos dados

para fora do buffer do usuário. •  Para receive, controle pode retornar ao processo mesmo antes

dos dados chegarem do remetente. •  Parâmetro de retorno é um handle que pode ser usado para

verificar o estado da chamada. •  Fazer loop ou verificar periodicamente. •  Wait com handles como parâmetro (blocking wait).

Page 50: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Características •  Fig 14 • Send síncrono bloqueante: simplifica a lógica do

programa, mas pode diminuir eficiência do processo remetente (sender tem que esperar).

• Send não bloqueante assíncrono é útil para dados maiores.

• Send não bloqueante síncrono evita atrasos, principalmente quando receive ainda não foi invocado no destino.

• Receive não bloquente é útil para receber dados maiores ou quando o send ainda não foi invocado.

• Chamadas não bloqueantes oneram o programador, que precisa cuidar do término das operações.

Page 51: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sincronismo de processador • Outro nível de sincronismo • Processadores executam em passos sincronizados • Relógios sincronizados • Em sistemas distribuídos, sincronização em “passos”

pode ser implementada.

Page 52: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sincronismo de execução • Outra classificação no nível de sincronismo • Execução assíncrona

•  Não tem sincronismo de processador •  Não há limite para divergência de relógios •  Atraso de mensagens: finito mas ilimitado •  Sem limite de tempo para cada processo executar um passo •  Fig 16

Page 53: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sincronismo de execução • Execução síncrona

•  Processadores sincronizados •  Divergência de relógios limitada •  Entrega de mensagem: ocorre em um passo lógico •  Tempo limite para um processo executar um passo •  Fig 17

Page 54: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Emulação • Sistema assíncrono sobre um sistema síncrono

•  Sistema síncrono: caso especial do assíncrono •  Programa escrito para sistema assíncrono pode ser emulado

trivialmente em um sistema síncrono

• Sistema síncrono sobre um sistema assíncrono •  Programa escrito para sistema síncrono pode ser emulado em

sistema assíncrono usando uma ferramenta chamada sincronizador.

Page 55: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Emulação • Memória compartilhada pode ser emulada em um sistema

de troca de mensagens e vice-versa. • Quatro classes de programas.

•  Assíncrono, troca de mensagens (AMP) •  Síncrono, troca de mensagens (SMP) •  Assíncrono, memória compartilhada (ASM) •  Síncrono, memória compartilhada (SSM)

• Se um sistema A pode ser emulado por um sistema B, e se um problema não pode ser resolvido em B, também não pode ser em A.

• Se pode ser resolvido em A, pode ser resolvido em B. •  Fig 18

Page 56: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Emulação • As quatro classes oferecem computabilidade (i.e., que

problemas podem e não podem ser resolvidos) equivalente em sistemas livres de falhas.

• Em sistemas suscetíveis a falhas, sistemas síncronos oferecem maior computabilidade que assíncronos.

Page 57: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Desafios

Page 58: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Desafios • Primórdios - 1970/ARPANET

•  Acesso a dados remotos sob falhas •  Projeto de sistemas de arquivos •  Projeto de estrutura de diretórios •  Outros requisitos e problemas surgiram com o passar do tempo

• Relacionados a sistemas • Relacionados a algoritmos • Relacionados a tecnologias/avanços recentes

Page 59: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Desafios - Sistema • Comunicação: mecanismos apropriados para

comunicação entre processos. • Processos: gerência de processos e threads em clientes/

servidores; migração de código; software e agentes móveis.

• Nomenclatura: esquemas de nomenclatura robustos para localização de recursos e processos transparentemente, em especial para sistemas móveis.

• Sincronização: coordenação entre processos é essencial. Outras formas de exclusão mútua, sincronização de relógio, relógios lógicos, algoritmos para manutenção global de estado.

Page 60: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Desafios - Sistema • Armazenamento e acesso a dados: esquemas de

armazenamento, acesso rápido e escalável a dados na rede. Projeto de sistemas de arquivo direcionados a sistemas distribuídos.

• Consistência e replicação: evitar gargalos; fornecer acesso rápido a dados e escalabilidade. Gerência de réplicas e consistência.

•  Tolerância a falhas: manter funcionamento eficiente mesmo na presença de falhas de enlace, processos ou nós. Resiliência de processos, comunicação confiável, checkpointing e recuperação, detecção de falhas.

• Segurança

Page 61: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Desafios - Sistema •  Transparência em diversos níveis: acesso, localização,

migração, relocação, replicação, concorrência, falha. • Escalabilidade e modularidade: algoritmos, dados e

serviços tanto distribuídos quanto possível. Técnicas como replicação, caching e gerência de cache, e processamento assíncrono ajudam a alcançar escalabilidade.

Page 62: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Desafios – Algorítmicos • Modelos de execução e arcabouços: especificações

formais de modelos e conjuntos de ferramentas para raciocínio, projeto e análise de programas distribuídos.

• Algoritmos em grafos dinâmicos: algoritmos importantes para comunicação, disseminação de dados, localização de objetos, busca de objetos. Topologia e conteúdo dinâmicos, algoritmos influenciam latência, tráfego e congestionamento.

•  Tempo e estado global: fornecimento de tempos físico e lógico precisos. Estado global também envolve noção de tempo; obtenção de estado coordenada. Medida de concorrência também envolve tempo.

Page 63: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Desafios – Algorítmicos • Comunicação em grupo, multicast, entrega de

mensagens ordenadas: algoritmos para comunicação e gerência eficiente de grupos dinâmicos sob falhas.

• Monitoramento: algoritmos online para monitorar e mapear eventos e tomar ações.

•  Ferramentas para desenvolvimento e teste de programas distribuídos.

• Depuração de programas distribuídos: desafio devido à concorrência; mecanismos e ferramentas são necessários.

• Algoritmos para gerência e replicação de dados, atualização de réplicas e cópias em cache. Alocação de cópias no sistema.

Page 64: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Desafios – Algorítmicos • WWW – cache, busca, escalonamento: prefetching/

padrões de acesso, redução de latência de acesso, busca de objetos, distribuição de carga.

• Abstrações de memória compartilhada. • Confiabilidade e tolerância a falhas. • Balanceamento de carga: aumentar vazão e diminuir

latência. Migração de dados, migração de computação, escalonamento distribuído.

• Escalonamento em tempo real: aplicações sensíveis ao tempo. Problema se visão global do sistema não está disponível. Difícil prever atrasos de mensagens.

Page 65: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Desafios – Algorítmicos • Desempenho: alta vazão pode não ser o objetivo primário

de um sistema distribuído, mas desempenho é importante. •  Métricas: identificação de métricas apropriadas para medir

desempenho teórico e prático (medidas de complexidade versus medida com parâmetros/estatísticas reais).

•  Ferramentas e métodos de medição: metodologias apropriadas e precisas para obtenção de dados confiáveis para as métricas definidas.

Page 66: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Desafios - Aplicações e avanços recentes • Sistemas móveis: meio de broadcast comparilhado;

problemas de alcance e interferência. Roteamento, gerência de localidade, alocação de canais, estimativa de posição, são problemas a serem tratados. Estação-base versus ad-hoc.

• Redes sensores: monitorar eventos distribuídos / streaming de eventos. Economia de energia na comunicação/middleware.

• Computação ubíqua e internet das coisas: auto-organização, recursos limitados; inteligência no núcleo da rede?

• Peer-to-peer: mecanismos de armazenamento persistente, busca e obtenção escalável, privacidade.

Page 67: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Desafios - Aplicações e avanços recentes • Publish-subscribe, distribuição de conteúdo e multimídia:

filtros de informação dinâmicos. Mecanismos eficientes para distribuição aos interessados e de inscrição de interessados. Mecanismos de agregação de informação e de distribuição de dados com grande volume.

• Grades computacionais: ciclos de CPUs ociosas; escalonamento e garantias de tempo real; predição de desempenho; segurança.

• Nuvens computacionais: virtualização; escalonamento / custos monetários; modelos econômicos; segurança.

• Segurança: soluções escaláveis para confidencialidade, autenticação e disponibilidade sob ações maliciosas.

Page 68: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Fundamentos de Sistemas Distribuídos

Page 69: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistema Distribuído • Um conjunto de computadores independentes que se

apresenta a seus usuários como um sistema único e coerente. •  Consiste de componentes = computadores / dispositivos. •  Usuários (pessoas ou programas): acham que é um único sistema

centralizado. •  Componentes autônomos precisam colaborar. •  Como estabelecer tal colaboração = cerne do desenvolvimento de

sistemas distribuídos. •  Não há restrição de como tais componentes se conectam: podem

até estar dentro de um único sistema (como vimos nos sistemas multiprocessados...).

Page 70: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistema Distribuído • Modo como se comunicam: oculto do usuário. • Organização interna: oculta do usuário. • Usuários / aplicações: podem interagir com o SD de

maneira consistente e uniforme, independente de localização.

•  Fácil de expandir / escalável. • Continuamente disponível (como um todo – partes podem

falhar ou deixar o sistema independentemente).

Page 71: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Middleware • Suporte a computadores e redes heterogêneas: camada

de software. • Entre aplicações/usuário e S.O. • Middleware se estende por múltiplas máquinas e oferece

a mesma interface para diversas aplicações. • Proporciona meios para que componentes de uma

aplicação distribuída se comuniquem. • Oculta diferenças de hardware e sistemas operacionais. •  Fig 19.

Page 72: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Metas • Fácil acesso a recursos; • Ocultar distribuição dos recursos; • Ser aberto para poder ser expandido (escalabilidade).

Page 73: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Metas – Acesso aos recursos •  Facilitar acesso a recursos remotos e seu

compartilhamento de maneira controlada e eficiente. • Uma razão óbvia: economia.

•  1 impressora para todos •  1 supercomputador para todos •  1 sistema de armazenamento de alto desempenho para todos. •  ...

• Colaboração •  Edição online de documentos, imagens, apresentações,etc. em

tempo real.

• Segurança: hoje não há muita proteção (cartões de crédito, privacidade, etc).

Page 74: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Metas - Transparência • Ocultar o fato de recursos estarem distribuídos. • Diferentes aspectos de transparência. • Acesso: esconde diferenças na representação de dados e como um recurso é acessado. •  Ocultar arquitetura de máquina •  Acordo de representação de dados •  Convenções diferentes em sistemas diferentes

• Localização: esconde a localização de um recurso. •  Nomes lógicos. Ex.: URLs

• Migração: esconde o fato que um recurso pode ser movido para outra localidade.

Page 75: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Metas - Transparência • Migração: esconde o fato que um recurso pode ser movido para outra localidade. •  Ex: URLs: www.abcd.com/index.html - não importa onde estava

ou onde está agora, parece igual ao usuário. • Relocação: esconde o fato que um recurso pode ser

movido para outra localidade enquanto em uso. •  Ex.: laptops, celulares, migração de máquinas virtuais.

• Replicação: esconde fato de que um recurso é replicado. •  Réplicas com mesmo nome. •  Em geral sistema que suporta transparência de replicação deve

suportar transparência de localização. •  Ex.: caches

Page 76: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Metas - Transparência • Concorrência: esconde que um recurso pode ser compartilhado por diversos usuários competitivos. •  Compartilhamento pode ser competitivo: acesso a disco, banco de

dados, etc. •  Importante: consistência. Possível mecanismo: transações.

• Falha: esconde falha/recuperação de um recurso. •  “Você sabe que está usando um sistema distribuído quando uma

falha em um computador do qual você nunca ouviu falar impede que você faça qualquer trabalho.” (Leslie Lamport)

•  Sistema superou a falha sem percepção do usuário. •  Problema: diferenciar recursos mortos de recursos lentos.

Page 77: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Grau de transparência • Ocultar todos os aspectos de distribuição pode não ser desejável / possível. •  Ex.: jornal da manhã por e-mail/celular. •  Ex. 2: restrição de camada física: limitações do meio físico /

processamento em roteadores. •  Transparência versus desempenho: tentar mascarar falha

insistentemente pode causar atraso. •  Consistência entre várias réplicas em diferentes continentes:

alteração deve propagar-se para todas as cópias antes de novas operações; pode demorar muito e não pode ser ocultado dos usuários.

•  Expor localização: pode ser melhor que ocultar, com mobilidade e ubiqüidade

Page 78: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Grau de transparência •  Total transparência nem sempre é vantajoso. • Deve-se levar em conta os propósitos do sistema

distribuído.

Page 79: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Metas - Abertura • Sistema distribuído aberto oferece serviços de acordo com regras padronizadas. •  Descrição de sintaxe e semântica. •  Ex.: mensagens em protocolos de rede. •  Em SDs: interfaces – linguagem de definição de interface (IDL). •  IDLs:

•  Sintaxe - nomes de funções que estão disponíveis, tipos de parâmetros, valores de retorno, exceções.

•  Semântica: parte difícil. •  Permite que processo arbitrário se comunique com outro processo que

fornece a interface especificada. •  Permite construção independente e complementar de sistemas

distribuídos.

Page 80: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Metas - Abertura •  Interoperabilidade: caracteriza até que ponto duas

implementações de sistemas ou componentes de fornecedores diferentes devem co-existir e trabalhar em conjunto.

• Portabilidade: caracteriza até que ponto uma aplicação para um SD A pode ser executada, sem modificação, em um SD B que implementa as mesmas interfaces.

• Deve ser fácil adicionar/substituir componentes.

Page 81: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Abertura – política e mecanismo • Alcançar flexibilidade: componentes pequenos e de fácil

substituição / adaptação. • Definições não somente para interfaces “externas”, mas

também internas. • Sistemas monolíticos tendem a ser fechados. • Cache web: usuário pode configurar política de cache

(tamanho do cache, por exemplo). • Não consegue tomar decisão baseado em conteúdo do

documento, ou qual documento deve ser removido quando estiver cheia. •  Componente com políticas do usuário seria ideal, mas interface

com browser é necessária.

Page 82: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Metas - Escalabilidade • Escalabilidade em três dimensões:

•  Em tamanho – fácil adicionar usuários e recursos. •  Em termos geográficos – usuários e recursos podem estar

distantes. •  Em termos administrativos – fácil/possível de gerenciar mesmo

abrangendo muitas organizações e recursos.

• Sistema escalável em uma ou mais dimensões frequentemente apresenta perda de desempenho com ampliação.

Page 83: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Metas - Escalabilidade • Serviços centralizados. Ex.: único servidor para todos os usuários. •  Problema: muitos usuários / aplicações. •  Ás vezes é necessário por questões de segurança.

• Dados centralizados. Ex.: um único catálogo de telefones online. •  Problema: gargalo no acesso – rede e disco.

• Algoritmos centralizados. Ex.: realizar roteamento baseado em informações completas. •  Problema: colher e transportar toda a informação a cada alteração

sobrecarrega a rede. •  Preferência por algoritmos descentralizados.

Page 84: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Escalabilidade • Características de algoritmos descentralizados: • Nenhuma máquina tem informações completas sobre o

estado do sistema. • Máquinas tomam decisões baseadas em informações

locais. •  Falha em uma máquina não arruína o algoritmo. • Não há suposição implícita que um relógio global

existe.

Page 85: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Escalabilidade • Relógio global:

•  “Precisamente às 12:00:00 todas as máquinas anotarão o tamanho da sua fila de saída.” – precisaria de sincronização exata dos relógios. Quanto maior o sistema, maior a incerteza na sincronização.

• Escalabilidade geográfica •  Difícil ampliar sistemas de LANs para larga escala distribuída, pois

muitas vezes são baseados em comunicação síncrona. •  Funciona bem quando comunicação é rápida. •  Comunicação em longa distância: inerentemente não confiável. •  Ex.: abrir X11 à distância.

• Escalabilidade entre diferentes domínios administrativos •  Políticas conflitantes de utilização e/ou pagamento.

Page 86: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Escalabilidade / técnicas • Ocultar latências de comunicação

•  Não aguardar por resposta: comunicação assíncrona. •  Reduzir comunicação global. •  Ex.: validação de formulário. Fig 20.

• Distribuição •  Dividir componente e espalhar pelo sistema. •  Ex.: DNS. Fig 21.; Web.

• Replicação •  Aumenta disponibilidade •  Diminui latência •  Equilibra carga •  Ex.: Cache. Problema: consistência. Tolerância? Sincronização

global.

Page 87: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Armadilhas • Suposições falsas comuns feitas por desenvolvedores: • Rede é confiável; • Rede é segura; • Rede é homogênea; • A topologia não muda; •  Latência é zero; •  Largura de banda é infinita; • Custo do transporte é zero; • Há um administrador.

Page 88: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Tipos de sistemas distribuídos

Page 89: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Tipos de SDs • Sistemas de computação distribuídos • Sistemas de informação distribuídos • Sistemas embarcados distribuídos (pervasivos)

Page 90: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas de computação distribuídos

Page 91: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas de Computação Distribuídos • Utilizados para tarefas de computação (frequentemente

de alto desempenho). • Computação em cluster • Computação em grade • Computação em nuvem

Page 92: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Cluster Computing •  Tornaram-se populares pela razão preço/desempenho.

•  Estações mais potentes e mais baratas •  Rede melhor

• Computação intensiva paralela. • Ex.: Beowulf. Fig 22.

•  Mestre •  Alocação de nós / fila / escalonamento •  Interface para usuário •  Executa middleware para execução de programas e gerência do

cluster. •  Nós de computação: SO padrão pode ser suficiente.

•  Bibliotecas de execução em sistemas paralelos •  Migração de processos: nó nativo para qualquer outro nó.

Page 93: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Computação em grade • Cluster: homogêneo. • Grade: heterogênea, nenhuma premissa adotada em

relação a hardware, S.O., rede, domínio administrativo, política de segurança, etc.

• Recursos de diferentes organizações reunidos para permitir colaboração.

• Organização virtual: pessoas em uma organização virtual têm direitos sobre recursos dessa organização. •  Servidores de computação (inclusive clusters), armazenamento,

instrumentos, bancos de dados, equipamentos, sensores, telescópios, etc.

Page 94: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Computação em grade • Software de grade: grande parte com finalidade de prover

acesso a recursos de diferentes domínios administrativos. •  Fig 23. • Camada base: interfaces para recursos locais em site

específico. Consultar estado de recursos e gerência de recursos locais.

• Camada de conectividade: protocolos de comunicação para suportar transações utilizando múltiplos recursos. Ex.: transferência de dados, autenticação, protocolos de segurança.

• Camada de recursos: gerência de um único recurso. Ex.: criar processo, ler dados. Responsável por controle de acesso – necessita autenticação.

Page 95: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Computação em grade • Camada coletiva: manipular acesso a múltiplos recursos.

Serviços de descoberta de recursos, alocação / escalonamento de tarefas para múltiplos recursos, replicação de dados, etc. •  Muitos serviços - pode consistir de muitos protocolos

independentes.

• Camada de aplicação: aplicações que usam o ambiente virtual dentro da grade.

• Coletiva + conectividade + recursos = middleware da grade.

• Noção de “site” é comum: tendência do SOA (acesso às camadas através de serviços web).

Page 96: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Computação em nuvem •  Introduz noção de “computação como serviço”. • Utility grids. • Recursos virtualizados. • Diferentes provedores de serviço. IaaS, PaaS, SaaS. • Pagamento pelo uso. • Nuvem pública / privada / híbrida. • Evita alto investimento inicial. •  Fig. 24 • Visões: provedor e cliente.

Page 97: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas de informação distribuídos

Page 98: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas de informação distribuídos • Organizações com muitas aplicações em rede •  Interoperabilidade difícil • Mais fácil integrar as aplicações a um sistema de

informação distribuído • Muitos casos: aplicação de rede cliente-servidor /

requisição-resposta •  Integração: permitir que diversas requisições (para

diferentes servidores) fossem “empacotadas” em uma única •  Transação distribuída: todas - ou nenhuma - seriam executadas

Page 99: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas de informação distribuídos • Com avanço das aplicações, houve distinção entre

bancos de dados e processamento • Necessidade de comunicação entre aplicações

•  Integração de aplicações empresariais - EAI

• Duas formas de sistemas distribuídos: transações e integração de aplicações

Page 100: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Transações • Bancos de dados: operações sob a forma de transações • Requerem primitivas especiais a serem fornecidas pelo

sistema distribuído •  Primitivas dependem dos tipos de objetos na transação •  Ex: READ, WRITE •  READ: lê dados de um arquivo, tabela, etc. •  WRITE: escreve dados em um arquivo, tabela, etc.

Page 101: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Transações • BEGIN_TRANSACTION: marca o início de uma

transação. • END_TRANSACTION: finaliza transação e tenta commit. • Delimitam escopo da transação • Operações entre elas formam o corpo da transação: ou

todas são executadas, ou nenhuma é executada •  Procedimentos de biblioteca, chamadas de sistema, etc.

• ABORT_TRANSACTION: mata a transação e restaura valores anteriores.

• RPC transacional: chamadas de procedimentos remotos encapsuladas em uma transação.

Page 102: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Transações • Propriedades (ACID):

• Atomicidade: (para o mundo externo) transação ocorre de forma indivisível.

• Consistência: transação não viola invariantes do sistema.

•  Isolamento: transações concorrentes não interferem uma na outra.

• Durabilidade: uma vez dado commit, as mudanças são permanentes.

Page 103: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Transações • Atomicidade

• Garante que cada transação acontece de forma completa, ou não acontece.

• Única ação indivisível e instantânea • Outros processos não enxergam estados intermediários

de uma transação

Page 104: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Transações • Consistência

•  Invariantes válidos antes da transação continuarão válidos após a transação

• Ex.: Lei da conservação do dinheiro •  Invariante violado durante a transação, mas invisível a

outros processos

Page 105: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Transações • Isolamento

• Transações são isoladas ou serializáveis • Duas ou mais transações ao mesmo tempo, mesmo resultado final se serializadas

Page 106: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Transações • Durabilidade

• Uma vez realizado o commit, os resultados tornam-se permanentes

• Falhas (após commit) não podem desfazer/comprometer os resultados

Page 107: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Transações aninhadas •  Fig. 25. •  Transações de um nível mais alto se ramificam • Ganho de desempenho e/ou programação mais simples • Problema: transações em paralelo podem realizar commit

enquanto outras ainda não terminaram • Durabilidade: somente para a transação pai

Page 108: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Transações aninhadas • Profundidade arbitrária •  Fig 26 • Administrar resultados das transações •  Transação aborta: cópia privada “desaparece” •  Transação faz commit: pai pode ver seus dados • Protocolos de locks

•  Evitar deadlocks e inconsistências •  Ex.: protocolo de lock em duas fases e variantes

Page 109: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Transações • Monitor de processamento de transações (monitor TP) • Componente que administra transações distribuídas ou

aninhadas. • Núcleo para integração de aplicações no nível do servidor

ou do banco de dados. • Permite acesso a vários servidores/bancos de dados

usando um modelo de programação transacional. •  Fig. 27.

Page 110: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Integração de aplicações •  Integração de aplicações corporativas via middleware. • Não apenas requisição – resposta • Resultou em muitos modelos diferentes de comunicação •  Troca direta de informações entre aplicações •  Fig 28.

Page 111: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Integração de aplicações • Chamada de procedimento remoto (RPC)

• Componente de aplicação envia requisição a outro componente

• Chamada é feita localmente, empacotada em mensagem e enviada

• Chamada de objetos remotos •  Invocação de método remoto (RMI) • Essencialmente mesmo que RPC, mas com objetos ao

invés de aplicações

Page 112: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Integração de aplicações • RPC e RMI

• Chamador e chamado precisam estar ligados e funcionando

• Precisam ter uma referência ao outro para saber como chamar

• Middleware orientado a mensagem – MOM • Aplicações enviam mensagens a pontos lógicos de

contato • Aplicações indicam interesse em tipo de mensagem • Middleware cuida para que mensagens cheguem • Sistemas publish/subscribe

Page 113: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas distribuídos pervasivos

Page 114: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas distribuídos pervasivos • Sistemas vistos até agora são em grande parte estáveis: nós fixos, conexões permanentes

• Sucesso de transparência de distribuição •  Falhas são raramente percebidas. •  Localização oculta de nós na rede.

•  Introdução de dispositivos móveis e embarcados •  Instabilidade é esperada •  Equipamentos pequenos, com bateria, móveis, conexão sem fio •  Inerentemente distribuído •  Podem ser configurados pelo proprietário; melhor: devem

descobrir ambiente

Page 115: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas distribuídos pervasivos • Requisitos de aplicações pervasivas:

• Adotar/aceitar mudanças contextuais •  Ciente de que há mudanças •  Ex.: descobrir que a rede não está mais disponível devido

à movimentação •  Incentivar composição ad hoc

•  Configuração do conjunto de aplicações tem que ser fácil • Reconhecer compartilhamento como padrão

•  Possivelmente precisam fornecer informações

Page 116: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas distribuídos pervasivos • Na presença de mobilidade

•  Dispositivo deve suportar adaptação fácil e dependente de aplicação

•  Descobrir serviços com eficiência

• Transparência de distribuição? • Distribuição de dados, processos e controle é inerente

ao sistema • Melhor expor distribuição?

Page 117: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas domésticos • Um ou mais computadores pessoais • TV • Equipamentos de áudio/vídeo • Jogos • Smartphones • PDAs • Eletrodomésticos • Câmeras • Relógios •  Iluminação

Page 118: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas domésticos • Usuários não podem ser responsáveis por manter o sistema e/ou corrigir falhas

• Autoconfiguração • Autogerência • UPnP

• Obtenção de IP, descoberta de dispositivos • Não trata atualizações/compatibilidade

• Espaço pessoal •  Como, o que, quando compartilhar •  Sincronização de dispositivos

Page 119: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas domésticos • Possível evolução:

• Discos grandes: 1 “máquina” mestre • Dispositivos espalhados pela casa fornecem interface •  “Nuvem privada” • E nuvem pública? • Sistemas recomendadores

Page 120: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas de tratamento de saúde • Evitar hospitalização • BAN – Body area network • De preferência sem fio

Page 121: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas de tratamento de saúde

• Monitoramento de pessoas em um sistema de saúde pervasivo. •  (a) concentrador local; ou •  (b) conexão sem fio contínua.

Page 122: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas de tratamento de saúde • Questões a serem tratadas:

• Onde e como dados compartilhados devem ser armazenados?

• Como prevenir perda de dados cruciais? • Que infraestrutura é necessária para gerar e propagar

alertas? • Como médicos podem fornecer feedback online? • Como robustez extrema de sistema de monitoramento

pode ser alcançada? • Quais as políticas de segurança e como políticas

podem ser impostas?

Page 123: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas de tratamento de saúde • Dispositivos devem suportar processamento de dados na rede

• Agregar dados de monitores antes de armazenamento permanente / envio

Page 124: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Redes de sensores • Usadas também para processar informações • Mais do que apenas fornecer serviços de comunicação

• Semelhança com redes em malha • Dezenas a centenas de milhares de nós • Geralmente usa redes sem fio e alimentação por bateria – eficiência

• Relação com sistemas distribuídos: redes sensores = banco de dados distribuído •  Qual o volume de tráfego na rodovia X?

Page 125: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Redes de sensores • Fig 29: armazenamento e processamento somente no servidor do operador da rede. •  Requer que sensores enviem tudo pela rede

• Fig 30: armazenamento e processamento somente nos sensores. •  Despreza capacidade de agregação: processamento de dados na

rede

Page 126: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Redes de sensores • Processamento de dados na rede

•  Repassar uma consulta a todos os nós ao longo de uma árvore que abranja todos os nós e agregar resultados na volta à raiz

•  Agregação onde 2 ou mais ramos se encontram

• Como montar (dinamicamente) árvore eficiente? • Como agregar os resultados? • O que acontece se enlaces falham? •  TinyDB: interface de banco de dados em redes sensores

•  Problema: árvore de uma única raiz pode não ser tão eficiente •  Nós especiais que concentram resultados e consultas relacionadas

Page 127: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Resumo

Page 128: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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 129: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Características • Sem relógio físico comum • Sem memória compartilhada • Separação geográfica – quanto mais separado, “mais é”

um sistema distribuído • Autonomia e heterogeneidade

Page 130: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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.

Page 131: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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, diâmetro, largura de bisseção

• Switch: omega e butterfly

Page 132: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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

Page 133: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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

Page 134: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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 pode comunicar-se

por troca de mensagens. • Processamento e troca de dados sincronizados.

Page 135: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

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.

Page 136: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Taxonomia – Flynn • Quatro “modos” de processamento classificando:

•  Como é o processamento de instruções •  Quais são os dados de entrada de cada processador •  Single Instruction, Single Data – SISD •  Single Instruction, Multiple Data – SIMD •  Multiple Instruction, Single Data – MISD •  Multiple Instruction, Multiple Data – MIMD

Page 137: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Troca de mensagem / memória compartilhada • Memória compartilhada

•  Tem espaço de endereçamento comum no sistema. •  Comunicação através de variáveis compartilhadas. •  Variáveis de controle para sincronização entre processos (p.ex.

semáforos e monitores).

• Paradigma de programação (memória compartilhada ou troca de mensagem) nem sempre corresponde à organização de memória do sistema alvo.

Page 138: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

PRAM, LogP • Modelos para projeto e análise de algoritmos paralelos. • PRAM – Parallel Random Access Machine

•  Memória ideal centralizada e compartilhada, processadores síncronos.

•  Acesso à uma célula: admite acesso exclusivo ou concorrente. •  Células diferentes podem ser acessadas concorrentemente. •  Simples, porém não considera custos de comunicação entre

processos. •  LogP

•  Considera custo de comunicação entre processos. •  Latência, Overhead, Gap (tempo mínimo entre mensagens), # de

Processadores. •  Limita número de mensagens simultâneas (teto(L/g)). •  Modelo assíncrono.

Page 139: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Acoplamento • Grau de acoplamento (hardware ou software):

interdependência e “amarração” e/ou homogeneidade entre módulos. •  Fortemente acoplados (SIMD, MISD / relógio comum) ou

fracamente acoplados.

Page 140: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo / speedup em um sistema específico • Speedup relativo em uma máquina específica. • Depende do número de processadores e mapeamento do

código nesses processadores. • Razão entre o tempo T(1) em um único processador e

tempo T(n) com n processadores.

Page 141: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Concorrência de um programa •  Termo mais amplo. • Usado no contexto de sistemas distribuídos. • Razão entre o número de operações locais (sem

comunicação / memória compartilhada) e o número total de operações.

Page 142: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Granularidade de um programa • Razão entre quantidade de computação e quantidade de

comunicação do programa paralelo/concorrente. • Baixa granularidade: se encaixa melhor em sistemas

fortemente acoplados. •  Latência pode degradar vazão.

Page 143: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Primitivas • Envio de mensagem: send();

•  Pelo menos 2 parâmetros: destino e buffer com dados. •  “Bufferizada” (buffer do kernel) ou não.

• Recepção de mensagem: receive(); •  Pelo menos 2 parâmetros: origem (pode ser *) e buffer de destino. •  Geralmente precisa de buffer, pois pode já ter recebido dados ao

ser invocada.

Page 144: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Síncrona / assíncrona • Primitiva síncrona

•  Send() e receive() fazem handshake. •  Processamento do send só termina depois que receive

correspondente foi invocado e a operação de recebimento foi terminada (dados copiados ao buffer de recepção).

• Primitiva assíncrona •  Primitiva send é assíncrona se controle retorna ao processo depois

dos dados serem copiados para fora do buffer do usuário.

Page 145: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Bloqueante / não bloqueante • Primitiva bloqueante

•  Controle retorna ao processo após o processamento da primitiva (síncrona ou assíncrona).

• Primitiva não bloqueante •  Controle retorna ao processo imediatamente após invocá-la,

mesmo com a operação não terminada. •  Para send, controle retorna ao proceso antes da cópia dos dados

para fora do buffer do usuário. •  Para receive, controle pode retornar ao processo mesmo antes

dos dados chegarem do remetente. •  Parâmetro de retorno é um handle que pode ser usado para

verificar o estado da chamada. •  Fazer loop ou verificar periodicamente. •  Wait com handles como parâmetro (blocking wait).

Page 146: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Emulação • Memória compartilhada pode ser emulada em um sistema

de troca de mensagens e vice-versa. • Quatro classes de programas.

•  Assíncrono, troca de mensagens (AMP) •  Síncrono, troca de mensagens (SMP) •  Assíncrono, memória compartilhada (ASM) •  Síncrono, memória compartilhada (SSM)

• As quatro classes oferecem computabilidade (i.e., que problemas podem e não podem ser resolvidos) equivalente em sistemas livres de falhas.

• Em sistemas suscetíveis a falhas, sistemas síncronos oferecem maior computabilidade que assíncronos.

Page 147: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Desafios • Relacionados a sistemas • Relacionados a algoritmos • Relacionados a tecnologias/avanços recentes

Page 148: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Metas de SDs • Fácil acesso a recursos; • Ocultar distribuição dos recursos (nem sempre); • Ser aberto para poder ser expandido (escalabilidade). • Em tamanho – fácil adicionar usuários e recursos. • Em termos geográficos – usuários e recursos podem

estar distantes. • Em termos administrativos – fácil/possível de gerenciar

mesmo abrangendo muitas organizações e recursos.

Page 149: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Tipos de SDs • Sistemas de computação distribuídos • Sistemas de informação distribuídos • Sistemas embarcados distribuídos (pervasivos)

Page 150: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas de Computação Distribuídos • Utilizados para tarefas de computação (frequentemente

de alto desempenho). • Computação em cluster • Computação em grade • Computação em nuvem

Page 151: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas de informação distribuídos • Organizações com muitas aplicações em rede •  Interoperabilidade difícil • Mais fácil integrar as aplicações a um sistema de

informação distribuído • Muitos casos: aplicação de rede cliente-servidor /

requisição-resposta •  Integração: permitir que diversas requisições (para

diferentes servidores) fossem “empacotadas” em uma única •  Transação distribuída: todas - ou nenhuma - seriam executadas

Page 152: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Transações • Propriedades (ACID):

• Atomicidade: (para o mundo externo) transação ocorre de forma indivisível.

• Consistência: transação não viola invariantes do sistema.

•  Isolamento: transações concorrentes não interferem uma na outra.

• Durabilidade: uma vez dado commit, as mudanças são permanentes.

Page 153: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Transações aninhadas • Profundidade arbitrária • Administrar resultados das transações • Protocolos de locks

•  Evitar deadlocks e inconsistências •  Ex.: protocolo de lock em duas fases e variantes

Page 154: MO809L - ic.unicamp.brbit/ensino/mo809_1s13/parte1… · Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas distribuídos pervasivos •  Introdução de dispositivos móveis e embarcados

•  Instabilidade é esperada •  Equipamentos pequenos, com bateria, móveis, conexão sem fio •  Inerentemente distribuído •  Podem ser configurados pelo proprietário; melhor: devem

descobrir ambiente