Está en la página 1de 43

dit

UPM

Fiabilidad y tolerancia de fallos


Juan Antonio de la Puente DIT/UPM

Transparencias basadas en el captulo 5 del libro de A. Burns y A. Wellings Real-Time Systems and Programming Languuages, 3 edicin (2001)

Objetivos

Veremos cules son los factores que afectan a la fiabilidad de un sistema Tambin veremos algunas tcnicas para tolerar fallos de software

STRL -30/05/01

2001 Juan Antonio de la Puente

ndice
u u u u

Fiabilidad, averas y fallos Modos de fallo Prevencin y tolerancia de fallos Redundancia esttica y dinmica
Programacin con N versiones Bloques de recuperacin

u u

Redundancia dinmica y excepciones Seguridad, fiabilidad y confiabilidad

STRL -30/05/01

2001 Juan Antonio de la Puente

Fallos de funcionamiento
u

Los fallos de funcionamiento de un sistema pueden tener su origen en


Una especificacin inadecuada Errores de diseo del software Averas en el hardware Interferencias transitorias o permanentes en las comunicaciones

Nos centraremos en el estudio de los errores de software

STRL -30/05/01

2001 Juan Antonio de la Puente

Conceptos bsicos
u

La fiabilidad (reliability) de un sistema es una medida de su conformidad con una especificacin autorizada de su comportamiento Una avera (failure) es una desviacin del comportamiento de un sistema respecto de su especificacin Las averas se manifiestan en el comportamiento externo del sistema, pero son el resultado de errores (errors) internos Las causas mecnicas o algortmicas de los errores se llaman fallos (faults)

STRL -30/05/01

2001 Juan Antonio de la Puente

Fallos encadenados
u

Los fallos pueden ser consecuencia de averas en los componentes del sistema (que son tambin sistemas)

avera avera

fallo fallo

error error

avera avera

fallo fallo

STRL -30/05/01

2001 Juan Antonio de la Puente

Tipos de fallos
u

Fallos transitorios
desaparecen solos al cabo de un tiempo ejemplo: interferencias en comunicaciones

Fallos permanentes
permanecen hasta que se reparan ejemplo: roturas de hardware, errores de diseo de software

Fallos intermitentes
fallos transitorios que ocurren de vez en cuando ejemplo: calentamiento de un componente de hardware

Debe impedirse que los fallos de todos estos tipos causen averas
STRL -30/05/01 2001 Juan Antonio de la Puente 6

Tipos de avera (failure modes)

nunca se avera

avera

valor

tiempo

arbitrario

error de intervalo

error de valor

pronto

nunca (omisin)

avera por retraso

avera incontrolada

avera silenciosa

parada segura

avera controlada

STRL -30/05/01

2001 Juan Antonio de la Puente

Prevencin y tolerancia de fallos


u

Hay dos formas de aumentar la fiabilidad de un sistema:


Prevencin de fallos
Se trata de evitar que se introduzcan fallos en el sistema antes de que entre en funcionamiento

Tolerancia de fallos
Se trata de conseguir que el sistema contine funcionando aunque se produzcan fallos

En ambos casos el objetivo es desarrollar sistemas con tipos de averas bien definidos

STRL -30/05/01

2001 Juan Antonio de la Puente

Prevencin de fallos
u

Se realiza en dos etapas:


Evitacin de fallos
Se trata de impedir que se introduzcan fallos durante la construccin del sistema

Eliminacin de fallos
Consiste en encontrar y eliminar los fallos que se producen en el sistema una vez construido

STRL -30/05/01

2001 Juan Antonio de la Puente

Tcnicas de evitacin de fallos


u

Hardware
Utilizacin de componentes fiables Tcnicas rigurosas de montaje de subsistemas Apantallamiento de hardware

Software
Especificacin de requisitos rigurosa o formal Mtodos de diseo comprobados Lenguajes con abstraccin de datos y modularidad Utilizacin de entornos de desarrollo con computador (CASE) adecuados para gestionar los componentes

STRL -30/05/01

2001 Juan Antonio de la Puente

10

Tcnicas de eliminacin de fallos


u

Comprobaciones
Revisiones de diseo Verificacin de programas Inspeccin de cdigo

Pruebas (tests)
Son necesarias, pero tienen problemas:
no pueden ser nunca exhaustivas slo sirven para mostrar que hay errores, no que no los hay a menudo es imposible reproducir las condiciones reales los errores de especificacin no se detectan

STRL -30/05/01

2001 Juan Antonio de la Puente

11

Limitaciones de la prevencin de fallos


u

Los componentes de hardware fallan, a pesar de las tcnicas de prevencin


La prevencin es insuficiente si
la frecuencia o la duracin de las reparaciones es inaceptable no se puede detener el sistema para efectuar operaciones de mantenimiento

Ejemplo: naves espaciales no tripuladas La alternativa es utilizar tcnicas de tolerancia de fallos

STRL -30/05/01

2001 Juan Antonio de la Puente

12

Grados de tolerancia de fallos


u

Tolerancia completa (fail operational)


El sistema sigue funcionando, al menos durante un tiempo, sin perder funcionalidad ni prestaciones

Degradacin aceptable (fail soft, graceful degradation)


El sistema sigue funcionando con una prdida parcial de funcionalidad o prestaciones hasta la reparacin del fallo

Parada segura (fail safe)


El sistema se detiene en un estado que asegura la integridad del entorno hasta que se repare el fallo

El grado de tolerancia de fallos necesario depende de la aplicacin

STRL -30/05/01

2001 Juan Antonio de la Puente

13

Ejemplo : control de trfico areo


funcionalidad funcionalidad completa y tiempo completa y tiempo de respuesta de respuesta correcto correcto

funcionalidad funcionalidad mnima para control mnima para control de trfico bsico de trfico bsico

funcionalidad funcionalidad de emergencia de emergencia (slo separacin (slo separacin entre aviones )) entre aviones

sistema de reserva sistema de reserva para fallos para fallos catastrficos catastrficos

STRL -30/05/01

2001 Juan Antonio de la Puente

14

Redundancia
u

La tolerancia de fallos se basa en la redundancia Se utilizan componentes adicionales para detectar los fallos y recuperar el comportamiento correcto Esto aumenta la complejidad del sistema y puede introducir fallos adicionales Es mejor separar los componentes tolerantes del resto del sistema

STRL -30/05/01

2001 Juan Antonio de la Puente

15

Redundancia en hardware
u

Redundancia esttica
Los componentes redundantes estn siempre activos Se utilizan para enmascarar los fallos Ejemplo:
Redundancia modular triple ( N), TMR/NMR

Redundancia dinmica
Los componentes redundantes se activan cuando se detecta un fallo Se basa en la deteccin y posterior recuperacin de los fallos Ejemplos:
sumas de comprobacin bits de paridad

STRL -30/05/01

2001 Juan Antonio de la Puente

16

Tolerancia de fallos de software


u

Tcnicas para detectar y corregir errores de diseo Redundancia esttica


Programacin con N versiones

Redundancia dinmica
Dos etapas: deteccin y recuperacin de fallos Bloques de recuperacin
Proporcionan recuperacin hacia atrs

Excepciones
Proporcionan recuperacin hacia adelante

STRL -30/05/01

2001 Juan Antonio de la Puente

17

Programacin con N versiones


u

Diversidad de diseo
N programas desarrollados independientemente con la misma especificacin sin interacciones entre los equipos de desarrollo

Ejecucin concurrente
proceso coordinador (driver)
intercambia datos con los procesos que ejecutan las versiones

todos los programas tienen las mismas entradas las salidas se comparan si hay discrepancia se realiza una votacin

STRL -30/05/01

2001 Juan Antonio de la Puente

18

Programacin con N versiones

cordinador estado votos

versin 1

versin 2

versin 3

STRL -30/05/01

2001 Juan Antonio de la Puente

19

Comparacin consistente

X1

X2

X3
u u

no > x0 s no > y0 s > y0 > y0 > x0 s > x0

La comparacin de valores reales o texto no es exacta Cada versin produce un resultado correcto, pero diferente de las otras No se arregla comparando con x0+, y0+

V1

V2

V3

STRL -30/05/01

2001 Juan Antonio de la Puente

20

Problemas
u

La correcta aplicacin de este mtodo depende de:


Especificacin inicial
Un error de especificacin aparece en todas las versiones

Desarrollo independiente
No debe haber interaccin entre los equipos No est claro que distintos programadores cometan errores independientes

Presupuesto suficiente
Los costes de desarrollo se multiplican u sera mejor emplearlos en mejorar una versin nica? El mantenimiento es tambin ms costoso u

Se ha utilizado en sistemas de avinica crticos.


2001 Juan Antonio de la Puente 21

STRL -30/05/01

Redundancia dinmica en software


Cuatro etapas:
1. Deteccin de errores
no se puede hacer nada hasta que se detecta un error

2. Evaluacin y confinamiento de los daos


diagnosis: averiguar hasta dnde ha llegado la informacin errnea

3. Recuperacin de errores
llevar el sistema a un estado correcto, desde el que pueda seguir funcionando (tal vez con funcionalidad parcial)

4. Reparacin de fallos
Aunque el sistema funcione, el fallo puede persistir y hay que repararlo

STRL -30/05/01

2001 Juan Antonio de la Puente

22

Deteccin de errores
u

Por el entorno de ejecucin


hardware (p.ej.. instruccin ilegal) ncleo o sistema operativo (p.ej. puntero nulo)

Por el software de aplicacin


Duplicacin (redundancia con dos versiones) Comprobaciones de tiempo
watchdog timer deadline checks

Inversin de funciones Cdigos detectores de error Validacin de estado Validacin estructural

STRL -30/05/01

2001 Juan Antonio de la Puente

23

Evaluacin y confinamiento de daos


u

Es importante confinar los daos causados por un fallo a una parte limitada del sistema (firewalling) Se trata de estructurar el sistema de forma que se minimice el dao causado por los componentes defectuosos (compartimentos estancos, firewalls) Tcnicas
Descomposicin modular: confinamiento esttico Acciones atmicas: confinamiento dinmico

STRL -30/05/01

2001 Juan Antonio de la Puente

24

Recuperacin de errores
u u u

Es la etapa ms importante Se trata de situar el sistema en un estado correcto desde el que pueda seguir funcionando Hay dos formas de llevarla a cabo:
Recuperacin directa (hacia adelante) (FER)
Se avanza desde un estado errneo haciendo correcciones sobre partes del estado

Recuperacin inversa (hacia atrs) (BER)


Se retrocede a un estado anterior correcto que se ha guardado previamente

STRL -30/05/01

2001 Juan Antonio de la Puente

25

Recuperacin directa
u u u u

La forma de hacerla es especfica para cada sistema Depende de una prediccin correcta de los posibles fallos y de su situacin Hay que dejar tambin en un estado seguro el sistema controlado Ejemplos
punteros redundantes en estructuras de datos cdigos autocorrectores

STRL -30/05/01

2001 Juan Antonio de la Puente

26

Recuperacin inversa
u

Consiste en retroceder a un estado anterior correcto y ejecutar un segmento de programa alternativo (con otro algoritmo)
El punto al que se retrocede se llama punto de recuperacin (recovery point) La accin de guardar el estado se llama chekpointing

u u

No es necesario averiguar la causa ni la situacin del fallo


Sirve para fallos imprevistos

Pero no puede deshacer los errores que aparecen en el sistema controlado!

STRL -30/05/01

2001 Juan Antonio de la Puente

27

Efecto domin
u

Cuando hay tareas concurrentes la recuperacin se complica


deteccin de error R11 T1 R12 R13

T2 R21 R22

Solucin: lneas de recuperacin consistentes para todas las tareas


2001 Juan Antonio de la Puente 28

STRL -30/05/01

Reparacin de fallos
u u

La reparacin automtica es difcil y depende del sistema concreto Hay dos etapas
Localizacin del fallo
Se pueden utilizar tcnicas de deteccin de errores

Reparacin del sistema


Los componentes de hardware se pueden cambiar Los componentes de software se reparan haciendo una nueva versin En algunos casos puede ser necesario reemplazar el componente defectuoso sin detener el sistema

STRL -30/05/01

2001 Juan Antonio de la Puente

29

Bloques de recuperacin
u u

Es una tcnica de recuperacin inversa integrada en el lenguaje de programacin Un bloque de recuperacin es un bloque tal que
su entrada es un punto de recuperacin a su salida se efecta una prueba de aceptacin
sirve para comprobar si el mdulo primario del bloque termina en un estado correcto

si la prueba de aceptacin falla,


se restaura el estado inicial en el punto de recuperacin se ejecuta un mdulo alternativo del mismo bloque

si vuelve a fallar, se siguen intentando alternativas cuando no quedan ms, el bloque falla y hay que intentar al recuperacin en un nivel ms alto

STRL -30/05/01

2001 Juan Antonio de la Puente

30

Esquema de recuperacin

restaurar punto de recuperacin entrada al bloque establecer punto de recuperacin s

error ok abandonar punto de recuperacin

ms no

ejecutar alternativa

test

fallo del bloque

STRL -30/05/01

2001 Juan Antonio de la Puente

31

Sintaxis
ensure <condicin de aceptacin> by <mdulo primario> else by <mdulo alternativo> else by <mdulo alternativo> ... else by <mdulo alternativo> else error;

Puede haber bloques anidados si falla el bloque interior, se restaura el punto de recuperacin del bloque exterior

STRL -30/05/01

2001 Juan Antonio de la Puente

32

Ejemplo: ecuacin diferencial

ensure error <= tolerance by Explicit_Runge_Kutta; else by Implicit_Runge_Kutta; else error;

u u u u

El mtodo explcito es ms rpido, pero no es adecuado para algunos tipos de ecuaciones El mtodo implcito sirve para todas las ecuaciones, pero es ms lento Este esquema sirve para todos los casos Puede tolerar fallos de programacin

STRL -30/05/01

2001 Juan Antonio de la Puente

33

Prueba de aceptacin
u u u u

Es fundamental para el buen funcionamiento de los bloques de recuperacin Hay que buscar un compromiso entre deteccin exhaustiva de fallos y eficiencia de ejecucin Se trata de asegurar que el resultado es aceptable, no forzosamente correcto Pero hay que tener cuidado de que no queden errores residuales sin detectar

STRL -30/05/01

2001 Juan Antonio de la Puente

34

Comparacin
N versiones u Redundancia esttica u Diseo
algoritmos alternativos proceso coordinador
u

Bloques de recuperacin u Redundancia dinmica u Diseo


algoritmos alternativos prueba de aceptacin
u

Ejecucin
mltiples recursos

Ejecucin
puntos de recuperacin

Deteccin de errores
votacin

Deteccin de errores
prueba de aceptacin

Ambos m todos son sensibles a los errores en los requisitos!

STRL -30/05/01

2001 Juan Antonio de la Puente

35

Excepciones y redundancia dinmica


u u

u u u

Una excepcin es una manifestacin de un cierto tipo de error Cuando se produce un error, se eleva (raise, signal, throw) la excepcin correspondiente en el contexto donde se ha invocado la operacin errnea Esto permite manejar la excepcin en este contexto Se trata de un mecanismo de recuperacin directa de errores (no hay vuelta atrs) Pero se puede utilizar para realizar recuperacin inversa tambin

STRL -30/05/01

2001 Juan Antonio de la Puente

36

Aplicaciones de las excepciones

u u u

Tratar situaciones anormales en el entorno de ejecucin Tolerar fallos de diseo de software Facilitar un mecanismo generalizado de deteccin y correccin de errores

STRL -30/05/01

2001 Juan Antonio de la Puente

37

Componente ideal tolerante con los fallos


peticin de servicio respuesta normal reanudacin excepcin de interfaz excepcin de avera

actividad normal

manejadores de excepciones

peticin de servicio

respuesta normal

excepcin interna

excepcin de interfaz

excepcin de avera

STRL -30/05/01

2001 Juan Antonio de la Puente

38

Seguridad y fiabilidad
u

Un sistema es seguro si no se pueden producir situaciones que puedan causar muertes, heridas, enfermedades, ni daos en los equipos ni en el ambiente
Un accidente (mishap) es un suceso (o una serie de sucesos) imprevisto que puede producir daos inadmisibles

u u

La fiabilidad es la probabilidad de que un sistema se comporte de acuerdo con su especificacin La seguridad es la probabilidad de que no ocurra ningn suceso que provoque un accidente Seguridad y fiabilidad pueden estar en conflicto!

STRL -30/05/01

2001 Juan Antonio de la Puente

39

Confiabilidad
u

La confiabilidad (dependability) es una propiedad de los sistemas que permite confiar justificadamente en el servicio que proporcionan Tiene varios aspectos

confiabilidad
disponibilidad de utilizacin disponibilidad servicio disponible continuamente fiabilidad no hay situaciones catastrficas no hay fugas no hay aptitud para de informacin alteraciones reparaciones no autorizadas de informacin y cambios mantenibilidad

seguridad confidencialidad integridad

STRL -30/05/01

2001 Juan Antonio de la Puente

40

Terminologa
Disponibilidad Fiabilidad Seguridad Confidencialidad Integridad Mantenibilidad Prevencin de fallos Tolerancia de fallos Reparacin de fallos Prediccin de fallos Fallos Errores Averas

Atributos

Confiabilidad

Medios

Daos

STRL -30/05/01

2001 Juan Antonio de la Puente

41

Resumen
u u u

La fiabilidad de un sistema es una medida de su conformidad con una especificacin autorizada de su comportamiento La fiabilidad de un sistema se puede aumentar mediante tcnicas de prevencin o de tolerancia de fallos La tolerancia de fallos se basa en la redundancia
esttica (por ejemplo, N versiones) dinmica (por ejemplo, bloques de recuperacin)

u u

Las excepciones proporcionan redundancia dinmica con recuperacin directa La confiabilidad de un sistema es una propiedad ms amplia que la fiabilidad

STRL -30/05/01

2001 Juan Antonio de la Puente

42

También podría gustarte