Download - Sd capitulo01

Transcript
Page 1: Sd capitulo01

1

SISTEMAS DISTRIBUÍDOS2008.2

Capítulo 1Introdução

André Ribeiro Cardoso - [email protected]

Page 2: Sd capitulo01

2

Apresentação

• Prof. André Ribeiro Cardoso ([email protected])

• Material didático: http://www.larces.uece.br/~andrec/SD20082

• Sistema de avaliação:

– Duas provas teóricas - P1 e P

2

– Trabalhos práticos - T

– Seminários - S

• Condição para aprovação: média >= 7,0

– Nota final = (média + NEF) / 2 >= 5,0

média = (P1 + P

2 + T + S) / 4

Page 3: Sd capitulo01

3

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

Page 4: Sd capitulo01

4

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

Page 5: Sd capitulo01

5

Cronograma (60horas)

• Dezembro/2008

– 02, 04, 09, 11, 16, 18, 23

-------------------- 2009 --------------------

• Janeiro

– 06, 08, 13, 15, 20, 22, 27, 29

• Fevereiro

– 03, 05, 10, 12, 17, 19, 26

• Março

– 03, 05, 10, 12, 17, 24, 26, 31

• Abril

– 02, 07, 14, 16, 20

Page 6: Sd capitulo01

6

Sumário

• Definição

• Metas

• Tipos de Sistemas Distribuídos

Page 7: Sd capitulo01

7

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

Page 8: Sd capitulo01

8

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”

Page 9: Sd capitulo01

9

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

Page 10: Sd capitulo01

10

Sumário

• Definição

• Metas

• Tipos de Sistemas Distribuídos

Page 11: Sd capitulo01

11

Metas

• Acesso a recursos• Transparência da distribuição

• Escalabilidade

• Confiabilidade

• Flexibilidade

• Desempenho

• Heterogeneidade

• Segurança

Page 12: Sd capitulo01

12

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

Page 13: Sd capitulo01

13

Metas

• Acesso a recursos

• Transparência da distribuição• Escalabilidade

• Confiabilidade

• Flexibilidade

• Desempenho

• Heterogeneidade

• Segurança

Page 14: Sd capitulo01

14

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

Page 15: Sd capitulo01

15

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á

Page 16: Sd capitulo01

16

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

Page 17: Sd capitulo01

17

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)

Page 18: Sd capitulo01

18

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

Page 19: Sd capitulo01

19

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

Page 20: Sd capitulo01

20

Metas

• Transparência da distribuição (sumário)

Page 21: Sd capitulo01

21

Metas

• Acesso a recursos

• Transparência da distribuição

• Abertura• Escalabilidade

• Confiabilidade

• Flexibilidade

• Desempenho

• Heterogeneidade

• Segurança

Page 22: Sd capitulo01

22

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)

Page 23: Sd capitulo01

23

Metas

• Acesso a recursos

• Transparência da distribuição

• Abertura

• Escalabilidade• Confiabilidade

• Flexibilidade

• Desempenho

• Heterogeneidade

• Segurança

Page 24: Sd capitulo01

24

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

Page 25: Sd capitulo01

25

Metas

• Escalabilidade/Problemas (tamanho)

Page 26: Sd capitulo01

26

Metas

• Escalabilidade/Problemas (geográfica)

Page 27: Sd capitulo01

27

Metas

• Escalabilidade/Problemas (administrativa)

Page 28: Sd capitulo01

28

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

Page 29: Sd capitulo01

29

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

Page 30: Sd capitulo01

30

Metas

• Escalabilidade/Técnicas

– Distribuição

Divisão do espaço de nomes do DNS em zonas

Page 31: Sd capitulo01

31

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

Page 32: Sd capitulo01

32

Metas

• Acesso a recursos

• Transparência da distribuição

• Escalabilidade

• Confiabilidade• Flexibilidade

• Desempenho

• Heterogeneidade

• Segurança

Page 33: Sd capitulo01

33

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)

Page 34: Sd capitulo01

34

Metas

• Acesso a recursos

• Transparência da distribuição

• Escalabilidade

• Confiabilidade

• Flexibilidade• Desempenho

• Heterogeneidade

• Segurança

Page 35: Sd capitulo01

35

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)

Page 36: Sd capitulo01

36

Metas

• Acesso a recursos

• Transparência da distribuição

• Escalabilidade

• Confiabilidade

• Flexibilidade

• Desempenho• Heterogeneidade

• Segurança

Page 37: Sd capitulo01

37

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.)

Page 38: Sd capitulo01

38

Metas

• Acesso a recursos

• Transparência da distribuição

• Escalabilidade

• Confiabilidade

• Flexibilidade

• Desempenho

• Heterogeneidade• Segurança

Page 39: Sd capitulo01

39

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)

Page 40: Sd capitulo01

40

Metas

• Acesso a recursos

• Transparência da distribuição

• Escalabilidade

• Confiabilidade

• Flexibilidade

• Desempenho

• Heterogeneidade

• Segurança

Page 41: Sd capitulo01

41

Metas

• Segurança– Objetivo: proteção recursos compartilhados e

manutenção da confiabilidade de dados

– Deve considerar mecanismos para:

• Autenticação

• Autorização

• Integridade

• Confidencialidade

• Autenticidade

– Técnicas de criptografia

– Preocupação com ataques (DoS, DDoS)

Page 42: Sd capitulo01

42

Sumário

• Definição

• Metas

• Tipos de Sistemas Distribuídos

Page 43: Sd capitulo01

43

Tipos de SDs

• Sistemas de Computação Distribuídos

• Sistemas de Informação Distribuídos

• Sistemas Embutidos Distribuídos

Page 44: Sd capitulo01

44

Tipos de SDs

• Sistemas de Computação Distribuídos– Sistemas de computação de clusters

– Sistemas de computação em grade (grids)

Page 45: Sd capitulo01

45

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

Page 46: Sd capitulo01

46

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

Page 47: Sd capitulo01

47

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

Page 48: Sd capitulo01

48

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