Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* * * Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto * * * Introdução - Sistemas Distribuídos Conteúdo Evolução Histórica Motivação Conceitos Características Vantagens/desvantagens Desafios Exemplos * * * Evolução histórica Computadores iniciais: caros e grandes execução por um operador: setup do job (carregar cartões), executar programa, imprimir resultado Anos 50 e 60: batching, spooling, multiprogramação batching: juntar jobs semelhantes para processamento spooling: sobreposição de I/O e CPU multiprogramação: diversos programas sendo executados concorrentemente pela CPU Objetivo: otimizar a utilização da CPU * * * Evolução histórica Não existia a interação entre usuário e computador alto custo para processos interativos: depuração Início dos anos 60: sistemas de time sharing utilização de diversos terminais “burros” conectados a um computador impressão de um computador por usuário tarefas principais/comuns são executadas pelo computador principal desenvolvimento dos minicomputadores: menores e mais rápidos! 1o. passo na direção dos sistemas distribuídos! compartilhamento de recursos acesso remoto Terminais e computador muito próximos * * * Evolução histórica Final dos anos 60 e início dos anos 70: surgimento das redes de computadores e do sistema operacional UNIX Ethernet – Xerox Palo Alto (1973): Local Area Network permitiu interligar mais computadores a distâncias maiores usando uma velocidade maior (e.g. rede de computadores de um prédio) ARPANet – DoD (1969): Wide Area Network interligação entre computadores localizados dispersamente (cidades e/ou países diferentes) * * * Evolução histórica Final dos anos 70: protocolo TCP/IP definição de padrão para comunicação entre computadores Início dos anos 80: microprocessadores e estações de trabalho redução do custo (em relação aos mainframes) Final dos anos 80: estações de trabalho ligadas em rede diversos serviços para comunicação entre pessoas/máquinas FTP, TELNET, MAIL * * * Motivação Avanços em microeletrônica processadores mais rápidos e baratos Avanços em comunicações redes mais eficientes e confiáveis Popularidade das redes de computadores redes de telefones celulares, redes corporativas, redes caseiras redes de computadores de alta velocidade (Myrinet ~2Gb/s) * * * Motivação Compartilhamento de recursos Componentes de HW (disco, impressora) SW (arquivos, bases de dados, programas) Outros (vídeo, áudio) Relação custo/desempenho melhor utilizar diversos processadores interconectados do que um único computador centralizado * * * Conceitos O que é um Sistema Distribuído? Um sistema distribuído é uma coleção de computadores independentes que parecem um sistema único para o usuário [Tanenbaum]. É um sistema onde os componentes de HW e SW, localizados em computadores interligados por uma rede, comunicam e coordenam suas ações somente através de troca de mensagens [Coulouris]. Dois aspectos: Hardware: autonomia Software: sistema único * * * Características Processos são executados concorrentemente no sistema distribuído não existe um controle global! processos usam troca de mensagens para coordenar suas ações Inexistência de relógio global noção de tempo global é importante na coordenação de processos sincronização de relógios possui um limite de precisão * * * Características 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 * * * Vantagens Economia – melhor relação custo/desempenho Grosh's Law: desempenho é proporcional ao quadrado do custo 2*custo = 4*desempenho somente válido para mainframes Velocidade 10.000 CPUs x 50 MIPS = 500.000 MIPS Uma CPU para isto deveria executar uma instrução a cada 0,002 nanosegundos (2 picosegundos). * * * Vantagens Sistemas inerentemente distribuídos Sistema de reservas CSCW – computer supported cooperative work CSCG – computer supported cooperative game * * * Vantagens Maior confiabilidade (reliability) e disponibilidade grau de tolerância contra erros e falhas de componentes em um sistema 5% fora do ar = 5% em perda de desempenho Aplicações críticas - aviação, reatores nucleares replicação de componentes Facilidade de expansão permite aumentar o poder de processamento/armazenamento sem se desfazer daquilo que já possui, isto é, de maneira gradativa * * * Vantagens Permite o compartilhamento de dados/informação desenvolvimento de software distribuído (e.g. CVS) Permite o compartilhamento de recursos economia (Ex. impressora, software, bases de dados, disco, pool de processadores) * * * Desvantagens Maior dificuldade na garantia de segurança (crítico!) Desevolvimento de sw distribuído é mais complexo Gerência de recursos mais complexa Alto custo para implementar aplicações colaborativas Causas recursos são fisicamente separados mensagens podem atrasar mensagens podem ser perdidas ... * * * Desafios comunicação segura Quem enviou? Os dados foram modificados durante a transmissão? Alguém não autorizado teve acesso aos dados? confiabilidade em um ambiente não confiável máquinas podem falhar, mas o SD deve falhar parcialmente * * * Desafios 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 e de que forma * * * Exemplos de SDs Internet: grande coleção de diferentes redes de computadores interconectadas. Comunicação através de troca de mensagens Serviços: www, ftp, mail Intranet: parte da Internet administrada separamente Políticas de segurança locais (firewall) Necessidades: serviço de compartilhamento de arquivos, firewalls para proteção, facilidade de instalação e suporte de software * * * Exemplos de SDs Computação móvel: avanços na miniaturização de dispositivos e redes sem fio Integração de pequenos dispositivos computacionais portáteis Laptops, PDAs, celulares, pagers, câmeras digitais, wearable devices, dispositivos integrados a utensílios Problemas: descoberta de recursos no ambiente, reconfiguração de dispositivos, privacidade e segurança * * * Exemplos de SDs Caixas automáticos de Banco Sistema de reserva de passagens SETI@home vCluster * * * SETI@home -Search for Extraterrestrial Intelligence at Home Universidade da Califórnia, Berkeley Objetivo: utilizar a capacidade de processamento de centenas de milhares de computadores conectados à Internet na procura de inteligência extraterrestre Utilização: instalação de um programa (screensaver) quando o computador esta ocioso o programa realiza o download de um pacote de dados (work unit - ~340KB) obtidos por rádio-telescópio (Observatório de Arecibo) e faz uma procura por sinais extraterrestres Possui aproximadamente 3 milhões de usuários * * * SETI@home * * * vCluster Desenvolvido pelo CPAD -http://www.cpad.pucrs.br Motivação: subutilização dos recursos computacionais em laboratórios acadêmicos ~ 90% ociosidade aplicações científicas com demanda por recursos computacionais Objetivo: Exploração de ciclos ociosos Aplicações BoT (Bag-of-Tasks) Enfoque: usuário local possui prioridade sobre a execução de tarefas na máquina * * * vCluster
Compartilhar