sist706 – sistemas distribuídos · pdf filedefinição curiosa...
TRANSCRIPT
Slide01
Introdução e Conceitos
de
Sistemas Distribuídos
SIST706 – Sistemas Distribuídos2013/1
Prof. Jéfer Benedett Dörr@: [email protected]
Sistema Distribuído
● Definição de Andrew Tanenbaum é uma "coleção de computadores independentes que se apresenta ao usuário como um sistema único e consistente"
● Definição de George Coulouris diz que "Sistema Distribuído é uma coleção de computadores autônomos interligados através de uma rede de computadores e equipados com software que permita o compartilhamento dos recursos do sistema: hardware, software e dados"
Definição curiosa“Você sabe que existe um sistema distribuído quando a falha de um computador que você nunca ouviu falar impede que você faça qualquer trabalho” - Leslie Lamport
Exemplos● Banco e agências● Internet● Computação Móvel e Ubíqua● Top 500 supercomputadores● P2P● Napster
Sistemas multiusuários centralizadosMainframes
Alto custo•Baixa flexibilidade•Baixa escalabilidade•Baixa tolerância a falhas
Linux Terminal Server Project (LTSP)
(LTSP) é um projeto baseado em GNU/Linux que agrupa várias ferramentas e protocolos, com a finalidade de proporcionar um ambiente de trabalho remoto.
Multiterminal
Multiterminal
Cluster
Um cluster, ou aglomerado de computadores, é formado por um conjunto de computadores, que utiliza um tipo especial de sistema operacional classificado como sistema distribuído. Muitas vezes é construído a partir de computadores convencionais (personal computers), os quais são ligados em rede e comunicam-se através do sistema, trabalhando como se fossem uma única máquina de grande porte. Há diversos tipos de cluster. Um tipo famoso é o cluster da classe Beowulf, constituído por diversos nós escravos gerenciados por um só computador.
Cluster
*Avatar: Cluster de renderização40.000 CPUSTop200 SupercomputadoresUbuntu
* Cluster Knoppix* SO local
Cluster Específico
GRIDHeterogeneidade
Recursos de diferentes organizações sãoreunidos para permitir a colaboração de umgrupo de pessoas ou instituições
PlanetLab: http://www.planet-lab.org
NUMA
NUMA
Processadores*Mais núcleos ou núcleos mais rápidos?
*Existe uma vantagem real em ter um processador com vários núcleos?
*Hyper-threading: um núcleo real, dois núcleos lógicos
*Muitos núcleos gastam menos ou mais energia?
* I7 Lynnfield serie 8XX (HT)
* Nvidia Tegra 3 (Quad-Core com um quinto núcleo para economia de
bateria)
MultiprogramaçãoProcesso X ThreadP0, P1, P2......
Programação DistribuídaCORBA (abreviado de Common Object Request Broker Architecture) é a arquitetura padrão criada pelo Object Management Group para estabelecer e simplificar a troca de dados entre sistemas distribuídos heterogêneos.
Message Passing Interface (MPI) é um padrão para comunicação de dados em computação paralela. Existem várias modalidades de computação paralela, e dependendo do problema que se está tentando resolver, pode ser necessário passar informações entre os vários processadores ou nodos de um cluster, e o MPI oferece uma infraestrutura para essa tarefa.
O OpenMP (do inglês Open Multi-Processing, ou Multi-processamento aberto) é uma interface de programação de aplicativo(API) para a programação multi-processo dememória compartilhada em múltiplas plataformas. Permite acrescentar simultaneidade aos programas escritos em C, C++ e Fortran sobre a base do modelo de execução fork-join.
Programação DistribuídaChamada remota de procedimento (RPC, acrônimo de Remote Procedure Call) é uma tecnologia de comunicação entre processos que permite a um programa de computadorchamar um procedimento em outro espaço de endereçamento (geralmente em outro computador, conectado por uma rede)
O RMI (Remote Method Invocation) é uma interface de programação que permite a execução de chamadas remotas no estilo RPC em aplicações desenvolvidas em Java. É uma das abordagens da plataforma Java para prover as funcionalidades de uma plataforma de objetos distribuídos.
O XML-RPC é um protocolo de chamada de procedimento remoto (CPR) que utiliza XML para codificar suas chamadas e HTTP como um mecanismo de transporte.
Network File System - NFSNFS é um sistema de arquivos distribuído que permite aos usuários acessar arquivos e diretórios localizados em computadores remotos e tratá-los como se fossem locais.
O protocolo Network File System é especificado nas seguintes RFCs: RFC 1094, RFC 1813 e RFC 3530.
HeterogeneidadeComputação Ubíqua ou pervasiva: termo usado para descrever a onipresença da informática no cotidiano das pessoas.
Sistemas distribuídos não são redesA computação distribuída não é o mesmo que redes de comunicação:As redes preocupam-se como envio de mensagens de um ponto A para outro Be não com o que se faz com a mensagemA computação distribuídaassume que existe alguma forma de enviar a mensagem(o transporte da mensagem é assegurado pela rede de comunicação)preocupa-se com as propriedades dessas mensagense como construir um sistema com o uso de mensagens
Evento da Área
http://sbrc2013.unb.br/
O Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos (SBRC) é um evento anual promovido pela Sociedade Brasileira de Computação (SBC) e pelo Laboratório Nacional de Redes de Computadores (LARC). Ao longo dos anos, o SBRC tornou-se o mais importante evento científico nacional em redes de computadores e sistemas distribuídos do país, e um dos mais concorridos em Informática.
Bibliografia
Exercício1. O que é um Sistema distribuído? Cite um exemplo diferente
dos apresentados no slide. Cite outro exemplo que SD do dia a dia.
2. Quais os principais objetivos de "distribuir um sistema?3. Quais diferenças entre Mainframe e LTSP?4. Qual motivo de os atuais processadores terem mais de um
núcles em um única pastilha? Em que situação tem vantagem ter 2 núcleos de 1.2 MHz no lugar de um de 2.4MHz? O inverso pode ser verdade?
5. Para que serve o NFS? Tem alguma vantagem?6. Qual a diferença entre OpenMP e MPI? Podem ser usadas
juntas?7. O que é Beowulf?