Sie sind auf Seite 1von 5

UNIVERSIDAD INTERAMERICANA DE PANAMÁ

FACULTAD DE INGENIERÍA Y SISTEMAS

MATERIA: SISTEMAS DISTRIBUIDOS

Grupo/ Horario: - Jueves 5:45PM – 8:00PM

Estudiante - Cédula
JAVIER JOSUE BALSAS BATISTA - 8-896-1629
Profesor: IVÁN CASTILLO
Asignación: Investigación

Fecha de Entrega: 07/17/18


Tolerancia a fallas

El objetivo de diseñar y construir sistemas distribuidos tolerantes a fallos es garantizar que el sistema
continúe funcionando de manera correcta como un todo, incluso en presencia de fallas.

Se dice que un sistema falla cuando no cumple su especificación. Como las computadoras y los sitemas
distribuidos se utilizan cada vez m[as en misiones donde la seguridad es críticas, la necesidad de
soportar las fallas cada vez es mayor.

Un sistema consiste de un conjunto de componentes de hardware y software y son diseñados para


proveer un servicio específico. Un desperfecto de un sistema ocurre cuando el sistema no desempeña
estos servicios de manera especificada. Un estado erróneo en un sistema es un estado en el cual podría
conducir a un fallo en el sistema. Un fallo es una condición física anromal, las causas de un fallo
incluyen: errores de diseño (como errores en la especificación del sistema o en la implementación),
problemas de fabricación, deterioro por el uso u otros problemas externos (como condiciones
ambientales adversas, interferencia electromagnética, entradas imprevistas o el mal uso del sistema).
Un error es una parte del estado del sistema la cual difiere de los valores esperados.

Es necesario que el sistema sea capaz de recuperarse de las fallas, entonces necesitamos deshacernos
del estado de error del sistema.

Sincronizacion de relojes

La sincronización en sistemas distribuidos es más complicada que en un sistema centralizado, ya que se


debe de considerar algunos de los siguientes puntos:
 Que la información se distribuye en varias máquinas.
 Los procesos toman decisiones con base en información local.
 Se debe evitar un punto único de falla.
 No existe un reloj común, como tampoco otra fuente de tiempo global.
 Sincronización de relojes.
Para la sincronización de relojes existen las siguientes alternativas:
Relojes lógicos
 Según Lamport, la sincronización de relojes no debe ser absoluta, debido a que si dos procesos
no interactúan entre sí, no requieren que sus relojes estén sincronizados.
 La distorsión de reloj es la diferencia entre los valores de tiempo de los diferentes relojes
locales.
 Aquí importa el orden de ocurrencia de los eventos, no la hora exacta.
Relojes físicos
 Usan el tiempo atómico internacional (TAI) y el tiempo coordenado universal (UTC).
 Se pueden sincronizar por medio de radios de onda corta.
 También se puede usar satélite para sincronizar.
Acuerdo bizantino
Este problema plantea que un grupo de generales sitia una ciudad y deben de ponerse de acuerdo a
través de un plan de ataque precisamente para atacar o retirarse, independientemente de que existan
generales traidores. Los generales solo se comunican a través de mensajes a los otros generales. Uno de
ellos, el general comandante, da las órdenes. Los otros, tenientes generales, deben de decidir si atacar o
retirarse. Sin embargo, uno o más de los generales puede ser un traidor o pueden fallar.
Esta traición puede verse de dos formas:
 Los mensajes pueden no llegar o, dicho de otra manera, las comunicaciones no son confiables.
 Un general traidor puede mentir, es decir, un nodo puede fallar de manera impredecible.

A continuación se revisa las circunstancias bajo las que se puede lograr un acuerdo entre los generales
leales y cuando este acuerdo es imposible.

Caso 1: Tres generales

Este caso ilustra el escenario para cuando hay un general comandante y dos tenientes generales, y uno
de ellos es traidor. ¿Pueden los generales leales llegar a un consenso?, es decir, ¿acordar “atacar” o
“retirarse”? Asume que el general comandante es el traidor. Entonces, el general comandante indicará
al teniente general 1 “atacar” y al teniente general 2 “retirarse”.

Ambos tenientes tratarán de verificar la orden recibida comunicándose entre ellos. El teniente general 1
indicará al teniente general 2 que recibió la orden de “atacar”, mientras que el teniente general 2
indicará al teniente general 1 que recibió la orden de “retirarse”. Ambos tenientes generales podrán solo
deducir que el general comandante es traidor pero no podrán tomar una decisión consensada.

Si se consideran los mismos participantes, ahora asume que el teniente general 2 es el traidor, el general
comandante es leal, al igual que el teniente general 1. El general comandante da la orden de “atacar” a
ambos tenientes generales, quienes intercambian la orden recibida. El teniente general 1 indica al
teniente general 2 “atacar”. Sin embargo, el teniente general 2 es traidor, por ello cambia la orden
recibida y le indica al teniente general 1 “retirarse”. Para ambos escenarios, el teniente general escucha
dos órdenes distintas, tanto del general comandante como del teniente general 2, sin saber cómo actuar,
por lo que en ambos escenarios no existe consenso.

Caso 2: Cuatro generales

Ahora se muestra un caso similar al anterior pero con cuatro generales. Hay un general comandante y
tres tenientes generales, y uno de ellos es traidor. ¿Pueden los generales leales llegar a un consenso?, es
decir, ¿pueden acordar “atacar” o “retirarse”? Asume que el general comandante es el traidor y los tres
tenientes generales son leales. Independientemente de las órdenes que reciban los tenientes generales
del general comandante, ellos las intercambian entre sí, de tal manera que los tres recibirán tres
mensajes. Al decidir por la mayoría de las órdenes recibidas, los tres tenientes generales tomarán la
misma decisión.En este caso, “atacar”.
Si se asume que el comandante general, y los tenientes generales 1 y 2 son leales, excepto el teniente
general 3, quien es traidor, se tendría un escenario. El comandante general envía a todos los tenientes
generales la orden de “atacar”. Esta orden es retransmitida por los tenientes generales 1 y 2 a los demás,
sin embargo, el teniente general, como es un traidor, cambia la orden recibida y envía a los tenientes
generales 1 y 2 la orden de “retirarse”. Esto no cambia la decisión consensada de los tenientes
generales 1 y 2, ya que por mayoría deciden “atacar”.También se puede notar que el general traidor
pudo haber enviado cualquier mensaje sin que esto afectara el consenso del resultado.

El problema de los generales bizantinos es frecuentemente referido en la tolerancia a fallas de los


sistemas distribuidos, también se conoce como problema de acuerdo bizantino. Lamport et al. [1982]
demostraron que en un sistema con k procesos defectuosos, el consenso se puede lograr solo si están
presentes 2k+1 procesos que funcionen correctamente, para un total de 3k+1 procesos.

Memoria estable
El esquema de DSM propone un espacio de direcciones de memoria virtual que integra la memoria de
todas las computadoras del sistema, y su uso se realiza mediante paginación. Las páginas quedan
restringidas a estar necesariamente en un único nodo. Cuando un programa intenta acceder a una
posición virtual de memoria, se comprueba si esa página se encuentra de forma local. Si no se
encuentra, se provoca un fallo de página, y el sistema operativo solicita la página al resto de nodos. El
sistema funciona de forma análoga al sistema de memoria virtual tradicional, pero en este caso los
fallos de página se propagan al resto de ordenadores, hasta que la petición llega al nodo que tiene la
página virtual solicitada en su memoria local. A primera vista este sistema parece más eficiente que el
acceso a la memoria virtual en disco, pero en la realidad ha mostrado ser un sistema demasiado lento en
ciertas aplicaciones, ya que provoca un tráfico de páginas excesivo.
Una mejora dirigida a mejorar el rendimiento sugiere dividir el espacio de direcciones en una zona
local y privada y una zona de memoria compartida, que se usará únicamente por procesos que necesiten
compartir datos. Esta abstracción se acerca a la idea de programación mediante la declaración explícita
de datos públicos y privados, y minimiza el envío de información, ya que sólo se enviarán los datos que
realmente vayan a compartirse.
Una alternativa al uso de páginas es tomar el objeto como base de la transferencia de memoria. Aunque
el control de la memoria resulta más complejo, el resultado es al mismo tiempo modular y flexible, y la
sincronización y el acceso se pueden integrar limpiamente. Otra de las restricciones de este modelo es
que todos los accesos a los objetos compartidos han de realizarse mediante llamadas a los métodos de
los objetos, con lo que no se admiten programas no modulares y se consideran incompatibles.

Recuperación de un estado consistente

En los sistemas tolerantes a fallo, los fallos que se pueden tolerar son aquéllos que está previsto que
pueden ocurrir. El primer paso necesario para que un sistema pueda recuperarse de un fallo, es
detectarlo. El siguiente paso es llevar al sistema a un estado consistente, para ello, es necesario que las
acciones realizadas antes del fallo mantengan la consistencia. La clave para tolerar fallos es la
replicación, es decir, que varios elementos del sistema puedan dar el mismo servicio.
La replicación activa (conocida también como replicación mediante máquina de estados) es un método
general para construir un sistema tolerante a fallos mediante la replicación de sus elementos y la
coordinación de las comunicaciones entre ellos.
Una máquina de estados está compuesta por un conjunto de variables (estado) y un conjunto de
operaciones que modifican o consultan el valor de esas variables. Cada operación se realiza mediante
un programa determinista, y su funcionamiento es atómico repecto al de otras. Las operaciones también
producir resultados de salida. Cuando un cliente quiere ejecutar un servicio de la máquina de estados, le
hace una petición, indicando qué operación debe ejecutar. El resultado puede ser la activación de un
actuador o la respuesta a algún cliente que la estaba esperando. Es necesario también que las peticiones
que recibe una máquina de estados sean atendidas de una en una, en un orden que ha de ser consistente
con la causalidad potencial entre ellas.
La propiedad fundamental que caracteriza una máquina de estados es que los resultados de salida que
produce están completamente determinados por la secuencia de peticiones que recibe, con
independencia del momento en que las recibe y de cualquier otra actividad del sistema. Una gran
ventaja de este enfoque consiste en que casi cualquier sistema puede descomponerse en clientes y
máquinas de estados, por lo que puede ser utilizado en gran parte de los casos.

Das könnte Ihnen auch gefallen