Sistemas Distribuídos. Definições de SD "Um sistema distribuído é uma coleção de...

Preview:

Citation preview

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.