Você está na página 1de 23

Prof.

Álvaro Maiomona UNIVERSIDADE METODISTA

Sistemas Distribuídos
2° semestre, 2019

Introdução – sistemas distribuídos


• 1. Coleção de entidades independentes que colaboram para
resolver um problema que não poderia ser resolvido
individualmente (Kshemkalyani e Singhal).
• 2. Sistema onde componentes de hardware ou software
localizados em computadores em rede comunicam-se e
coordenam suas ações através somente de troca de
mensagens (Couloris, Dollimore e Kindberg).
• 3. Um conjunto de computadores independentes que se
apresenta a seus usuários como um sistema único e coerente
(Tanenbaum e Van Steen).
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

Caracterização – sistemas distribuídos


• Usuário só descobre que está usando um sistema distribuído
quando alguma falha impede de usar alguma aplicação
(Lamport).
• Coleção de computadores que não compartilham memória
ou relógio físico comum, que se comunicam por mensagens
sobre uma rede de comunicação, e cada computador possui
sua própria memória e executa seu próprio sistema
operacional. Tipicamente são semi-autônomos e fracamente
acoplados enquanto cooperam para resolver um problema
coletivamente (Tanenbaum / Van Steen).
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

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).
Introdução - sistemas distribuídos
• Existem desde sempre • Comunicação
entre agentes móveis na natureza
• Hoje
• Dispositivos computacionais em rede
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

• Ferramenta para resolver problemas


Características
• Sem relógio físico comum
• Introduz a noção de distribuição, dando origem à
assincronia inerente entre processadores.
• Sem memória compartilhada
• Requer troca de mensagens para comunicação.
• Deve-se notar que pode fornecer abstração de um espaço
de endereçamento comum através da abstração de
memória compartilhada distribuída.
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

Características
• Separação geográfica – quanto mais separado,
“mais é” um sistema distribuído
• Não necessariamente em uma wide area network.
• Clusters – pequenos sistemas distribuídos
• Autonomia e heterogeneidade
• Processadores fracamente acoplados com diferentes
“velocidades” e diferentes SOs

Componentes - hardware
• Cada computador tem uma unidade de memória e
de processamento
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

• São conectados por uma rede de comunicação


•Componentes - Software
• Aplicação distribuída
• Middleware
• Sistema operacional
• Pilha de protocolos de rede
Arquitetura / Middleware
• Execução distribuída é a execução de
processos no sistema distribuído para alcançar
um objetivo comum.
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

• Arquitetura em camadas para quebrar


complexidade.
• Middleware é o software distribuído que
coordena o sistema distribuído enquanto
fornece transparência de heterogeneidade.
Arquitetura / Middleware
• Bibliotecas/padrões/mecanismos de
middleware:
• CORBA – common object request broker
• Normalização de semântica de chamadas entre
objetos
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

• RPC – remote procedure call


• DCOM – distributed component object model
• RMI – remote method invocation
• SOAP – simple object access protocol
• MPI – message passing interface
Arquitetura / Middleware
• RPC: conceitualmente igual à chamada de
procedimento local, com a diferença que o
código chamado pode estar em máquina
remota.
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

• Software de RPC envia mensagem pela rede e aguarda


resposta, momento em que a chamada se completa
do ponto de vista do processo invocador.
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
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

• Dados sensíveis ou muito grandes


• Acesso a dados e supercomputadores a partir de dispositivos
móveis

Motivação / requisitos
• Aumentar confiabilidade
• Replicação de dados e de software
• Disponibilidade: recurso deve estar disponível
“sempre”
• Integridade: estado/valor de um recurso deve ser correto,
sob acessos concorrentes de múltiplos processadores, de
acordo com a semântica esperada pela aplicação
• Tolerância a falhas: habilidade de recuperação de falhas no
sistema
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

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
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

• Adicionar (ou substituir) processadores heterogêneos sem degradar


desempenho.

• Outras?
Sistemas paralelos
• Existem sistemas que possuem algumas, mas
não todas, as características de um sistema
distribuído
• Como classificá-los?
• São sistemas distribuídos ou sistemas
multiprocessados?
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

Arquiteturasde 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.
Arquiteturasde memória
• Memória centralizada: • Memória comum acessada por
todos os processadores.
• Memória distribuída:
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

• 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
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

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.
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

• Multiprocessadores de memória distribuída integram as duas


abordagens, fornecendo escalabilidade e maior facilidade de
programação.

Sistemas paralelos classificação


• Sistemas multiprocessados
• Multicomputadores
• Processadores vetoriais
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

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 qualquer processador.
• Comunicação entre processos: leitura/escrita da
memória compartilhada.
• Processadores geralmente do mesmo tipo em um
mesmo container.
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

Sistemas multiprocessados
• Interconexão: bus ou switch
• Bus: limitação de escalabilidade, menor custo
• Switch: Centralizado (multi-stage switch)
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.
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

• Colisões ocorrem quando mais de um dado é direcionado


ao mesmo tempo para a mesma saída.
• Função de roteamento
• Para nível s da rede, se o s+1-ésimo bit mais significativo do endereço
destino é 0, vai pro fio de cima, se for 1 vai pro fio de baixo.

Sistemas paralelos classificação


• Sistemas multiprocessados.
• Multicomputadores.
• Processadores vetoriais
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

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).
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

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
Multicomputadores
• Sistema paralelo onde múltiplos processadores não têm
acesso direto a memória compartilhada.
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

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

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
Prof. Álvaro Maiomona UNIVERSIDADE METODISTA

Multicomputadores topologias
• Topologias regulares e simétricas
• Mesh, anel, torus, cubo, hipercubo
• Propriedades matemáticas interessantes para roteamento

Sistemas paralelos classificação


• Sistemas multiprocessados.
• Multicomputadores.
• Processadores vetoriais

Você também pode gostar