INE 5418 Algoritmos Segurança de Distribuídos...
Transcript of INE 5418 Algoritmos Segurança de Distribuídos...
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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