Apresentação
• Prof. André Ribeiro Cardoso
(andrec@larces.uece.br)
• Material didático:
http://www.larces.uece.br/~andrec/SD20082
• Sistema de avaliação:
– Duas provas teóricas - P1 e P2
– Trabalhos práticos - T
– Seminários - S média = (P + P + T + S)
1 2
/4
• Condição para aprovação: média >= 7,0
– Nota final = (média + NEF) / 2 >= 5,0
2
Bibliografia
• Sistemas Distribuídos – Princípios e Paradigmas
(2a edição)
Andrew Tanenbaum / Maarten Van Steen
• Sistemas Distribuídos – Conceitos e Projetos
(4a edição)
George Coulouris, Jean Dollimore e Tim Kindberg
3
Objetivos
• Apresentar os princípios de funcionamento, conceitos
avançados e tecnologias subjacentes dos Sistemas
Distribuídos
• Explorar os conhecimentos adquiridos através de
Trabalhos Práticos e Seminários Avançados
4
Definição
• “Um sistema distribuído (SD) é um conjunto de
computadores independentes que se apresenta a seus usuários
como um sistema único e coerente” (Tanenbaum)
• “Um sistema em que componentes de hardware e software
localizados em computadores em rede se comunicam e
coordenam suas ações por passagem de mensagens”
(Coulouris et al.)
• Implica em: concorrência, ausência de relógio global e
falhas isoladas e independentes
• Motivação: compartilhamento de recursos 7
Definição
Sistemas Distribuídos
“Você que tem um quando a falha de um computador do
qual você nunca ouviu falar impede que você faça
qualquer trabalho”
8
Definição
Arquitetura geral de um SD
• Middleware: camada de software que se estende por
várias máquinas e oculta das aplicações as diferenças
em hardware e sistemas operacionais
9
Metas
• Acesso/compartilhamento de recursos
– Considerada PRINCIPAL META
– Tipos de recursos
• Impressoras, computadores, dados, Hds etc.
– Um SD deve oferecer fácil acesso a recursos remotos e
compartilhamento eficiente/controlado
– Compartilhamento de recursos induz a economia
12
Metas
• Transparência da distribuição
– Oculta o fato de recursos estarem distribuídos
– Um SD se apresenta a usuários e aplicações como um
sistema único (TRANSPARENTE)
– Tipos de transparências
• Acesso, Localização, Migração, Relocação,
Replicação, Concorrência e Falha
14
Metas
Transparência da distribuição (cont.)
• Acesso
– Trata de ocultar diferenças em representação de dados
(máquinas com arquiteturas diferentes)
– Diferenças entre sistemas de nomeação e como arquivos
são manipulados
• Localização
– O nome do recurso deve ser independente de sua
localização física (sist. nomeação tem papel importante)
– Nomes lógicos (URL): usuário acessa recursos da
independente de onde ele está
15
Metas
Transparência da distribuição (cont.)
• Migração
– Objetos podem migrar de uma máquina a outra por
questões de desempenho, confiabilidade, segurança etc.
– Deve
• Ser feita de forma automática pelo sistema
• Manter nome do objeto
• Garantir continuidade de comunicação
16
Metas
Transparência da distribuição (cont.)
• Relocação
– Oculta que um recurso (notebook) possa ser movido
para outra localização durante o uso
– Quando um usuário é móvel?
• Um notebook se movimentando dentro da mesma
área de cobertura (não é móvel)
• Um automóvel passando por várias redes de acesso
sem fio, com conexão ininterrupta (móvel)
• Um notebook numa lanchonete sem necessidade de
conectividade durante trajetória (móvel)
17
Metas
Transparência da distribuição (cont.)
• Replicação
– Permite que várias instâncias de recursos sejam usadas
para aumentar a confiabilidade e o desempenho
– Deve
• Mascarar o conhecimento das réplicas por parte dos
usuários ou dos programadores de aplicativos
18
Metas
Transparência da distribuição (cont.)
• Concorrência
– Coordenar acessos a recursos compartilhados
• Ordenação de eventos: todos usuários ter uma
mesma visão do sistema
• Garantir exclusão mútua
• Evitar postergação indefinida
• Evitar deadlocks
• Tolerar falhas, detectar e recuperar falhas
19
Metas
• Transparência da distribuição (sumário)
20
Metas
• Abertura
– SD aberto oferece serviços de acordo com regras
padronizadas para descreverem a sintaxe e semântica
dos serviços
• Ex: Em redes, existe a padronização de protocolos
que regem o conteúdo, formato e significado das
mensagens
• Em SDs, os serviços são especificados por IDLs
– IDLs capturam a sintaxe dos serviço (especificam
nome das funções, tipos de parâmetros, valores de
retorno, exceções etc.
– Especificação da semântica (parte complicada) 22
Metas
• Escalabilidade
– De tamanho
• Entrada de vários usuários ao sistema
– Geográfica
• Usuários e recursos devem estar longe uns dos
outros
– Administrativa
• Envolvimento de várias organizações
administrativas
24
Metas
• Escalabilidade/Técnicas
– Ocultar latências (geográfica)
• Idéia: evitar o tempo de resposta a req. remotas
• Comunicação assíncrona: execução de outros
trabalhos
– Distribuição
• Idéia: dividir um componente em partes e
espalhar pelo sistema
• Ex: DNS e Web
– Replicação / Cache
• Idéia: replicar recursos para aumentar
disponibilidade 28
Metas
• Escalabilidade/Técnicas
– Ocultar latências: Aplicações interativas não usam
comunicação assíncrona
• Solução: uso de formulários
Diferença entre deixar um servidor ou um cliente verificar formulários
29
Metas
• Escalabilidade/Técnicas
– Distribuição
Divisão do espaço de nomes do DNS em zonas
30
Metas
• Escalabilidade/Técnicas
– Replicação/Cache (*)
Replicação: decisão do proprietário
Cache: decisão do cliente
(*) Problema de consistência de dados 31
Metas
• Confiabilidade
– Tolerar falhas
• Habilidade do sistema continuar operacional mesmo
na presença de falhas (redundância e controle
distribuído)
– Detectar e recuperar falhas
• Capacidade para detectar ocorrência de falhas e levar
o sistema a um estado aceitável para a continuidade
da operação (mecanismos de retransmissão de msgs)
33
Metas
• Flexibilidade
– Capacidade de modificação e inclusão
• Correção/manutenção do sistema sem interrupção do
serviço
• Inclusão de novas funcionalidades e recursos
(integração de componentes)
35
Metas
• Desempenho
– Objetivo: transformar o desempenho tão bom quanto,
ou mesmo superior, a de um sistema centralizado
– Técnicas básicas
• Uso da cache
• Minimizar a necessidade de transferência de dados e
sincronização
• Explorar uso de paralelismo de alta granularidade
(threads, concorrência etc.)
37
Metas
• Heterogeneidade
– Objetivo: permitir a interação de sistemas diferentes
tanto em nível de software como de hardware
• Inclui diferentes SOs e linguagens de programação
– Técnicas básicas
• Uso de protocolos
• Uso de formatos comuns para representação de
dados (XDR, XML etc.)
• Camadas de adaptação (Middleware)
39
Tipos de SDs
• Sistemas de Computação Distribuídos
• Sistemas de Informação Distribuídos
• Sistemas Embutidos Distribuídos
43
Tipos de SDs
• Sistemas de Computação Distribuídos
– Sistemas de computação de clusters
– Sistemas de computação em grade (grids)
44
Tipos de SDs
• Sistemas de computação de clusters
– Conjunto de estações de trabalho ou PCs semelhantes,
conectados por meio de uma rede de alta velocidade
– Cada nó executa o mesmo SO
– Hardware subjacente homogêneo
– Usado para processamento paralelo – único programa
executado em várias máquinas
45
Tipos de SDs
• Ex: Cluster Beowulf
– Nó mestre (middleware)
• Aloca nós de computação a um determinado
programa paralelo, mantém uma fila de jobs e
gerencia o cluster
– Nó de computação
• SO padrão 46
Tipos de SDs
• Sistemas de computação em grade (grids)
– SDs montados como federação de computadores, na
qual cada sistema pode cair sob um sistema
administrativo diferente, e pode ser muito diferente no
que tange a hardware, software e tecnologia empregada
– Apresentam alto grau de heterogeneidade
– Software usado para permitir acesso a recursos (e.g.
muitas vezes clusters) de diferentes organizações
reunidos para permitir a colaboração de um grupo
(conceito de organização virtual)
– Foco dirigido para a arquitetura
47
Tipos de SDs
• Sistemas Distribuídos Pervasivos
– Dispositivos de computação móveis e embutidos
• Pequeno porte
• Alimentação por bateria
– Ausência geral de controle humano
– Exemplos
• Sistemas doméstios
• Redes de sensores
• Sistemas eletrônicos para tratamento de saúde
48