Buscar

Sistemas Distribuidos - Introdução à Ciência da Computação

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

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais

Perguntas Recentes