Post on 18-Apr-2015
Sistemas Distribuídos
Introdução à Ciência da Computação
Ana Paula & Lúcia
Material adaptadodo 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