Comunicação e Falhas em Sistemas Distribuídos
Classificado em Computação
Escrito em em
português com um tamanho de 3 KB
Métodos de Comunicação
Basicamente, existem duas formas de comunicação entre processos através de troca de mensagens:
- Comunicação Síncrona: O processo que transmite a mensagem (transmissor) é bloqueado até que receba uma confirmação do recebimento da mensagem pelo receptor.
- Comunicação Assíncrona: O processo transmissor envia a mensagem (que deve ser armazenada em um buffer) e continua a sua execução.
Modelo de Falha
Define como uma falha pode se manifestar em um sistema de forma a proporcionar um entendimento de seus efeitos e consequências. Neste contexto, 3 tipos de falhas se caracterizam:
- Falhas por Omissão;
- Falhas Arbitrárias;
- Falhas de Sincronização.
Falhas por Omissão
Casos em que o processo ou canal de comunicação deixa de executar as ações que deveria. O processo entra em colapso, parando e não executando outro passo de seu programa. A detecção de falha se dá pelo envio de mensagens de status. O timeout determina quando certos processos deixam de responder.
Exemplo: Perda de Mensagens
- P e Q estão programados para Q responder à mensagem de P.
- Se o processo P não receber nenhuma resposta do processo Q dentro de um tempo máximo (timeout).
- Então, o processo P conclui que o processo Q falhou.
- Falha por omissão de envio;
- Falha por omissão de recepção;
- Falha por omissão de canal.
Falhas Arbitrárias
É a pior semântica de falha possível, pois qualquer tipo de erro pode ocorrer. No entanto, duas se destacam:
- Falha arbitrária de um processo: É aquela em que ele omite arbitrariamente passos desejados do processamento ou efetua processamento indesejado.
- Falha arbitrária em canais de confirmação: O conteúdo da mensagem pode ser corrompido, mensagens inexistentes podem ser enviadas ou mensagens reais podem ser entregues mais de uma vez.
Falhas de Sincronização
São aplicáveis aos sistemas distribuídos síncronos, na qual os limites de tempo são estabelecidos para o tempo de execução do processo, para o tempo de entrega de mensagens e para a taxa de desvio do relógio.
A temporização é particularmente relevante para aplicações multimídia, como canais de áudio e vídeo.
Sistemas com Múltiplos Processadores
Os sistemas com múltiplos processadores caracterizam-se por possuir duas ou mais CPUs interligadas, trabalhando em conjunto. Um fator chave no desenvolvimento de sistemas operacionais com múltiplos processadores é a forma de comunicação CPU e o grau de compartilhamento da memória e dos dispositivos de entrada e de saída.
Em função desses fatores, podemos classificar os sistemas em fortemente acoplados e fracamente acoplados. Conforme diagrama a seguir: