Sistemas Distribuídos

Preview:

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

Recommended