Logo Passei Direto
Buscar

Lista de exercícios 8 - Respostas

Ferramentas de estudo

Questões resolvidas

Disponibilidade é definida como a propriedade que um sistema está pronto para ser utilizado de imediato. Em geral, refere-se a probabilidade de que o sistema está operando corretamente a qualquer momento e está disponível para desempenhar as suas funções em nome de seus usuários. Em outras palavras, um sistema altamente disponível é aquele que provavelmente vai estar trabalhando em um dado instante no tempo. Confiabilidade refere-se à propriedade de que um sistema pode funcionar continuamente sem falhas. Em contraste com a disponibilidade, a confiabilidade é definida em termos de um intervalo de tempo, em vez de um instante no tempo.
Qual a diferença entre disponibilidade (availability) e confiabilidade (reliability). Dê exemplos.

Defina tolerância a falhas.

Em um sistema assíncrono, há suposições sobre velocidades de execução de processo ou os prazos de entrega de mensagens são feitas. A consequência disso é que quando o processo de P já não percebe nenhuma ação de Q, não se pode concluir que Q caiu. Em vez disso, só ele pode ser lento ou suas mensagens podem ter sido perdidas.
Por que a detecção de falhas seria mais simples em sistemas distribuídos síncronos? Quais os requisitos para que esse tipo de sistema seja possível? Isso seria possível na Internet?

Se um sistema deve ser tolerante a falhas, o melhor que pode fazer é tentar ocultar a ocorrência de falhas de outros processos. A principal técnica para mascarar falhas é usar redundância.
Discuta o uso de redundância para o mascaramento de falhas.

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Disponibilidade é definida como a propriedade que um sistema está pronto para ser utilizado de imediato. Em geral, refere-se a probabilidade de que o sistema está operando corretamente a qualquer momento e está disponível para desempenhar as suas funções em nome de seus usuários. Em outras palavras, um sistema altamente disponível é aquele que provavelmente vai estar trabalhando em um dado instante no tempo. Confiabilidade refere-se à propriedade de que um sistema pode funcionar continuamente sem falhas. Em contraste com a disponibilidade, a confiabilidade é definida em termos de um intervalo de tempo, em vez de um instante no tempo.
Qual a diferença entre disponibilidade (availability) e confiabilidade (reliability). Dê exemplos.

Defina tolerância a falhas.

Em um sistema assíncrono, há suposições sobre velocidades de execução de processo ou os prazos de entrega de mensagens são feitas. A consequência disso é que quando o processo de P já não percebe nenhuma ação de Q, não se pode concluir que Q caiu. Em vez disso, só ele pode ser lento ou suas mensagens podem ter sido perdidas.
Por que a detecção de falhas seria mais simples em sistemas distribuídos síncronos? Quais os requisitos para que esse tipo de sistema seja possível? Isso seria possível na Internet?

Se um sistema deve ser tolerante a falhas, o melhor que pode fazer é tentar ocultar a ocorrência de falhas de outros processos. A principal técnica para mascarar falhas é usar redundância.
Discuta o uso de redundância para o mascaramento de falhas.

Prévia do material em texto

Sistemas Distribuídos 
Prof. Fábio M. Costa 
Aluno: Orlando da Cruz Pereira Júnior 
 
Lista de Exercícios 8 
 
1. Qual a diferença entre disponibilidade (availability) e confiabilidade (reliability). Dê 
exemplos. 
 
Disponibilidade é definida como a propriedade que um sistema está pronto para ser utilizado 
de imediato. Em geral, refere-se a probabilidade de que o sistema está operando 
corretamente a qualquer momento e está disponível para desempenhar as suas funções em 
nome de seus usuários. Em outras palavras, um sistema altamente disponível é aquele que 
provavelmente vai estar trabalhando em um dado instante no tempo. 
 
Confiabilidade refere-se à propriedade de que um sistema pode funcionar continuamente sem 
falhas. Em contraste com a disponibilidade, a confiabilidade é definida em termos de um 
intervalo de tempo, em vez de um instante no tempo. Um sistema altamente confiável é 
aquele que provavelmente irá continuar a trabalhar sem interrupção durante um período 
relativamente longo de tempo. Esta é uma diferença sutil, mas importante quando comparado 
à disponibilidade. Se um sistema desce em média, para um milissegundo, aparentemente, tem 
uma disponibilidade de mais de 99,9999 por cento, mas ainda não é confiável. Da mesma 
forma, um sistema que não cai, mas é desligado por duas semanas em agosto tem alta 
confiabilidade, mas a disponibilidade apenas 96 por cento. Os dois não são o mesmo. 
 
2. Defina tolerância a falhas. 
 
Ser tolerante a falhas está fortemente relacionado aos chamados sistemas confiáveis. 
Confiabilidade é um termo que abrange uma série de requisitos úteis para sistemas 
distribuídos, incluindo os seguintes [Kopetz e Veríssimo, 1993]: 
• Disponibilidade 
• Confiabilidade 
• segurança 
• Manutenção 
 
3. Por que a detecção de falhas seria mais simples em sistemas distribuídos síncronos? Quais 
os requisitos para que esse tipo de sistema seja possível? Isso seria possível na Internet? 
 
Em um sistema assíncrono, há suposições sobre velocidades de execução de processo ou os 
prazos de entrega de mensagens são feitas. A consequência disso é que quando o processo de 
P já não percebe nenhuma ação de Q, não se pode concluir que Q caiu. Em vez disso, só ele 
pode ser lento ou suas mensagens podem ter sido perdidas. 
Em um sistema síncrono, velocidades de execução de processo e tempos mensagem de 
entrega são delimitadas. Isto também significa que, quando Q não mostra mais atividade 
quando espera-se a fazê-lo, o processo P pode legitimamente concluir que Q caiu. 
 
4. Defina e dê exemplos dos cinco tipos de falhas descritos na Tabela 8.2 (pág. 428). 
 
Crash failure (Falha acidental) 
Uma Crash failure ocorre quando um servidor para prematuramente, mas estava funcionando 
corretamente até que parou. Um aspecto importante é que uma vez que o servidor foi 
interrompido, não se vê mais nada. Um exemplo típico de uma falha de acidente é um sistema 
operacional que vem a uma parada, e para o qual existe apenas uma solução: reiniciá-lo. 
Muitos sistemas de computadores pessoais sofrem de falhas com tanta frequência que as 
pessoas passaram a esperar que eles sejam normais. 
 
omission failure (Falha de omissão) 
receive-omission failure: 
Uma falha de omissão ocorre quando um servidor não responde a uma solicitação. Várias 
coisas podem dar errado. Possivelmente o servidor nunca recebeu a solicitação em primeiro 
lugar. Observe que pode muito bem acontecer que a conexão entre um cliente e um servidor 
tenha sido estabelecida corretamente, mas que não houvesse nenhum segmento ouvindo 
solicitações recebidas. Além disso, essa falha geralmente não afetará o estado atual do 
servidor, pois o servidor não está ciente de qualquer mensagem enviada a ele. 
 
send-omission failure: 
Da mesma forma, uma falha de omissão de envio acontece quando o servidor fez seu trabalho, 
mas de alguma forma falha no envio de uma resposta. Tal falha pode acontecer, por exemplo, 
quando um buffer de envio estourar enquanto o servidor não estava preparado para tal 
situação. Como conseqüência, se o envio de sua resposta falhar, o servidor deve estar 
preparado para o cliente reemitir sua solicitação anterior. 
 
Timing failures (falhas de temporização) 
Outra classe de falhas está relacionada ao tempo. As falhas de temporização ocorrem quando 
a resposta está fora de um intervalo de tempo real especificado. Por exemplo, no caso de 
streaming de vídeo, o fornecimento de dados em breve pode causar problemas para um 
destinatário se não houver espaço suficiente no buffer para armazenar todos os dados 
recebidos. Mais comum, no entanto, é que um servidor responde muito tarde e, nesse caso, 
ocorre uma falha de desempenho. 
 
Response failure (falha na resposta) 
Um tipo grave de falha é uma falha na resposta, pelo qual a resposta do servidor é 
simplesmente incorreto. Dois tipos de falhas de resposta podem acontecer. No caso de uma 
falha de valor, um servidor simplesmente fornece a resposta errada a um pedido. Por 
exemplo, um motor de busca que retorna sistematicamente páginas Web não relacionadas 
com qualquer um dos termos de busca utilizados. 
 
State-transition failure (falha de transição de estado) 
O outro tipo de falha de resposta é conhecida como uma falha de transição de estado. Este 
tipo de falha acontece quando o servidor reage de forma inesperada para uma solicitação de 
entrada. Por exemplo, se um servidor recebe uma mensagem que não pode reconhecer, uma 
falha de transição de estado acontece se não foram tomadas medidas para lidar com essas 
mensagens. Em particular, um servidor com defeito incorretamente pode tomar ações padrão 
que nunca deveria ter iniciado. 
 
Arbitrary failures (falhas arbitrárias) 
O mais grave são as falhas arbitrárias, também conhecidas como falhas bizantinas. Com efeito, 
quando ocorrem falhas arbitrárias, os clientes devem estar preparados para o pior. Em 
particular, pode acontecer que um servidor que se encontra em produção e nunca deveria ter 
produzido, mas que não pode ser detectado como sendo incorreto. Falhas bizantinas foram 
primeiro analisadas por Pease et al. [1980] e Lamport et al. [1982]. 
 
5. Quais destas falhas podem ser tratadas e como? 
 
send-omission failure: 
Pode- se retransmitir a mensagem. 
 
Crash failure (Falha acidental) 
Revisões periódicas e atualização do sistema. 
 
6. Discuta o uso de redundância para o mascaramento de falhas. 
 
Se um sistema deve ser tolerante a falhas, o melhor que pode fazer é tentar ocultar a 
ocorrência de falhas de outros processos. A principal técnica para mascarar falhas é usar 
redundância. Três tipos são possíveis: redundância de informações, redundância de tempo e 
redundância física (ver também Johnson [1995]). Com redundância de informações, bits extras 
são adicionados para permitir a recuperação de bits distorcidos. Por exemplo, um código 
Hamming pode ser adicionado aos dados transmitidos para se recuperar do ruído na linha de 
transmissão. 
 
Com a redundância de tempo, uma ação é executada e, se necessário, é executada 
novamente. As transações usam essa abordagem. Se uma transação for anulada, ela poderá 
ser refeita sem danos. Outro exemplo bem conhecido é retransmitir uma solicitação para um 
servidor quando falta uma resposta esperada. A redundância de tempo é especialmente útil 
quando as falhas são transitórias ou intermitentes. 
 
Com a redundância física, equipamentos ou processos extras são adicionados para possibilitar 
que o sistema como um todo tolere a perda ou o mau funcionamento de alguns componentes. 
A redundância física pode, assim, ser feita em hardware ou em software. Por exemplo, 
processos extras podem ser adicionados ao sistema para que, se um pequeno número deles 
falhar, o sistema ainda funcione corretamente. Em outras palavras, replicando processos, um 
alto grau de tolerância a falhas pode ser alcançado.

Mais conteúdos dessa disciplina