• Nenhum resultado encontrado

2 BASE TEÓRICA

2.3 Tipos de Falhas em Protocolos de Comunicação

A confiabilidade de um sistema computacional é definida pela combinação de dife- rentes aspectos, enfatizando a capacidade do sistema de atender as suas especificações, sob um conjunto de condições, durante um período de tempo definido e também condici- onado a estar operacional quando o tipo de controle ou função é requisitado. Os aspectos de confiabilidade são inerentes ao conceito de tolerância a falhas ou dependabilidade em sistemas computacionais. A tolerância a falhas é muito importante em sistemas críticos de tempo real (safety-critical real-time systems) porque uma falha em um componente pode levar a uma falha catastrófica no sistema. Neste contexto, em um sistema de controle dis- tribuído, um nó da rede é responsável por uma tarefa de controle especifica e pode estar associada a um ou mais tipos de falhas.

Como destacado na seção anterior, os conceitos de tolerância a falhas estão associados a três domínios (falha, erro e defeito). O presente trabalho aborda as falhas (do inglês faults) em seu contexto físico, de acordo com sua persistência, que afetam os protocolos de comunicação (por meio de interferências, nos seus limites internos e externos), e que

por sua vez, podem gerar posteriormente erros e defeitos. A seguir a subseção 2.3.1 apresenta conceitos e detalha os tipos de falhas com relação a sua persistência (transiente, intermitente ou permanente).

2.3.1 Falhas transientes, intermitentes e permanentes

Na indústria automotiva um processo de controle pode ser composto de diversos siste- mas computacionais embarcados que caracterizam complexos sistemas ciber físicos, onde estes, são compostos por sistemas computacionais colaborativos que controlam entidades físicas, as quais se comunicam e dependem de protocolos de comunicação específicos.

Diferentes tipos de falhas afetam os protocolos de comunicação. De acordo com (MARQUES et al., 2013) estas falhas podem ser permanentes, intermitentes ou transi- entes. As permanentes são falhas de software e hardware que sempre produzem erros, enquanto as temporárias são aquelas que podem produzir erros por falhas externas com efeitos transitórios (transient) ou por falhas internas esporádicas (intermittent) (AVIZIE- NIS et al., 2004).

Falhas transientes são temporárias ou eventuais por natureza e normalmente ocorrem devido a fatores externos como interferências eletromagnéticas (electromagnetic inter- ference - EMI), efeitos de radiação ou variação de temperatura. Por outro lado, falhas permanentes são persistentes e resultantes de defeitos físicos em partes do sistema, ne- cessitando de reparos ou substituição de componentes (MAHAPATRO; KHILAR, 2013) (GAO; CECATI; DING, 2015).

Falhas transientes podem afetar a rede de comunicação em situações de controle críti- cas. Quando a falha transiente ocorre durante um processo de comunicação, uma mensa- gem que está sendo transmitida pode ser perdida devido a erros de bit. A taxa de erros na recepção das mensagens pode ser avaliada por erros de bits (or BER do inglês “Bit-Error Rate”) ou também por erros/perda de pacotes (or PLR, do inglês “Packet-Loss Rate”), de- finida também em função do ambiente de operação. Normalmente é um importante ponto a ser considerado e agregado em técnicas de modelagem de comunicação para impulsio- nar o desenvolvimento de sistemas mais confiáveis (MAHAPATRO; KHILAR, 2013).

Falhas transientes são causadas por eventos oriundos do ambiente onde o sistema está em operação e nem sempre implicam em uma falha efetiva, mas podem degradar o de- sempenho de forma silenciosa, podendo em algum momento gerar uma falha grave. Uma falha intermitente (soft-fault) é originada da parte interna do sistema quando o softwa- re/hardware entra em estado de falha. Por natureza uma falha intermitente não ocorre de forma consistente, o que torna o diagnóstico um evento probabilístico ao longo do tempo. É difícil determinar a diferença entre uma falha transiente e intermitente por uma sim- ples observação do sistema. Uma falha gerada por eventos externos pode ter as mesmas características das geradas por eventos internos. A importância desta distinção é de que uma falha transiente nem sempre implica no estado falho do sistema, embora este estado

justifique ações de prevenção como a reinicialização do sistema. Por outro lado, se a fa- lha é intermitente o sistema deve ser declarado falho até que o problema seja corrigido (AVIZIENIS et al., 2004).

A nível de chip as falhas transientes são muito mais comuns que as falhas permanen- tes. A taxa de falhas transientes em chip pode ser da ordem de 10 a 100.000 vezes maior que a taxa de falhas permanentes em chip, dependendo do ambiente de operação e insta- lação. A causa mais comum de falhas transientes são as interferências eletromagnéticas (EMI), distúrbios ou ruídos de fonte de alimentação e a exposição a partículas de alta energia (KOPETZ, 2011).

2.3.2 Análise dos efeitos de interferências em protocolos de comunicação

Como apresentado na seção anterior, diferentes tipos de falhas e interferências podem degradar um sistema de comunicação, e para verificação deste impacto algumas métricas são comumente utilizadas, como por exemplo, a taxa de erros de bits - BER, a taxa de erros/perda de pacotes - PLR, vazão, latência e jitter. Outros fatores como a disposição dos dispositivos na rede, a topologia de interconexão, distância dos nós e consumo de energia também influenciam e servem de métricas de verificação da qualidade do processo de comunicação. A seguir, de acordo com (BREED, 2003) e (BERBER, 2004) é apresentada uma breve descrição destas principais métricas utilizadas para avaliar o desempenho dos protocolos de comunicação com relação a erros de bits e perda de pacotes.

Taxa de Erros de Bit - BER - A taxa BER é caracterizada pelo número de bits erra- dos por unidade de tempo e calculada verificando esse número de erros e dividindo pelo número total de bits transferidos durante um intervalo de tempo específico. Geralmente, essa grandeza é representada como uma potência de 10. Por exemplo, para a qualidade de transmissão das redes locais de Ethernet a 10Mbit/s, é normalmente esperado um valor melhor do que um bit errado em um bilhão de bits transmitidos, ou uma BER de 10−9. Essa taxa é bastante usada para avaliar a qualidade de comunicações seriais, a qual é definida pela Equação 1.

BER = transmission.errors

total.of.transmitted.bits (1)

A taxa de erros também é comumente estabelecida por probabilidade de ocorrência de erros - POE, de acordo com a Equação 2.

P OE = 1

2(1 − erf )

q

Eb/N o (2)

Onde, erf é a função do erro, Eb/No é a relação entre a energia presente em um bit e a densidade de ruido espectral na largura de 1 Hz. A função de erro é diferente para cada método de modulação, sendo mais importante considerar que o POE é proporcional a Eb/No, formando uma relação sinal-ruído.

Taxa de perda de pacotes - PLR - de forma similar, a taxa PLR pode ser obtida pelo número de pacotes recebidos incorretamente dividido pelo número total de pacotes recebidos, ou seja, o número de pacotes descartados na camada MAC em função de erros nos bits do pacote, de acordo com a Equação 3.

P LR = PF Ptx

(3) Onde PF é o número de pacotes com falhas e Ptx número de pacotes transmitidos.

Esta métrica é utilizada para avaliar as condições de ruído ou interferência no meio. Em sistemas embarcados de tempo real, o papel de um barramento de comunicação é distribuir dados entre nós conectados ao barramento. Assim, existem requisitos de tempo nesta transmissão, por exemplo, no que diz respeito ao atraso de transmissão (latênci- a/delay) ou jitter (a diferença entre o melhor e o pior caso de atraso de transmissão) (BROSTER; BURNS; RODRIGUEZ-NAVAS, 2005) (BURNS; DAVIS, 2013). Também de acordo com as definições dadas por (STALLINGS, 2007), os conceitos de atraso, jitter e vazão são detalhados a seguir.

Atraso: do inglês “Delay end-to-end” caracteriza o tempo decorrido para transmitir um bloco de dados de um nó/ponto de origem até que ele alcance o nó/ponto de destino. Em uma rede de comunicação é uma informação muito importante, pois definido o tempo entre mensagens enviadas de um nó a outro da rede. Esse parâmetro depende da veloci- dade do meio de transmissão, com relação ao tipo de meio físico utilizado. Em sistemas de tempo real é uma métrica fundamental de desempenho da rede de comunicação, pois determina o tempo entre o início e termino de uma tarefa de controle, que contribui para definição de restrições temporais do sistema.

Jitter: representa a magnitude da variação do atraso. Em aplicações de tempo real esta é uma medida importante, pois os pacotes são esperados em intervalos fixos de tempo no destino. Pacotes que chegam atrasados são normalmente descartados, principalmente em aplicações que requerem uma malha de controle em laço fechado, em que pacotes atrasados podem resultar em uma resposta errônea ao sistema de controle.

Vazão: do inglês “throughput” é a largura de banda efetiva ou carga, que representa a quantidade de dados isentos de erros transmitidos por unidade de tempo. Teoricamente, a vazão deve aumentar à medida que a carga oferecida à rede cresce, até o máximo da capacidade de rede. Mas na prática a vazão da rede depende do método de acesso ao meio, da carga atual da rede e da taxa de erros. Também usa-se o termo inglês “busload” referindo-se a variação da carga sob diferentes aspectos.

Desta forma, estas métricas auxiliam na análise do impacto de falhas geradas por in- terferências internas e externas ao sistema, que são preponderantes para as características de confiabilidade. A seguir a Seção 2.3 apresenta os principais conceitos dos sistemas embarcados distribuídos que são relevantes para o desenvolvimento da presente pesquisa.