Upload
stesha
View
29
Download
0
Embed Size (px)
DESCRIPTION
Sistemas Distribuídos. Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação. Metas de projeto [C2,C3,T1.5]. Propriedades críticas de um SD. Desafios na construção de um SD Heterogeneidade Transparência Flexibilidade Confiabilidade Desempenho Escalabilidade Mobildade. - PowerPoint PPT Presentation
Citation preview
Sistemas Distribuídos
Carlos Oberdan Rolim
Ciência da ComputaçãoSistemas de Informação
Metas de projeto
[C2,C3,T1.5]
Propriedades críticas de um SDDesafios na construção de um SD
Heterogeneidade
Transparência
Flexibilidade
Confiabilidade
Desempenho
Escalabilidade
Mobildade
Heterogeneidade
Diferentes formas de representação de mesmo dado em diferentes computadores
Ex. Estrutura com bit mais significativos em um e bit menos significativos em outro
Necessidade de usar mesma representação de tipos primitivos e de estruturas de dados na troca de mensagens
Solução uso de middleware
Migração de código ou código móvel
Ex.: Máquinas virtuais / Applets Java
Transparência a paralelismo
Lembrando do conceito de 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
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
Sistema é dito escalável se permanece eficiente quando há um aumento significativo do número de recursos e de usuários
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)
Mobilidade
Diferentes dispositivos móveis como smartphones, laptops, tablets
Conectividade fornecida por protocolos Internet
Protocolos Internet desenvolvido para ambientes fixos
Problemas de intermitência e mobilidade
Endereçamento
Roteamento
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 independentes 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 gráficas
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 e disponibilidade
segurança