Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
avera
avera fallo
fallo error
error avera
avera fallo
fallo
u Fallos transitorios
desaparecen solos al cabo de un tiempo
ejemplo: interferencias en comunicaciones
u Fallos permanentes
permanecen hasta que se reparan
ejemplo: roturas de hardware, errores de diseo de software
u Fallos intermitentes
fallos transitorios que ocurren de vez en cuando
ejemplo: calentamiento de un componente de hardware
nunca avera
se avera
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
u Hardware
Utilizacin de componentes fiables
Tcnicas rigurosas de montaje de subsistemas
Apantallamiento de hardware
u 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
u Comprobaciones
Revisiones de diseo
Verificacin de programas
Inspeccin de cdigo
u 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
funcionalidad
funcionalidad
completa
completa yy tiempo
tiempo
de
de respuesta
respuesta
correcto
correcto
funcionalidad
funcionalidad
funcionalidad
funcionalidad de
de emergencia
emergencia
mnima
mnima para
para control
control (slo
(slo separacin
separacin
de
de trfico
trfico bsico
bsico entre
entre aviones
aviones))
sistema
sistema de
de reserva
reserva
para
para fallos
fallos
catastrficos
catastrficos
u Redundancia esttica
Los componentes redundantes estn siempre activos
Se utilizan para enmascarar los fallos
Ejemplo:
Redundancia modular triple ( N), TMR/NMR
u 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
u Redundancia esttica
Programacin con N versiones
u Redundancia dinmica
Dos etapas: deteccin y recuperacin de fallos
Bloques de recuperacin
Proporcionan recuperacin hacia atrs
Excepciones
Proporcionan recuperacin hacia adelante
u Diversidad de diseo
N programas desarrollados independientemente con la misma
especificacin
sin interacciones entre los equipos de desarrollo
u 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
cordinador
estado
votos
X1 X2 X3
u La comparacin de valores
reales o texto no es exacta
no u Cada versin produce un
> x0 > x0 > x0 resultado correcto, pero
s s diferente de las otras
u No se arregla comparando con
no
> y0 > y0 > y0
x0+, y0+
V1 V2 V3
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?
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
u Tcnicas
Descomposicin modular: confinamiento esttico
Acciones atmicas: confinamiento dinmico
u Es la etapa ms importante
u Se trata de situar el sistema en un estado correcto desde
el que pueda seguir funcionando
u 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
T2
R21 R22
restaurar
punto de
recuperacin error
entrada
al bloque establecer ok abandonar
s ejecutar
punto de ms test punto de
alternativa
recuperacin recuperacin
no
reanudacin
manejadores
actividad normal
de excepciones
excepcin
interna
peticin respuesta excepcin excepcin
de servicio normal de interfaz de avera
confiabilidad
Prevencin de fallos
Tolerancia de fallos
Confiabilidad Medios
Reparacin de fallos
Prediccin de fallos
Fallos
Daos Errores
Averas