86
Sistemas Distribuído Sistemas Distribuído Introdução a Sistemas Distribuídos Introdução a Sistemas Distribuídos 28/06/22 vladimir.professor@gmail. com 1 São Paulo, 2011 São Paulo, 2011 Universidade Paulista (UNIP) Universidade Paulista (UNIP) Conceitos Fundamentais e Conceitos Fundamentais e Convenções de Notação Convenções de Notação Prof. MSc. Vladimir Camelo Prof. MSc. Vladimir Camelo [email protected]

Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/[email protected] São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Embed Size (px)

Citation preview

Page 1: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 1

São Paulo, 2011São Paulo, 2011

Universidade Paulista (UNIP)Universidade Paulista (UNIP)

Conceitos Fundamentais e Convenções de Conceitos Fundamentais e Convenções de NotaçãoNotação

Prof. MSc. Vladimir CameloProf. MSc. Vladimir [email protected]

Page 2: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 2

É normalmente muito mais conveniente tratar com processos ao invés

de processadores:

Um sistema distribuído é composto por N processos que

executam em M processadores diferentes.

Processadores são conectados por canais (vias) de comunicação

o que possibilita a troca de informações entre estes

processadores.

Notações formaisNotações formais

Page 3: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 3

A evolução do sistema é modelada por uma seqüência de eventos ep

Um evento modifica o estado de p (processo)

A história H é uma seqüência de tuplas (registros) contendo um

evento ep e o estado de p após ep

Uma execução (run) é um conjunto ordenado de eventos descrito por

uma história

Notações formaisNotações formais

Page 4: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 4

Safety (Segurança)

Garantir que problemas não aconteçam e caso venham acontecer

não devem acarretar em problemas para o sistema.

Liveliness (Vivacidade)

Garantir que o sistema estará sempre ativo

Timeliness (Tempo de envio)

Adicionar requisitos de tempo real às propriedades de liveliness

Propriedades desejáveis em um sistema distribuídoPropriedades desejáveis em um sistema distribuído

Page 5: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 5

O primeiro componente da comunicação na rede é a nomeação dos

sistemas na rede.

Endereços são úteis para localizar componentes em um sistema

distribuído;

Nomes, além de serem mais fáceis de serem lembrados:

São independentes do protocolo de comunicação e da localização

do componente;

Podem ter seu significado mudado ao longo do tempo sem

interferir na localização do componente.

Nomes e endereçosNomes e endereços

Page 6: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 6

Nome são convenientes para uso humano, mas os computadores

preferem números, por velocidade e simplicidade.

Para traduzir nomes em endereços físicos é preciso um tradutor

(Domain Name SystemDNS).

Nomes “puros” vs “impuros”

Níveis de abstração

[email protected] é um nome ou um endereço?

Nomes e endereçosNomes e endereços

Page 7: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 7

Serviços de nomes traduzem nomes em endereços:

Propriedades básicas:

Binding (Ligação)

Associa um nome a um endereço

Lookup (pesquisa binária)

Recupera (resolve) um endereço a partir de um nome

Unbinding (Desassociar)

Desassocia um nome a um endereço liberando este endereço

para que o mesmo possa ser associado a outro nome.

Mapeamento de NomesMapeamento de Nomes

Page 8: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 8

Mecanismo básico de interação em sistemas distribuídos:

Endereçamento;

Protocolo de comunicação;

Formato das mensagens; e

Confiabilidade.

Troca de mensagensTroca de mensagens

Page 9: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 9

Troca de mensagensTroca de mensagens

Page 10: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 10

Os principais serviços disponibilizados por uma plataforma de grupos são:

Filiação:

Visões:

Propriedades

Exatidão

Consistência

Multicast:

Confiabilidade

Ordenação

Comunicação em grupoComunicação em grupo

Page 11: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 11

Multicasting – tipo de comunicação que possibilita a transmissão para

um número de receptores ou nós, com um endereço em cada

mensagem para indicar o nó desejado a ser acessado.

Serviço de transporte:

Roteamento;

Tolerância a omissões;

Controle de fluxos

Ordenação;

Gerência de filiação (incluindo recuperação de falhas)

Principais componentes de um MulticastPrincipais componentes de um Multicast

Page 12: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 12

As técnicas de sincronização são importantes pois freqüentemente os

sistemas distribuídos precisam realizar tarefas que necessitam de um

comportamento sincronizado.

Em sistemas com uma única CPU, problemas tais como regiões

críticas, exclusões mútuas e outros problemas de sincronização são

geralmente resolvidos utilizando métodos tais como semáforos e

monitores.

Em sistemas distribuídos esses métodos não podem ser utilizados

pois os vários processadores não compartilham o mesmo espaço de

endereçamento.

SincroniaSincronia

Page 13: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 13

Sincronismo em sistemas distribuídos é mais complicado do que nos

sistemas centralizados pois há a necessidade de utilizar algoritmos

distribuídos.

Não é possível, ou desejável, coletar todas as informações sobre o

sistema em um único lugar e deixar que um único processo analise

as informações e tome uma decisão.

SincroniaSincronia

Page 14: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 14

Em geral, nos algoritmos distribuídos:

As informações relevantes devem estar espalhadas nas várias

máquinas;

Os processos tomam decisões baseadas somente em

informações locais;

Deve ser evitado um único ponto de falha no sistema que paralise

todo o sistema;

Caso contrário, torna o sistema não confiável

SincroniaSincronia

Page 15: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 15

Em geral, nos algoritmos distribuídos:

Não existe um “clock” comum ou um único tempo global

Obter um acordo de tempo não é um trivial em um sistema

distribuído.

Para alguns algoritmos, o que importa é a consistência interna

Relógios conhecidos como relógios lógicos

SincroniaSincronia

Page 16: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 16

Em geral, nos algoritmos distribuídos:

Outros algoritmos possuem a restrição de que os relógios devem

não somente ser os mesmos, mas também o tempo real não

pode divergir de mais de uma certa quantidade.

Relógios conhecidos como relógios físicos.

SincroniaSincronia

Page 17: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 17

Sincronia:

Envio de mensagens:

blocking (Negado) non-blocking (Não-Negado);

Iteração:

same-time (Mesmo-Tempo) different-time (Tempo-

Diferente);

hardware clock-driven (Relógio-Controlado);

limite superior para execução de ações.

SincroniaSincronia

Page 18: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 18

Primitiva bloqueante Vs não-bloqueantesPrimitiva bloqueante Vs não-bloqueantes

Page 19: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 19

Assíncrono:

sem limites de tempo para ações.

Síncrono:

ações têm limites de tempo conhecidos.

Parcialmente síncrono:

ações têm limites de tempo para acontecer, mas estes são

desconhecidos e/ou válidos somente parte do tempo.

Graus de SincroniaGraus de Sincronia

Page 20: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 20

Nos sistemas distribuídos assíncronos não existe nenhuma restrição

em relação aos atrasos de escalonamento e de transmissão de

mensagens;

Falhas arbitrárias afetam o sistema;

Resultado de impossibilidade de Fischer, Lynch e Patterson (FLP,

FLP85):

Não há como obter acordo, mesmo que só um processo falhe e

mesmo que a semântica seja crash (travamento, situação onde o

programa trava e com isso há a necessidade de religar o computador (boot));

Esse modelo assíncrono serve para alguma coisa?

Sistemas distribuídos assíncronosSistemas distribuídos assíncronos

Page 21: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 21

Principais características de um sistema distribuído síncrono:

Atrasos máximos conhecidos para escalonamento (), para

transmissão de mensagens () e drift (desvio) dos relógios locais

().

Sistemas construídos assumindo esse modelo são:

menos portáveis;

menos seguros.

Sistemas distribuídos síncronoSistemas distribuídos síncrono

Page 22: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 22

Estes tipos de sistemas apresentam algum grau de sincronismo;

Os dois tipos de sincronismos utilizados neste tipo de sistema são:

Sincronismo no tempo:

Sistemas que não são sempre assíncronos;

Sincronismo no espaço:

Sistemas que não são completamente assíncronos;

Sistemas distribuídos parcialmente assíncronosSistemas distribuídos parcialmente assíncronos

Page 23: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 23

Qual o melhor tipo de sincronismo para utilizar em um sistema

distribuído, ou melhor, qual deve ser escolhido:

Assíncrono:

Fácil de implementar, mas pouco útil.

Síncrono:

Muito poderoso, mas conflita com escala, abertura,

interatividade, bom uso dos recursos;

Utilizado em sistemas embarcados.

Qual deve ser escolhidoQual deve ser escolhido

Page 24: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 24

Qual o melhor tipo de sincronismo para utilizar em um sistema

distribuído, ou melhor, qual deve ser escolhido:

Parcialmente síncrono:

Muito usado em computação de uso geral;

Semântica tipicamente não é claramente definida.

Qual deve ser escolhidoQual deve ser escolhido

Page 25: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 25

Fundamental para que se possa raciocinar sobre sistemas

distribuídos;

Tipos de ordenação das mensagens:

Multicasts não ordenados;

Multicasts ordenados em Fifo;

Multicasts ordenados por causalidade;

Multicasts totalmente ordenados.

OrdenaçãoOrdenação

Page 26: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 26

Multicast não ordenada:

Não são dadas garantias quanto à ordem na qual as mensagens

recebidas são entregues aos diferentes processos

Ordenação de mensagensOrdenação de mensagens

Page 27: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 27

Multicast ordenada em FIFO: entre quaisquer dois processos, as

mensagens são entregues em ordem;

Camada de comunicação é forçada a entregar as mensagens que

chegam do mesmo processo na mesma ordem em que elas foram

enviadas.

Causal: se envio(m) envio(n), então

entrega(m) entrega(n)

Total: Quaisquer duas mensagens entregues a quaisquer dois

processos são entregues na mesma ordem

Fundamental para replicação ativa

Ordenação de mensagensOrdenação de mensagens

Page 28: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 28

Entrega de mensagens de modo que a potencial causalidade entre

mensagens diferentes seja preservada;

Se m1 precede uma outra mensagem m2 por causalidade,

independentemente de terem sido enviadas por processos diferentes,

camada de aplicação sempre entregará m2 após ter recebido e

entregado m1;

Utilização de relógios vetoriais.

Ordenação de mensagensOrdenação de mensagens

Page 29: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 29

Multicast confiável com entrega totalmente ordenada

Significa que as mensagens devem ser entregues na mesma

ordem a todos os membros do grupo

Entregas podem ser dos tipos não ordenada, ordenada em Fifo ou

ordenada por causalidade

Ordenação de mensagensOrdenação de mensagens

Page 30: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 30

O tempo em um sistema distribuído tem um papel crucial na

ordenação de eventos.

Os 2 principais uso do tempo em um sistemas distribuídos, são:

Gravar e observar a localização de eventos na linha do tempo.

seqüenciamento de eventos que formam um estado global

para os processos.

Forçar o futuro posicionamento de eventos na linha do tempo

Sincronização dos processos em execução.

Tempo em um sistema distribuídoTempo em um sistema distribuído

Page 31: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 31

O que é tempo real?

Função monotônicamonotônica, contínua e crescente;

O que é 1 segundo?

Várias definições:

Divisor de um dia solar

Relógios atômicos;

Tempo e relógiosTempo e relógios

Page 32: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 32

Funções monotônicas são definidas como aquelas cuja qualidade do

resultado aumenta (ou pelo menos não diminui) na medida em que o

tempo de execução da função aumenta.

Tem a forma de um laço onde cada iteração refina um pouco mais o

resultado até então obtido.

Algoritmos deste tipo podem ser encontrados nas áreas de cálculo

numérico, estimativa probabilista, pesquisa heurística e ordenação

de dados.

Função MonotônicaFunção Monotônica

Page 33: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 33

Por exemplo, algoritmos de inteligência artificial utilizados em vídeo-

game podem ser programados desta forma.

Este tipo de função faz com que o escalonador tenha que decidir

quanto tempo de processador cada parte opcional deve receber.

É a forma de programação que fornece maior flexibilidade ao

escalonador, pois qualquer tempo extra de processador que a função

recebe melhora o resultado.

Função MonotônicaFunção Monotônica

Page 34: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 34

A linha do tempo

Timestamps (Uma hora é uma seqüência de caracteres,

indicando a data e / ou tempo em que um determinado evento

ocorreu. No do Unix? É a contagem, em segundos, desde o dia 1

de janeiro de 1970 00:00:00 GMT);

Duração de intervalos;

Timers e relógios.

Tempo e relógiosTempo e relógios

Page 35: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 35

GMT: Greenwich Mean Time;

BIH: Bureau Internacional de l’Heure;

TAI: International Atomic Time;

UTC: Universal Coordinated Time;

NIST: National Institute of Standard Time;

WWV: estação de rádio de ondas curtas;

GEOS: Geostationary Environment Operational Satellite

Relógio físicoRelógio físico

Page 36: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 36

O hardware (rf) implementa uma função monotônica discreta e

crescente que mapeia o tempo real t em um tempo de relógio rf(t)

Imperfeições de relógios físicos:

Granularidade (g)

Taxa de desvio (r)

Relógios locais físicosRelógios locais físicos

Page 37: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 37

Granularidade:

Relógios físicos avançam em ticks (tk)

g = rf(tk+1) – rf(tk)

Taxa de desvio:

Dependendo da qualidade do relógio e das condições do

ambiente (ex. temperatura)

0 ≤ 1-r ≤ (rf(ttk+1) – rf(ttk))/g ≤ 1+r para 0 ≤ ttk ≤ ttk+1

Propriedade de um relógio físicoPropriedade de um relógio físico

Page 38: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 38

Prover timestamps para eventos locais;

Medir durações locais;

Definir timeouts (tempo de espera);

Medir durações de atraso round-trip (Curva-erro);

Para que serve um relógio local?Para que serve um relógio local?

Page 39: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 39

Um relógio global é construído por meio da sincronização de

relógios locais:

Cada processo p cria um relógio virtual (rvp) a partir do seu

relógio local (rfp);

Os relógios virtuais são criados de forma a estarem

sincronizados;

São resincronizados de tempos em tempos de modo que

possam manter a consistência. Esta tarefa é realizada pelo

sistema distribuído.

Relógios globaisRelógios globais

Page 40: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 40

Convergência (d): quão próximo os relógios estão sincronizados logo

após uma resincronização;

Precisão (p): quão próximos os relógios se mantêm sincronizados

entre si em qualquer tempo (sincronização interna dos relógio

locais);

Exatidão (a): quão próximos os relógios estão sincronizados em

relação a uma linha de tempo absoluta de referência (sincronização

externa);

Taxa (r): é a taxa instantânea de desvio.

Propriedades de um relógio globalPropriedades de um relógio global

Page 41: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 41

Sistemas envolvendo múltiplos processos são programados mais

facilmente utilizando regiões críticas;

Quando um processo deve ler ou atualizar estruturas de dados

compartilhadas, ele tenta primeiro garantir a exclusão mútua para

acesso à região crítica;

Em um sistema centralizado, isso é facilmente conseguido por meio

de semáforos ou monitores;

Em sistemas distribuídos impor a exclusão mútua exige um cuidado

maior.

Exclusão mútuaExclusão mútua

Page 42: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 42

Semáforo S: variável não-negativa inteira que só pode se modificada

pelos procedimentos up() (em atividade) e down() (inativo)

down(S)

se S > 0: decremente S

senão: bloqueia esperando up(S)

up(S)

se há alguém bloqueado: desbloqueie

senão: incremente S

Exclusão mútuaExclusão mútua

Page 43: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 43

A exclusão mútua trabalha com técnicas distintas:

Técnica centralizada;

Técnica totalmente distribuída;

Técnica Token Ring.

Exclusão mútuaExclusão mútua

Page 44: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 44

Técnica centralizada:

Um processo é eleito como coordenador;

Quando um processo precisa entrar numa região crítica, este

envia uma mensagem request ao coordenador informando qual a

região crítica e requisitando a permissão;

Se nenhum outro processo está na região crítica, o coordenador

envia uma mensagem reply garantindo permissão;

Quando uma mensagem resposta chega, o processo entra na

região crítica.

Exclusão mútuaExclusão mútua

Page 45: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 45

Técnica totalmente distribuída:

Um processo é eleito como coordenador;

O algoritmo centralizado tem o problema de uma falha no

coordenador inviabilizar o mecanismo;

No algoritmo distribuído, quando um processo entra na região

crítica, ele constrói uma mensagem contendo o nome da região

crítica, o número do processo e o tempo corrente e envia essa

mensagem para todos os processos, inclusive ele próprio;

Exclusão mútuaExclusão mútua

Page 46: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 46

Técnica totalmente distribuída:

Quando um processo recebe uma mensagem de requisição de

outro processo:

Se o receptor não está na região crítica e não quer entrar, ele

envia de volta uma mensagem de OK;

Se o receptor já está na região crítica, ele não responde e

coloca a requisição na fila;

Exclusão mútuaExclusão mútua

Page 47: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 47

Técnica totalmente distribuída:

Se o receptor quer entrar na região crítica mas ainda não

conseguiu, ele compara o tempo da mensagem (timestamp)

que chegou com o timestamp da mensagem que ele enviou.

A que tiver timestamp menor vence;

Se a mensagem que chegou é menor, o receptor envia

uma mensagem OK para o processo emissor;

Se a sua mensagem é a que possui o timestamp menor,

o receptor coloca na fila a mensagem request e não

responde ao emissor

Exclusão mútuaExclusão mútua

Page 48: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 48

Técnica Token Ring:

Neste algoritmo, é construído um anel lógico por software no qual

a cada processo é atribuído uma posição no anel;

Quando o anel é inicializado, o processo 0 ganha o token, o qual

circula no anel (passa do processo k para o processo k + 1);

Quando o processo ganha o token ele verifica se ele quer entrar

na região, realiza seu trabalho e, ao deixar a região, passa o

token para o elemento seguinte do anel;

Não é permitido entrar numa segunda região crítica com o

mesmo token;

Exclusão mútuaExclusão mútua

Page 49: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 49

Técnica Token Ring:

Se o processo não quer entrar na região crítica, ele simplesmente

passa o token;

Como conseqüência, quando nenhum processo quer entrar na

região crítica, o token fica circulando no anel;

Exclusão mútuaExclusão mútua

Page 50: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 50

Problemas:

Se o token é perdido ele precisa ser regenerado.

A detecção de um token perdido é difícil;

Se um processo falha também ocorrem problemas e a solução é

fazer com que o processo que recebe o token confirme o

recebimento.

O processo que falhou pode ser retirado do anel e o token enviado

para o processo seguinte.

Este procedimento requer que todos os processo saibam da

configuração do anel.

Exclusão mútuaExclusão mútua

Page 51: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 51

Necessário para coordenar processos e evitar “colisões”;

Servidor de lock:

Interessados em entrar na região crítica mandam mensagem

LOCK para o servidor;

O servidor só responde com LOCK-GRANTED para um processo;

Processo envia UNLOCK ao sair da região.

Servidor é ponto único de falhas e possível gargalo de performance;

Falha no cliente também é problema.

Exclusão mútua via servidor de LockExclusão mútua via servidor de Lock

Page 52: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 52

O que é um DeadLock?O que é um DeadLock?

É uma falha e não um erro.É uma falha e não um erro.

Falha: possibilita a recuperação do sistema e recuperação de Falha: possibilita a recuperação do sistema e recuperação de

seu estado anterior;seu estado anterior;

Erro: gera uma parada no sistema impossibilitando muitas Erro: gera uma parada no sistema impossibilitando muitas

vezes sua recuperação;vezes sua recuperação;

Ocorre quando mais de um usuário alteram o mesmo registro ao Ocorre quando mais de um usuário alteram o mesmo registro ao

mesmo tempo.mesmo tempo.

DeadlockDeadlock

Page 53: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 53

Um Deadlock ocorre quando um processo fica esperando por outro;Um Deadlock ocorre quando um processo fica esperando por outro;

Para resolver problemas com Deadlock é necessário ter:Para resolver problemas com Deadlock é necessário ter:

Exclusão mútua, espera circular, obtém-e-espera, não-Exclusão mútua, espera circular, obtém-e-espera, não-

preempção, etc;preempção, etc;

Tudo o que se conhece sobre Deadlock em sistemas concorrentes Tudo o que se conhece sobre Deadlock em sistemas concorrentes

vale para sistemas distribuídos, com a complicação de que não se vale para sistemas distribuídos, com a complicação de que não se

tem uma visão global do sistema.tem uma visão global do sistema.

DeadlockDeadlock

Page 54: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 54

Como garantir que alguma propriedade sistêmica do sistema é

válida? Ou seja, como garantir que (ou checar se) a execução do

sistema é consistente e apresenta os resultados esperados?

Para checar, pode-se parar o sistema e montar um estado global:

Isto é um processo dispendioso;

Protocolos de snapshot (versões de teste - cópia) distribuído são

uma solução bem mais eficiente para o problema.

ConsistênciaConsistência

Page 55: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 55

Um conjunto de participantes é denominado Visão;

É fundamental que cada mensagem seja entregue a todos os seus

destinatários na mesma visão;

Muitas vezes é importante saber quais processos constituem o

sistema como um todo;

Por exemplo, rank e size viabilizam a computação determinística

de uma propriedade por todos os processos;

Acordo sobre participantesAcordo sobre participantes

Page 56: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 56

Como aumentar a nossa intuição para resolver problemas?

Por meio da utilização de modelos que possibilitam escolher a melhor

forma de implementação de um sistema distribuído;

Os dois principais modelos utilizados são:

Experimentação

Modelagem e análise

Modelos para sistemas distribuídosModelos para sistemas distribuídos

Page 57: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 57

Experimentação

Abordagem prática baseada no acúmulo de informação;

Pode ser usada para construir coisas similares a outras já

construídas.

A experimentação direta pode ser muito cara e algumas vezes

impraticável ou mesmo consumir muito recurso.

Modelos para sistemas distribuídosModelos para sistemas distribuídos

Page 58: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 58

Modelagem e análise

Abordagem teórica baseada na simplificação do objeto de estudo

(“mundo real”);

Seguida de análise - matemática ou lógica - para inferir

propriedades básicas do sistema e possibilitar atingir os

resultados esperados.

Modelos para sistemas distribuídosModelos para sistemas distribuídos

Page 59: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 59

A modelagem oferece um controle muito maior sobre o sistema a ser

construído, já que esta se baseia em modelo matemáticos;

A modelagem só é útil se o modelo caracteriza o objeto de estudo de

forma apropriada;

A experimentação é muito importante para validar modelos.

Modelagem Vs ExperimentaçãoModelagem Vs Experimentação

Page 60: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 60

Para que um modelo possa ser considerado bom é preciso observar

as seguintes características:

Preciso:

A análise do modelo deve levar a conclusões verdadeiras

sobre o objeto de estudo.

Como identificar um bom modeloComo identificar um bom modelo

Page 61: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 61

Para que um modelo possa ser considerado bom é preciso observar

as seguintes características:

Tratável:

Um modelo que não permite a execução de uma análise é

inútil;

Em um modelo tratável, as regras que governam o

comportamento dos atributos do modelo são normalmente

definidas através de fórmulas matemáticas ou lógicas

Como identificar um bom modeloComo identificar um bom modelo

Page 62: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 62

A simulação é considerada uma alternativa à experimentação pois

possibilita que sejam obtidos resultado muito próximos dos resultado

de um sistema real sem a necessidade de arcar com o custo de

construí-lo e observar assim se este será viável ou não para

construção;

SimulaçãoSimulação

Page 63: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 63

A simulação também é considerada uma alternativa à modelagem

pois possibilita analisar situações que não podem ser modeladas de

forma tratável/representativa tradicionalmente.

SimulaçãoSimulação

Page 64: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 64

Viabilidade:

Que classes de problemas podem ser resolvidos utilizando este

modelo;

Se será viável a construção do sistema distribuído com base no

modelo proposto.

Custo:

Para as classes que podem ser resolvidas, quão cara (em termos

de recursos, tempo de processamento, etc.) uma solução será;

Ambas as respostas têm valor prático e teórico;

Quais respostas um bom modelo pode disponibilizarQuais respostas um bom modelo pode disponibilizar

Page 65: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 65

Os atributos mais importantes em um sistema distribuído são:

Sincronismo entre os processos:

Sistemas Síncronos

Sistemas Assíncronos;

Atributos importantes de um sistema distribuídoAtributos importantes de um sistema distribuído

Page 66: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 66

Os atributos mais importantes em um sistema distribuído são:

Semântica de falha dos componentes:

Parada (failstop);

Crash (falha de um componente ou erro em um programa

durante sua execução);

Omissão;

Desempenho;

Arbitrária;

Restrições obtidas por meio de autenticação.

Atributos importantes de um sistema distribuídoAtributos importantes de um sistema distribuído

Page 67: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 67

Uma outra abordagem é definir o sincronismo extra necessário em

termos de propriedades que precisam ser satisfeitas em um sistema

distribuído, por exemplo;

Classes de detectores

Abrangência: que falhas são ou podem ser detectadas pelo

sistema distribuído;

Exatidão: que erros podem acontecer durante o processo de

execução de um sistema distribuído.

Detectores de falhas não confiáveisDetectores de falhas não confiáveis

Page 68: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 68

Uma outra abordagem é definir o sincronismo extra necessário em

termos de propriedades que precisam ser satisfeitas em um sistema

distribuído, por exemplo;

Sincronismo no tempo

Global Stabilization Time

Sincronismo no espaço

Wormholes (tradução livre – buraco de verme: é um atalho

hipotético que liga duas regiões no espaço tempo).

Detectores de falhas não confiáveisDetectores de falhas não confiáveis

Page 69: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 69

Para a escolha de um modelo a ser utilizado é preciso:

Observar as características do ambiente de execução do sistema

distribuído, como por exemplo:

Tipos dos componentes a serem utilizados para sua

construção;

Qualidade dos componentes utilizados;

Controle sobre o ambiente em que o sistema distribuído será

construído.

Como escolher um modeloComo escolher um modelo

Page 70: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 70

Para a escolha de um modelo a ser utilizado é preciso:

Requisitos da aplicação a ser construída:

Aplicações críticas.

Usar uma coleção de modelos:

Processadores com semântica de falha controlada;

Canais confiáveis.

Como escolher um modeloComo escolher um modelo

Page 71: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 71

Estratégias:

Recuperação do erro: O sistema deve possuir mecanismos que

garantam o avanço ou recuo no estado do sistema para um

estado consistente;

Compensação: O sistema deve atuar em outros componentes

para equilibrar o estado do sistema de modo a funcionar

normalmente.

Estratégias e políticasEstratégias e políticas

Page 72: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 72

Políticas:

Transações atómicas distribuídas;

Replicação ativa/passiva.

Estratégias e políticasEstratégias e políticas

Page 73: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 73

Ativa: Ativa: todos os componentes funcionam e quando algum falta os todos os componentes funcionam e quando algum falta os

outros devem substituir este componente de maneira que o sistema outros devem substituir este componente de maneira que o sistema

como um todo não seja penalizado.como um todo não seja penalizado.

ReplicaçãoReplicação

Page 74: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 74

Passiva:Passiva: neste modelo exsite um componente principal e secundário neste modelo exsite um componente principal e secundário

que imita o principal, na falta do componente principal o secundário que imita o principal, na falta do componente principal o secundário

assume o seu papel possibilitando a continuidade dos serviços do assume o seu papel possibilitando a continuidade dos serviços do

sistema.sistema.

ReplicaçãoReplicação

Page 75: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 75

Passiva:Passiva:

Propriedades básicas:Propriedades básicas:

1 e somente um servidor principal (denominado como 1 e somente um servidor principal (denominado como

Master);Master);

Qualquer cliente apenas conhece a identidade de um único Qualquer cliente apenas conhece a identidade de um único

servidor (Master);servidor (Master);

1 servidor não primário quando recebe mensagens de 1 servidor não primário quando recebe mensagens de

clientes ignora as solicitações realizadas.clientes ignora as solicitações realizadas.

ReplicaçãoReplicação

Page 76: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 76

Passiva:Passiva: neste modelo exsite um componente principal e secundário neste modelo exsite um componente principal e secundário

que imita o principal, na falta do componente principal o secundário que imita o principal, na falta do componente principal o secundário

assume o seu papel possibilitando a continuidade dos serviços do assume o seu papel possibilitando a continuidade dos serviços do

sistema.sistema.

ReplicaçãoReplicação

Page 77: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 77

Passiva:Passiva:

Principais problemas:Principais problemas:

Detectar quando o servidor primério parou;Detectar quando o servidor primério parou;

Garantir a coerência do estado do servidor secundário com o Garantir a coerência do estado do servidor secundário com o

servidor primério.servidor primério.

ReplicaçãoReplicação

Page 78: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 78

Garantir que aplicações que manipulam estruturas de dados

persistentes tenham:

A possibilidade de recuperação de estados errados – em caso de

falhas graves;

A sincronizam das suas ações de forma consistente com outras

transações que utilizam os mesmos dados;

Transações - objetivosTransações - objetivos

Page 79: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 79

Atomicidade - uma transação ou se executa na sua totalidade ou não

se executa;

Consistência - cada transação deve, a partir de um estado inicial

válido e caso se execute completamente, atingir um novo estado

válido para continuar seu processo de execução;

Transações - propriedadesTransações - propriedades

Page 80: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 80

Seriabilidade (Isolation) - se diversas transações se executarem em

paralelo sobre os mesmos objetos, o resultado é como se as

transações se executassem em série numa determinada ordem;

Persistência (Durability) - os resultados de uma transação confirmada

permanecem depois desta acabar e podem sobreviver ao conjunto de

falhas dos mecanismos de armazenamento de maneira que possam

recuperar seu estado em caso de falhas.

Transações - propriedadesTransações - propriedades

Page 81: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 81

Localização - dados sobre os quais a transação se realiza estão

todos no mesmo local físico (servidor principal) ou repartidas por

vários sistemas possibilitando em caso de falhas a recuperação

destas informações;

Duração - transações destinadas a atualizações interativas (on-line) e

aquelas que irão ser executadas sobre grandes volumes de

informação, de forma não interativa (off-line);

Estrutura - a uma transação apenas pode corresponder a um único

fio de execução ou existirem múltiplos fluxos de execução no interior

de uma transação.

Transações - classificaçãoTransações - classificação

Page 82: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 82

Aborto explícito da transação:

Explicitamente desencadeada pelo programa em caso de falhas

graves no sistema;

Falha de paragem do sistema:

Perdeu-se o conteúdo da memória volátil impossibilitando o

progresso no processo de execução.

Transações – Topologia de falhasTransações – Topologia de falhas

Page 83: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 83

Falha nos sistemas de armazenamento persistente:

É necessário implementar uma memória estável que garanta a

redundância da informação e que permita recuperar a que tenha

sido eventualmente destruída.

Falha na comunicação:

normalmente considera-se que são faltas temporárias e que é

possível recuperá-las, repetindo as mensagens;

partição física da rede, resultante de uma máquina, encaminhador

ou linha falharem e isolarem duas partes da rede.

Transações – Topologia de falhasTransações – Topologia de falhas

Page 84: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 84

Necessidade de sincronização das operações de leitura e escrita

deriva da propriedade de isolamento entre os componentes

participantes no sistema distribuído;

É necessário controlar a forma como os valores das variáveis são

vistas em outras transações, pois estas não poderão acender a

valores parciais, uma vez que a transação pode ainda abortar a

operação;

Transações – SincronizaçãoTransações – Sincronização

Page 85: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 85

A sincronização do acesso a variáveis partilhadas é o problema

clássico de sincronização dos leitores/escritores em sistemas

distribuídos;

A execução de um conjunto de transações pode ser descrita por meio

de uma história que explicite a ordem relativa de execução das

operações das transações.

Transações – SincronizaçãoTransações – Sincronização

Page 86: Sistemas Distribuídos Introdução a Sistemas Distribuídos 30/8/2015vladimir.professor@gmail.com1 São Paulo, 2011 Universidade Paulista (UNIP) Conceitos

Sistemas DistribuídosSistemas DistribuídosIn

trodu

ção

a S

iste

mas

Dis

tribu

ídos

Intro

duçã

o a

Sis

tem

as D

istri

buíd

os

27/04/23 [email protected] 86

São Paulo, 2011São Paulo, 2011

Universidade Paulista (UNIP)Universidade Paulista (UNIP)

Conceitos Fundamentais e Convenções de Conceitos Fundamentais e Convenções de NotaçãoNotação

Prof. MSc. Vladimir CameloProf. MSc. Vladimir [email protected]