1 / 25

Sistemas Distribuídos Introdução à Ciência da Computação

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.

cicada
Télécharger la présentation

Sistemas Distribuídos Introdução à Ciência da Computação

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sistemas DistribuídosIntrodução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

  2. Introdução - Sistemas Distribuídos • Conteúdo • Evolução Histórica • Motivação • Conceitos • Características • Vantagens/desvantagens • Desafios • Exemplos

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

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

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

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

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

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

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

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

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

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

  13. Vantagens • Sistemas inerentemente distribuídos • Sistema de reservas • CSCW – computer supported cooperative work • CSCG – computer supported cooperative game

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

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

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

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

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

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

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

  21. Exemplos de SDs • Caixas automáticos de Banco • Sistema de reserva de passagens • SETI@home • vCluster

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

  23. SETI@home

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

  25. vCluster

More Related