• Nenhum resultado encontrado

2 FUNDAMENTOS TEÓRICOS

2.2 TRATAMENTOS DE FALHAS EM SISTEMAS

O comportamento de um sistema é função de seu estado interno e das entradas que recebe. Guerra (2004) define defeito* como um desvio entre o comportamento esperado de um sistema e o seu comportamento real, fazendo com que o sistema, em determinadas situações, funcione em desacordo com suas especificações. Um defeito é dito crítico quando resulta no comportamento desordenado do sistema. Em outros casos, pode haver apenas uma degradação nos serviços oferecidos pelo sistema, que mantém parte de sua funcionalidade intacta.

A ocorrência de um defeito (Figura 4) pode ser associada a um determinado estado interno do sistema que, sob determinadas entradas, provoca aquela ocorrência. Esse estado interno do sistema, que pode ou não provocar o defeito, é chamado de erro*. Já o agente causador deste erro é chamado de falha (LEE & ANDERSON, 1990 apud GUERRA, 2004 pp. 24).

Figura 4 – Origem da ocorrência de um defeito

Um defeito em um componente pode significar uma condição de falha para outro componente relacionado. Uma sucessão de eventos em que uma falha de componente produz outra falha em outro componente é denominada propagação de falha (GUERRA, 2004).

O tratamento de uma falha visa a evitar que esta se configure em um erro e, posteriormente, em um defeito. Adicionalmente, deve-se evitar a propagação de falhas. Desta forma, tem como objetivo maior garantir a confiabilidade e continuidade de funcionamento do sistema como um todo.

O principal obstáculo à tolerância a falhas é a imprevisibilidade de ocorrência de uma falha e dos seus efeitos sobre o sistema, já que a ação dos mecanismos de tolerância a falhas em geral é iniciada com a detecção de erros já presentes no sistema (GUERRA, 2004).

Um aspecto fundamental no desenvolvimento de sistemas confiáveis é o estabelecimento de hipóteses a respeito dos tipos de falhas a que o sistema estará sujeito. Durante o desenvolvimento de um sistema são assumidas diversas hipóteses de falhas, que limitam o escopo das várias estratégias de confiabilidade utilizadas no desenvolvimento do sistema. As hipóteses de falhas assumidas na fase de prevenção de falhas, por exemplo, podem não ser as mesmas assumidas na fase de tolerância a falhas. É essencial, portanto, que em cada fase desse processo sejam definidas claramente as hipóteses de falhas assumidas (KAÂNICHE, LAPRIE & BLANQUART, 2000 apud GUERRA, 2004 pp. 52-53).

Quanto ao tipo, Guerra (2004) classifica uma falha basicamente em quatro tipos:

Falhas humanas: são aquelas provocadas acidentalmente ou intencionalmente por um operador ou qualquer usuário que tenha acesso ao sistema.

Falhas ambientais: são aquelas causadas pelos agentes da natureza e do meio- ambiente físico em que o sistema é utilizado.

Falhas de projeto: introduzem no próprio sistema, de forma permanente, "mecanismos" capazes de levá-lo a um estado interno inconsistente. Quanto mais complexo for um componente, maior a probabilidade de conter falha desse tipo. Falhas de software (componentes de natureza imaterial) estão associadas a falhas de projeto, que ocorrem nas fases de planejamento e implementação de um sistema computacional.

Falhas de hardware: decorrentes de desgaste físico ou de falhas ambientais em componentes materiais.

Quanto à duração, Guerra (2004) classifica uma falha em três categorias:

Permanente: quando exige uma ação externa de manutenção do sistema para remover seus efeitos e reparar o agente causador, como no caso do rompimento de uma tubulação.

Intermitente: que, embora também exija uma ação externa para reparar o agente causador, não se manifesta permanentemente. O desgaste físico de um componente mecânico, por exemplo, pode, sob certas circunstâncias, interferir no funcionamento de algum dispositivo de modo intermitente.

Transiente: que se manifesta por um curto período de tempo, desaparecendo espontaneamente sem que seja necessária qualquer ação externa, como no caso de uma sobretensão momentânea na rede de alimentação elétrica.

O tratamento de falhas pode ser feito basicamente de três formas:

Correção automática: neste caso, na ocorrência de uma falha, o sistema atua de forma automática de modo a corrigir a falha detectada e evitar estados de erro no sistema ou ainda defeitos que possam afetar o funcionamento local de forma crítica ou propagar falhas aos demais sistemas integrados.

Lançamento de exceção: ocorre quando o sistema identifica uma falha não crítica no sistema, mas não é capaz de corrigi-la de forma automática (ou esta ação não é recomendável). Consiste na sinalização das falhas para que os responsáveis ou demais sistemas possam executar as ações de recuperação mais apropriadas ao contexto atual e ao estado global* do sistema.

Parada imediata: ocorre quando o sistema identifica uma falha crítica cuja ação automática ou por especialistas não seja possível, ou não possa ser realizada em tempo hábil, e possa vir a causar defeitos permanentes ou irreparáveis em um componente ou em todo o sistema. Neste caso, é necessário que a parada do sistema ou de componentes ocorra de forma segura. Ou seja, o sistema deve evitar conseqüências como perdas de vidas humanas ou danos materiais, em decorrência do funcionamento do sistema, mesmo na presença de defeito. Além disso, o sistema deve ser capaz de preservar a integridade e confidencialidade das informações que mantém, mesmo na presença de defeito.

Este trabalho visa a identificar e a tratar as falhas permanentes ou intermitentes de sistemas em seu estágio inicial, evitando que estas se configurem em erros e defeitos e evitando a propagação de falhas tanto localmente como em sistemas interligados. De forma a delimitar o escopo de atuação do GCAD, algumas hipóteses de falha são assumidas na seção 3.2.6.

O tratamento às falhas visa a ser automático, corrigindo-as, sempre que possível, em tempo real e sinalizando ou negociando os ajustes locais realizados ou necessários com os sistemas relacionados, para que estes analisem a eventual necessidade ou possibilidade de

ajuste interno. Nas situações em que as falhas forem permanentes ou não tratáveis em nível local, ou ainda quando o tratamento a uma falha não é identificado, deve-se realizar o lançamento de exceções para sistemas relacionados. Adicionalmente, em situações extremas, através da configuração de um Modo de Falha (ver seção 3.3.1) integrado ao sistema de intertravamento, o GCAD deve conduzir o sistema a uma parada segura imediata, interrompendo dispositivos ou equipamentos que apresentarem conflitos não tratáveis em nível local ou ainda que possam desencadear a propagação de novas falhas.