Sistemas Distribuidos

26
Faults and Fault-Tolerant Systems (Fallos y Sistemas Tolerantes a Fallas) Rosa Ernestina Pelayo Márquez Sistemas Distribuidos

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

Transcript of Sistemas Distribuidos

Page 1: Sistemas Distribuidos

Faults and Fault-Tolerant Systems(Fallos y Sistemas Tolerantes a Fallas)

Rosa Ernestina Pelayo Márquez

Sistemas Distribuidos

Page 2: 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

Page 3: Sistemas Distribuidos

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

Page 4: Sistemas Distribuidos

• 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

Page 5: Sistemas Distribuidos

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

Page 6: Sistemas Distribuidos

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

Page 7: Sistemas Distribuidos

• 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

Page 8: Sistemas Distribuidos

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

Page 9: Sistemas Distribuidos

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

Page 10: Sistemas Distribuidos

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.

Page 11: Sistemas Distribuidos

• 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

Page 12: Sistemas Distribuidos

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.

Page 13: Sistemas Distribuidos

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

Page 14: Sistemas Distribuidos

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.

Page 15: Sistemas Distribuidos

• 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

Page 16: Sistemas Distribuidos

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

Page 17: Sistemas Distribuidos

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

Page 18: Sistemas Distribuidos

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

Page 19: Sistemas Distribuidos

• 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.

Page 20: Sistemas Distribuidos

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

Page 21: Sistemas Distribuidos

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

Page 22: Sistemas Distribuidos

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

Page 23: Sistemas Distribuidos

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

Page 24: Sistemas Distribuidos

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

Page 25: Sistemas Distribuidos

• 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

Page 26: Sistemas Distribuidos

GRACIAS POR SU ATENCIÓN

Sistemas Distribuidos