sistemas distribuídos. definições de sd "um sistema distribuído é uma coleção de...
TRANSCRIPT
Sistemas Distribuídos
Definições de SD
• "Um sistema distribuído é uma coleção de computadores autônomos conectados por uma rede e equipados com um sistema de software distribuído."
• Portanto, podemos definir um SD como uma coleção de computadores independentes que aparenta aos usuários do sistema como se fosse um único computador. Nesta definição devemos considerar dois aspectos:
• 1. hardware: máquinas autônomas, independentes e heterogêneas.
• 2. software: os usuários pensam no sistema como um único computador.
Exemplos de SD• Uma rede de estações de trabalho em
uma universidade ou companhia• Uma rede de computadores em uma
fábrica• Um grande banco com muitas agências,
cada qual com um computadores e caixas automáticas
Vantagens de SD• compartilhamento de dados: base de
dados comum;• compartilhamento de dispositivos:
acesso compartilhado a periféricos;• comunicação: torna-se mais simples e
mais rápida a comunicação entre pessoas. Além disso, é possível: transferência de arquivos entre nós, login remoto, etc;
• flexibilidade: dividir a carga de trabalho entre os nós da rede;
• performance a baixo custo: preço baixo dos PCs;
• escalabilidade: aumentar o número de nós na medida da necessidade.
Desvantagens de SD
• Falta de software adequado• Falhas e saturação da rede de
comunicação podem eliminar as vantagens de SD• Segurança pode ser comprometida:
fácil acesso a dados e recursos reservados
Características básicas de SD
• Compartilhamento de recursos• Extensibilidade • Concorrência• Escalabilidade (crescimento gradativo
suave)• Tolerância a falhas• Transparência
Compartilhamento de Recursos
• Componentes de hardware:impressoras, discos etc.
• Componentes de software: arquivos, bancos de dados etc.
Extensibilidade
• Extensões de hardware: periféricos, memória, interfaces de comunicação, ...
• Extensões de software: funções de SO, protocolos de comunicação etc.
• Interfaces chaves são públicas. • Mecanismo uniforme de comunicação
entre processos.
Concorrência
• Mais de um processo em execução a cada instante:– Atividades separadas de usuários– Independência de recursos– Localização de processos servidores em
computadores distintos• Acesso concorrente a recursos
compartilhados requer sincronização, disponibilidade e segurança.
Escalabilidade• Suporta o aumento dos recursos e
usuários mantendo um desempenho satisfatório.
• Técnicas: replicação, caching, servidores múltiplos.
Desafios:• Controlar o custo dos recursos físicos• Controlar a perda de performance
(quantidade)• Prevenir esgotamento de recursos (ex: IP)
Tolerância a falhas• Fornecer o serviço esperado mesmo na
presença de falhas activas. Algumas técnicas empregadas: mascaramento de falhas detecção de erros diagnóstico de erros confinamento de erros recuperação de erros
Transparência
• Esconder do usuário e do programador de aplicações a separação de componentes em um sistema distribuído, tal que este seja visto como um sistema centralizado
Transparência Descrição
AcessoEsconde diferenças na representação de dados e como um
recurso é acessado
Localização Esconde onde um recurso está localizado
Migração Esconde que um recurso pode mover-se para outra
localização
RelocaçãoEsconde que um recurso pode ser movido para outra
localização enquanto esta sendo usado
ReplicaçãoEsconde que um recurso está distribuído por vários
servidores.