Treinamento - Professor Diovani

Propaganda
Sistemas distribuídos
Metas de Projeto
Prof. Diovani Milhorim
Propriedades críticas de um SD
Transparência
 Flexibilidade
 Confiabilidade
 Desempenho
 Escalabilidade

Transparência a paralelismo
Paralelismo: divisão de uma tarefa em
sub-tarefas coordenadas e que são
executadas simultaneamente em
processadores distintos
 Compilador, ambiente de execução e
sistema operacional devem saber tirar
vantagem do potencial paralelismo de um
sistema distribuído sem mesmo que o
programador saiba disso

Flexibilidade

Modelos de estrutura de SD:
 Núcleo
monolítico: inclui gerenciamento de
arquivos, diretórios e processos
 Micro-núcleo:
mecanismo para comunicação entre processos
 gerenciamento básico de memória
 gerenciamento de processos a baixo nível
 operações de entrada/saído a baixo nível

Vantagens do micro-núcleo

Modularidade => Flexibilidade
 serviços
estão disponíveis a todos os
clientes, independentemente de localização
 serviços podem ser reparados sem causar
parada total do sistema
 os próprios usuários podem adicionar novos
serviços
Confiabilidade
Em teoria, como medir?
 Aspectos:

 disponibilidade:
fração do tempo em que o
sistema pode ser usado
 exatidão: replicação versus consistência
 segurança: Como um servidor pode verificar
a origem de uma mensagem?
 tolerância a falhas: replicação versus
desempenho
Desempenho

Métodos de medição:
 tempo
de resposta
 número de tarefas por hora
 taxa de utilização do sistema
 taxa de utilização da rede
Fator crítico em SD: troca de mensagens
 Granularidade de computação paralela

Escalabilidade

Evitar:
 componentes
centralizados (ex: um único
servidor de correio eletrônico para todos os
usuários)
 tabelas centralizadas (ex: uma única lista
telefônica on-line)
 algoritmos centralizados (ex: roteamento
baseado em informação completa)
Algoritmos Distribuídos
Nenhuma máquina conhece o estado
global
 Decisões são baseadas somente em
informação local
 A parada de uma máquina não arruína o
algoritmo
 Não há qualquer suposição quanto a
existência de tempo (relógio) global

Elementos básicos de um SD
Sistema de nomes
 Comunicação
 Estrutura de software
 Alocação de carga de trabalho
 Manutenção de consistência

Sistema de nomes
Nomes permitem que recursos sejam
compartilhados
 Nomes de recursos devem ser
independendentes de sua localização
 O esquema de nomes deve escalar bem
 Um sistema de interpretação de nomes
deve ser acessível por programa

Comunicação
O sucesso de um SD depende muito do
desempenho/confiabilidade das técnicas
de comunicação usadas em sua
implementação
 Dilema: otimizar implementação da
comunicação e prover alto nível do
modelo de programação dessa
comunicação

Estrutura de software
Extensibilidade requer componentes de
software com interfaces bem definidas
 Um serviço é um gerenciador de objetos
de um certo tipo e sua interface é um
conjunto de operações
 Novos serviços devem interoperar com
serviços existentes e não duplicar suas
funções

Alocação de carga de trabalho

Otimização do uso de:
 capacidade
de processamento
 capacidade de comunicação
 recursos da rede em geral

Objetivo: bom desempenho
Manutenção de consistência
Consistência de atualização: atomicidade
como meio de atualização instantânea de
muitos elementos
 Consistência de replicação: cópias de um
mesmo recurso devem ser “idênticas”
 Consistência de cache: modificações em
um cliente devem ser propagadas ao
gerenciador e aos demais clientes

Manutenção de consistência
(continuação)
Consistência de falha: deve-se evitar
falhas múltiplas (em cascata); isolamento
de falhas
 Consistência de relógio: relógios físicos
(sincronização aproximada) e relógios
lógicos (timestampings em mensagens)
 Consistência de interface de usuário:
atrasos devido a comunicação podem
causar visão inconsistente de aplicações

Requisitos no nível do usuário
Funcionalidade: Que serviços esperar de
um SD? Como migrar aplicações de um
SC para um SD (adaptar SO, adaptar
applicação, emulação de SO antigo)?
 Reconfigurabilidade: substituição de
máquinas que falham, rearranjo de carga,
transferência de atividades e dados para
minimizar comunicação

Requisitos no nível do usuário
(continuação)

Qualidade de serviço:
 desempenho
 confiabilidade
 segurança
e disponibilidade
Download