18
1 Algoritmos Algoritmos Distribuídos Distribuídos Segurança de Funcionamento Segurança de Funcionamento Comunicação de Grupo Comunicação de Grupo Coordenação e Acordo Coordenação e Acordo Sincronização Sincronização INE 5418 INE 5418 Segurança de Segurança de Funcionamento Funcionamento Conceitos Conceitos Tipos de Faltas Tipos de Faltas Replicação Replicação Detecção de Falhas Detecção de Falhas Recuperação de Falhas Recuperação de Falhas 2 INE 5418 INE 5418 Conceitos Conceitos Segurança de Funcionamento Segurança de Funcionamento Representa a confiança depositada em um Representa a confiança depositada em um determinado sistema em relação ao seu correto determinado sistema em relação ao seu correto funcionamento funcionamento Um sistema é dito confiável se ele possui uma Um sistema é dito confiável se ele possui uma grande probabilidade de se comportar da grande probabilidade de se comportar da maneira esperada maneira esperada A segurança de funcionamento é um A segurança de funcionamento é um importante requisito de Qualidade de Serviço importante requisito de Qualidade de Serviço (QoS QoS) em sistemas computacionais críticos ) em sistemas computacionais críticos 3 Conceitos Conceitos Estados de um Sistema: Estados de um Sistema: Sistema próprio: serviço é fornecido pelo Sistema próprio: serviço é fornecido pelo sistema como foi especificado sistema como foi especificado Sistema interrompido ou impróprio: serviço Sistema interrompido ou impróprio: serviço não é fornecido conforme especificado não é fornecido conforme especificado Sistema Interrompido Sistema Próprio Sistema Impróprio Falha catastrófica Falha catastrófica Falha benigna Restauração Conceitos Conceitos A segurança de funcionamento de um A segurança de funcionamento de um sistema é medida pelos seguintes fatores: sistema é medida pelos seguintes fatores: Confiabilidade ( Confiabilidade (Reliability Reliability): tempo de ): tempo de funcio funcio- namento namento contínuo (sem falhas) do sistema contínuo (sem falhas) do sistema Manutenibilidade Manutenibilidade (Maintainability Maintainability): tempo ): tempo gasto para restaurar o sistema após uma falha gasto para restaurar o sistema após uma falha Disponibilidade ( Disponibilidade (Availability Availability): tempo de ): tempo de funcionamento em relação ao tempo de falha funcionamento em relação ao tempo de falha Seguridade ( Seguridade (Safety Safety): prejuízo causado pela ): prejuízo causado pela falha do sistema falha do sistema 5 Conceitos Conceitos Confiabilidade pode ser representada por: Confiabilidade pode ser representada por: Tempo Médio Para a Falha (MTTF): indica o Tempo Médio Para a Falha (MTTF): indica o tempo médio que o sistema leva para falhar tempo médio que o sistema leva para falhar Ex.: X horas ou dias de funcionamento Ex.: X horas ou dias de funcionamento Quanto maior, melhor Quanto maior, melhor Tempo Médio Entre Falhas (MTBF): representa Tempo Médio Entre Falhas (MTBF): representa o tempo entre duas falhas sucessivas o tempo entre duas falhas sucessivas Ex.: Y horas ou dias entre falhas Ex.: Y horas ou dias entre falhas Quanto maior, melhor Quanto maior, melhor Probabilidade (taxa) de Falha Probabilidade (taxa) de Falha Ex.: 10 Ex.: 10 -Z Z falhas/hora ou falhas/dia falhas/hora ou falhas/dia Quanto maior o expoente, melhor Quanto maior o expoente, melhor 6

INE 5418 Algoritmos Segurança de Distribuídos Funcionamentofrank/INE5418/3.Algoritmos-Folhetos.pdf · 3 Conceitos Falhas em Cascata A falha de um componente pode ocasionar a falha

Embed Size (px)

Citation preview

Page 1: INE 5418 Algoritmos Segurança de Distribuídos Funcionamentofrank/INE5418/3.Algoritmos-Folhetos.pdf · 3 Conceitos Falhas em Cascata A falha de um componente pode ocasionar a falha

1

Algoritmos Algoritmos DistribuídosDistribuídos

�� Segurança de FuncionamentoSegurança de Funcionamento�� Comunicação de GrupoComunicação de Grupo�� Coordenação e AcordoCoordenação e Acordo�� SincronizaçãoSincronização

INE 5418INE 5418

Segurança de Segurança de FuncionamentoFuncionamento

�� ConceitosConceitos�� Tipos de FaltasTipos de Faltas�� ReplicaçãoReplicação�� Detecção de FalhasDetecção de Falhas�� Recuperação de FalhasRecuperação de Falhas

2

INE 5418INE 5418

ConceitosConceitos

�� Segurança de FuncionamentoSegurança de Funcionamento�� Representa a confiança depositada em um Representa a confiança depositada em um

determinado sistema em relação ao seu correto determinado sistema em relação ao seu correto funcionamentofuncionamento

�� Um sistema é dito confiável se ele possui uma Um sistema é dito confiável se ele possui uma grande probabilidade de se comportar da grande probabilidade de se comportar da maneira esperadamaneira esperada

�� A segurança de funcionamento é um A segurança de funcionamento é um importante requisito de Qualidade de Serviço importante requisito de Qualidade de Serviço ((QoSQoS) em sistemas computacionais críticos) em sistemas computacionais críticos

3

ConceitosConceitos

�� Estados de um Sistema:Estados de um Sistema:�� Sistema próprio: serviço é fornecido pelo Sistema próprio: serviço é fornecido pelo

sistema como foi especificado sistema como foi especificado �� Sistema interrompido ou impróprio: serviço Sistema interrompido ou impróprio: serviço

não é fornecido conforme especificadonão é fornecido conforme especificado

SistemaInterrompido

Sistema Próprio

SistemaImpróprio

Falha catastrófica

Falha catastrófica

Falha benigna

Restauração

ConceitosConceitos

�� A segurança de funcionamento de um A segurança de funcionamento de um sistema é medida pelos seguintes fatores:sistema é medida pelos seguintes fatores:�� Confiabilidade (Confiabilidade (ReliabilityReliability): tempo de ): tempo de funciofuncio--

namentonamento contínuo (sem falhas) do sistemacontínuo (sem falhas) do sistema�� ManutenibilidadeManutenibilidade ((MaintainabilityMaintainability): tempo ): tempo

gasto para restaurar o sistema após uma falhagasto para restaurar o sistema após uma falha�� Disponibilidade (Disponibilidade (AvailabilityAvailability): tempo de ): tempo de

funcionamento em relação ao tempo de falhafuncionamento em relação ao tempo de falha�� Seguridade (Seguridade (SafetySafety): prejuízo causado pela ): prejuízo causado pela

falha do sistemafalha do sistema5

ConceitosConceitos

�� Confiabilidade pode ser representada por:Confiabilidade pode ser representada por:�� Tempo Médio Para a Falha (MTTF): indica o Tempo Médio Para a Falha (MTTF): indica o

tempo médio que o sistema leva para falhartempo médio que o sistema leva para falhar��Ex.: X horas ou dias de funcionamentoEx.: X horas ou dias de funcionamento��Quanto maior, melhorQuanto maior, melhor

�� Tempo Médio Entre Falhas (MTBF): representa Tempo Médio Entre Falhas (MTBF): representa o tempo entre duas falhas sucessivaso tempo entre duas falhas sucessivas��Ex.: Y horas ou dias entre falhasEx.: Y horas ou dias entre falhas��Quanto maior, melhorQuanto maior, melhor

�� Probabilidade (taxa) de FalhaProbabilidade (taxa) de Falha��Ex.: 10Ex.: 10--Z Z falhas/hora ou falhas/diafalhas/hora ou falhas/dia��Quanto maior o expoente, melhorQuanto maior o expoente, melhor 6

Page 2: INE 5418 Algoritmos Segurança de Distribuídos Funcionamentofrank/INE5418/3.Algoritmos-Folhetos.pdf · 3 Conceitos Falhas em Cascata A falha de um componente pode ocasionar a falha

2

ConceitosConceitos

�� Manutenibilidade é representada por:Manutenibilidade é representada por:�� Tempo Médio Para Reparo (MTTR): indica o Tempo Médio Para Reparo (MTTR): indica o

tempo necessário para que o sistema volte a tempo necessário para que o sistema volte a funcionar corretamentefuncionar corretamente��Ex.: X segundos, minutos ou horas para o Ex.: X segundos, minutos ou horas para o

sistema voltar a funcionar corretamentesistema voltar a funcionar corretamente��Quanto menor, melhorQuanto menor, melhor

7

ConceitosConceitos

�� Disponibilidade é representada por:Disponibilidade é representada por:�� Grau de disponibilidade:Grau de disponibilidade:

MTBFMTBFMTBF + MTTRMTBF + MTTR

��Ex.: sistema disponível por 99.9% do tempoEx.: sistema disponível por 99.9% do tempo��Quanto maior, melhorQuanto maior, melhor

8

DisponibilidadeDisponibilidade Tempo de parada / anoTempo de parada / ano90%90%99%99%

99.9%99.9%99.99%99.99%

99.999%99.999%99.9999%99.9999%

~ 1 mês~ 1 mês~ 4 dias~ 4 dias

~ 9 horas~ 9 horas~ 1 hora~ 1 hora

~ 5 minutos~ 5 minutos~ 30 segundos~ 30 segundos

ConceitosConceitos

�� Seguridade é representada por:Seguridade é representada por:�� Grau de Seguridade: probabilidade do sistema Grau de Seguridade: probabilidade do sistema

ser recuperável (de não se tornar impróprio) ser recuperável (de não se tornar impróprio) em caso de falha, ou seja, a chance de uma em caso de falha, ou seja, a chance de uma falha não ser catastróficafalha não ser catastrófica

Falhas Benignas Falhas Benignas Falhas Benignas + CatastróficasFalhas Benignas + Catastróficas

��Ex.: sistema recuperável em 98% das Ex.: sistema recuperável em 98% das falhasfalhas

��Quanto maior, melhorQuanto maior, melhor

ConceitosConceitos

�� Falta, Erro Falta, Erro ee FalhaFalha�� Faltas são defeitos que ocorrem em sistemasFaltas são defeitos que ocorrem em sistemas

��Originadas por fatores internos ou externosOriginadas por fatores internos ou externos��Podem ficar dormentes até serem notadasPodem ficar dormentes até serem notadas

�� Erros são resultantes de faltas no sistemaErros são resultantes de faltas no sistema��Ocorrem quando faltas impedem o Ocorrem quando faltas impedem o

funcionamento normal do sistemafuncionamento normal do sistema��Diferentes faltas podem causar o mesmo erroDiferentes faltas podem causar o mesmo erro

�� Falhas podem ocorrer devido a erros no sistemaFalhas podem ocorrer devido a erros no sistema��A falha é o efeito observável do erroA falha é o efeito observável do erro��Diversos erros podem levar à mesma falhaDiversos erros podem levar à mesma falha

10

ConceitoConceito

�� Falta, Erro e FalhaFalta, Erro e Falha�� Exemplo: HDExemplo: HD

��Um setor do disco Um setor do disco pode estar com defeito (falta)pode estar com defeito (falta)

��Um erro de I/O pode ocorrer se um Um erro de I/O pode ocorrer se um programa tentar ler ou escrever neste setor programa tentar ler ou escrever neste setor

��Pode ocorrer uma falha em um sistema que Pode ocorrer uma falha em um sistema que tente acessar este setor e não consigatente acessar este setor e não consiga

��Se os dados gravados neste setor estiverem Se os dados gravados neste setor estiverem replicados em outro local, o sistema pode replicados em outro local, o sistema pode tolerar a falta e não apresentar falhatolerar a falta e não apresentar falha

11

SistemaSistema

ComponenteComponente

ComponenteComponente

ConceitosConceitos

�� Falhas em CascataFalhas em Cascata

ErroErro

FaltaFaltaFalhaFalha

ErroErro

FaltaFaltaFalhaFalha

ErroErro

FaltaFaltaFalhaFalha

12

Page 3: INE 5418 Algoritmos Segurança de Distribuídos Funcionamentofrank/INE5418/3.Algoritmos-Folhetos.pdf · 3 Conceitos Falhas em Cascata A falha de um componente pode ocasionar a falha

3

ConceitosConceitos

�� Falhas em CascataFalhas em Cascata�� A falha de um componente pode ocasionar a A falha de um componente pode ocasionar a

falha de outro que necessita dos serviços do falha de outro que necessita dos serviços do primeiro, e assim sucessivamente, podendo primeiro, e assim sucessivamente, podendo levar o sistema como um todo a falharlevar o sistema como um todo a falhar��Exemplo: Exemplo:

��Uma falta no disco pode causar uma Uma falta no disco pode causar uma falha no sistema de arquivosfalha no sistema de arquivos

��Os servidores Web e de eOs servidores Web e de e--mail, que mail, que usam o sist. de arquivos, podem falharusam o sist. de arquivos, podem falhar

��Uma aplicação Web de comércio Uma aplicação Web de comércio eletrônico pode também falhareletrônico pode também falhar

13

ConceitosConceitos

�� Previsão de FaltasPrevisão de Faltas�� Estima a probabilidade de que faltas ocorramEstima a probabilidade de que faltas ocorram�� Permite que se avalie os riscos de falhaPermite que se avalie os riscos de falha

�� Remoção de FaltasRemoção de Faltas�� Consiste em detectar e remover as faltas antes Consiste em detectar e remover as faltas antes

que causem erros e falhasque causem erros e falhas�� Usar ferramentas como debugger, scandisk, ...Usar ferramentas como debugger, scandisk, ...

�� Prevenção de FaltasPrevenção de Faltas�� Elimina as condições que fazem com que faltas Elimina as condições que fazem com que faltas

ocorram durante a operação do sistemaocorram durante a operação do sistema�� Usa replicação interna, técnicas de validação, ...Usa replicação interna, técnicas de validação, ...

14

SistemaSistema

ComponenteComponente

ComponenteComponente

ConceitosConceitos

�� Tolerância a FaltasTolerância a Faltas

ErroErro

FaltaFaltaFalhaFalha

ErroErro

FaltaFaltaFalhaFalha

15

Uma barreira Uma barreira impede que a impede que a

falha se propaguefalha se propague

ConceitosConceitos

�� Tolerância a Faltas Tolerância a Faltas �� Propriedade de sistemas que não falham Propriedade de sistemas que não falham

necessariamente ao se deparar com uma faltanecessariamente ao se deparar com uma falta

�� Sistemas Tolerantes a Faltas Sistemas Tolerantes a Faltas �� São sistemas capazes de tolerar faltas São sistemas capazes de tolerar faltas

encontradas durante a sua execuçãoencontradas durante a sua execução

�� Técnicas de Tolerância a FaltasTécnicas de Tolerância a Faltas�� Permitem prevenir falhas contornando as faltas Permitem prevenir falhas contornando as faltas

que os sistemas podem vir a apresentarque os sistemas podem vir a apresentar

16

Tipos de FaltasTipos de Faltas

�� Classificação em relação à sua origem:Classificação em relação à sua origem:�� Física: causada pelo hardwareFísica: causada pelo hardware�� De projeto: introduzida durante a fase de De projeto: introduzida durante a fase de

projeto do sistemaprojeto do sistema�� De interação: ocorrida nas interfaces entre De interação: ocorrida nas interfaces entre

componentes do sistema ou na interação com componentes do sistema ou na interação com o mundo exterioro mundo exterior

�� Classificação em relação à sua natureza:Classificação em relação à sua natureza:�� Acidental ou IntencionalAcidental ou Intencional�� Maliciosa ou NãoMaliciosa ou Não

17

Tipos de FaltasTipos de Faltas

�� Classificação em relação ao seu surgimento:Classificação em relação ao seu surgimento:�� Na fase de desenvolvimento do sistemaNa fase de desenvolvimento do sistema�� Na fase de operação do sistemaNa fase de operação do sistema

�� Classificação em relação à sua localização:Classificação em relação à sua localização:�� InternaInterna�� Externa Externa

�� Classificação em relação à persistência:Classificação em relação à persistência:�� TemporáriaTemporária

��Transiente ou IntermitenteTransiente ou Intermitente�� PermanentePermanente

18

Page 4: INE 5418 Algoritmos Segurança de Distribuídos Funcionamentofrank/INE5418/3.Algoritmos-Folhetos.pdf · 3 Conceitos Falhas em Cascata A falha de um componente pode ocasionar a falha

4

Tipos de FaltasTipos de Faltas

�� Classificação com base no modelo de faltas:Classificação com base no modelo de faltas:�� Faltas OmissivasFaltas Omissivas

��Crash: deixa de funcionar permanentementeCrash: deixa de funcionar permanentemente��Omissão: sistema deixou de fazer o que Omissão: sistema deixou de fazer o que

deveria em um determinado instante deveria em um determinado instante ��Temporal: sistema atrasouTemporal: sistema atrasou--se para executar se para executar

uma determinada açãouma determinada ação�� Faltas AssertivasFaltas Assertivas

��Sintática: formato da saída é inadequadoSintática: formato da saída é inadequado��Semântica: saída apresenta valor incorretoSemântica: saída apresenta valor incorreto

�� Faltas Arbitrárias: omissivas + assertivasFaltas Arbitrárias: omissivas + assertivas19

Tipos de FaltasTipos de Faltas

�� Os tipos de faltas mais freqüentes são:Os tipos de faltas mais freqüentes são:�� Faltas de operação e administração: 42%Faltas de operação e administração: 42%�� Faltas de software: 25%Faltas de software: 25%�� Faltas de hardware: 18%Faltas de hardware: 18%�� Faltas de ambiente: 14%Faltas de ambiente: 14%�� Fonte: Jim Gray. Fonte: Jim Gray. Why do Computers Stop and Why do Computers Stop and

What Can Be Done About It? What Can Be Done About It? IEEE SRDS’85.IEEE SRDS’85.�� Estudos mais recentes confirmam estes dadosEstudos mais recentes confirmam estes dados

20

ReplicaçãoReplicação

�� Tolerância a faltas pode ser obtida através Tolerância a faltas pode ser obtida através do uso de recursos redundantesdo uso de recursos redundantes

�� Redundância pode ser aplicada das Redundância pode ser aplicada das seguintes maneiras:seguintes maneiras:�� Redundância Temporal: repetir uma mesma Redundância Temporal: repetir uma mesma

tarefa até que um resultado válido seja obtidotarefa até que um resultado válido seja obtido�� Redundância de Valores: replicar um dado Redundância de Valores: replicar um dado

armazenado ou enviado pela redearmazenado ou enviado pela rede�� Redundância Espacial: usar várias réplicas de Redundância Espacial: usar várias réplicas de

um componente de hardware ou softwareum componente de hardware ou software21

ReplicaçãoReplicação

�� Uso de réplicas aumenta a disponibilidadeUso de réplicas aumenta a disponibilidade�� Exemplo: se a probabilidade de perda de uma Exemplo: se a probabilidade de perda de uma

mensagem na rede é de 2% (disponibilidade mensagem na rede é de 2% (disponibilidade de 0,98), se duplicarmos todas as mensagens, de 0,98), se duplicarmos todas as mensagens, a chance de se perder as duas cópias será de a chance de se perder as duas cópias será de 0,04% (disponibilidade de 10,04% (disponibilidade de 1--0,020,0222=0,9996)=0,9996)

�� Exemplo 2: se um servidor fica indisponível Exemplo 2: se um servidor fica indisponível durante 8 horas a cada ano (disponibilidade durante 8 horas a cada ano (disponibilidade de 0,999), se criarmos 3 réplicas teremos uma de 0,999), se criarmos 3 réplicas teremos uma parada total de 3,15 segundos em um século parada total de 3,15 segundos em um século (disponibilidade de 1(disponibilidade de 1--0,0010,00133= 0,999999999)= 0,999999999)

22

ReplicaçãoReplicação

�� O acesso a serviços ou dados replicados O acesso a serviços ou dados replicados deve ser transparente para o usuáriodeve ser transparente para o usuário�� Usuário deve acessar o dado ou serviço Usuário deve acessar o dado ou serviço

replicado da mesma forma que o faria se não replicado da mesma forma que o faria se não houvesse replicaçãohouvesse replicação

�� Se for preciso manter a consistência dos Se for preciso manter a consistência dos dados replicados, este processo deve ser dados replicados, este processo deve ser efetuado automaticamente pelas réplicasefetuado automaticamente pelas réplicas

�� Mesmo que mais de uma réplica responda a Mesmo que mais de uma réplica responda a uma requisição, apenas uma resposta deve uma requisição, apenas uma resposta deve ser entregue ao usuárioser entregue ao usuário

23

ReplicaçãoReplicação

�� Técnicas de ReplicaçãoTécnicas de Replicação�� Definem como as réplicas se comportarão Definem como as réplicas se comportarão

durante o funcionamento normal do sistema e durante o funcionamento normal do sistema e sob a presença de faltassob a presença de faltas

�� Principais Técnicas de ReplicaçãoPrincipais Técnicas de Replicação�� Replicação Passiva (PrimárioReplicação Passiva (Primário--BackupBackup))�� Replicação AtivaReplicação Ativa�� Replicação SemiReplicação Semi--Ativa (Ativa (LíderLíder--SeguidoresSeguidores))�� Replicação Preguiçosa (Replicação Preguiçosa (LazyLazy ))

24

Page 5: INE 5418 Algoritmos Segurança de Distribuídos Funcionamentofrank/INE5418/3.Algoritmos-Folhetos.pdf · 3 Conceitos Falhas em Cascata A falha de um componente pode ocasionar a falha

5

ReplicaçãoReplicação

�� Replicação Passiva (PrimárioReplicação Passiva (Primário--BackupBackup))�� São criados um ou mais São criados um ou mais backupsbackups de um de um

componente (primário) com o objetivo de componente (primário) com o objetivo de substituísubstituí--lo em caso de falhalo em caso de falha

�� Funcionamento com propagação de estado Funcionamento com propagação de estado instantânea:instantânea:��Primário recebe requisições, as executa, Primário recebe requisições, as executa,

atualiza o estado dos atualiza o estado dos backupsbackups e retorna o e retorna o resultado ao clienteresultado ao cliente

25

ReplicaçãoReplicação

�� Replicação Passiva (PrimárioReplicação Passiva (Primário--BackupBackup))

Máquina 1

Primário

Máquina 2

Backup

ClienteCliente

1.Requisição1.Requisição

4. Resposta4. Resposta

3. Estado3. Estado

2.Executa2.Executa

26

ReplicaçãoReplicação

�� Replicação Passiva (PrimárioReplicação Passiva (Primário--BackupBackup))�� Em caso de falha do primário, um Em caso de falha do primário, um backupbackup será será

escolhido para assumir o seu lugarescolhido para assumir o seu lugar�� O O backupbackup escolhido terá o mesmo estado do escolhido terá o mesmo estado do

primário até a última requisição executadaprimário até a última requisição executada�� Uma requisição em execução durante a falha Uma requisição em execução durante a falha

pode ser recuperada pelo cliente reenviando a pode ser recuperada pelo cliente reenviando a requisição ao novo primáriorequisição ao novo primário

�� Atualização de estado a cada requisição causa Atualização de estado a cada requisição causa uma sobrecarga considerável no primáriouma sobrecarga considerável no primário

27

ReplicaçãoReplicação

�� Replicação Passiva (PrimárioReplicação Passiva (Primário--BackupBackup))�� Funcionamento com Funcionamento com loglog e e checkpoints checkpoints ::

��As requisições de clientes são enviadas ao As requisições de clientes são enviadas ao primário e ao(s) primário e ao(s) backup(s)backup(s)��Primário executa as requisições e Primário executa as requisições e

responde aos clientesresponde aos clientes��BackupBackup recebe as requisições mas não as recebe as requisições mas não as

executa executa –– apenas as registra em um apenas as registra em um loglog��O estado do primário é transferido para o(s) O estado do primário é transferido para o(s)

backup(s)backup(s) em instantes predeterminados em instantes predeterminados ––chamados de chamados de checkpointscheckpoints

28

ReplicaçãoReplicação

�� Replicação Passiva (PrimárioReplicação Passiva (Primário--BackupBackup))�� Funcionamento com Funcionamento com loglog e e checkpoints checkpoints (cont.):(cont.):

��O O backupbackup limpa o limpa o loglog a cada a cada checkpointcheckpoint��Em caso de falha do primário, o Em caso de falha do primário, o backupbackup

escolhido para assumir o seu lugarescolhido para assumir o seu lugar terá o terá o estado do primário no último estado do primário no último checkpointcheckpoint

��Para chegar ao mesmo estado do primário Para chegar ao mesmo estado do primário no instante da falha, o no instante da falha, o backupbackup escolhido escolhido executa as requisições registradas no executa as requisições registradas no loglog

29

ReplicaçãoReplicação

�� Replicação Passiva (PrimárioReplicação Passiva (Primário--BackupBackup))

Máquina 1

Primário

Máquina 2

Backup

ClienteCliente3.Resposta3.Resposta

1.Requisição1.Requisição

log

2.Registra2.Registra2.Executa2.Executa

30

Page 6: INE 5418 Algoritmos Segurança de Distribuídos Funcionamentofrank/INE5418/3.Algoritmos-Folhetos.pdf · 3 Conceitos Falhas em Cascata A falha de um componente pode ocasionar a falha

6

ReplicaçãoReplicação

�� Replicação Passiva (PrimárioReplicação Passiva (Primário--BackupBackup))�� Procedimento executado a cada Procedimento executado a cada checkpointcheckpoint ::

Máquina 1

Primário

Máquina 2

Backup1.Transfere1.TransfereEstadoEstado

log2.Limpa2.LimpaLogLog

31

ReplicaçãoReplicação

�� Replicação Passiva (PrimárioReplicação Passiva (Primário--BackupBackup))�� Considerações:Considerações:

��O(s) O(s) backup(s)backup(s) consomem muito pouco consomem muito pouco poder de processamento, pois não precisam poder de processamento, pois não precisam processar as requisiçõesprocessar as requisições

��O primário tem a obrigação de salvar seu O primário tem a obrigação de salvar seu estado e enviar ao(s) estado e enviar ao(s) backup(s)backup(s), o que , o que consome processamento e largura de bandaconsome processamento e largura de banda

��Transferência de estado pode ser incrementalTransferência de estado pode ser incremental��Quanto maior o intervalo entre Quanto maior o intervalo entre checkpointscheckpoints, ,

menor a sobrecarga no primário, e maiormenor a sobrecarga no primário, e maioro tempo de recuperação de falhaso tempo de recuperação de falhas 32

ReplicaçãoReplicação

�� Replicação AtivaReplicação Ativa�� Um grupo de réplicas de um componente Um grupo de réplicas de um componente

recebe uma requisição de um clienterecebe uma requisição de um cliente�� Todas as réplicas processam a requisição Todas as réplicas processam a requisição

concorrentemente e enviam as suas respostas concorrentemente e enviam as suas respostas ao clienteao cliente

�� Não é preciso sincronizar o estado das Não é preciso sincronizar o estado das réplicas, pois todas executam os mesmos réplicas, pois todas executam os mesmos procedimentosprocedimentos

33

ReplicaçãoReplicação

�� Replicação AtivaReplicação Ativa

Máquina 1

Réplica 1

Máquina 2

Réplica 2

ClienteCliente

1.Requisição1.Requisição

2. Resposta2. Resposta

34

ReplicaçãoReplicação

�� Replicação AtivaReplicação Ativa�� O cliente precisa de apenas uma respostaO cliente precisa de apenas uma resposta�� A resposta válida para o cliente pode ser:A resposta válida para o cliente pode ser:

��A mais freqüente (votação)A mais freqüente (votação)��A primeira recebidaA primeira recebida��Uma médiaUma média��etc.etc.

�� Com isso, a replicação ativa pode tolerar faltas Com isso, a replicação ativa pode tolerar faltas de valor por meio de votaçãode valor por meio de votação��Em 2N+1 réplicas podemos ter N respostas Em 2N+1 réplicas podemos ter N respostas

erradas sem ocasionar falha do sistemaerradas sem ocasionar falha do sistema35

ReplicaçãoReplicação

�� Replicação AtivaReplicação Ativa�� Considerações:Considerações:

��Alto custo para execução das réplicas ativasAlto custo para execução das réplicas ativas��As requisições devem ser entregues na As requisições devem ser entregues na

mesma ordem para todas as réplicas mesma ordem para todas as réplicas ��usar protocolo de difusão atômicausar protocolo de difusão atômica

��Ordenação de mensagens tem custo altoOrdenação de mensagens tem custo alto��Recuperação é mais rápida que na Recuperação é mais rápida que na

replicação passiva, pois caso uma réplica replicação passiva, pois caso uma réplica falhe, as demais continuam funcionando falhe, as demais continuam funcionando normalmentenormalmente

36

Page 7: INE 5418 Algoritmos Segurança de Distribuídos Funcionamentofrank/INE5418/3.Algoritmos-Folhetos.pdf · 3 Conceitos Falhas em Cascata A falha de um componente pode ocasionar a falha

7

ReplicaçãoReplicação

�� Replicação SemiReplicação Semi--Ativa (LíderAtiva (Líder--Seguidores)Seguidores)�� Um componente (líder) possui uma ou mais Um componente (líder) possui uma ou mais

réplicas (seguidores)réplicas (seguidores)�� Cada requisição é enviada a todos, que as Cada requisição é enviada a todos, que as

executam na ordem definida pelo líderexecutam na ordem definida pelo líder�� Apenas o líder responde ao cliente que efetuou Apenas o líder responde ao cliente que efetuou

a requisiçãoa requisição�� Não é preciso sincronizar o estado das réplicas, Não é preciso sincronizar o estado das réplicas,

pois todas executam os mesmos procedimentospois todas executam os mesmos procedimentos

37

ReplicaçãoReplicação

�� Replicação SemiReplicação Semi--Ativa (LíderAtiva (Líder--Seguidores)Seguidores)

Máquina 1

Líder

Máquina 2

Seguidor

ClienteCliente

1.Requisição1.Requisição

4. Resposta4. Resposta

3.Executa3.Executa 3.Executa3.Executa

2.Define2.DefineOrdemOrdem

38

ReplicaçãoReplicação

�� Replicação SemiReplicação Semi--Ativa (LíderAtiva (Líder--Seguidores)Seguidores)�� Considerações:Considerações:

��Mesmo que as requisições dos clientes Mesmo que as requisições dos clientes sejam entregues fora de ordem, todas as sejam entregues fora de ordem, todas as réplicas chegarão ao mesmo estado, já que réplicas chegarão ao mesmo estado, já que a ordem de execução é arbitrada pelo lídera ordem de execução é arbitrada pelo líder

��O tempo gasto para processamento nas O tempo gasto para processamento nas réplicas seguidoras é grande, já que elas réplicas seguidoras é grande, já que elas também têm que processar a chamadatambém têm que processar a chamada

��Caso o líder falhe, um seguidor é escolhido Caso o líder falhe, um seguidor é escolhido para assumir o seu lugarpara assumir o seu lugar

39

ReplicaçãoReplicação

�� Replicação Preguiçosa (Replicação Preguiçosa (LazyLazy))�� Operações que alteram o estado do sistema Operações que alteram o estado do sistema

devem ser executadas na mesma ordem devem ser executadas na mesma ordem ��são executadas como na replicação ativasão executadas como na replicação ativa

�� Operações que não afetam o estado do Operações que não afetam o estado do sistema podem ser executadas em ordens sistema podem ser executadas em ordens diferentes em cada réplica diferentes em cada réplica �� podem ser podem ser enviadas para qualquer réplica, que deve:enviadas para qualquer réplica, que deve:��Atender a requisiçãoAtender a requisição��Enviar a resposta ao clienteEnviar a resposta ao cliente��Difundir em Difundir em background background a requisição para a requisição para

as outras réplicasas outras réplicas 40

ReplicaçãoReplicação

�� Replicação Preguiçosa (Replicação Preguiçosa (LazyLazy))�� Operação que Operação que

não alteranão alteraestadoestado

Máquina 1

Réplica 1

Máquina 2

Réplica 2

ClienteCliente

4.Requisição4.Requisição

2.Executa2.Executa

1.Requisição1.Requisição

3.Resposta3.Resposta 5.Executa5.Executa

41

ReplicaçãoReplicação

�� Replicação Preguiçosa (Replicação Preguiçosa (LazyLazy))�� Considerações:Considerações:

��Reduz a sobrecarga na execução de algumas Reduz a sobrecarga na execução de algumas operações, já que nem sempre é necessário operações, já que nem sempre é necessário usar um protocolo que ordene as chamadasusar um protocolo que ordene as chamadas

��Exige que a semântica das operações seja Exige que a semântica das operações seja conhecida para diferenciar as operações que conhecida para diferenciar as operações que alteram estado daquelas que não o alteramalteram estado daquelas que não o alteram

42

Page 8: INE 5418 Algoritmos Segurança de Distribuídos Funcionamentofrank/INE5418/3.Algoritmos-Folhetos.pdf · 3 Conceitos Falhas em Cascata A falha de um componente pode ocasionar a falha

8

ReplicaçãoReplicação

�� Programação com Múltiplas VersõesProgramação com Múltiplas Versões�� Réplicas não precisam ser idênticasRéplicas não precisam ser idênticas�� São criadas diferentes implementações de um São criadas diferentes implementações de um

mesmo componente de softwaremesmo componente de software��Linguagem de programação, compilador e Linguagem de programação, compilador e

suporte de execução diferentes suporte de execução diferentes ��Algoritmos diferentesAlgoritmos diferentes��Times de desenvolvimento diferentesTimes de desenvolvimento diferentes

�� Resultados são obtidos através de votaçãoResultados são obtidos através de votação�� Com múltiplas versões, reduzCom múltiplas versões, reduz--se a chance de se a chance de

todas as réplicas falharem no mesmo instantetodas as réplicas falharem no mesmo instante

Detecção de FalhasDetecção de Falhas

�� A falha de um componente de um sistema A falha de um componente de um sistema pode levar todo o sistema a falharpode levar todo o sistema a falhar

�� Mesmo que o sistema consiga tolerar a Mesmo que o sistema consiga tolerar a falha do componente, este deve ser falha do componente, este deve ser recuperado para restaurar a capacidade do recuperado para restaurar a capacidade do sistema de tolerar faltassistema de tolerar faltas�� Ex.: na replicação passiva, se o único Ex.: na replicação passiva, se o único backupbackup

existente assume o lugar do primário, é existente assume o lugar do primário, é preciso criar um novo preciso criar um novo backupbackup

�� É preciso detectar as faltas sofridas pelos É preciso detectar as faltas sofridas pelos componentes para poder recuperácomponentes para poder recuperá--loslos

44

Detecção de FalhasDetecção de Falhas

�� Detecção Local de FalhasDetecção Local de Falhas�� Podem ser usados diversos métodos:Podem ser usados diversos métodos:

��Rotinas de autoRotinas de auto--verificação (verificação (selfself--checkcheck))��Guardiões: verificam constantemente as Guardiões: verificam constantemente as

saídas geradas por um componentesaídas geradas por um componente��Watchdogs Watchdogs : componente deve constante: componente deve constante--

mente reiniciar um temporizador antes que mente reiniciar um temporizador antes que ele se esgote, indicando uma falha ele se esgote, indicando uma falha

�� Problema: mesmo para um observador local, Problema: mesmo para um observador local, processos lentos podem parecer falhosprocessos lentos podem parecer falhos

45

Detecção de FalhasDetecção de Falhas

�� Detecção Distribuída de FalhasDetecção Distribuída de Falhas�� Um componente do sistema envia mensagens Um componente do sistema envia mensagens

periodicamente aos seus pares e avisa que periodicamente aos seus pares e avisa que está vivo (está vivo (I am aliveI am alive) ou pergunta se eles ) ou pergunta se eles estão vivos (estão vivos (Are you alive Are you alive ?)?)

�� Se um componente não se manifestar por um Se um componente não se manifestar por um determinado tempo, ele é suspeito de falha determinado tempo, ele é suspeito de falha

�� Suspeitas infundadas podem ser causadas por Suspeitas infundadas podem ser causadas por atraso, particionamento ou falha da redeatraso, particionamento ou falha da rede

46

Detecção de FalhasDetecção de Falhas

�� Diagnóstico do SistemaDiagnóstico do Sistema�� Componentes faltosos podem reportar Componentes faltosos podem reportar

erroneamente o estado dos seus pareserroneamente o estado dos seus pares�� Em um sistema com Em um sistema com ff componentes faltosos, componentes faltosos,

cada componente deve ser testado por pelo cada componente deve ser testado por pelo menos menos ff outros, e precisamos de outros, e precisamos de n n ≥≥ 22f f +1 +1 elementos para detectar corretamente a faltaelementos para detectar corretamente a falta

�� Para diagnosticar falhas de componentes do Para diagnosticar falhas de componentes do sistema, um elemento deve coletar e analisar sistema, um elemento deve coletar e analisar os dados obtidos dos demais componentesos dados obtidos dos demais componentes

47

Detecção de FalhasDetecção de Falhas

�� Detector de FalhasDetector de Falhas�� Serviço ou módulo que verifica a ocorrência de Serviço ou módulo que verifica a ocorrência de

falhas em componentes do sistemafalhas em componentes do sistema�� Implantado junto ao componenteImplantado junto ao componente�� Executa um algoritmo de detecção de falhasExecuta um algoritmo de detecção de falhas�� Interage com detectores de outros Interage com detectores de outros

componentes do sistemacomponentes do sistema�� O componente pode requisitar ao seu detector O componente pode requisitar ao seu detector

informações sobre o estado de outros informações sobre o estado de outros componentes do sistemacomponentes do sistema

48

Page 9: INE 5418 Algoritmos Segurança de Distribuídos Funcionamentofrank/INE5418/3.Algoritmos-Folhetos.pdf · 3 Conceitos Falhas em Cascata A falha de um componente pode ocasionar a falha

9

Detecção de FalhasDetecção de Falhas

�� Tipos de Detectores de FalhasTipos de Detectores de Falhas�� PerfeitosPerfeitos

��Determinam precisamente se um Determinam precisamente se um componente do sistema falhou ou nãocomponente do sistema falhou ou não

��Todos os componentes têm a mesma visãoTodos os componentes têm a mesma visão�� Imperfeitos Imperfeitos

��Detectores determinam se um processo é Detectores determinam se um processo é suspeito de falha ou nãosuspeito de falha ou não

��Diferentes componentes podem ter visões Diferentes componentes podem ter visões distintas de um mesmo componentedistintas de um mesmo componente

49

Detecção de FalhasDetecção de Falhas

�� Tipos de Detectores de FalhasTipos de Detectores de Falhas�� Detectores perfeitos são difíceis de obter, Detectores perfeitos são difíceis de obter,

principalmente em sistemas distribuídosprincipalmente em sistemas distribuídos�� Detectores quaseDetectores quase--perfeitos podem ser obtidos perfeitos podem ser obtidos

usando usando crashcrash controladocontrolado��Se um componente é suspeito de falha, ele Se um componente é suspeito de falha, ele

é removido do sistemaé removido do sistema��O componente passa a ser ignorado por O componente passa a ser ignorado por

todos os demais componentestodos os demais componentes��Pode levar a descartar componentes que Pode levar a descartar componentes que

estão funcionando corretamenteestão funcionando corretamente50

Recuperação de FalhasRecuperação de Falhas

�� Recuperação de ErrosRecuperação de Erros�� Ao perceber um erro, o componente pode Ao perceber um erro, o componente pode

tentar recuperartentar recuperar--se automaticamentese automaticamente�� Recuperação de erro por retrocesso Recuperação de erro por retrocesso

((backward error recoverybackward error recovery): componente volta ): componente volta a um estado anterior ao erro e continua ativoa um estado anterior ao erro e continua ativo��Exemplos: reinicia a execução de um Exemplos: reinicia a execução de um

método, retransmite pacotes perdidos, etc.método, retransmite pacotes perdidos, etc.��Operações posteriores ao instante de Operações posteriores ao instante de

retrocesso são perdidas, mas seu efeito retrocesso são perdidas, mas seu efeito pode ainda ser sentido no sistema, levando pode ainda ser sentido no sistema, levando possivelmente apossivelmente a inconsistênciasinconsistências 51

Recuperação de FalhasRecuperação de Falhas

�� Recuperação de Erros (cont.)Recuperação de Erros (cont.)�� Recuperação por avanço (Recuperação por avanço (forward error forward error

recoveryrecovery): componente toma medidas que ): componente toma medidas que anulem ou aliviem o efeito do erro e continua anulem ou aliviem o efeito do erro e continua a operar normalmentea operar normalmente��Exemplo: descartar pacotes, substituir um Exemplo: descartar pacotes, substituir um

valor inválido pelo valor válido anterior, etc.valor inválido pelo valor válido anterior, etc.��Usada quando não há tempo para voltar Usada quando não há tempo para voltar

para estado anterior e retomar execução, para estado anterior e retomar execução, ou quando ações não podem ser desfeitas ou quando ações não podem ser desfeitas

52

Recuperação de FalhasRecuperação de Falhas

�� Recuperação de FalhasRecuperação de Falhas�� Se ocorrer a falha de um componente, um Se ocorrer a falha de um componente, um

sistema tolerante a faltas deve sistema tolerante a faltas deve mascarámascará--lalausando as réplicas disponíveisusando as réplicas disponíveis

�� Na replicação passiva, substituir o primário Na replicação passiva, substituir o primário por um por um backupbackup e criar um novo e criar um novo backupbackup

�� Na replicação semiNa replicação semi--ativa, substituir o líder por ativa, substituir o líder por um de seus seguidores e criar um seguidorum de seus seguidores e criar um seguidor

�� Nas replicações ativa e Nas replicações ativa e lazylazy, criar uma nova , criar uma nova réplica para manter a capacidade do sistema réplica para manter a capacidade do sistema de tolerar faltas (ou falhas de componentes)de tolerar faltas (ou falhas de componentes)

53

Comunicação Comunicação de de GrupoGrupo

�� ConfiabilidadeConfiabilidade�� OrdenaçãoOrdenação�� MembershipMembership

54

INE 5418INE 5418

Page 10: INE 5418 Algoritmos Segurança de Distribuídos Funcionamentofrank/INE5418/3.Algoritmos-Folhetos.pdf · 3 Conceitos Falhas em Cascata A falha de um componente pode ocasionar a falha

10

Comunicação de GrupoComunicação de Grupo

�� PrincípiosPrincípios�� Duas formas de comunicação de grupo: Duas formas de comunicação de grupo:

��Difusão total (Difusão total (broadcastbroadcast))��Difusão seletiva (Difusão seletiva (multicast multicast ))

�� Uma mensagem é enviada para um endereço Uma mensagem é enviada para um endereço de difusão, e uma cópia da mensagem é de difusão, e uma cópia da mensagem é entregue a todos os destinatáriosentregue a todos os destinatários

�� Protocolos são em geral sem conexãoProtocolos são em geral sem conexão�� Comunicação pode ser de umComunicação pode ser de um para para vários ou vários ou

de vários para váriosde vários para vários55

Comunicação de GrupoComunicação de Grupo

�� BroadcastBroadcast

�� MulticastMulticast011100111000101001011001010010

011100111000101001011001010010

011100111000101001011001010010

011100111000101001011001010010

011100111000101001011001010010

011100111000101001011001010010

56

Comunicação de GrupoComunicação de Grupo

�� Grupo Fechado: Grupo Fechado: emissor deve ser emissor deve ser membro do grupomembro do grupo

�� Grupo Aberto: qualquer um pode enviar Grupo Aberto: qualquer um pode enviar

Grupo Grupo

Grupo

Grupo Aberto 1Grupo Aberto 1��NN Grupo Aberto MGrupo Aberto M��NN57

Comunicação de GrupoComunicação de Grupo

�� Grupo Simétrico: Grupo Simétrico: composto por pares composto por pares ((peerspeers); não há um ); não há um elemento privilegiadoelemento privilegiado

�� Grupo Assimétrico: Grupo Assimétrico: um elemento é oum elemento é ocoordenador docoordenador dogrupogrupo

Grupo CC

Grupo

58

Comunicação de GrupoComunicação de Grupo

�� ConsideraçõesConsiderações�� Grupos fechados são mais restritivos (e Grupos fechados são mais restritivos (e

seguros) que grupos abertosseguros) que grupos abertos�� Grupos simétricos não possuem ponto central Grupos simétricos não possuem ponto central

de falha; grupos assimétricos precisam eleger de falha; grupos assimétricos precisam eleger um novo coordenador se este falharum novo coordenador se este falhar

�� Grupos simétricos são mais escaláveisGrupos simétricos são mais escaláveis�� Decisões são mais simples em grupos Decisões são mais simples em grupos

assimétricos assimétricos –– o coordenador define tudo!o coordenador define tudo!�� Coordenação dos pares consome recursos em Coordenação dos pares consome recursos em

grupos simétricosgrupos simétricos59

Comunicação de GrupoComunicação de Grupo

�� Grupos podem ser criados e destruídos e Grupos podem ser criados e destruídos e processos podem entrar e sair de grupos:processos podem entrar e sair de grupos:�� Estaticamente: na configuração da rede ou do Estaticamente: na configuração da rede ou do

suporte de comunicaçãosuporte de comunicação�� Dinamicamente: em tempo de execuçãoDinamicamente: em tempo de execução

�� Suportes de comunicação de grupo Suportes de comunicação de grupo dinâmicos são mais flexíveisdinâmicos são mais flexíveis�� Podem ser configurados através de uma API Podem ser configurados através de uma API

de comunicação, sem ajuda do administradorde comunicação, sem ajuda do administrador

60

Page 11: INE 5418 Algoritmos Segurança de Distribuídos Funcionamentofrank/INE5418/3.Algoritmos-Folhetos.pdf · 3 Conceitos Falhas em Cascata A falha de um componente pode ocasionar a falha

11

Comunicação de GrupoComunicação de Grupo

�� ImplementaçãoImplementação�� A rede pode possuir um esquema de A rede pode possuir um esquema de

endereçamento de grupo nativoendereçamento de grupo nativo�� Nas redes baseadas em difusão todas as Nas redes baseadas em difusão todas as

mensagens são enviadas por broadcastmensagens são enviadas por broadcast��No caso de um unicast, todas as máquinas No caso de um unicast, todas as máquinas

exceto a destinatária ignoram a mensagemexceto a destinatária ignoram a mensagem��No caso de um multicast, as máquinas de No caso de um multicast, as máquinas de

fora do grupo descartam a mensagemfora do grupo descartam a mensagem�� O suporte de comunicação pode usar várias O suporte de comunicação pode usar várias

mensagens mensagens unicastunicast para enviar ao grupopara enviar ao grupo61

Comunicação de GrupoComunicação de Grupo

�� AplicaçõesAplicações�� Difusão de áudio e vídeoDifusão de áudio e vídeo�� TeleconferênciasTeleconferências�� Trabalho cooperativoTrabalho cooperativo�� Bancos de dados distribuídosBancos de dados distribuídos�� Sistemas transacionais distribuídosSistemas transacionais distribuídos�� Memória compartilhada distribuídaMemória compartilhada distribuída�� Replicação de serviçosReplicação de serviços

��Distribuição de cargaDistribuição de carga��Tolerância a faltasTolerância a faltas

62

ConfiabilidadeConfiabilidade

�� Em geral, os protocolos de difusão não são Em geral, os protocolos de difusão não são confiáveisconfiáveis�� Alguns receptores podem receber uma Alguns receptores podem receber uma

mensagem e outros não mensagem e outros não �� Isto pode causar inconsistência de estado em Isto pode causar inconsistência de estado em

sistemas que utilizem replicaçãosistemas que utilizem replicação�� Algumas aplicações exigem que os dados Algumas aplicações exigem que os dados

estejam consistentes em todas as réplicasestejam consistentes em todas as réplicasEx.: um update em réplicas de um BD; se uma Ex.: um update em réplicas de um BD; se uma das réplicas não recebe a instrução de update, das réplicas não recebe a instrução de update, esta réplica ficará inconsistenteesta réplica ficará inconsistente

63

ConfiabilidadeConfiabilidade

�� Difusão ConfiávelDifusão Confiável�� Protocolo de difusão confiável (Protocolo de difusão confiável (Reliable Reliable

Mulsticast Mulsticast ): capaz de recuperar mensagens ): capaz de recuperar mensagens corrompidas durante o enviocorrompidas durante o envio

�� Mensagens recebidas pelo protocolo só serão Mensagens recebidas pelo protocolo só serão entregues para os membros do grupo quando entregues para os membros do grupo quando satisfizerem as propriedades:satisfizerem as propriedades:�� IntegridadeIntegridade��ValidadeValidade��AcordoAcordo

64

ConfiabilidadeConfiabilidade

�� Difusão ConfiávelDifusão Confiável – Propriedades:Propriedades:�� Integridade: um membro do grupo recebe Integridade: um membro do grupo recebe

uma mensagem no máximo uma vez e apenas uma mensagem no máximo uma vez e apenas se esta foi previamente difundida no grupose esta foi previamente difundida no grupo

�� Validade: se um emissor difunde uma Validade: se um emissor difunde uma mensagem no grupo, esta será entregue em mensagem no grupo, esta será entregue em algum momento para os membros do grupo algum momento para os membros do grupo que estiverem funcionando corretamente que estiverem funcionando corretamente

�� Acordo (Acordo (agreement agreement ): se um membro do ): se um membro do grupo recebe uma mensagem, então todos os grupo recebe uma mensagem, então todos os membros do grupo que estiverem funcionando membros do grupo que estiverem funcionando corretamente também a receberãocorretamente também a receberão

65

ConfiabilidadeConfiabilidade

�� Formas de ImplementaçãoFormas de Implementação�� Algoritmo clássico: exige que um membro do Algoritmo clássico: exige que um membro do

grupo, ao receber uma mensagem pela 1grupo, ao receber uma mensagem pela 1aa vez, vez, a envie aos demais membros do grupoa envie aos demais membros do grupo

�� Algoritmo usando ACKs: todos devem Algoritmo usando ACKs: todos devem responder ao emissor se receberam a responder ao emissor se receberam a mensagem, e este pode então recuperar errosmensagem, e este pode então recuperar erros

�� Algoritmo usando NACKs: receptor solicita Algoritmo usando NACKs: receptor solicita reenvio de mensagens que não recebeu e que reenvio de mensagens que não recebeu e que outros membros do grupo receberamoutros membros do grupo receberam

66

Page 12: INE 5418 Algoritmos Segurança de Distribuídos Funcionamentofrank/INE5418/3.Algoritmos-Folhetos.pdf · 3 Conceitos Falhas em Cascata A falha de um componente pode ocasionar a falha

12

OrdenaçãoOrdenação

�� Ordenação de MensagensOrdenação de Mensagens�� Diferentes requisitos podem ser impostos na Diferentes requisitos podem ser impostos na

ordem de entrega das mensagens aos ordem de entrega das mensagens aos membros de um grupo, em função das membros de um grupo, em função das necessidades da aplicaçãonecessidades da aplicação

�� Modos de OrdenaçãoModos de Ordenação��Ordem FIFOOrdem FIFO��Ordem LógicaOrdem Lógica��Ordem CausalOrdem Causal��Ordem TemporalOrdem Temporal��Ordem Total Ordem Total

67

OrdenaçãoOrdenação

�� Ordenação FIFOOrdenação FIFO�� As mensagens enviadas por um membro do As mensagens enviadas por um membro do

grupo são entregues na ordem de envio a grupo são entregues na ordem de envio a qualquer outro membro do grupo que estiver qualquer outro membro do grupo que estiver funcionando corretamente funcionando corretamente

© Paulo Veríssimo e Luís Rodrigues© Paulo Veríssimo e Luís Rodrigues 68

OrdenaçãoOrdenação

�� Ordenação CausalOrdenação Causal�� Se um membro do grupo responde uma Se um membro do grupo responde uma

mensagem enviada ao grupo, os membros do mensagem enviada ao grupo, os membros do grupo que funcionam corretamente receberão grupo que funcionam corretamente receberão a resposta após a mensagem que a originoua resposta após a mensagem que a originou

© Paulo Veríssimo e Luís Rodrigues© Paulo Veríssimo e Luís Rodrigues 69

OrdenaçãoOrdenação

�� Ordenação Lógica Ordenação Lógica �� Uma mensagem MUma mensagem M11 precede logicamente Mprecede logicamente M22, ,

e será recebida nesta ordem por todos os e será recebida nesta ordem por todos os membros do grupo que estiverem funcionando membros do grupo que estiverem funcionando corretamente, se e somente se:corretamente, se e somente se:��MM11 foi enviada antes de Mfoi enviada antes de M22 pelo mesmo pelo mesmo

membro do grupomembro do grupo��MM11 foi entregue a um membro do grupo foi entregue a um membro do grupo

antes deste enviar Mantes deste enviar M22

��Existe MExiste M33 tal que Mtal que M11 precede Mprecede M33 e Me M33precede Mprecede M22

70

OrdenaçãoOrdenação

�� Ordenação TemporalOrdenação Temporal�� Uma mensagem MUma mensagem M11 precede temporalmente precede temporalmente

MM22, e será recebida nesta ordem por todos os , e será recebida nesta ordem por todos os membros do grupo que estiverem funcionando membros do grupo que estiverem funcionando corretamente, se e somente se Mcorretamente, se e somente se M11 foi enviada foi enviada antes de Mantes de M22 com uma diferença de tempo com uma diferença de tempo maior que um certo maior que um certo ∆∆tt

71

OrdenaçãoOrdenação

�� Ordenação Total Ordenação Total �� As mensagens serão entregues na mesma As mensagens serão entregues na mesma

ordem a todos os membros do grupo que ordem a todos os membros do grupo que estiverem funcionando corretamente estiverem funcionando corretamente

© Paulo Veríssimo e Luís Rodrigues© Paulo Veríssimo e Luís Rodrigues 72

Page 13: INE 5418 Algoritmos Segurança de Distribuídos Funcionamentofrank/INE5418/3.Algoritmos-Folhetos.pdf · 3 Conceitos Falhas em Cascata A falha de um componente pode ocasionar a falha

13

MembershipMembership

�� Grupos dinâmicosGrupos dinâmicos�� Membros entram e saem dos grupos Membros entram e saem dos grupos �� Membros podem falhar (Membros podem falhar (crashcrash))�� Grupos são criados e destruídos em tempo de Grupos são criados e destruídos em tempo de

execuçãoexecução

�� Serviço de Membership Serviço de Membership �� Controla a composição do grupoControla a composição do grupo�� Necessário para o funcionamento do protocolo Necessário para o funcionamento do protocolo

de comunicação de grupode comunicação de grupo

73

MembershipMembership

�� Tarefas do Serviço de MembershipTarefas do Serviço de Membership�� Fornecer uma interface para entrada e saída Fornecer uma interface para entrada e saída

de membros do grupode membros do grupo�� Notificar os membros e/ou o protocolo de Notificar os membros e/ou o protocolo de

comunicação quando ocorrerem mudanças na comunicação quando ocorrerem mudanças na composição do grupocomposição do grupo

�� Converter o endereço do grupo nos endereços Converter o endereço do grupo nos endereços dos membros que o compõemdos membros que o compõem

�� Detectar falhas de membros do grupoDetectar falhas de membros do grupo

74

MembershipMembership

�� Visão (Visão (View View ))�� Descreve a composição do grupo em um Descreve a composição do grupo em um

determinado instantedeterminado instante�� Deve ser difundida usando protocolos Deve ser difundida usando protocolos

confiáveis e com ordenação, para garantir que confiáveis e com ordenação, para garantir que haverá consistência de visão entre os haverá consistência de visão entre os membros do grupo (ou seja, todos assumem membros do grupo (ou seja, todos assumem que a composição do grupo é a mesma)que a composição do grupo é a mesma)

75

Coordenação Coordenação e Acordoe Acordo

�� Controle de ConcorrênciaControle de Concorrência�� AcordoAcordo�� Transações DistribuídasTransações Distribuídas

INE 5418INE 5418

Controle de ConcorrênciaControle de Concorrência

�� Controle de Concorrência em Sist. Distrib.Controle de Concorrência em Sist. Distrib.�� Protocolos para controlar o acesso a dados e Protocolos para controlar o acesso a dados e

recursos compartilhadosrecursos compartilhados�� Mecanismos de detecção de Mecanismos de detecção de deadlockdeadlock

�� Protocolo de Bloqueio Único (Centralizado)Protocolo de Bloqueio Único (Centralizado)�� Uma máquina funciona como gerenciador de Uma máquina funciona como gerenciador de

bloqueios, que administra todos os pedidos de bloqueios, que administra todos os pedidos de bloqueio de dados ou recursos no sistemabloqueio de dados ou recursos no sistema

�� É simples, pois a detecção de É simples, pois a detecção de deadlocksdeadlocks é é local, mas é sujeito a falhas e pouco escalávellocal, mas é sujeito a falhas e pouco escalável

Controle de ConcorrênciaControle de Concorrência

�� Protocolo de Bloqueio Múltiplo Protocolo de Bloqueio Múltiplo (Descentralizado)(Descentralizado)�� São usados vários gerenciadores em São usados vários gerenciadores em

diferentes máquinasdiferentes máquinas�� Cada gerenciador administra os bloqueios de Cada gerenciador administra os bloqueios de

um conjunto de dados/recursosum conjunto de dados/recursos�� Evita o ’gargalo’ do protocolo centralizado, Evita o ’gargalo’ do protocolo centralizado,

mas dificulta a detecção de mas dificulta a detecção de deadlocksdeadlocks�� Impede o acesso ao dado/recurso se o Impede o acesso ao dado/recurso se o

gerenciador falhar, mesmo que a máquina gerenciador falhar, mesmo que a máquina com o dado/recurso esteja funcionandocom o dado/recurso esteja funcionando

Page 14: INE 5418 Algoritmos Segurança de Distribuídos Funcionamentofrank/INE5418/3.Algoritmos-Folhetos.pdf · 3 Conceitos Falhas em Cascata A falha de um componente pode ocasionar a falha

14

Controle de ConcorrênciaControle de Concorrência

�� Protocolo de Bloqueio DistribuídoProtocolo de Bloqueio Distribuído�� Cada máquina do sistema tem o seu Cada máquina do sistema tem o seu

gerenciador de bloqueiosgerenciador de bloqueios�� Cada gerenciador administra os bloqueios de Cada gerenciador administra os bloqueios de

dados/recursos locaisdados/recursos locais�� Assim como o anterior, evita o ’gargalo’, mas Assim como o anterior, evita o ’gargalo’, mas

dificulta a detecção de dificulta a detecção de deadlocksdeadlocks�� Impede o acesso somente quando a máquina Impede o acesso somente quando a máquina

com o dado/recurso falharcom o dado/recurso falhar

Controle de ConcorrênciaControle de Concorrência

�� Protocolo com Cópia PrimáriaProtocolo com Cópia Primária�� Usado no acesso a dados replicadosUsado no acesso a dados replicados�� Cada dado replicado possui uma cópia Cada dado replicado possui uma cópia

primária em um máquinaprimária em um máquina�� O bloqueio é solicitado à máquina com a cópia O bloqueio é solicitado à máquina com a cópia

primária daquele dadoprimária daquele dado�� Simples e escalável, mas impede o acesso às Simples e escalável, mas impede o acesso às

réplicas se o primário falhar, e dificulta a réplicas se o primário falhar, e dificulta a detecção de detecção de deadlocksdeadlocks

Controle de ConcorrênciaControle de Concorrência

�� Protocolo da MaioriaProtocolo da Maioria�� Usado no acesso a dados replicados Usado no acesso a dados replicados �� Cada máquina possui um gerenciador para Cada máquina possui um gerenciador para

bloqueio de réplicas de dados locaisbloqueio de réplicas de dados locais�� O bloqueio de dados com réplicas é O bloqueio de dados com réplicas é

concedido se a maioria dos concedido se a maioria dos sitessites permitirpermitir�� Mais complexo para implementar que os Mais complexo para implementar que os

anteriores, e difícil detectar anteriores, e difícil detectar deadlocksdeadlocks

Controle de ConcorrênciaControle de Concorrência

�� Protocolo ParcialProtocolo Parcial�� Cada máquina tem o seu gerenciador de Cada máquina tem o seu gerenciador de

bloqueio das réplicas locais de dados bloqueio das réplicas locais de dados �� Bloqueios compartilhados são obtidos Bloqueios compartilhados são obtidos

contatando o gerenciador de somente uma contatando o gerenciador de somente uma réplica do dadoréplica do dado

�� Bloqueios exclusivos devem ser solicitados em Bloqueios exclusivos devem ser solicitados em todos os gerenciadores de bloqueio de todas todos os gerenciadores de bloqueio de todas as máquinas com réplicasas máquinas com réplicas

�� Bem escalável, mas difícil detectar Bem escalável, mas difícil detectar deadlocksdeadlocks

Controle de ConcorrênciaControle de Concorrência

�� Detecção de Detecção de Deadlocks Deadlocks DistribuídosDistribuídos�� Cada máquina monta um gráfico de espera Cada máquina monta um gráfico de espera

com os bloqueios mantidos localmentecom os bloqueios mantidos localmente�� Um nó PUm nó PEXEX é adicionado ao é adicionado ao

gráfico para representar gráfico para representar uma espera por recursos uma espera por recursos externos bloqueadosexternos bloqueados

�� Um ciclo passando apenas Um ciclo passando apenas por nós locais representa um por nós locais representa um deadlockdeadlock

�� Um ciclo envolvendo PUm ciclo envolvendo PEXEX indica um indica um possívelpossíveldeadlockdeadlock, que deve ser verificado junto às , que deve ser verificado junto às máquinas envolvidasmáquinas envolvidas

PEX

P1 P2

P3

AcordoAcordo

�� Acordo é necessário para que os membros Acordo é necessário para que os membros de um grupo atuem de forma coordenadade um grupo atuem de forma coordenada�� Todos devem ter a mesma visão do sistemaTodos devem ter a mesma visão do sistema�� Devem agir de maneira consistenteDevem agir de maneira consistente

�� Acordos precisam ser estabelecidos Acordos precisam ser estabelecidos mesmo que alguns dos membros do grupo mesmo que alguns dos membros do grupo apresentem falhas, inclusive maliciosasapresentem falhas, inclusive maliciosas

84

Page 15: INE 5418 Algoritmos Segurança de Distribuídos Funcionamentofrank/INE5418/3.Algoritmos-Folhetos.pdf · 3 Conceitos Falhas em Cascata A falha de um componente pode ocasionar a falha

15

AcordoAcordo

�� Exemplos de aplicação de acordo:Exemplos de aplicação de acordo:�� Os computadores de bordo de um avião Os computadores de bordo de um avião

devem decidir as ações a serem tomadas devem decidir as ações a serem tomadas (posicionar flaps, alimentar turbinas, etc.)(posicionar flaps, alimentar turbinas, etc.)

�� Em uma transferência de fundos, os Em uma transferência de fundos, os computadores envolvidos na transação devem computadores envolvidos na transação devem concordar em efetiváconcordar em efetivá--la ou não la ou não

�� Em uma eleição, devem entrar em acordo em Em uma eleição, devem entrar em acordo em relação a quem será eleitorelação a quem será eleito

�� Em um algoritmo de ordenação, devem decidir Em um algoritmo de ordenação, devem decidir a ordem de entrega das mensagensa ordem de entrega das mensagens

85

AcordoAcordo

�� Algoritmos de AcordoAlgoritmos de Acordo�� Em geral exigem um processo de eleiçãoEm geral exigem um processo de eleição�� Cada membro do grupo apresenta sua visão do Cada membro do grupo apresenta sua visão do

fato que está sendo analisado (ex.: ordem das fato que está sendo analisado (ex.: ordem das mensagens recebidas) enviando mensagens mensagens recebidas) enviando mensagens aos demais membros do grupo ou a um aos demais membros do grupo ou a um coordenador da eleiçãocoordenador da eleição

�� A proposta vitoriosa será escolhida com base A proposta vitoriosa será escolhida com base em alguma regra (ex.: maior número de votos, em alguma regra (ex.: maior número de votos, valor médio/+alto/+baixo das respostas, etc.)valor médio/+alto/+baixo das respostas, etc.)

86

AcordoAcordo

�� Exemplo: Eleição de um novo líderExemplo: Eleição de um novo líder�� As máquinas formam um anel lógicoAs máquinas formam um anel lógico�� Assim que um seguidor notar a falha do líder, Assim que um seguidor notar a falha do líder,

este inicia a eleição enviando seu identificador este inicia a eleição enviando seu identificador para o próximo seguidor no anel lógicopara o próximo seguidor no anel lógico

�� Os seguidores anexam seu id à mensagem e a Os seguidores anexam seu id à mensagem e a enviam ao próximo, até dar a volta no anelenviam ao próximo, até dar a volta no anel

�� O iniciador da eleição verifica qual o seguidor O iniciador da eleição verifica qual o seguidor com o maior (ou menor) identificador e avisa com o maior (ou menor) identificador e avisa a todos que este será o novo lídera todos que este será o novo líder

87

AcordoAcordo

�� Exemplo: Acesso a uma região críticaExemplo: Acesso a uma região crítica�� Um processo que deseje acessar uma região Um processo que deseje acessar uma região

crítica envia ao grupo seu identificador e o da crítica envia ao grupo seu identificador e o da região crítica, além de um timestampregião crítica, além de um timestamp

�� Um processo que não se oponha ao acesso Um processo que não se oponha ao acesso deve responder com um OKdeve responder com um OK

�� Um processo que esteja acessando a região Um processo que esteja acessando a região não responderá com OK até que a liberenão responderá com OK até que a libere

�� Um processo que esteja esperando para Um processo que esteja esperando para acessar a mesma região crítica decide se acessar a mesma região crítica decide se responde ou não comparando o timestamp da responde ou não comparando o timestamp da mensagem com o seu timestamp mensagem com o seu timestamp 88

Transações DistribuídasTransações Distribuídas

�� Transações distribuídas alteram o estado Transações distribuídas alteram o estado de vários processos em várias máquinasde vários processos em várias máquinas�� Devem ser garantidos a atomicidade, a Devem ser garantidos a atomicidade, a

consistência, o isolamento e a durabilidadeconsistência, o isolamento e a durabilidade�� Falhas podem impedir a execução de uma Falhas podem impedir a execução de uma

transaçãotransação��Falha de softwareFalha de software��Falha da máquinaFalha da máquina��Falha na comunicaçãoFalha na comunicação

�� Nem sempre é possível saber quem falhou!Nem sempre é possível saber quem falhou!

Transações DistribuídasTransações Distribuídas

�� Execução de Transações DistribuídasExecução de Transações Distribuídas�� Coordenadores de transaçõesCoordenadores de transações coordenam a coordenam a

execução das transações iniciadas localmenteexecução das transações iniciadas localmente�� Gerenciadores de transaçõesGerenciadores de transações administram a administram a

execução da parte local da transaçãoexecução da parte local da transação

Máquina 1

Coordenador

Gerenciador

Máquina 2

Coordenador

Gerenciador

Máquina 3

Coordenador

Gerenciador

Page 16: INE 5418 Algoritmos Segurança de Distribuídos Funcionamentofrank/INE5418/3.Algoritmos-Folhetos.pdf · 3 Conceitos Falhas em Cascata A falha de um componente pode ocasionar a falha

16

Transações DistribuídasTransações Distribuídas

�� Coordenador de TransaçõesCoordenador de Transações�� Inicia a execução da transaçãoInicia a execução da transação�� Divide a transação em subDivide a transação em sub--transações e as transações e as

distribui no sistema para execuçãodistribui no sistema para execução�� Efetiva ou faz o Efetiva ou faz o rollbackrollback em em todostodos os os sitessites

�� Gerenciador de TransaçõesGerenciador de Transações�� Controla a execução da subControla a execução da sub--transação localtransação local�� Matém um Matém um loglog das operações executadas para das operações executadas para

permitir a recuperação da transaçãopermitir a recuperação da transação

SincronizaçãoSincronização

�� Tempo GlobalTempo Global�� Estado GlobalEstado Global

INE 5418INE 5418

Tempo GlobalTempo Global

�� É necessário determinar com exatidão o É necessário determinar com exatidão o tempo no qual os eventos ocorrem nos tempo no qual os eventos ocorrem nos sistemas computacionaissistemas computacionais�� Registro de acesso ao sistema (login/logout)Registro de acesso ao sistema (login/logout)�� Determinação do tempo de uso (ex.: telefonia, Determinação do tempo de uso (ex.: telefonia,

acesso à rede, vídeo sob demanda, acesso à rede, vídeo sob demanda, videoconferência, etc.)videoconferência, etc.)

�� Registro de transações bancárias Registro de transações bancárias �� Registro de compra/venda de produtosRegistro de compra/venda de produtos�� Auditoria e segurançaAuditoria e segurança�� ......

Tempo GlobalTempo Global

�� Os relógios das máquinas não são Os relógios das máquinas não são sincronizadossincronizados�� Os relógios não são precisos: há um desvio Os relógios não são precisos: há um desvio

entre o tempo real e o marcado pelo relógioentre o tempo real e o marcado pelo relógio�� Mesmo que se acerte os relógios, com o Mesmo que se acerte os relógios, com o

passar do tempo eles perdem a sincroniapassar do tempo eles perdem a sincronia

Rede© Colouris, Dollimore & Kindberg© Colouris, Dollimore & Kindberg

Tempo GlobalTempo Global

�� Possíveis soluções:Possíveis soluções:�� Relógios atômicos colocados em todas as Relógios atômicos colocados em todas as

máquinas, marcando o tempo universal (UTC)máquinas, marcando o tempo universal (UTC)�� Inviável!Inviável!

�� Receptores de satélite em todas as máquinas Receptores de satélite em todas as máquinas (satélites difundem o sinal de tempo UTC)(satélites difundem o sinal de tempo UTC)��Sairia caro demais!Sairia caro demais!

�� Sincronização pela redeSincronização pela rede��Servidores de tempo, com relógios precisos, Servidores de tempo, com relógios precisos,

difundem um sinal de tempo pela rededifundem um sinal de tempo pela rede

Tempo GlobalTempo Global

�� NTP (NTP (Network Time ProtocolNetwork Time Protocol))�� Hieraquia de ServidoresHieraquia de Servidores

��Servidores de 1Servidores de 1oo nível (ou primários): nível (ou primários): possuem relógios precisospossuem relógios precisos

��Servidores de 2Servidores de 2oo, 3, 3oo, ..., N, ..., No o nível: recebem o nível: recebem o tempo do nível anterior tempo do nível anterior

�� Clientes (máquinas dos usuários finais): Clientes (máquinas dos usuários finais): perguntam o tempo a um servidor e atualizam perguntam o tempo a um servidor e atualizam seus relógios com base na resposta recebidaseus relógios com base na resposta recebida

Page 17: INE 5418 Algoritmos Segurança de Distribuídos Funcionamentofrank/INE5418/3.Algoritmos-Folhetos.pdf · 3 Conceitos Falhas em Cascata A falha de um componente pode ocasionar a falha

17

Tempo GlobalTempo Global

�� NTP (NTP (Network Time ProtocolNetwork Time Protocol))

11oo NívelNível

22oo NívelNível

Tempo GlobalTempo Global

�� Características do NTPCaracterísticas do NTP�� Barato por não exigir relógios precisos Barato por não exigir relógios precisos

(atômicos ou com GPS) em todas as máquinas(atômicos ou com GPS) em todas as máquinas�� Impreciso devido ao tempo de propagação Impreciso devido ao tempo de propagação

das mensagens pela rede não ser constantedas mensagens pela rede não ser constante��O algoritmo de sincronização dos relógios O algoritmo de sincronização dos relógios

leva em conta uma estimativa do tempo de leva em conta uma estimativa do tempo de propagação das mensagens pela redepropagação das mensagens pela rede

��Mesmo assim, existe um erro implícito que Mesmo assim, existe um erro implícito que pode chegar a dezenas de ms, e que deve pode chegar a dezenas de ms, e que deve ser levado em conta pelos sistemasser levado em conta pelos sistemas

Tempo GlobalTempo Global

�� Relógios Lógicos (Lamport, 1978)Relógios Lógicos (Lamport, 1978)�� Usados para definir a ordem dos eventos Usados para definir a ordem dos eventos

produzidos por um grupo de processosproduzidos por um grupo de processos�� Cada processo mantém um contador, e atribui Cada processo mantém um contador, e atribui

marcas de tempo (marcas de tempo (timestamptimestamp) aos eventos ) aos eventos (ex.: envio ou recepção de mensagens)(ex.: envio ou recepção de mensagens)

�� Cada mensagem trocada pela rede carrega Cada mensagem trocada pela rede carrega consigo o consigo o timestamptimestamp atribuído pelo remetenteatribuído pelo remetente

�� Os eventos são ordenados pelos Os eventos são ordenados pelos timestampstimestamps

Tempo GlobalTempo Global

�� Relógios Lógicos Relógios Lógicos –– Exemplo: Exemplo: �� Analisando os Analisando os timestamps timestamps temos que:temos que:

aa��bb��cc��dd��f ; f ; aa||||e ;e ; ee��ff

a b

c d

e f

m1

m2

21

3 4

51

p1

p2

p3

Tempo

físico(real)

© Colouris, Dollimore & Kindberg© Colouris, Dollimore & Kindberg

Tempo GlobalTempo Global

�� Relógios Lógicos com Ordenação Total Relógios Lógicos com Ordenação Total �� O identificador do processo é usado para O identificador do processo é usado para

definir a ordem de eventos concorrentesdefinir a ordem de eventos concorrentes�� Assim podemos assumir que aAssim podemos assumir que a��ee

a b

c d

e f

m1

m2

21

3 4

51

p1

p2

p3

Tempo

físico(real)

© Colouris, Dollimore & Kindberg© Colouris, Dollimore & Kindberg

Tempo GlobalTempo Global

�� Relógios Vetorias (Mattern, 89; Fidge, 91)Relógios Vetorias (Mattern, 89; Fidge, 91)�� Usa Usa vetores devetores de timestampstimestamps com o valor com o valor

conhecido do relógio lógico de cada processoconhecido do relógio lógico de cada processo�� Se VSe Vxx[i] ≤ V[i] ≤ Vyy[i] Vi e V[i] Vi e Vxx ≠ V≠ Vyy, , entãoentão xx��yy

a b

c d

e f

m1

m2

(2,0,0)(1,0,0)

(2,1,0) (2,2,0)

(2,2,2)(0,0,1)

p1

p2

p3

Tempo

físico(real)

© Colouris, Dollimore & Kindberg© Colouris, Dollimore & Kindberg

Page 18: INE 5418 Algoritmos Segurança de Distribuídos Funcionamentofrank/INE5418/3.Algoritmos-Folhetos.pdf · 3 Conceitos Falhas em Cascata A falha de um componente pode ocasionar a falha

18

Estado GlobalEstado Global

�� Estado Global de um Sistema Distribuído Estado Global de um Sistema Distribuído �� É o conjunto dos estados locais dos processosÉ o conjunto dos estados locais dos processos�� Como o estado local de cada processo muda Como o estado local de cada processo muda

continuamente, é muito difícil conhecer o continuamente, é muito difícil conhecer o estado global do sistemaestado global do sistema

�� Tentar obter o estado global consultando cada Tentar obter o estado global consultando cada processo pode levar a inconsistênciasprocesso pode levar a inconsistências

�� Exemplos:Exemplos:�� Crianças trocando figurinhas Crianças trocando figurinhas �� Saldo das contas de correntistas de um bancoSaldo das contas de correntistas de um banco

Estado GlobalEstado Global

�� Quando é preciso obter o Estado Global?Quando é preciso obter o Estado Global?�� Garbage Collection Garbage Collection : verificar se existem : verificar se existem

clientes de objetos acessados remotamenteclientes de objetos acessados remotamente�� Debugging Debugging Distribuído: verificar os valores das Distribuído: verificar os valores das

variáveis de um programa distribuídovariáveis de um programa distribuído�� Controle de Controle de Membership Membership : listar os membros : listar os membros

de um grupo de processos ou usuáriosde um grupo de processos ou usuários�� ......

�� Como obter um Estado Global consistente?Como obter um Estado Global consistente?�� É preciso considerar o efeito das mensagens É preciso considerar o efeito das mensagens

trafegando na rede para obter o estado globaltrafegando na rede para obter o estado global

Estado GlobalEstado Global

�� Protocolo de Protocolo de SnapshotSnapshot (Chandra & Lamport,1985)(Chandra & Lamport,1985)

�� O processo que inicia o protocolo salva seu O processo que inicia o protocolo salva seu estado e envia uma mensagem estado e envia uma mensagem markermarker por por todos os seus canais de saídatodos os seus canais de saída

�� Os demais processos salvam seu estado ao Os demais processos salvam seu estado ao receber o 1receber o 1oo marker marker e enviame enviam markers markers por por todos os seus canais de saídatodos os seus canais de saída

�� O estado de um canal consiste nas mensagens O estado de um canal consiste nas mensagens recebidas pelo canal até chegar um recebidas pelo canal até chegar um markermarker

�� Assim obtém o estado de todos os processos e Assim obtém o estado de todos os processos e canais de comunicação do sistemacanais de comunicação do sistema

Estado GlobalEstado Global

�� Protocolo de Protocolo de SnapshotSnapshot –– Exemplo:Exemplo:

CCCC

CCCC

CCCC

SSSS

SSSS

SSSS

R$9R$9

MarkerMarker

Vende (DVDVende (DVD--RW, R$3)RW, R$3)

Vende (DVDVende (DVD--R, R$1)R, R$1) 100 DVD100 DVD--R,R,50 DVD50 DVD--RW,RW,R$50R$50

99 DVD99 DVD--R,R,50 DVD50 DVD--RW,RW,R$51R$511 disquete1 disquete

99 DVD99 DVD--R,R,50 DVD50 DVD--RW,RW,R$51R$51MarkerMarker

Estado do processo C: R$9Estado do processo C: R$9Estado do canal SEstado do canal S-->C: 1 DVD>C: 1 DVD--RREstado do processo S: 99 DVDEstado do processo S: 99 DVD--R, 50 DVDR, 50 DVD--RW, R$51RW, R$51Estado do canal CEstado do canal C-->S: vazio>S: vazio

R$9,R$9,1 DVD1 DVD--RR

R$10R$10

Estado GlobalEstado Global

�� Replicação de DadosReplicação de Dados�� Os dados do sistema podem estar replicadosOs dados do sistema podem estar replicados�� É necessário garantir a consistência de É necessário garantir a consistência de

réplicas réplicas �� réplicas com o mesmo valor!réplicas com o mesmo valor!�� Alterações nos dados devem ser propagadas Alterações nos dados devem ser propagadas

para as máquinas com réplicas do dadopara as máquinas com réplicas do dado�� Replicação dificulta a obtenção do estado Replicação dificulta a obtenção do estado

global do sistemaglobal do sistema�� Cada réplica deve atualizar seu estado ao Cada réplica deve atualizar seu estado ao

reintegrarreintegrar--se ao sistema; qualquer se ao sistema; qualquer inconsistência nos dados deve ser resolvidainconsistência nos dados deve ser resolvida