The resulting (annotated) assembly language with corresponding ma- ma-chine code follows:
Two 32-bit instructions (movw, movt) are used to load the lower/upper halves of the address of counter (known at link time, and hence 0 in the
2.4.6 Meir om avbrotshandtering
Esta seção tem como objetivo descrever de forma sucinta as principais diferenças existentes entre os padrões de comunicação sem fio industriais descritos anteriormente. Os principais pontos de discussão estão descritos na Tabela 2.5.
Tabela 2.5: Comparações entre os principais padrões de comunicação sem fio industriais.
Propriedades WirelessHART ISA100.11a WIA-PA
Camada física IEEE 802.15.4 IEEE 802.15.4 IEEE 802.15.4
Camada de en- lace Slots de 10ms, sal- tos de frequência (1 tipo), TDMA Slots de 10-12ms, saltos de fre- quência (3 tipos), TDMA/CSMA, roteamento a nível da subrede (grafo e origem) Slots de 10ms, saltos de fre- quência (3 tipos), TDMA/CSMA/FDMA
Camada de rede Roteamento (grafo e origem) Fragmentação, ro- teamento a nível de roteadores back- bones(6LoWPAN) Fragmentação, ro- teamento inter/intra cluster
Propriedades WirelessHART ISA100.11a WIA-PA Camada de trans- porte Serviços com/sem conexão, ACK fim-a-fim
Serviços UDP sem
conexão - Camada de apli- cação Fragmentação, HART Genérica orientada a objetos Genérica
Topologia Mesh Mesh Mesh(limitada)
Escalabilidade 64 bits (físico), 16 bits (rede) 64 bits (físico), 16 bits (rede) 64 bits (físico), 64 bits (rede) Fabricantes Emerson, Sie- mens, ABB, Endress+Hauser, Pepperl+Fuch, MACTek e outros membros HCF Honeywell, Yoko-
gawa Mercado chinês
Pontos fortes Interoperabilidade, roteamento múl- tiplos caminhos, quantidade de fa- bricantes, melhores práticas
Integração com In- ternet, controle da potência do rádio, segregação da rede Saltos de frequência adaptativo e agrega- ção de dados
Pontos fracos Saltos de frequência
não são adaptativos Interoperabilidade
Uso de beacons e to- pologia limitada Vários aspectos como por exemplo o alcance do rádio, escalabilidade e aplicabilidade no controle de processos devem ser analisados com extrema neutralidade devido os inter- esses comerciais presentes nos referidos padrões. Especificamente em relação ao alcance do rádio, é esperado que todos os padrões tenham resultados semelhantes haja vista o uso da mesma camada física (IEEE 802.15.4). Por outro lado, apesar do padrão WIA-PA apresentar um espaço de endereçamento superior as suas contrapartes, na prática todos os equipamentos vendidos apresentam a mesma escalabilidade (100 dispositivos por gate- way). O ponto de maior discussão é a aplicabilidade dos padrões no controle de processos. Cada fabricante relata que apenas um determinado padrão suporta esse tipo de aplicação. Na prática, estudos mais aprofundados ainda precisam ser realizados sobre esse tema.
com o objetivo de maximizar a probabilidade em entregar uma informação ao destino final (atuador ou o próprio gateway). O padrão WIA-PA possui como vantagem a im- plementação de saltos de frequência adaptativos. Nesse mecanismo, os dispositivos ape- nas mudam o canal de comunicação quando interferências são detectadas. Nas técnicas utilizadas por suas contrapartes um dispositivo muda o canal de comunicação em cada transmissão. Nesse caso, poderá ocorrer situações onde a utilização de um canal bom seja preterida por um canal ruidoso. A desvantagem do método utilizado no padrão WIA-PA é o custo temporal para detectar que o canal está ruidoso.
Todos os padrões utilizam um controle de acesso ao meio baseado em TDMA. O ponto crítico em utilizar uma técnica de TDMA é a sincronização da rede. Os padrões WirelessHART e ISA100.11a adotam um mecanismo simples e eficiente (informações temporais são enviadas nas mensagens advertise e de reconhecimento) para tal propósito enquanto que o padrão WIA-PA utiliza mensagens de balizamento (consome mais ener- gia). Adicionalmente, os padrões ISA100.11a e o WIA-PA incorporam outras técnicas que maximizam banda nas operações de entrada e descoberta da rede e nas retransmissões de dados.
Outro ponto de grande importância é o roteamento. Os padrões WirelessHART e ISA100.11a empregam um mecanismo de múltiplos caminhos na tentativa de maximar a confiabilidade da rede. Esse mecanismo é combinado com um suporte a topologias mesh. Dois algoritmos são utilizados, o roteamento em grafo e origem. Apesar do suporte a topologia mesh, o padrão WIA-PA apresenta algumas limitações em relação a resiliên- cia da rede. Múltiplos caminhos são apenas utilizados nos roteadores. A comunicação entre os dispositivos de campo e os roteadores seguem uma topologia em cluster. Adi- cionalmente, o padrão ISA100.11a apresenta suporte a Internet através do padrão 6LoW- PAN. Entretanto, essa funcionalidade é apenas suportada na comunicação entre roteadores backbones. Inclusive essa característica adiciona um ponto adicional de falha na medida que fragmentação é exigida nos roteadores backbones. Nos padrões WirelessHART e WIA-PA a fragmentação ocorre apenas no gateway.
Entre os três padrões descritos anteriormente, apenas a HCF define melhores práticas a serem utilizadas no projeto e construção de uma rede. Entretanto, a abordagem pode ser estendida para os padrões ISA100.11a e WIA-PA.
Por fim, no que se refere aos fabricantes de hardware, o padrão WirelessHART apre- senta algumas vantagens em relação a interoperabilidade principalmente por ser uma ex- tensão do padrão HART (já consolidado na indústria). O padrão ISA100.11a apresenta várias configurações opcionais as quais podem contribuir para problemas de interopera- bilidade entre diferentes fabricantes. O padrão WIA-PA está restrito apenas ao mercado
Dependabilidade: Estado da Arte
Dependabilidade é um tema intrinsecamente relacionado às redes industriais sem fio. Falhas nos dispositivos ou nos canais de comunicação podem provocar a parada parcial ou até mesmo total da planta, resultando em perdas econômicas e riscos iminentes aos operários.
Esse capítulo tem como objetivo principal descrever os principais conceitos relacio- nados com análise da dependabilidade de sistemas quando aplicadas às redes industriais sem fio. Técnicas de redundância e análises quantitativas também serão abordadas. O capítulo encerra com a descrição das metodologias existentes na literatura para análise da confiabilidade e disponibilidade de redes sem fio.
3.1 Principais conceitos
3.1.1 Falha
O primeiro conceito sobre dependabilidade a ser descrito é a própria falha (fault). A definição de falha é simples e clara, é um tipo de evento que pode conduzir a um erro. Uma falha está ativa quando ela causa um erro, caso contrário ela está dormente. No contexto de redes industriais, alguns exemplos de falhas são: deterioração física dos com- ponentes de hardware, erros operacionais, decisões equivocadas ainda na fase de projeto e envelhecimento de software.
Classificação
Avizienis et al. (2004) organizaram e classificaram as falhas para três principais gru- pos: falhas de projeto, falhas físicas e falhas de operação. As falhas de projeto incluem todas as falhas que ocorrem durante a fase de desenvolvimento dos sistemas, enquanto
que as falhas físicas são aquelas que afetam o hardware dos equipamentos. Por fim, as falhas de operação são todas as falhas que ocorrem durante a utilização dos sistemas.
Para melhor compreensão dessa classificação, iremos descrever alguns exemplos. Fa- lhas naturais são tipicamente falhas físicas causadas por fenômenos naturais com ou sem a participação de agentes externos (humanos). Outro exemplo de falha é aquela provocada pela ação do homem, a qual pode incluir a falha por omissão (ausência de ações quando na verdade ações deveriam ter sido tomadas) ou falha por comissionamento (quando ações erradas conduzem a falhas). Outros exemplos são descritos abaixo:
• Falhas maliciosas: introduzidas com o objetivo de alterar o funcionamento do sis- tema.
• Falhas não maliciosas: introduzidas sem o objetivo malicioso. • Falhas deliberadas: ocorrem devido a más decisões.
• Falhas não deliberadas: ocorrem devido a erros.
• Falhas de configuração: a configuração errada dos parâmetros conduzem para fa- lhas.
No contexto desta tese, falhas são classificadas em transientes ou permanentes [Garg & Kumar 2010]. Falhas transientes afetam os links de comunicação entre dispositivos por um pequeno intervalo de tempo (escala em milissegundos [Willig et al. 2002]). Esse tipo de falha é provocada tipicamente por ruídos ou interferências eletromagnéticas. Por outro lado, falhas permanentes afetam diretamente os dispositivos e são causadas por problemas de hardware. Após uma falha permanente, um dispositivo é considerado inoperante até que uma ação de reparo seja finalizada (escala em horas [Zhu 2012]). Excepcionalmente, falhas nos links podem ser consideradas permanentes. Esse cenário ocorre quando obstá- culos/barreiras temporárias (pessoas, carros, paredes, clima adverso) inibem a comunica- ção entre os dispositivos por um período superior à escala dos milissegundos [Zamalloa & Krishnamachari 2007].
3.1.2 Defeito
O próximo conceito a ser descrito sobre análise da dependabilidade é o defeito (fai- lure). A manifestação de eventos que ocorre quando o sistema desvia do serviço correto é chamado defeito. Em outras palavras, defeitos ocorrem quando erros são propagados dentro do sistema.
Um ponto de grande importância é a identificação das possíveis causas dos defeitos. Isso pode ser realizado mais facilmente baseado na caracterização/classificação dos di-
versos tipos de defeitos. Avizienis et al. (2004) caracteriza os defeitos em quatro pontos de vistas: domínio, detectabilidade, consistência e consequências.
No primeiro ponto de vista, o domínio dos defeitos são classificados em três classes principais:
• Defeitos de conteúdo: a natureza da informação (numérica ou não numérica) trans- mitida desvia da especificação correta.
• Defeitos temporais: a duração do serviço desvia da implementação correta (muito rápido ou muito lento).
• Defeitos de conteúdo e temporais: nenhum serviço é entregue ou caso o serviço seja entregue ele desvia da sua implementação correta.
Outro ponto de vista importante descrito por Avizienis et al. (2004) é a detectabili- dade dos defeitos. Esse conceito refere-se à capacidade do defeito ser sinalizado para os usuários. Nesse contexto, dois principais problemas precisam ser observados. O primeiro refere-se aos falsos alarmes, o qual se caracteriza pela sinalização dos defeitos quando na prática eles não ocorreram. O segundo é ainda mais crítico e refere-se a não sinalização dos defeitos quando eles realmente ocorrem. Ambos problemas conduzem o sistema para um estado de degradação, onde apenas algumas funcionalidades são operacionais.
A consistência dos defeitos é um ponto de vista que apresenta um significado muito próximo com a detectabilidade dos defeitos. Esse conceito está relacionado com a capa- cidade de observação dos usuários em relação aos defeitos. Quando um serviço incorreto é percebido por todos os usuários do sistema, o defeito é chamado consistente. Por outro lado, quando apenas alguns usuários percebem que um defeito ocorreu, este é chamado de inconsistente.
Finalmente, o último ponto de vista proposto por Avizienis et al. (2004) é a conse- quência dos defeitos. Esse conceito caracteriza a severidade que um defeito pode causar. Quando as consequências são comparadas com os benefícios fornecidos pelo funciona- mento correto do sistema, os defeitos são chamados de benignos, caso contrário eles são chamados de catastróficos.
Na metodologia proposta nesta tese, assumi-se os defeitos de conteúdo e temporais. Adicionalmente, todos os defeitos são sinalizados e observados para/pelos usuários. Em relação à severidade dos defeitos, dependendo do cenário a ser avaliado, ambos os defeitos benignos e catastróficos são suportados pela proposta apresentada aqui.
3.1.3 Erros
Erro é um conceito básico em análise da dependabilidade, o qual caracteriza um estado incorreto de parte do sistema. Erros podem causar defeitos, enquanto que as causas dos erros são as falhas. Os defeitos surgem quando os erros são propagados no sistema. Note que a parte do sistema que contém erros pode nunca ser usada, dessa forma o defeito poderá nunca ocorrer. A relação completa entre falhas, erros e defeitos é descrita na Figura 3.1.
Falha
... Ativação
Erro Propagação Defeito Causa
Falha ...
Figura 3.1: Relação entre falhas, erros e defeitos.
Para melhor compreender o conceito sobre erro e suas relações com a falha e defeito, permita-nos descrever o seguinte cenário. Suponha que um determinado dispositivo (sem fio) transmite um pacote para um controlador. No instante da transmissão, um ruído ele- tromagnético ocorreu (falha), modificando alguns bits do pacote. Devido à mudança dos bits (erro), o pacote não foi aceito/recebido no controlador. Consequentemente, o algo- ritmo de controle não foi capaz, por exemplo, de enviar o sinal correto para o desbloqueio de uma válvula (defeito).
Em relação à classificação, os erros são caracterizados conforme sua detectabilidade. Um erro é detectável quando sua evidência é indicada através de um comportamento peculiar do sistema ou através de mensagens/alarmes. Por outro lado, quando os erros são presentes porém não detectáveis, sua denominação é erros latentes. No contexto desta tese, todos os erros são considerados detectáveis.
3.1.4 Dependabilidade
Dependabilidade é um conceito muito interessante que é discutido amplamente na li- teratura [Avizienis & Laprie 1986, Laprie 1995, Avizienis et al. 2004, Petre et al. 2011]. Existem diversas definições para o termo dependabilidade. Na definição original [Avizienis & Laprie 1986], dependabilidade é a capacidade de entregar serviços que podem ser justi- ficadamente confiáveis. Em outra definição [Petre et al. 2011], o termo dependabilidade é usado para descrever que um sistema pode ser confiável sob determinadas condições ope- racionais por um período de tempo específico. A definição de dependabilidade assumida nesta tese, considerando que todo sistema pode falhar, é a habilidade de um sistema evitar falhas nos serviços mais críticos [Avizienis et al. 2004]. Essa definição é coerente com o
contexto das redes industriais sem fio, onde falhas nos serviços críticos podem ocasionar consequências catastróficas.
Dependabilidade pode ser também caracterizada por um conceito integrado combi- nando os seguintes atributos:
• Confiabilidade: exprime a ideia de continuidade do serviço correto. Em outras palavras, a probabilidade de um defeito não ocorrer em um determinado período de tempo.
• Integridade: o serviço não pode ser modificado sem autorização. • Manutenabilidade: capacidade de ser reparado ou sofrer manutenção.
• Disponibilidade: habilidade em fornecer o serviço correto quando solicitado. Em outras palavras, a probabilidade do sistema estar operacional quando solicitado. • Segurança: ausência de consequências catastróficas para os usuários do sistema. Na prática, esses atributos devem ser quantificados para que se possa avaliar o quão confiável é um determinado sistema. A importância de cada um desses atributos é sub- jetiva e depende do contexto da aplicação que está sendo avaliada. Por exemplo, para o contexto das redes industrias sem fio é essencial alta disponibilidade (as aplicações devem estar operacionais o maior tempo possível) e confiabilidade (defeitos devem ser evitados nos serviços críticos). Todos esses atributos serão descritos formalmente na Seção 3.3. Meios para obtenção da dependabilidade
Em relação aos meios para obtenção da dependabilidade, Avizienis et al. (2004) ca- tegorizou quatro grupos principais: prevenção de falhas, tolerância a falhas, remoção de falhas e previsão de falhas.
Prevenção de falhas é um conceito largamente utilizado na engenharia para descre- ver a capacidade em prevenir a ocorrência ou inserção de falhas. A prevenção de falhas pode ser utilizada durante as fases de especificação (evitar especificações incompletas ou ambíguas), desenvolvimento (escolha correta de metodologias e processos), fabricação (verificação da qualidade dos componentes) e operação (treinamento dos usuários) dos sistemas. Esta técnica não consegue evitar completamente os riscos das falhas. Ape- sar da evolução nas técnicas/metodologias para prevenção de falhas, na prática é quase impossível garantir que um sistema não possua falhas [Portugal 2004].
Continuando com a descrição dos meio para obtenção da dependabilidade, a seguir iremos definir um dos principais conceitos, tolerância a falhas. Este conceito é definido como a capacidade de evitar defeitos na presença de falhas. Para alcançar seu objetivo,
a tolerância a falhas utiliza duas técnicas: detecção de erros e a recuperação do sistema. A primeira técnica permite a detecção de um estado errado do sistema e ainda pode ser utilizada de uma maneira concorrente (durante a entrega normal do serviço) ou de uma maneira preemptiva (enquanto o serviço está suspenso). Por outro lado, o mecanismo de recuperação se baseia na eliminação dos erros (manipulação dos erros) e na preven- ção que falhas sejam ativadas novamente (manipulação de falhas). A eliminação dos erros é composta de três partes principais: retrocesso (retorno para um estado seguro do sistema), avanço (deslocamento para um novo estado confiável) e compensação (uso de redundância para mascarar o erro). O uso de compensação ou redundância é um meio bastante eficiente para fornecer tolerância a falhas aos sistemas [Johnson 1988]. Por ou- tro lado, a técnica de manipulação de falhas é caracterizada por quatro funcionalidades: identificação e localização dos erros (diagnóstico), exclusão dos componentes falhados (isolamento), reatribuições de tarefas (reconfiguração) e reinicialização. Uma visão geral sobre os principais meios para obtenção de tolerância a falhas é descrita na Figura 3.2.
Tolerância a Falhas Detecção de Erros Recuperação Manipulação de erros Manipulação de falhas Retrocesso Avanço Compensação Diagnóstico Isolamento Reconfiguração Reinicialização Concorrente Preemptiva
Figura 3.2: Meios para obter tolerância a falhas.
O próximo conceito a ser definido é o de remoção de falhas. Esta técnica procura alcançar a dependabilidade pela redução no número de falhas durante as fases de desen- volvimento e operação do sistema. Na fase de desenvolvimento, a remoção de falhas é garantida através de três procedimentos: verificação (checagem sempre que o sistema anuncia uma nova funcionalidade), diagnóstico (identificar e localizar falhas) e correção. Em contrapartida, durante a fase de operação, a remoção de falhas é garantida através da manutenção dos componentes. Existem dois tipos de manutenção: a corretiva e a preemp- tiva. Na primeira técnica, falhas que tenham produzido um ou mais erros são removidas, enquanto que na manutenção preemptiva falhas são removidas, ainda durante o serviço correto do sistema, antes que elas possam causar erros.
mar o número e as consequências das falhas no sistema. A referida técnica executa uma avaliação do comportamento do sistema em relação a ocorrência ou ativação de falhas. A avaliação pode ocorrer de uma maneira qualitativa ou quantitativa. No primeiro método, as falhas são identificadas e classificadas baseadas nos defeitos que elas podem ocasio- nar enquanto que no método quantitativo medidas (atributos) sobre a dependabilidade do sistema são realizadas.
A Tabela 3.1 sintetiza as definições sobre os principais conceitos relacionados com tolerância a falhas descritos anteriormente.
Tabela 3.1: Conceitos básicos sobre tolerância a falhas.
Conceito Definição Principais atributos e classificação Dependabilidade Capacidade do sistema
em evitar falhas nos ser- viços críticos
Principais conceitos: falha, defeito e erro
Falha Qualquer tipo de de- feito que pode conduzir a um erro
Projeto, físicas e operação
Defeito A manifestação do erro Domínio, detectabilidade, consis- tência e consequência
Erro Estado incorreto do sis- tema
Detectável e latente
3.2 Redundância
Esta seção tem como objetivo descrever os conceitos fundamentais que são utilizados na implementação de sistemas tolerantes a falhas. Basicamente, técnicas de redundância são adotadas para garantir os requisitos desses sistemas.
Os meios para obtenção de sistemas tolerantes a falhas são baseados em cinco téc- nicas [Johnson 1988]: mascaramento, contenção, detecção, localização e recuperação. O mascaramento tem como objetivo ocultar a ocorrência das falhas no sistema. A de- tectabilidade da falha não é realmente necessária antes que a mesma possa ser tolerada. Entretanto, a falha precisar ser mantida sob controle. Por outro lado, a contenção é res- ponsável por prevenir que as consequências das falhas não se propaguem para todo o sistema. A detecção, localização e recuperação das falhas são técnicas adotadas quando as duas técnicas anteriores não são utilizadas.
Todas as técnicas descritas no paragrafo anterior utilizam algum tipo de redundância para garantir requisitos tolerantes a falhas. Redundância obtém tais requisitos na me-
dida que adiciona informações e recursos além do necessário para conduzir o sistema a sua condição operacional. A seguir, os principais tipos de redundância serão descritos (hardware, informação, temporal e software).
3.2.1 Redundância de Hardware
Redundância de hardware é um dos procedimentos mais comuns para obtenção de redundância nos sistemas. Apesar dos benefícios inerentes à adoção da redundância, é importante avaliar o impacto da replicação de hardware no desempenho, tamanho, peso e consumo de energia do sistema. Nesse contexto, as propriedades de tolerância a falhas mencionadas anteriormente (mascaramento, detecção, localização e recuperação) são usa- das para classificar a redundância de hardware em três grupos [Johnson 1988]: passiva, ativa e híbrida.
Redundância passiva
Um sistema configurado com redundância de hardware passiva não gera erros na saída em caso de falhas. Entretanto, o sistema poderá ser reinicializado para evitar a ocorrência de erros. Duas técnicas se destacam: redundância modular tripla (TMR1) e a redundância
modular múltipla (NMR2).
a) Redundância modular tripla
A técnica mais comum de redundância passiva de hardware é a TMR. A ideia básica é triplicar o hardware onde os módulos executarão o mesmo procedimento. A saída de cada módulo é processada por uma técnica de votação que irá escolher a saída do sistema. Se um dos módulos falhar, os dois outros restantes poderão mascarar o módulo defeituoso utilizando o esquema de votação majoritário. Caso dois módulos falhem, a partir daquele momento o sistema não terá garantias para fornecer os requisitos tolerantes a falhas. A Figura 3.3 sintetiza a técnica da redundância modular tripla.
O ponto fraco da técnica TMR é o mecanismo de votação. Em caso de falha deste mecanismo o sistema ficará comprometido. Sendo assim, a confiabilidade máxima do sistema é determinada pela confiabilidade máxima do mecanismo de votação. Adicional- mente, o esquema de votação pode ser replicado para garantir requisitos mais robustos. A Figura 3.4 descreve um procedimento semelhante, onde o sistema suporta até duas falhas