La tolerancia a fallas es el proceso de funcionamiento de un sistema de manera adecuada a pesar de la ocurrencia de fallas en el sistema. Incluso después de realizar tantos procesos de prueba, existe la posibilidad de fallas en el sistema. Prácticamente, un sistema no se puede hacer completamente libre de errores. por lo tanto, los sistemas están diseñados de tal manera que, en caso de disponibilidad de errores y fallas, el sistema hace el trabajo correctamente y da el resultado correcto.
Cualquier sistema tiene dos componentes principales: hardware y software. La falla puede ocurrir en cualquiera de ellos. Por lo tanto, existen técnicas separadas para la tolerancia a fallas tanto en hardware como en software.
Técnicas de tolerancia a fallas de hardware:
hacer una tolerancia a fallas de hardware es simple en comparación con el software. Las técnicas de tolerancia a fallas hacen que el hardware funcione correctamente y proporcione el resultado correcto, incluso si se produce alguna falla en la parte del hardware del sistema. Básicamente, se utilizan dos técnicas para la tolerancia a fallas del hardware:
- BIST:
BIST significa Construir en autoprueba. El sistema lleva a cabo la prueba de sí mismo después de un cierto período de tiempo una y otra vez, esa es la técnica BIST para la tolerancia a fallas de hardware. Cuando el sistema detecta una falla, apaga el componente defectuoso y cambia el redundante. Básicamente, el sistema se reconfigura solo en caso de que ocurra una falla. - TMR:
TMR es triple redundancia modular. Se generan tres copias redundantes de componentes críticos y todas estas tres copias se ejecutan simultáneamente. Se vota el resultado de todas las copias redundantes y se selecciona el resultado mayoritario. Puede tolerar la ocurrencia de una sola falla a la vez.
Técnicas de tolerancia a fallas de software:
Las técnicas de tolerancia a fallas de software se utilizan para hacer que el software sea confiable en la condición de ocurrencia de fallas y fallas. Hay tres técnicas utilizadas en la tolerancia a fallas del software. Las dos primeras técnicas son comunes y son básicamente una adaptación de las técnicas de tolerancia a fallas de hardware.
- Programación de versión
N: en la programación de versión N, N personas o grupos de desarrolladores desarrollan N versiones de software. La programación de versión N es como TMR en la técnica de tolerancia a fallas de hardware. En la programación de versión N, todas las copias redundantes se ejecutan simultáneamente y el resultado obtenido es diferente para cada procesamiento. La idea de la programación de n versiones es básicamente obtener todos los errores solo durante el desarrollo. - Bloques de
recuperación: la técnica de bloques de recuperación también es similar a la programación de n versiones, pero en la técnica de bloques de recuperación, las copias redundantes se generan utilizando solo algoritmos diferentes. En el bloque de recuperación, todas las copias redundantes no se ejecutan simultáneamente y estas copias se ejecutan una por una. La técnica del bloque de recuperación solo se puede utilizar cuando los plazos de las tareas superan el tiempo de cálculo de las tareas. - Puntos de verificación y recuperación de reversión:
esta técnica es diferente de las dos técnicas anteriores de tolerancia a fallas de software. En esta técnica, el sistema se prueba cada vez que realizamos algún cálculo. Esta técnica es básicamente útil cuando hay fallas en el procesador o corrupción de datos.