fundamentos de sistemas distribuídos - macedo.ufba.br ad 2012 relogios logicos.pdf · fundamentos...

24
1 Fundamentos de Sistemas Distribuídos Raimundo J. de A. Macêdo A program is the code you type in A process is what you get when you run it Algumas definições básicas – retirados de apresentação de Ken Birman. A message is used to communicate between processes. Arbitrary size. A packet is a fragment of a message that might travel on the wire. Variable size but limited, usually to 1400 bytes or less. Raimundo Macêdo, LaSiD/DCC/UFBA 2 A protocol is an algorithm by which processes cooperate to do something using message exchanges.

Upload: danganh

Post on 28-Jan-2019

217 views

Category:

Documents


0 download

TRANSCRIPT

1

Fundamentos de Sistemas Distribuídos

Raimundo J. de A. Macêdo

• A program is the code you type in• A process is what you get when you run it

Algumas definições básicas – retirados de apresentação deKen Birman.

• A message is used to communicate between processes. Arbitrary size.

• A packet is a fragment of a message that might travel on the wire. Variable size but limited, usually to 1400 bytes or less.

Raimundo Macêdo, LaSiD/DCC/UFBA

2

• A protocol is an algorithm by which processes cooperate to do something using message exchanges.

2

• A network is the infrastructure that links the computers, workstations, terminals, servers, etc.– It consists of routers

They are connected by communication links– They are connected by communication links• A network application is one that fetches needed

data from servers over the network• A distributed system is a more complex

application designed to run on a network. Such a system has multiple processes that cooperate to do

Raimundo Macêdo, LaSiD/DCC/UFBA

3

system has multiple processes that cooperate to do something.

Os Sistemas Distribuídos

Como caracterizá-los?

3

Sistemas DistribuídosProcessos

Processadores

C i d C i ãCanais de Comunicação

O comportamento de cada processo é determinado por uma seqüênciade eventos internos mais operações de comunicação (send e receive)

Raimundo Macêdo, LaSiD/DCC/UFBA

5

Uma computação distribuída é a execução concorrentee coordenada de vários processos.

Lembrando Leslie Lamport ...

“Você sabe que está num Sistema Distribuídoquando é impedido de prosseguir com seutrabalho devido a FALHA de outro computadorque você nunca ouviu falar....”

Troia, Backdoor, & $ # @PauloLamport

Falha !

Raimundo Macêdo, LaSiD/DCC/UFBA

6

REDE

4

Implicações da afirmação de Lamport

☯Funções estão distribuídas

☯N id d d (t l )

Raimundo Macêdo, LaSiD/DCC/UFBA

7

☯Necessidade de superar (tolerar) falhas parciais

Comunicação entre Processos

Troca de Mensagens (primitivas send()/receive())

Pi

Kernel

Host

Pj

Host

Kernel

Raimundo Macêdo, LaSiD/DCC/UFBA

8

Subsistema de Comunicação

Meio FísicoSubsistema de Comunicação

5

Componente

Componente

Raimundo Macêdo, LaSiD/DCC/UFBA

9

ProcessoObjetoEntidade Comunicante

Componente

Componente

Propriedades que caracterizam um programa distribuído (Lamport, 1977)

safety : f y

determinada propriedade “ruim” nunca ocorre

liveness :

d t i d i d d “b ” t á

Raimundo Macêdo, LaSiD/DCC/UFBA

10

determinada propriedade “boa” acontecerá

+ Timeliness : determinada propriedade acontecerá no instante t

6

Propriedades de um programa distribuído (Lamport, 1977)Exemplo 1 : protocolo de ordenação causal

safety:

qualquer mensagem entregue não viola o principio de causa-efeitoq q g g p p

Liveness:

uma mensagem enviada sempre será entregue

1

tempo

Raimundo Macêdo, LaSiD/DCC/UFBA

11

P1

P2

P3

m1

m2m1

m2

Propriedades de um programa distribuído (Lamport, 1977)

Exemplo 2: sistema controlando semáforos

safety:safety:

dois semáforos numa estarão verde ao mesmo tempo

liveness:

um carro esperando na luz vermelha, receberá luz verde no futuro

Raimundo Macêdo, LaSiD/DCC/UFBA

12

7

Sistema Distribuído

Aplicação Aplicação

Protocolo de Comunicação

Protocolo Distribuído

p ç

Protocolo de Comunicação

Protocolo Distribuído

p ç

mensagensSubs

iste

ma

de

com

unic

ação

Raimundo Macêdo, LaSiD/DCC/UFBA

13

Modelos de Falhas e Tempo assumidos no subsistema de comunicação tem implicações de desempenho e complexidade no projeto de Sistemas Distribuídos

Sistemas Distribuídos e Padrão OSI da ISO

4 - Transporte

5 - Sessão

6 - Apresentação

7 - Aplicação

SISTEMAS DISTRIBUÍDOS

Raimundo Macêdo, LaSiD/DCC/UFBA

14

1 - Sinais

2 - Enlace

3 - RedeRedes de Computadores

8

Exemplos Típicos de Sistemas Distribuídos

Raimundo Macêdo, LaSiD/DCC/UFBA

15

WEB

ServidorWEBcliente

(browser)

Informações Di ibili d

HTTP

HTML

Raimundo Macêdo, LaSiD/DCC/UFBA

16

Disponibilizadas

Rede TCP/IP

9

Controle de Tráfego Aéreo

REDE

Radar

SistemaEmbarcado

Raimundo Macêdo, LaSiD/DCC/UFBA

17

ControladoresDB tráfego aéreo

(planos de voo, etc)

DiretórioX.500

Outros Exemplos:

•Comércio Eletrônico

•Bolsa de Valores

•Automação Hospitalar

•Sistemas de bancos para interconexão de agências e para suporte a terminais de clientes

kfl

Raimundo Macêdo, LaSiD/DCC/UFBA

18

•Workflows

• Napster

•etc

10

Modelos Fundamentais de SDUm modelo contém os elementos essenciais para a compreensão e a análise do comportamento de um sistema distribuído

Principais questões que definem um modelo:• Quais são as entidades ativas ?• Como estas entidades interagem?• Quais características do sistema de execução podem influenciar o

comportamento da computação distribuída ?

Em um modelo:

Raimundo Macêdo, LaSiD/DCC/UFBA

19

Em um modelo:• explicita-se todas as premissas relevantes sobre o ambiente de execução;• dadas as premissas, identifica-se de forma genérica, o que é e o que não é

possível realizar em um sistema (algumas vezes por prova matemática)• cria-se uma abstração, que esconde as especificidades do HW, e permitem

focar nas propriedades relevantes do algoritmo distribuído em questão

Modelos Fundamentais de SD

Quais características adicionais do ambiente podem influenciar oQuais características adicionais do ambiente podem influenciar o comportamento do programa?

• Desempenhos não previsíveis• Falhas• Adversários

A t d d l it di t ib íd ó d li d l ã

Raimundo Macêdo, LaSiD/DCC/UFBA

20

A corretude de um algoritmo distribuído só pode ser avaliada com relação ao modelo de sistema que o mesmo assume.

11

Qual o melhor modelo ???

Depende dos requisitos da aplicação e o ambiente disponíveis !Depende dos requisitos da aplicação e o ambiente disponíveis !

Raimundo Macêdo, LaSiD/DCC/UFBA

21

Examinando sistematicamente SD

12

Porque Sistemas Distribuídos são mais complexos e difíceis de controlar q e sistemas centrali ados?e difíceis de controlar que sistemas centralizados?

Problemas a serem resolvidos causados pela ausência de estado global (relógio ou memória)

(dificuldades do modelo)

• Ausência de ordem total de eventos. Existe apenas uma ordem parcial. Resultado estabelecido

li

• Impossibilidade de consenso na presença de falhas. Resultado estabelecido por Fischer Lynch epor Leslie Lamport

(1978)Fischer, Lynch e Paterson (1985)

13

4

• Ausência de ordem total de eventos. Existe apenas uma ordem parcial. Resultado estabelecido por Leslie Lamport (1978)

P1 P2

R1 Q4

P1 R41

2

3

P Q RNão é possível determinar a ordem entre P1 e R3

Ordenação parcial é possível c/ uso de relógioslógicos e protocolos de ordenação

• Impossibilidade de consenso na presença de falhas. Resultado estabelecido por Fi h L hFischer, Lynch e Paterson (1985)

Detectores de falhamodelos parcialmente síncronos

d l i í

Tolerância a Falhas3o trimestre

modelos semi-síncronos, etc.

Transações atômicas

14

Formalizando a noção de Sistema Distribuído

Elementos BásicosElementos Básicos

Coleção de processos seqüenciais p1, p2, ..., pn

Rede capaz de implementar canais de comunicação unidirecionaispara troca de mensagens entre pares de processos.

Modelos Computacionaisde Sistemas Distribuídosde Sistemas Distribuídos

15

Modelo de Sistema Distribuído : conjunto de Premissas

Conjunto finito de processos : p1, p2, ...,pn.

Não há estado global (compartilhado) entre processos (i.e., memória ou relógio).

i é d dProcessos comunicam-se somente através de troca de mensagens=> existe um canal de comunicação para cada par (pi, pj).

Computação Distribuída : execução de um programadistribuído por uma coleção de processos.

Cada processo seqüencial é modelado por uma seqüência de eventos

interno ( mudança de estado local)interno ( mudança de estado local)

comunicação com outros processsos

send(m)receive(m)

Característica básica do modelo:

Ausência de ordem total deeventos. Existe apenas uma ordemparcial. Resultado estabelecido porLeslie Lamport (1978)

P1 P2

P1 R4

Ordem Parcial de Eventos definida pela relação “happened-before” de Lamport ( )

34

P1 Q2

Não é possível determinar a ordem entre P1 e R3

P Q R

12

Sejam a, b, c três eventos

1) a e b são do mesmo processo e a acontece antes de b ⇒ a b2) a = send(m) e b = receive(m) ⇒ a b3) a b e b c ⇒ a c

Em SD não existe noção global de tempo, os eventos somentepodem ser ordenados (ou relacionados) baseado-se numa noção de causa-efeito (Lamport, 1978)

16

Modelos de Sistemas Distribuídos

Mais Premissas

Assertivas quanto aos tempos det1 : transferência de mensagens entre processos et2 : computação de um ação (evento) num processo.

um modelo de falha para os processos.

um modelo de falha para os canais de comunicação.

Assertivas quanto aos tempos det1 : transferência de mensagens entre processos et2 : computação de um ação (evento) num processo.

Valores máximos para t1 e t2 são finitos e conhecidosp

⇒ sistemas síncronosValores máximos para t1 e t2 são finitos, porém desconhecidos

⇒ sistemas assíncronos: Internet ou WANs

SíncronoAssíncrono

desconhecido Limitado

Parcialmente síncrono, etc..

Timed-asyncronous

17

Qual o conjunto mais fraco de suposições ouhipóteses (assumptions) possível ?

==> permite-nos estabelecer limites superiores (upper bounds) nos custos de solução de problemas em SD.

Ou seja, se existe uma solução para um problema no modelo maisfraco com custo Y, então existe solução para o mesmo problemacom custo não superior a Y em qualquer modelo de SD.

O modelo mais fraco é o ASSÍNCRONO

Raimundo Macêdo, LaSiD/DCC/UFBA

33

1) não existe limites nas velocidades relativas dos processos

2) não existe limites dos tempos transmissão de mensagens.

==> não se pode raciocinar em termos de tempo global(relógios não podem estar sincronizados)

OBS:

Dispositivos físicos (processadores e redes físicas) sãoem geral síncronos (tempos conhecidos), mas quandomultiplexamos o meio através de software para construímosabstrações como processos e canais confiáveis, o sistemaé em geral caracterizado como assíncrono.

18

Computação Distribuída : execução de um programa distribuídopor uma coleção de processos.

Formalizando o modelo SD assíncrono

Cada processo seqüencial é modelado por uma seqüência de eventos

interno ( mudança de estado local)

comunicação com outros processosç p

send(m)receive(m)

S d( ) l fil d l d íd d iSend(m) = coloca m na fila do canal de saída para o processo destino

Receive(m) = tira m da fila do canal de recepção do processo destino

OBS: receive(m) somente acontece num processo p se m já chegoua p e p está disposto a consumir m. Do contrário, ou a mensagemm é atrasada (p não está pronto) ou p é atrasado porque m ainda nãom é atrasada (p não está pronto) ou p é atrasado porque m ainda nãochegou.

19

Como seria a visão de comunicação em camadas mais altas,onde realmente costumamos observa-las ?

Ou seja, ao nível da linguagem de programação ??

RPC (Chama de Proc. Remoto)Broadcast/multicast/comunição em grupoTransações DistribuídasObjetos DistribuídosMemória Compartilhada Distribuída

C t d t d õ í i i lt ( i )Contudo, todas essas operações nos níveis mais altos (acima)são traduzidas para múltiplas operações tipo { (send(m), receive(m) }

História Local da computação de um processo pi

História Local da computação de um processo pi é ma seqüência (possi elmente finita) de e entosuma seqüência (possivelmente finita) de eventos

é uma seqüência (possivelmente finita) de eventos

hi = e1i, e2

i, .... etc.

10 evento 20 evento1 evento 2 evento

enumeração canônica

20

Prefixo inicial de hi contendo os k primeiros eventos

hki, = e1

i, e2i,..., ek

i

h0i = seqüência vazia

História Global H = h1 ∪ h2 ∪ ... ∪ hn

OBS: a história global (H) não especifica nenhumarelação de tempo entre os eventos.

Em SD assíncronos onde não existe noção globalEm SD assíncronos onde não existe noção globalde tempo, os eventos somente podem ser ordenados(ou relacionados) baseado numa noção de causa-efeito (Lamport, 1978)

Relação binária “happened before”definida por Lamport (1978)

1) se eki, el

i, ∈ hi e k < l, então eki, el

i,

2) se ei = send(m) e ej = receive(m), então ei ej

3) se e e’ e e’ e’’, então e e’’

e e’ se e somente se e precede e’

pode ter afetadopode ter causadoocorre no contextoetc.

21

É possível que para algum e e e’

nem e e’ nem e’ e

e’ e e são ditos concorrentese e e são ditos concorrentes

e ⎥⎥ e’

Uma Computação Distribuída é um conjunto U a Co putação st bu da é u co ju toparcialmente ordenado definido por (H, )

e11 e2

1 e31 e4

1 e51 e6

1

e12 e2

2 e32

e13 e2

3 e33 e43 e5

3 e63

e12 e3

1 e22 ⎥⎥ e6

3

22

Relógios Lógicos

Mecanismo de Tempo para SD

Cada processo mantém uma variável local LC chamadaCada processo mantém uma variável local LC chamadade seu relógio lógico que mapea eventos para númerosnaturais positivos.

LC(ei) = valor do relógio quando ei é executado por pi

A ordenação feita baseada nos valores crescentesdos relógios lógicos, mantém consistência (coerência)com a relação

e e’ ==> LC(e) < LC(e’)

Como funciona ?

Cada mensagem m transmitida contém um timestamp TS(m)que é o valor do relógio lógico associado ao evento send(m).q g g ( )

No início relógios são “inicializados”com zero.

Atualização do Relógio:

LC(ei) = LC + 1, se ei é interno ou send(m)max{LC, TS(m)} + 1, se ei é receive(m)

23

e11 e2

1 e31 e4

1 e51 e6

1

1 2 4 5 6 7

e12 e2

2 e32

e13 e2

3 e33 e43 e5

3 e63

1 5 6

1 2 3 4 5 7

e12 e6

3 e22 ⎥⎥ e6

3

Ilustração de Relógios Lógicos

P1 P2 P3R1 = 0 R2 = 0 R3 = 0

R1 = 1R2 = 2

m1

R1 = 2

R3 = 3

m2

R3 = 4R2 = 5

m3

m

m1 → m2

m2 → m3 e m1 → m3

m4 → m5 e m5 → m4

R1 = 7R2 = 6m4

R3 = 5

R1 = 8

m5

m4 → m5 e m5 → m4

24

Ler o artigo abaixo:

Disponível em www.macedo.ufba.br ou no site dePeriódicos da Capes www.capes.gov.br

Raimundo Macêdo, LaSiD/DCC/UFBA

47Raimundo Macêdo, LaSiD/DCC/UFBA

47