Upload
tovah
View
36
Download
0
Embed Size (px)
DESCRIPTION
Sistemas Distribuidos. Faults and Fault-Tolerant Systems (Fallos y Sistemas Tolerantes a Fallas) R osa Ernestina P elayo Márquez. Sistemas Distribuidos INTRODUCTION. Una falla es la manifestación de un comportamiento inesperado. - PowerPoint PPT Presentation
Citation preview
Faults and Fault-Tolerant Systems(Fallos y Sistemas Tolerantes a Fallas)
Rosa Ernestina Pelayo Márquez
Sistemas Distribuidos
• Una falla es la manifestación de un comportamiento inesperado.
• Tolerancia a fallos es un mecanismo que oculta o restaura el comportamiento que se espera de un sistema después de la ocurrencia de fallas.
Los avances en la ingeniería de hardware pueden hacer los componentes individuales más confiables, pero no pueden eliminar las fallas por completo.
Un diseño mal del sistema también pueden contribuir a los fallos.
Sistemas Distribuidos INTRODUCTION
Faults and Fault - Tolerant Systems
El punto de vista de un sistema distribuido es a una vista de nivel de proceso, por lo cual la descripción de ciertos tipos de fallas son visibles a nivel de proceso.
Las principales clases de fallos son las siguientes:• Crash failure• Omission failure• Transient failure• Byzantine failure• Software failure• Temporal failure• Security failure
Sistemas Distribuidos CLASSIFICATION OF FAULTS
Faults and Fault - Tolerant Systems
• Un proceso experimenta un fallo Crash, cuando deja de forma permanente la ejecución de sus acciones. Las fallas Crash se tratan como reversible, es decir, un proceso puede hacerse el muerto por un período determinado de tiempo, y luego reanudar el funcionamiento, o puede ser reparado. Estos fallos se llaman napping failure .
Sistemas Distribuidos CRASH FAILURE
Faults and Fault - Tolerant Systems
Modelo Asíncrono
Sistema Síncrono
Modelo asíncrono, los fallos crash no se puede detectar con total certeza. Ya que no hay límite inferior de la velocidad a la que un proceso puede ejecutar sus acciones.
No hay limitaciones en cuanto a:• Velocidad de procesamiento• Retardos de transmisión de mensajes• Tasas de deriva de los relojes
Los sistemas distribuidos reales suelen ser asíncronos • Por ejemplo, Internet
Sistemas Distribuidos CRASH FAILURE
Faults and Fault - Tolerant Systems
Sistema Síncrono, están delimitadas las velocidades del procesador y los retrasos de canal, los fallos Crash pueden detectarse utilizando timeout.
Uno de estos procesos de implementación requieren transmitir periódicamente una señal de latido que significa "estoy vivo." Cuando otros procesos correctos no reciben la señal de transacción dentro de un período de tiempo de espera predefinido, concluyen que el proceso se ha bloqueado.
Sistemas Distribuidos CRASH FAILURE
Faults and Fault - Tolerant Systems
• Un proceso de transmisor enviar una secuencia de mensajes a un proceso receptor. Si el receptor no recibe uno o más de los mensajes enviados por el transmisor, entonces se produce un fallo de omisión.
Sistemas Distribuidos OMISSION FAILURE
Faults and Fault - Tolerant Systems
Un error transitorio puede perturbar el estado de los procesos de una manera arbitraria. El agente inductor de este error puede ser momentáneamente activo (como una sobrecarga de energía o un golpe mecánico, o un rayo), pero puede hacer un efecto duradero en el estado global.
De hecho, las fallas de omisión son casos especiales de fallos transitorios, cuando los estados del canal son perturbados.
Sistemas Distribuidos TRANSIENT FAILURE
Faults and Fault - Tolerant Systems
La evidencia empírica indica que los fallos transitorios ocurren con frecuencia.
• Los efectos de los riesgos ambientales como los rayos gamma, cuya duración en el tiempo es limitado.
• Son causados por una fuente de alimentación sobrecargada o baterías débiles.
• Cuando los componentes de software fracasan.
• Fallos de hardware.
Sistemas Distribuidos TRANSIENT FAILURE
Faults and Fault - Tolerant Systems
Es un procesador que continua con su ejecución proporcionando respuestas incorrectas a las preguntas que posiblemente trabajan de manera maliciosa junto con otros procesadores que han fallado para dar la impresión de que todo funciona de manera correcta aunque no sea así.
EJEMPLO: Problema de los Generales Bizantinos.Un grupo de generales sitia una ciudad y deben ponerse de acuerdo en un plan de ataque, ya sea atacar o retirarse, independientemente de que existan generales traidores. Los generales solo se comunican a través de mensajes con los otros generales.
Esta traición puede verse de dos formas:
• Los mensajes pueden no llegar, o dicho de otra forma, las comunicaciones son no confiables.
• Un general traidor puede mentir, o sea, un nodo puede fallar de manera impredecible.
Sistemas Distribuidos BYZANTINE FAILURE
Faults and Fault - Tolerant Systems
Problema de los Generales Bizantinos, planteado originalmente por Lamport , Shostak y Peace en una
publicación de la ACM en Julio de 1982.
• Definición del problema: Un general comandante debe enviar una orden a sus n-1 tenientes generales de manera tal que (Dada una red con n procesos que se comunican entre sí solo a través del pasaje de mensajes sobre canales bidireccionales, asegurar que un proceso envía un ítem a los otros n-1 procesos de manera tal que) :
• Premisa 1) Todos los tenientes leales obedecen la misma orden.
• Premisa 2) Si el general comandante es leal, entonces todos los tenientes leales obedecen la orden que el envió.
Las premisas 1) y 2) son conocidas como las condiciones de consistencia interactivas. Obsérvese que si el comandante es leal la condición P1) se deriva de la condición P2). Sin embargo el comandante puede ser un traidor.
Sistemas Distribuidos BYZANTINE FAILURE
Faults and Fault - Tolerant Systems
Sistemas Distribuidos BYZANTINE FAILUREResultados de imposibilidad
Faults and Fault - Tolerant Systems
En el caso A) para satisfacer P2) el teniente 1 debería atacar.
En el caso B) si el teniente 1 ataca viola P1)
El teniente 1 no puede distinguir entre ambos casos con la información de que dispone.
Fallas de software: Razones principales que llevan a falla de software :
• Codificación de errores o errores humanos. • Errores de diseño de software. • Pérdidas de memoria. • Problema con la insuficiencia de las especificaciones.
Sistemas Distribuidos SOFTWARE FAILURE
Faults and Fault - Tolerant Systems
La perdida de una nave espacial debida a que el programa no utilizó las unidades apropiadas de los parámetros físicos.
Sistemas Distribuidos CODING ERRORS OR HUMAN ERRORS
Faults and Fault - Tolerant Systems
Ejemplo: El 23 de septiembre de 1999, la NASA perdió la nave Mars Climate Orbiter de $125 Millones de dólares porque un equipo de ingenieros estaba utilizando unidades inglesas de medición mientras que otro equipo utilizaba unidades métricas, lo que lleva a un fracaso de navegación , haciendo que se despedazar en la atmósfera.
• La misión del pionero Mars aterrizó sin problemas en la superficie Martial, el 4 de julio de 1997. Sin embargo, más tarde su comunicación fallo debido a un defecto de diseño en el tiempo real embebido en el software del kernel VxWorks.
Sistemas Distribuidos SOFTWARE DESIGN ERRORS
Faults and Fault - Tolerant Systems
Pérdidas de memoria: La ejecución de los programas sufre la degeneración del sistema en tiempo de ejecución debido a las pérdidas de memoria, lo que lleva a una caída del sistema.
La pérdida de memoria es cuando los procesos no pueden ser liberados de la memoria física. Esto reduce efectivamente el tamaño de la memoria física disponible con el tiempo. Cuando la memoria disponible cae por debajo del mínimo requerido por el sistema, un fallo crash se convierte en inevitable.
Sistemas Distribuidos MEMORY LEAKS
Faults and Fault - Tolerant Systems
PROBLEMA CON LA INSUFICIENCIA DE LAS ESPECIFICACIONES:
Supongamos que un programa de sistema en ejecución S está produciendo los resultados esperados. Si el sistema de repente deja de producir los resultados y no hay ningún fallo en el hardware o pérdida de memoria, entonces puede haber un problema con las especificaciones. EJEMPLO: El problema del año 2000, también conocido por el numerónimo Y2K.
Es un bug o error de software causado por la costumbre que habían adoptado los programadores de omitir la centuria en el año para el almacenamiento de fechas (generalmente para economizar memoria), asumiendo que el software sólo funcionaría durante los años cuyos nombres comenzaran con 19.
Lo anterior tendría como consecuencia que después del 31 de diciembre de 1999, sería el 1 de enero de 1900 en vez de 1 de enero de 2000.Faults and Fault - Tolerant Systems
Muchos de los fracasos como Crash, Omisión, Transitorio o Bizantino pueden ser causados por errores de software.
Sistemas Distribuidos PROBLEM WITH THE INADEQUACY OF SPECIFICATION
Fallo temporal: Sistemas de tiempo real requieren acciones para ser realizadas en un período de tiempo específico. Cuando no se cumple con esta fecha límite, se produce una falla temporal.
Sistemas Distribuidos TEMPORAL FAILURE
Faults and Fault - Tolerant Systems
• Virus y otros tipos de software malicioso que son rastreados en una computadora pueden dar lugar a comportamientos inesperados que se manifiestan en la falla.
• Hay varios tipos de intrusos que conducen a fracasos, estos incluyen el espionaje o robo de contraseñas, lo que lleva a un peligro al sistema
Sistemas Distribuidos SECURITY FAILURE
Faults and Fault - Tolerant Systems
EJEMPLO:En noviembre de 1988, gran parte del servicio de larga distancia a lo largo de la costa este se vio interrumpido cuando un equipo de construcción cortado accidentalmente un cable principal de fibra óptica en Nueva Jersey, y como resultado, los intentos de 3.500.000 de llamadas fueron bloqueados.
EJEMPLO: Asuma que un sistema, en ausencia de cualquier fallo, envía un mensaje un número infinito de veces (es decir, la salida es una secuencia infinita aaaaa ...). Sin embargo, una falla en ocasiones provoca un mensaje para cambiar de a a b.
Sistemas Distribuidos SPECIFICATION OF FAULTS
Faults and Fault - Tolerant Systems
aaaaaaaaab
Un sistema se considera tolerante a fallas cuando regresa a su configuración original para detener la ejecución.
• Tolerancia de enmascaramiento• Tolerancia no enmascarada• Tolerancia a prueba de fallos• Degradación correcta
Sistemas Distribuidos FAULT-TOLERANT SYSTEMS
Faults and Fault - Tolerant Systems
Mecanismos para la detección de fallas:
• Uso de Timeout.• A través de relojes sincronizados.• Límite de la velocidad del procesador.• Límite del retraso de propagación de un mensaje.
Sistemas Distribuidos DETECTION OF FAILURES
Faults and Fault - Tolerant Systems
Una técnica simple para el enmascaramiento de fallas es la replicación de procesos o módulos funcionales:
• Redundancia modular doble (DMR).Enmascara cualquier efecto de una simple falla crash.
• Redundancia modular triple (TMR).Enmascara cualquier falla simple.
Sistemas Distribuidos TOLERATING CRASH FAILURES
Faults and Fault - Tolerant Systems
En un sistema tolerante a fallas por omisión no debe:
• Haber pérdidas • Duplicación • Reordenamiento
Se debe garantizar la comunicación entre un emisor y un receptor de manera confiable.
Sistemas Distribuidos TOLERATING OMISSION FAILURES
Faults and Fault - Tolerant Systems
• Es utilizado en la capa de transporte para garantizar la comunicación confiable entre un par de procesos.
• Detecta pérdidas o reordenamiento de mensajes usando timeout y retransmisiones de mensajes.
Sistemas Distribuidos THE SLIDING WINDOW PROTOCOL
Faults and Fault - Tolerant Systems
GRACIAS POR SU ATENCIÓN
Sistemas Distribuidos