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
Acesso
Esconde 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ção
Esconde que um recurso pode ser movido para outra
localização enquanto esta sendo usado
Replicação
Esconde que um recurso está distribuído por vários
servidores.
Download

Sistemas Distribuídos