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

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

Embed Size (px)

Citation preview

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

Sistemas Distribuídos

Introdução à Ciência da Computação

Ana Paula & Lúcia

Material adaptadodo Prof. Tiago Ferreto

Page 2: 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

Page 3: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

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

Page 4: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

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

Page 5: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

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)

Page 6: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

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

Page 7: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

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)

Page 8: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

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

Page 9: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

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

Page 10: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

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

Page 11: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

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

Page 12: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

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

Page 13: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

Vantagens

• Sistemas inerentemente distribuídos• Sistema de reservas• CSCW – computer supported cooperative

work• CSCG – computer supported cooperative

game

Page 14: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

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

Page 15: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

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)

Page 16: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

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

Page 17: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

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

Page 18: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

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

Page 19: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

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

Page 20: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

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

Page 21: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

Exemplos de SDs

• Caixas automáticos de Banco

• Sistema de reserva de passagens

• SETI@home

• vCluster

Page 22: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

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

Page 23: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

SETI@home

Page 24: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

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

Page 25: Sistemas Distribuídos Introdução à Ciência da Computação Ana Paula & Lúcia Material adaptado do Prof. Tiago Ferreto

vCluster