Sistemas Distribuídos Introdução a Sistemas Distribuídos São Paulo, 2011 Universidade Paulista (UNIP) Introdução ao Estudo de Sistemas Distribuídos (SD) Prof. MSc. Vladimir Camelo [email protected] 05/11/2015 [email protected] 1 Sistemas Distribuídos Introdução a Sistemas Distribuídos Sistemas distribuídos (SD) 05/11/2015 [email protected] 2 Sistemas Distribuídos Histórico Introdução a Sistemas Distribuídos Primeiros computadores: alto custo e de grande porte Anos 50 e 60: surgimento dos primeiros tipos de Sistemas Operacionais (SO); Batching: jobs semelhantes para processamento Spooling: sobreposição de I/O e CPU multiprogramação: inúmeros programas sendo executados concorrentemente pela CPU Objetivo: otimizar a utilização da CPU 05/11/2015 [email protected] 3 Sistemas Distribuídos Histórico Introdução a Sistemas Distribuídos Início dos anos 60: Sistemas Time Sharing (Compartilhado) Evolução do hardware: Redução do tamanho dos dispositivos; Redução no preço; Aumento da velocidade de acesso; e Aumento do poder de processamento. 05/11/2015 [email protected] 4 Sistemas Distribuídos Histórico (Time Sharing) Introdução a Sistemas Distribuídos O termo Time Sharing surgiu durante a 3º geração de Sistemas Operacionais (SO); Significado: compartilhamento de tempo (tempo ocioso entre os processos são compartilhados com outros processos); Compartilhamento de recursos de hardware e software; 05/11/2015 [email protected] 5 Sistemas Distribuídos Histórico (Time Sharing) Introdução a Sistemas Distribuídos Múltiplos jobs são executados simultaneamente, sendo que a UCP atende cada job por um pequeno tempo, um a um em seqüência. O tempo dedicado à cada job é pequeno para que os usuários possam interagir com o programa sem que percebam que existem outros programas rodando; 05/11/2015 [email protected] 6 Sistemas Distribuídos Histórico Introdução a Sistemas Distribuídos Final dos anos 60 e início dos anos 70: Surgimento das redes de computadores. Rede local (Local Area Network - LAN) Rede global (Wide Area Network – WAN) 05/11/2015 [email protected] 7 Sistemas Distribuídos Histórico Introdução a Sistemas Distribuídos Final dos anos 60 e início dos anos 70: Surgimento do SO UNIX. Final dos anos 70: Surgimento do protocolo de comunicação em rede, TCP/IP. Inícios dos anos 80: Popularização das estações de trabalho. 05/11/2015 [email protected] 8 Sistemas Distribuídos Histórico Introdução a Sistemas Distribuídos SO’s Time Sharing Primeiro passo na direção dos sistemas distribuídos; Incorpora dois conceitos fundamentais: Compartilhamento de tempo e recursos; Acesso remoto. 05/11/2015 [email protected] 9 Sistemas Distribuídos Histórico Introdução a Sistemas Distribuídos Nos SO’s Time Sharing: Comunicação entre o usuário e o sistema é on-line; Usuário submete requisições ao sistema operacional, e recebe as respostas de forma imediata. A interação é realizada por meio do uso de terminais. Cada terminal possui apenas o mínimo para funcionamento e todo o acesso e realizado por meio de uma placa de rede. O sistema operacional possui um interpretador de comandos, que lê a linha de comando contendo o nome do programa a ser executado pelo terminal. 05/11/2015 [email protected] 10 Sistemas Distribuídos Histórico Introdução a Sistemas Distribuídos Nos SO’s Time Sharing: Após a execução do comando, o interpretador volta a ler o terminal do usuário esperando pelo próximo comando. O usuário imediatamente compila e executa o seu programa. Muitos usuários compartilham o uso do computador. 05/11/2015 [email protected] 11 Sistemas Distribuídos Evolução Introdução a Sistemas Distribuídos Início dos anos 80: Criação de microprocessadores e a introdução comercial das estações de trabalho; Redução dos custos em relação a aquisição de mainframes. 05/11/2015 [email protected] 12 Sistemas Distribuídos Evolução Introdução a Sistemas Distribuídos Final dos anos 80: Redes de computadores - estações de trabalho ligadas em rede; Disponibilização de diferentes serviços para comunicação entre pessoas/máquinas FTP; TELNET; E-MAIL e outros. 05/11/2015 [email protected] 13 Sistemas Distribuídos Evolução Introdução a Sistemas Distribuídos Esta evolução foi motivada por alguns fatores, dentre eles pode-se citar: Avanços na microeletrônica: Processadores mais rápidos, menores e muito mais baratos, se comparado aos primeiros processadores; Avanços nas telecomunicações: Redes de telefones celulares, corporativas e caseiras com um custo mais acessível, possibilitando a troca de informações em largura de banda maior; 05/11/2015 [email protected] 14 Sistemas Distribuídos Evolução Introdução a Sistemas Distribuídos Esta evolução foi motivada por alguns fatores, dentre eles pode-se citar: Popularidade das redes de computadores: Redes de computadores mais eficientes e também mais confiáveis para a troca de informações entre os usuários; Compartilhamento de recursos: Hardware, Software entre outros; Relação custo/desempenho: Melhor utilizar diversos processadores interconectados do que um único computador centralizado; 05/11/2015 [email protected] 15 Sistemas Distribuídos Conceito geral Introdução a Sistemas Distribuídos Segundo Silberschatz et al. (2004) um Sistema Distribuído (SD) é uma coleção de processadores que não compartilham memória ou um relógio. Em vez disso, cada processador tem sua própria memória local, e os processadores se comunicam, como redes locais ou remotas de forma transparente para o usuário. Estes sistemas podem incluir pequenos dispositivos portáteis ou de tempo real, computadores pessoais, estações de trabalho e computadores de grande porte. SILBERSCHATZ, ABRAHAM; GALVIN, PETER BAER; GAGNE, GREG. Sistemas Operacionais com Java. Tradução daSexta Edição (Operating systems concepts with Java): Daniel Vieira. Editora Campus (Elsevier). Rio de Janeiro, 2004. 05/11/2015 [email protected] 16 Sistemas Distribuídos Conceito de transparência Introdução a Sistemas Distribuídos Esconder a separação dos componentes e da sua distribuição num sistema distribuído do utilizador e do programador de aplicações, de maneira a visualizar o sistema como um todo em vez de uma coleção de componentes independentes. 05/11/2015 [email protected] 17 Sistemas Distribuídos Transparência Introdução a Sistemas Distribuídos A transparência pode ser definida em vários níveis: Acesso: Esconder diferenças na representação dos dados e no método de acesso – permitir o acesso a recursos locais e remotos utilizando as mesmas operações; Existe heterogeneidade em vários níveis num sistema distribuído: Rede; Hardware; Sistema Operacional; Linguagem de programação entre outros. 05/11/2015 [email protected] 18 Sistemas Distribuídos Transparência Introdução a Sistemas Distribuídos A transparência pode ser definida em vários níveis: A utilização de protocolos normalizados nos vários níveis de abstração permite lidar com a heterogeneidade. Localização: Esconder onde o recurso é localizado – permitir o acesso a recursos sem ter conhecimento da sua localização; Utilizar recursos por meio de seus nomes lógicos, de forma clara e transparente. Migração: Permitir a mobilidade de recursos e clientes num sistema sem afetar o funcionamento dos programas; 05/11/2015 [email protected] 19 Sistemas Distribuídos Transparência Introdução a Sistemas Distribuídos A transparência pode ser definida em vários níveis: Realocação: Permitir a mobilidade de recursos ativos num sistema sem afetar o funcionamento dos programas em funcionamento; Replicação: Esconder a utilização de múltiplas instâncias de recursos para melhorar a confiabilidade e o desempenho do sistema; 05/11/2015 [email protected] 20 Sistemas Distribuídos Transparência Introdução a Sistemas Distribuídos A transparência pode ser definida em vários níveis: Concorrência: Permitir que vários processos operem concorrentemente sobre recursos compartilhados sem que haja interferência entre eles; Falha: Permitir esconder falhas de hardware ou software. Por exemplo: reenvio de pedidos para outro servidor, ou seja enviar a requisição de algum recurso ou serviço; Persistência: Esconder se um recurso (software) está em memória ou no disco. 05/11/2015 [email protected] 21 Sistemas Distribuídos Conceito geral Introdução a Sistemas Distribuídos O que é um Sistema Distribuído (SD): É uma coleção de processadores independentes que parecem um sistema único para o usuário (Tanenbaum). É um sistema onde os componentes de Hardware e Software, localizados em computadores interligados por uma rede, se comunicam e coordenam suas ações somente por meio da troca de mensagens (Coulouris). Dois aspectos: Hardware: autonomia Software: sistema único 05/11/2015 [email protected] 22 Sistemas Distribuídos Aspectos básicos Introdução a Sistemas Distribuídos Um Sistema Distribuído (SD) é uma coleção de processadores pouco acoplados, interconectados por uma rede de comunicação. Esses processadores são chamados de vários nomes, como instalações, nós, computadores, máquinas ou hosts, dependendo do contexto em que são mencionados. SILBERSCHATZ, ABRAHAM; GALVIN, PETER BAER; GAGNE, GREG. Sistemas Operacionais com Java. Tradução daSexta Edição (Operating systems concepts with Java): Daniel Vieira. Editora Campus (Elsevier). Rio de Janeiro, 2004. 05/11/2015 [email protected] 23 Sistemas Distribuídos Introdução a Sistemas Distribuídos Softwares básicos para Sistemas Distribuídos Acoplamento de hardware Acoplamento de software Sistemas Operacionais de Rede Fraco Fraco Sistemas Distribuídos «autênticos» Fraco Forte Sistemas Timesharing para multiprocessadores Forte Forte 05/11/2015 [email protected] 24 Sistemas Distribuídos Características Introdução a Sistemas Distribuídos Processos são executados concorrentemente no sistema distribuído: Não existe um controle global; Processos utilizam troca de mensagens para coordenar suas ações. Inexistência de relógio global: Entretanto, a noção de tempo global é importante na coordenação de processos; Sincronização de relógios possui um limite de precisão 05/11/2015 [email protected] 25 Sistemas Distribuídos Características Introdução a Sistemas Distribuídos Falhas independentes: A falha de um dos componentes (rede, máquinas, programas) do sistema distribuído não implica na falha do sistema como um todo. 05/11/2015 [email protected] 26 Sistemas Distribuídos Vantagens Introdução a Sistemas Distribuídos Economia: Melhor relação custo/desempenho Velocidade: Utiliza várias redes de computadores aumentando gradativamente seu desempenho. 05/11/2015 [email protected] 27 Sistemas Distribuídos Vantagens Introdução a Sistemas Distribuídos Maior confiabilidade (reliability) e disponibilidade: Grau de tolerância contra erros e falhas de componentes em um sistema; Aplicações críticas - aviação, reatores nucleares; Replicação de componentes. 05/11/2015 [email protected] 28 Sistemas Distribuídos Vantagens Introdução a Sistemas Distribuídos Facilidade de expansão: Possibilita aumentar o poder de processamento/armazenamento sem se desfazer daquilo que já possui, isto é, de maneira gradativa e sem comprometimento da estrutura já existente dentro da empresa. Permite o compartilhamento de dados/informação: Desenvolvimento de Software Distribuído Redes P2P 05/11/2015 [email protected] 29 Sistemas Distribuídos Vantagens Introdução a Sistemas Distribuídos Permite o compartilhamento de recursos Possibilitando maior economia (Ex. impressora, software, bases de dados, disco, pool de processadores) 05/11/2015 [email protected] 30 Sistemas Distribuídos Desvantagens Introdução a Sistemas Distribuídos Maior dificuldade na garantia de segurança, pois os recursos estão fisicamente distribuídos (crítico!); Desenvolvimento de Software Distribuído é muito mais complexo do que o desenvolvimento de um software comercial; Componentes com diferentes modos de falha e falhas parciais Inexistência de relógio global exato Variações nos atrasos associados com a comunicação entre processos 05/11/2015 [email protected] 31 Sistemas Distribuídos Desvantagens Introdução a Sistemas Distribuídos Gerência de recursos é muito mais complexa: Recursos fisicamente separados; A troca de mensagens entre as diferentes redes podem atrasar ou mesmo serem perdidas ao longo de seu trafego na rede, impossibilitando a troca de mensagens. Alto custo para implementar aplicações colaborativas. 05/11/2015 [email protected] 32 Sistemas Distribuídos Desafios Introdução a Sistemas Distribuídos Comunicação segura em um sistema distribuído: Quem enviou a mensagem enviada? Os dados foram modificados durante a transmissão de uma rede para outra? Alguém não autorizado teve acesso aos dados enviado durante a transmissão? 05/11/2015 [email protected] 33 Sistemas Distribuídos Desafios Introdução a Sistemas Distribuídos Confiabilidade em um ambiente não confiável: máquinas podem falhar, mas o sistema distribuído deve falhar apensa parcialmente. Localização: colocar os recursos em um determinado local e permitir a localização destes recursos quando necessário. Coordenação: acordo entre os componentes distribuídos sobre o que fazer, de que forma deverá ser feito e quem deverá fazer. 05/11/2015 [email protected] 34 Sistemas Distribuídos Exemplos de sistemas distribuídos Introdução a Sistemas Distribuídos Internet: diferentes redes interconectadas; Comunicação por meio da troca de mensagens: Serviços: www, ftp, mail Intranet: parte da Internet administrada separamente: Necessidades: serviço de compartilhamento de arquivos, políticas de segurança local (firewalls), facilidade de instalação e suporte de SW 05/11/2015 [email protected] 35 Sistemas Distribuídos Exemplos de sistemas distribuídos Introdução a Sistemas Distribuídos Computação móvel: redução do tamanho e redes sem fio: Integração de pequenos dispositivos computacionais portáteis. Laptop, PDA, celular, câmera digital, dispositivo integrado a utensílios. Problemas: descoberta de recursos no ambiente, reconfiguração de dispositivos, privacidade e segurança. 05/11/2015 [email protected] 36 Sistemas Distribuídos Topologia de um sistema distribuído Introdução a Sistemas Distribuídos As instalações em um sistema distribuído podem ser conectadas fisicamente de diversas maneiras. Cada configuração possui vantagens e desvantagens. Pode-se comparar as configurações utilizando os seguintes critérios: Custo de instalação: o custo de ligação física das instalações no sistema. Custo de comunicação: o custo em tempo e dinheiro para enviar uma mensagem da instalação A para a instalação B. Disponibilidade: a extensão à qual os dados podem ser acessados apesar da falha de alguns enlaces ou instalações. 05/11/2015 [email protected] 37 Sistemas Distribuídos Topologia de um sistema distribuído Introdução a Sistemas Distribuídos Podem ser utilizadas diversas representações topológicas diferentes para um sistema distribuído. A B F C E D Rede totalmente conectada 05/11/2015 [email protected] 38 Sistemas Distribuídos Topologia de um sistema distribuído Introdução a Sistemas Distribuídos Podem ser utilizadas diversas representações topológicas diferentes para um sistema distribuído. A B F C E D Rede em anel 05/11/2015 [email protected] 39 Sistemas Distribuídos Topologia de um sistema distribuído Introdução a Sistemas Distribuídos Podem ser utilizadas diversas representações topológicas diferentes para um sistema distribuído. A B E C F D Rede parcialmente conectada 05/11/2015 [email protected] 40 Sistemas Distribuídos Topologia de um sistema distribuído Introdução a Sistemas Distribuídos Podem ser utilizadas diversas representações topológicas diferentes para um sistema distribuído. A B C E D F Rede estrutura em árvore 05/11/2015 [email protected] 41 Sistemas Distribuídos Topologia de um sistema distribuído Introdução a Sistemas Distribuídos Podem ser utilizadas diversas representações topológicas diferentes para um sistema distribuído. A F B C E D Rede em estrela 05/11/2015 [email protected] 42 Sistemas Distribuídos Topologia de um sistema distribuído Introdução a Sistemas Distribuídos Podem ser utilizadas diversas representações topológicas diferentes para um sistema distribuído. A A F B B F C C E E D D A B F C E D Rede Mista 05/11/2015 [email protected] 43 Sistemas Distribuídos Segurança em sistema distribuído Introdução a Sistemas Distribuídos Os princípios básicos de segurança em sistemas distribuídos são voltados para a comunicação: Confidencialidade: Tem por objetivo proteger a informação intercambiada prevenindo-a de acessos não autorizados por pessoas sem acesso ao sistema; Integridade: Deve garantir a veracidade da informação protegendo-a de modificações não autorizadas; 05/11/2015 [email protected] 44 Sistemas Distribuídos Segurança em sistema distribuído Introdução a Sistemas Distribuídos Os princípios básicos de segurança em sistemas distribuídos são voltados para a comunicação: Autenticidade: Visa garantir a identidade dos parceiros do intercâmbio através da autenticação dos usuários; Disponibilidade: Objetiva prevenir interrupções na operação da rede garantindo a disponibilidade do uso da informação 05/11/2015 [email protected] 45 Sistemas Distribuídos Segurança em sistema distribuído Introdução a Sistemas Distribuídos As principais ameaças para um sistema distribuído são: Interceptação de uma mensagem; Interrupção de um processo de execução; Modificação de uma tarefa, mensagem, etc; Fabricação de uma informação indevida; 05/11/2015 [email protected] 46 Sistemas Distribuídos Segurança em sistema distribuído Introdução a Sistemas Distribuídos Os ataques aos canais de comunicação em um sistema distribuído podem ocorrer por meio de: Escuta: Obtenção de informação na rede de forma indevida possibilitando a obtenção de senhas, etc. Masquerading: Uso de identidades incorretas possibilitando o acesso a informações autorizadas apenas a usuários conhecidos. 05/11/2015 [email protected] 47 Sistemas Distribuídos Segurança em sistema distribuído Introdução a Sistemas Distribuídos Os ataques aos canais de comunicação em um sistema distribuído podem ocorrer por meio de: Message tampering: Alteração de mensagens trocadas. Replay Reenvio de mensagens obtidas por escuta. Negação de serviço Inundação de rede ou servidor por várias mensagens fazendo com que a rede seja sobre carregada. 05/11/2015 [email protected] 48 Sistemas Distribuídos Segurança em sistema distribuído Introdução a Sistemas Distribuídos Alguns mecanismos podem ser utilizados para evitar tais problemas, como por exemplo: Criptografia dos dados e informações que trafegam pela rede, inclusive senhas. Autenticação de usuários para todos os serviços disponíveis no sistema distribuído. Autorização a serviços – somente aquilo que for preciso para execução; Auditoria a serviços disponibilizados pelos sistemas distribuídos. 05/11/2015 [email protected] 49 Sistemas Distribuídos Tolerância a falhas em um sistema distribuído Introdução a Sistemas Distribuídos Um sistema distribuído pode apresentar alguns estados, sendo estes: Sistema próprio: o serviço é fornecido pelo sistema como foi especificado e esta apto a funcionar e entregar aquilo para que é proposto. Sistema interrompido ou impróprio: o serviço não é fornecido conforme especificado por faltas, falhas ou erros que possam acarretar em sua interrupção ou mesmo torná-lo impróprio. 05/11/2015 [email protected] 50 Sistemas Distribuídos Introdução a Sistemas Distribuídos Tolerância a falhas em um sistema distribuído Falha benigna Sistema Pronto Restauração Falha Catastrófica Sistema Interrompido Falha Catastrófica Sistema Impróprio 05/11/2015 [email protected] 51 Sistemas Distribuídos Tolerância a falhas em um sistema distribuído Introdução a Sistemas Distribuídos Falta, Erro, Falha: Faltas são defeitos que ocorrem em sistemas Originadas por fatores internos ou externos ao sistema. Podem ficar dormentes até serem notadas ou ativados por algum evento. 05/11/2015 [email protected] 52 Sistemas Distribuídos Tolerância a falhas em um sistema distribuído Introdução a Sistemas Distribuídos Falta, Erro, Falha: Erros são resultantes de faltas no sistema Ocorrem quando faltas impedem o funcionamento normal do sistema interrompendo seu fluxo normal. Diferentes faltas podem causar o mesmo tipo de erro em um sistema distribuído. 05/11/2015 [email protected] 53 Sistemas Distribuídos Tolerância a falhas em um sistema distribuído Introdução a Sistemas Distribuídos Falta, Erro, Falha: Falhas podem ocorrer devido a erros no sistema A falha é o efeito observável do erro. Diversos erros podem levar à mesma falha. 05/11/2015 [email protected] 54 Sistemas Distribuídos Tolerância a falhas em um sistema distribuído Introdução a Sistemas Distribuídos Falta, Erro, Falha: Exemplo: HD Um setor do disco pode estar com defeito (falta). Um erro de leitura pode ocorrer se um programa tentar ler ou escrever neste setor defeituoso. Pode ocorrer uma falha em um sistema que tente acessar este setor e não consiga, seja na hora da leitura ou mesmo escrito do arquivo no disco. Se os dados gravados neste setor estiverem replicados em outro local, o sistema pode tolerar a falta e não apresentar falha. 05/11/2015 [email protected] 55 Sistemas Distribuídos Tolerância a falhas em um sistema distribuído Introdução a Sistemas Distribuídos Previsão de faltas em um sistema distribuído: Estima a probabilidade de que faltas possam ocorrer durante o processo de execução de um determinada tarefa no sistema distribuído. Permite que se avalie os riscos de falha para o sistema de forma que este não acarrete em problemas maiores. 05/11/2015 [email protected] 56 Sistemas Distribuídos Tolerância a falhas em um sistema distribuído Introdução a Sistemas Distribuídos Remoção de faltas em um sistema distribuído Consiste em detectar e remover as faltas antes que causem erros e falhas no sistema distribuído. Podem ser utilizadas ferramentas como debugger, scandisk, entre outras para que seja possível remover eventuais problemas antes que venha a surgir. 05/11/2015 [email protected] 57 Sistemas Distribuídos Tolerância a falhas em um sistema distribuído Introdução a Sistemas Distribuídos Prevenção de faltas em um sistema distribuído Elimina as condições que fazem com que faltas ocorram durante a operação do sistema distribuído. Usa replicação interna, técnicas de validação entre tantas outras que possibilitem a prevenção de problemas. 05/11/2015 [email protected] 58 Sistemas Distribuídos Tolerância a falhas em um sistema distribuído Introdução a Sistemas Distribuídos Tolerância a faltas Propriedade que pode ser implementada em um sistema distribuído de forma que ao se deparar como um falha não necessariamente o sistema venha a parar. 05/11/2015 [email protected] 59 Sistemas Distribuídos Tolerância a falhas em um sistema distribuído Introdução a Sistemas Distribuídos Sistemas tolerantes a faltas São sistemas capazes de tolerar faltas encontradas durante a sua execução Técnicas de tolerância a faltas Permitem prevenir falhas contornando as faltas que os sistemas podem vir a apresentar ao longo de seu processo de execução. 05/11/2015 [email protected] 60 Sistemas Distribuídos Tolerância a falhas em um sistema distribuído Introdução a Sistemas Distribuídos Tipos de faltas Classificação em relação à sua origem: Física: causada pelo hardware (equipamentos). De projeto: introduzida durante a fase de projeto do sistema (durante o processo de construção do sistema distribuído). De interação: ocorrida nas interfaces entre componentes do sistema ou na interação com o mundo exterior , neste caso o usuário do sistema. 05/11/2015 [email protected] 61 Sistemas Distribuídos Tolerância a falhas em um sistema distribuído Introdução a Sistemas Distribuídos Tipos de faltas Classificação em relação à sua natureza: Acidental ou Intencional. Maliciosa ou Não. Classificação em relação ao seu surgimento: Na fase de desenvolvimento do sistema. Na fase de operação do sistema. 05/11/2015 [email protected] 62 Sistemas Distribuídos Tolerância a falhas em um sistema distribuído Introdução a Sistemas Distribuídos Tipos de faltas Classificação em relação à sua localização: Interna Externa Classificação em relação à persistência: Temporária Transiente ou Intermitente Permanente 05/11/2015 [email protected] 63 Sistemas Distribuídos Tolerância a falhas em um sistema distribuído Introdução a Sistemas Distribuídos Tipos de faltas Classificação com base no modelo de faltas: Faltas Omissivas: Crash: deixa o sistema distribuído sem funcionar permanentemente. Omissão: o sistema deixa de fazer o que deveria em um determinado instante durante seu processo de execução. Temporal: o sistema atrasou-se para executar uma determinada ação 05/11/2015 [email protected] 64 Sistemas Distribuídos Tolerância a falhas em um sistema distribuído Introdução a Sistemas Distribuídos Tipos de faltas Classificação com base no modelo de faltas: Faltas Assertivas Sintática: formato da saída é inadequado. Semântica: saída apresenta valor incorreto. Faltas Arbitrárias: omissivas + assertivas 05/11/2015 [email protected] 65 Sistemas Distribuídos Tolerância a falhas em um sistema distribuído Introdução a Sistemas Distribuídos Tipos de faltas Classificação com base no modelo de faltas: Faltas Assertivas Sintática: formato da saída é inadequado. Semântica: saída apresenta valor incorreto. Faltas Arbitrárias: omissivas + assertivas 05/11/2015 [email protected] 66 Sistemas Distribuídos Sistemas centralizados VS Sistemas distribuídos Introdução a Sistemas Distribuídos Características de sistemas centralizados Acesso local; Homogeneidade; Facilidade de gerência; Maior consistência; Segurança contra intrusos. 05/11/2015 [email protected] 67 Sistemas Distribuídos Sistemas centralizados VS Sistemas distribuídos Introdução a Sistemas Distribuídos Características de sistemas distribuídos: Acesso remoto; Heterogeneidade; Modularidade; Escalabilidade; Compartilhamento de recursos; Degradação paulatina; Mais sujeito a ataques; Custo menor a longo prazo. 05/11/2015 [email protected] 68 Sistemas Distribuídos Supercomputadores e sistemas distribuídos Introdução a Sistemas Distribuídos Um supercomputador é um tipo especializado de computador utilizado para tarefas complicadas, como: Previsão do tempo; Pesquisas biológicas. Energia nuclear; Aeronáutico; Indústria de animação; Outros; 05/11/2015 [email protected] 69 Sistemas Distribuídos Supercomputadores e sistemas distribuídos Introdução a Sistemas Distribuídos Sua capacidade de operação possibilita executar até 35,6 trilhões de problemas matemáticos por segundo. Exemplo de aplicação matemática que necessita de grande poder de processamento: Situações físicas podem ser descritas por uma superfície ou região em 3D e tal superfície é aproximada por uma matriz de pontos; Um conjunto de equações define o comportamento físico da superfície em cada ponto; Equações representadas como uma matriz de coeficientes e valores; Operações sobre as matrizes soluciona o sistema de equações. 05/11/2015 [email protected] 70 Sistemas Distribuídos Supercomputadores e sistemas distribuídos Introdução a Sistemas Distribuídos Características dos supercomputadores: Capacidade de processamento de Gflops / Tflops; Custo aproximado: US$ 10 a 15 milhões; Possibilitam a execução em paralelo de diversas tarefas; 05/11/2015 [email protected] 71 Sistemas Distribuídos Introdução a Sistemas Distribuídos Exemplo de um Sistema Distribuído 05/11/2015 [email protected] 72 Sistemas Distribuídos Exemplo de um Sistema Distribuído Introdução a Sistemas Distribuídos O primeiro da lista atualmente, é o Cray XT5-HE (conhecido como Jaguar); Oferece um desempenho bruto de 1.76 petaflops (1.760.000 megaflops); É baseado no Opteron de 6 núcleos com o Istambul; Inclui um total de nada menos que 37.376 processadores, ou seja, 224.256 núcleos (um quarto de milhão!) em um sistema de processamento distribuído 05/11/2015 [email protected] 73 Sistemas Distribuídos Exemplo de um Sistema Distribuído Introdução a Sistemas Distribuídos O Jaguar inclui nada menos que 4.672 gabinetes como este, ligados por meio de uma topologia proprietária de rede, com um total de 300 TB de memória e 10 PB de armazenamento centralizado. 05/11/2015 [email protected] 74 Sistemas Distribuídos Exemplo de um Sistema Distribuído Introdução a Sistemas Distribuídos Link com acesso a um artigo que trata sobre o uso de um sistema distribuído: Criando um sistema distribuído com o NI VeriStand 2010 http://zone.ni.com/devzone/cda/tut/p/id/12189. 05/11/2015 [email protected] 75 Sistemas Distribuídos Supercomputadores Introdução a Sistemas Distribuídos Os 5 supercomputadores mais rápidos segundo a lista do TOP 500 são: 1º da lista: XT Jaguar, fabricado pela Cray (instalado nos USA laboratório Oak Ridge National, em Tennessee). Roda um sistema baseado em Linux. Possui 224.162 núcleos de processamento para gerar uma potência de 1.760 teraflops de processamento. Utilizado para pesquisar temas relacionados à geração de energia limpa, entre outras coisas. 05/11/2015 [email protected] 76 Sistemas Distribuídos Introdução a Sistemas Distribuídos Supercomputadores 05/11/2015 [email protected] 77 Sistemas Distribuídos Supercomputadores Introdução a Sistemas Distribuídos Os 5 supercomputadores mais rápidos segundo a lista do TOP 500 são: 2º da lista: Roadrunner (construído pela IBM). Está instalado numa área de quase 600 metros quadrados do Laboratório de Los Alamos, na cidade do Novo México, nos USA. O Roadrunner é preparado para chegar aos 1.700 teraflops por segundo, contudo, seu pico foi de 1.100 teraflops. Este supercomputador é utilizado para pesquisar os efeitos (e o poder) de armas nucleares. 05/11/2015 [email protected] 78 Sistemas Distribuídos Introdução a Sistemas Distribuídos Supercomputadores 05/11/2015 [email protected] 79 Sistemas Distribuídos Supercomputadores Introdução a Sistemas Distribuídos Os 5 supercomputadores mais rápidos segundo a lista do TOP 500 são: 3º da lista: Kraken, também desenvolvido pela Cray. Funciona no Instituto Nacional de Ciências da Computação, na universidade americana de Tennessee. Atinge níveis de processamento de 832 teraflops por segundo. 05/11/2015 [email protected] 80 Sistemas Distribuídos Introdução a Sistemas Distribuídos Supercomputadores 05/11/2015 [email protected] 81 Sistemas Distribuídos Supercomputadores Introdução a Sistemas Distribuídos Os 5 supercomputadores mais rápidos segundo a lista do TOP 500 são: 4º da lista: JUGENE (Construído pela IBM – esta localizado na Alemanha). Atinge a capacidade de processamento de 825,5 teraflops por segundo. É utilizado por cientistas e pesquisadores do Jülich Research Centre. Roda um sistema Linux e, recentemente, foi classificado como um dos supercomputadores que menos consomem energia elétrica. 05/11/2015 [email protected] 82 Sistemas Distribuídos Introdução a Sistemas Distribuídos Supercomputadores 05/11/2015 [email protected] 83 Sistemas Distribuídos Supercomputadores Introdução a Sistemas Distribuídos Os 5 supercomputadores mais rápidos segundo a lista do TOP 500 são: 5º da lista: Tianhe-I (localizado na China). Construído por engenheiros da Universidade Nacional de Defesa e Tecnologia da China, o supercomputador oriental foi construído para ajudar na construção de aeronaves e na exploração de petróleo. Possui capacidade de processamento de 563 teraflops de cálculos matemáticos por segundo. 05/11/2015 [email protected] 84 Sistemas Distribuídos Introdução a Sistemas Distribuídos Supercomputadores 05/11/2015 [email protected] 85 Sistemas Distribuídos Introdução a Sistemas Distribuídos Referências sobre supercomputadores http://www.inf.ufrgs.br/gppd/disc/cmp134/trabs/T1/991/Crayt94/crayt94.htm Lista com os 500 supercomputadores mais velozes do mundo http://www.top500.org/lists/2009/11 05/11/2015 [email protected] 86 Sistemas Distribuídos Introdução a Sistemas Distribuídos São Paulo, 2011 Universidade Paulista (UNIP) Introdução ao Estudo de Sistemas Distribuídos (SD) Prof. MSc. Vladimir Camelo [email protected] 05/11/2015 [email protected] 87