• Sonuç bulunamadı

3.2. TABÎBNÂME‟DEKĠ BĠTKĠLERĠN DĠVAN ġĠĠRĠNDEKĠ YERĠ

3.2.21. Zâferān (Safran)

De modo geral, as t´ecnicas para tolerˆancia a falhas podem ser divididas em duas classes: (I) mascaramento ou (II) detecc¸˜ao, localizac¸˜ao e reconfigurac¸˜ao. Adotada para sistemas de tempo real cr´ıticos, a primeira normalmente aplica mais redundˆancia que a segunda, uma vez que n˜ao envolve os tempos gastos para a detecc¸˜ao, localizac¸˜ao e reconfigurac¸˜ao.

Anderson e Lee (1990) dividiram a tolerˆancia a falhas em quatro fases de aplicac¸˜ao, na seguinte ordem: detecc¸˜ao, confinamento, recuperac¸˜ao e tratamento. As fases s˜ao explicadas a seguir:

Detecc¸˜ao: Uma falha s´o ser´a detectada caso ela se manisfeste como um erro, pois ao se manisfestar algum mecanismo far´a a detecc¸˜ao. Algumas falhas podem n˜ao comprometer o funcionamento e a entrega do servic¸o do sistema, tendo em vista que n˜ao se manifestam como erro, e por n˜ao serem detectadas podem permanecer um longo per´ıodo no sistema. Confinamento: At´e que o erro seja detectado pode haver espalhamento de dados inv´alidos, ent˜ao o confinamento estabelece limites para a propagac¸˜ao do dano. Contudo, para que isso acontec¸a ´e preciso que restric¸˜oes de fluxo de informac¸˜oes estejam inclu´ıdas no pro- jeto, o que n˜ao ´e muito comum.

Recuperac¸˜ao: Ap´os a detecc¸˜ao, ocorre a fase de recuperac¸˜ao de erros, que envolve a troca do estado atual com falhas por um estado livre de falhas. A recuperac¸˜ao pode ocorrer de duas formas, por meio de t´ecnicas de recuperac¸˜ao por retorno a um estado anterior correto (backward error recovery) ou por avanc¸o a um novo estado livre de falhas (forward error recovery). T´ecnicas de recuperac¸˜ao por retorno n˜ao s˜ao indicadas para sistemas de tempo real, visto que retroceder ao estado anterior podem deixar alguns dados ´orf˜aos no sistema, causando um efeito domin´o. Isso se ao fato que os processos que receberam esses dados tamb´em ter˜ao que realizar um retrocesso. Com isso, neste caso ´e mais vi´avel a recuperac¸˜ao por avanc¸o.

Tratamento: Esta ´ultima fase consiste em localizar a origem do erro, localizar preci- samente a falha, reparar a falha e recuperar o restante do sistema. Resumindo, ap´os a localizac¸˜ao, a falha ´e reparada por meio da remoc¸˜ao do componente danificado e a recu- perac¸˜ao ´e realizada de forma manual ou autom´atica.

Percebe-se que ap´os a falha ser detectada, primeiramente ´e estabelecido os limites da propagac¸˜ao do dano. Ap´os isso, o sistema passa a se recuperar, voltando a um estado ante-

2.4 Tolerˆancia a falhas 39

rior ou avanc¸ando para novo estado livre de falhas. Somente ap´os a recuperac¸˜ao do sistema, ´e que a origem do erro ´e localizada e reparada.

Mascaramento de falhas

O objetivo do mascaramento de falhas ´e garantir a entrega do servic¸o de forma correta, mesmo com presenc¸a de falhas no sistema. Neste caso, como a falha n˜ao se revela como um erro, o sistema n˜ao entra no estado errˆoneo e com isso, n˜ao h´a necessidade de detectar, confinar e realizar recuperac¸˜ao dos erros. Dentre os mecanismos mais usuais de mascaramentos de falhas est˜ao a redundˆancia, como a diversidade (Programac¸˜ao n-vers˜oes) e blocos de recuperac¸˜ao.

Redundˆancia de Software

Sabe-se que todas as t´ecnicas de tolerˆancia a falhas envolve alguma forma de redundˆancia, haja vista que na ind´ustria o termo mais usado para indicar se um sistema ´e tolerante a falhas ´e a redundˆancia. A redundˆancia para tolerˆancia a falhas pode aparecer de diversas formas, como por exemplo, redundˆancia de hardware, software, informac¸˜ao e tempo.

No caso da redundˆancia de software, a replicac¸˜ao de componentes idˆenticos n˜ao ´e uma estrat´egia inteligente, pois a utilizac¸˜ao de componentes de software idˆenticos resultar´a nos mes- mos erros. Assim sendo, as formas mais utilizadas para prover a tolerˆancia a falhas s˜ao as abordagens programac¸˜ao n-vers˜oes3e blocos de recuperac¸˜ao4.

Programac¸˜ao N-Vers˜oes Uma das t´ecnicas de redundˆancia utilizadas para alcanc¸ar a to- lerˆancia a falhas de software ´e a programac¸˜ao n-vers˜oes,tamb´em conhecida como programac¸˜ao diversit´aria. Essa abordagem proposta por (AVIZIENIS, 1985) consiste na implementac¸˜ao de diferentes alternativas de soluc¸˜oes que resolvem um mesmo problema, isto ´e, atendem a uma especificac¸˜ao. Assim, a resposta do sistema ´e definida por votac¸˜ao, conforme apresenta a Figura 2.5.

Essa t´ecnica n˜ao leva em considerac¸˜ao que erros nas soluc¸˜oes alternativas podem originar da mesma causa, como por exemplo, erro na interpretac¸˜ao da especificac¸˜ao. Com isso, para que os erros sejam detectados, ´e preciso que se manisfestem de uma forma diferente das outras implementac¸˜oes.

3Em inglˆes: N-Version Programming. 4Em inglˆes: Recovery Blocks.

2.4 Tolerˆancia a falhas 40

Figura 2.5: Programac¸˜ao N-Vers˜oes

.

Fonte: (WEBER, 2001)

Blocos de Recuperac¸˜ao Diferentemente da programac¸˜ao n-vers˜oes, a abordagem Blocos de Recuperac¸˜ao, desenvolvida por Randell (1975) e evolu´ıda em Randell e Xu (1994), envolve um teste de aceitac¸˜ao, isto ´e, as vers˜oes secund´arias s´o ser˜ao executadas caso seja detectado um erro na vers˜ao prim´aria. Ou seja, os algoritmos s˜ao executados um a um at´e que o primeiro passe no teste de aceitac¸˜ao. A Figura 2.6 ilustra essa execuc¸˜ao.

Figura 2.6: Blocos de Recuperac¸˜ao

2.4 Tolerˆancia a falhas 41

A sec¸˜ao 2.4.3 apresenta um framework para desenvolvimento de aplicac¸˜oes tolerante a falhas que implementa as abordagens n-vers˜oes e blocos de recuperac¸˜ao.

2.4.3

FlexFT: Um framework para desenvolvimento de aplicac¸˜oes tole-

Benzer Belgeler