SlideShare une entreprise Scribd logo
1  sur  38
 
Una caracteristica de los sistemas distribuidos, quelos difiere de los sistemas singulares, es la nocion para errores parciales. Un error parcial puede ocurrir cuando  algun componente del sistema distrbuido falla, el fallo puede afectar el  correcto funcionamiento  de  algunos componentes,  pero a la vez dejar otros componentes sin afectarlos. A contrario de un sistema monousuario , el cual  puede afectar a todo el sistema, apagandolo. Un punto importante en los sistemas distrbuidos , es contruirlos de tal forma que puede recupersarse automaticamente de fallos sin afectar el rendimiento Cuando un error ocurre el sistema deberia seguir operando de forma aceptable mientras se hacen las reparaciones.
Para que un sistema distribuido pueda ser tolerante a fallos, se ocupan las siguientes caracteristicas: Disponibilidad Confiabilidad Seguridad Mantenimiento.
Es definida por la propiedad de que el sistema esta listo para ser usado, en otras palabras se endiende que  el sistema esta operando correctamente. Un sistema con alta disponibilidad es quel que puede trabajar en cualquier  tiempo Se refiere a la propiedad de que el sistema puede trabajar  continuamente  sin fallos, en contraste a la disponibilidad, la  confiabilidad se refiere en lapsos  de tiempo, en vez de momentos instantaneos. Un sistema con alta confiabilidad, es quel que funciona por largos periodos de tiempo  sin fallo algiuno.
Se refiere a la situacion en la que un sistema falla temporalmente, no pasa nada grave, ejemplo son algunos sistemas que controlan plantas nucleares, si algunos de esos sitemas fallan, pueden traer consecuencias catastroficas. Se refiere a que tan rapido puede ser repadao  un sitema . Un sistema con alto grado de  mantenimiento es  quel, que puede evitar o reparar fallas automaticamente.
Transientales Intermitentes Permantes
Son aquellos fallos que aparecen una vez y despues desaperecen aun cuando la misma operacion se repite. Son aquellos fallos que aparecen una vez y despues desaperecen y despues vuelven a aparecer y continua el siclo. Son aquellos fallos que aparecen y no desaparecen hasta que el componente erroneo es reemplazado o es arreglado el problema.
TIPO DE FALLO DESCRIPCION FALLO CRASH El servidor se detiene, pero estaba operando correctamente. Fallo por Omision Omision de recibido Omision de envio Un servidor falla en responder a las peticiones El servidor falla en recibir mensajes El servidor falla en mandar mensajes Fallo de tiempo La respuesta del servidor no esta en el intervalo de tiempo especificado. Fallo de respuesta Fallo de valor Fallo de estado de transicion La respuesta del servidor es incorrecta El valor de la respuesta es incorrecto El servidor se desvia del flujo de control Fallo arbitriario El servidor produce fallos arbitrarios en tiempo indefinidos.
Ocurre cuando el servidor se detiene prematuramente aun cuando instantes antes estaba funcionando correctamente, un aspecto importante de estos errores es que una vez que ocurren ya no responde el servidor. Ocurre cuando el servidor no responde y se puede deber a varias razones, una de las principales es que no se establecio correctamente la conexion con el servidor.
Ocurren cuando se da la respuesta fuera del intervalo de tiempo Cuando ocurren este tipo de fallos, usualmente el servidor lanza respuestas incorrectas y que son dificiles de detectar
Si un sistema debe ser tolerante a fallos, lo mejor que puede hacer es esconder esos errores de otros procesos. La tecnicla clave es usando la Redundancia. Los  tipos de redundancia a usar: Redundancia de tiempo Redundancia de Informacion Redundancia fisica
Con este tipo de redundancia, se agregan bits al paquete de informacion para permitir recuperacion de datos en caso de que el paquete recibido contenga errores. Con esta redundancia, una accion se hecha y despues si es necesaria, se repite la misma accion, este tipo de redundancia se presenta cuando hay errores intrasitentes o intermitentes.
Se  le llama asi a la tecnica en la cual se hacen 2 o 3 copias del mismo mensaje para evitar fallos en el recibimiento del mismo. Es una de las tecnicas mas usadas para la tolerancia de fallos.
El punto clave para tolerar procesos con fallo es organizando varios procesos identidos en un mismo grupo, esto es para que  cuando un miembro del grpo reciba un mensaje, todos los demas lo reciban. Los procesos pueden ser dinamicos, se puede n crear nuevos grupos, eliminar antiguos, o juntar varios grupos. La razon de hacer los grupos es de permitir procesos que lidien con otra coleccion de procesos
Una diferencia importante para distinguir a los grupos es su forma de funcionamiento, en algunos grupos todos son iguales y la decision se hace colectivamente, mientras que en otros, existe una jerarquia donde un proceso coordina a los demas.
La replicacion basica se usa generalmente en forma de backup, cuando un proceso falla, se elije uno de los procesos del grupo y se convierte en el primario hasta que el proceso fallido es corregido
En un sistema distribuido, muchas veces se conentran los errores  en la programacion o en dispositivos dañados, Pero muchas veces es error en la comunicacion
En muchos sistemas distribuidos, una comunicacion punto-punto debe ser fiable, esto se logra usando algun protocolo de transporte como el TCP, este enmascara fallos de comunicacion, haciendo uso de la retransmision de mensajes. RPC= Llamada a procedimientos Remotos, es un tipo de  comunicacion de alto  nivel, la cual enmascara la comunicacion, haciendo uso de  llamadas  remotas,   como si fueran locales
Habremos de distinguir 5 diferentes clases de errores en RPC El cliente no halla el servidor El mensaje del cliente a servidor se perdio El servidor hace crash cuando recibe el mensaje La respuesta del servidor se pierde El cliente hace crash al recibir respuesta. Puede suceder cuando no hay una buena comunicacion entre el cliente y el servidor, o el servidor no esta disponible en ese momento, la forma mas facil de arreglarlo es creando una excepcion en el codigo del programa, que alerte al usuario cuando no se ha encontrado un servidor al cual comunicarse.
Este es el mas facil de detectar, solo usando un proceso tipo reloj, que tome el tiempo entre que se manda el mensaje y se espera una respuesta, si ese intervalo de tiempo expira antes de recibir respuesta, se reenvia el mensaje. Existen 3 filosofias de como detectar este tipo de fallos. 1.- Esperar que el servidor reinicie para retransimitr el mensaje. 2.- La segunda filosofia trata de log, y es cuando el servidor recibe un mensaje, antes de iniciar cualkier proceso, manda un log al cliente para que sepa que el mensaje se recibio. 3- La tercera no garantiza nada, cuando sucede un crash del servidor, no se manda ningun log. Y simplemente el cliente retransmite el mensaje hasta ke el servidor conteste
Se puede usar otra vez el metodo del reloj por parte del servidor, otra solucion es que el cliente enumere los procesos, y que el servidor tenga un administrador de procesos que vaya mandando respuesta por el numero de mensajes recibidos, en caso de que se pierda un mensaje, simplemente se retransmite ese mensaje, en vez de reenviar todos otra vez. Cuando un servidor manda una respuesta y el cliente se  crashea, dentro del  servidor se kedan los proesos abiertos, a estos se les  llaman Procesos  huerfanos, porque no tienen ningun proceso  padre que los reciba.
Los procesos huerfanos pueden causar varios problemas, entre ellos el gastar recursos del servidor. Si el cleinte reinicia su PC y vueve a retransmitir los mensajes, la respuesta que puede recibir es confisa o falsa debido que se quedaron abierto los procesos huerfanos. Solucion 1 Antes de enviar un mensaje se cre un log que pueda resisitr los reboots del cliente, en caso de fallo, el servidor  cheka el log del cleinte y si se kedan procesos abiertos, los mata. Pero esta solucion ocupa medios extraibles. Solucion 2 La reencarnacion, En caso de que  el cliente reboote la pc,  antes de  retransmitir los mensajes, manda un mensaje al servidor para que  mate todos  los procesos que vinieron de el, asi  se retransmite todo  el mensaje de nuevo . Solucion 3 Cuando un cliente reinicia, manda el mismo mensaje tipo log al servidor, el servidor checa si tiene procesos abiertos, si el cliente no los puede  recibir, los mata, y solo se retransmiten los mensajes necesarios.
Teniendo en cuenta la importancia de la capacidad de proceso de replicación, se hablara de los servicios de multicast fiables.  Ya que ofrecen el servicio de enviar  los mensajes a todos los miembros de un grupo de proceso. Lamentablemente, multicas fiables son un poco dificil.
Son el envío de la información en una red a múltiples destinos simultáneamente, usando la estrategia más eficiente para el envío de los mensajes sobre cada enlace de la red sólo una vez y creando copias cuando los enlaces en los destinos se dividen. La mayoría de las capas oferta transporte fiable punto a punto entre canales, rara vez ofrecen una comunicación fiable a una colección de procesos. Lo mejor que pueden ofrecer es dejar que cada proceso haga una conexión punto a punto  entre sí, para el proceso que quiera comunicarse. Definicion:
La  multidifusión  (operación de envío que se traduce en la entrega de copias del mismo paquete a distintos los receptores miembros del grupo de multidifusión) se puede implementar mediante: Varias operaciones de unidifusión a todos los receptores. Multidifusión a nivel de aplicación. Multidifusión explícita.
 
 
 
Intuitivamente, significa que el mensaje que se envía a un grupo de proceso debe llegar a cada uno de los miembros de ese grupo.  ¿Pero que pasa cuando se esta enviando un mensaje y en ese  instante se agrega un proceso mas, le llega el mensaje?
Historial Recibido=24 Recibido=24 Recibido=24 Recibido=23 Red Mensaje Mensajero Receptor Receptor Receptor Receptor Mensaje Perdido
Recibido=24 Recibido=24 Recibido=24 Recibido=23 Red Mensajero Receptor Receptor Receptor Receptor
El principal problema con el multicast fiable que acabamos de describir es que no puede apoyar un gran número de receptores. Si hay N receptores, el remitente debe estar dispuesta a aceptar al menos N reconocimientos.  Una solución a este problema es no tener receptores de mensaje recibido. En lugar de un receptor devuelve un mensaje de retroalimentación sólo a informar al remitente que le falta un mensaje. Volviendo sólo negativos tales reconocimientos se puede demostrar que, tiene mucho mejor provecho.
La cuestión clave para las soluciones de control de comentarios en la multidifusión confiable es reducir el numero de comentarios en este caso  de los mensajes que son devueltos al remitente.  Para reducir los mensajes  utilizan el protocolo SRM ( Scalable Reliable Multicast )
- Para enviar un paquete requerido, se espera un tiempo aleatorio proporcional a la distancia con el receptor. - Define un marco para protocolos fiables. - Los receptores son los responsables de la recuperación. - El 5% de los mensajes son de control (estado de los vecinos). - Cada receptor mantiene una caché con los datos recibidos hasta el momento. - Cuando se detecta la pérdida de un paquete, se espera un tiempo aleatorio antes de realizar la solicitud.
Recibido=24 Recibido=24 Recibido=24 Recibido=23 Red Mensajero Receptor Receptor Receptor Receptor Recibe solamente un aviso Los receptores retransmiten su mensaje de recibido
Esto mas que nada se describe como una solución al envió, pero sin embargo  se necesitan condiciones para que esto se cumpla y funcione bien. Lo que realiza es enviar un mensaje  a un solo remitente y este a su vez envía a  a un grupo muy grande de receptores.
C R R C Área Local Área Local Remitente Coordinador Receptor conexión Root La esencia jerárquica de multidifusión confiable. cada coordinador local envía el mensaje a sus hijos y más tarde se encarga de las solicitudes de retransmisión.
Para simplificar, supongamos que hay un solo remitente que necesita mensajes multicast a un grupo muy grande de receptores. El grupo de receptores está dividida en una serie de subgrupos, que posteriormente se organizan en un árbol. El subgrupo que contiene las formas remitente la raíz del árbol.

Contenu connexe

Tendances

Algoritmos de dekker
Algoritmos de dekkerAlgoritmos de dekker
Algoritmos de dekkernerexi
 
Metodología orientadas a objetos
Metodología orientadas a objetosMetodología orientadas a objetos
Metodología orientadas a objetosyolandacando1
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidosTensor
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosEmmanuel Fortuna
 
Administración de transacciones, problemas, candados e interbloqueos
Administración de transacciones, problemas, candados e interbloqueosAdministración de transacciones, problemas, candados e interbloqueos
Administración de transacciones, problemas, candados e interbloqueosjocuva101
 
Ingeniería del software basada en componentes
Ingeniería del software basada en componentesIngeniería del software basada en componentes
Ingeniería del software basada en componentesjose_macias
 
Sistema de archivos distribuido o DFS
Sistema de archivos distribuido o DFSSistema de archivos distribuido o DFS
Sistema de archivos distribuido o DFSRosariio92
 
Unidad 4 Interoperabilidad entre sistemas operativos
Unidad 4 Interoperabilidad entre sistemas operativos Unidad 4 Interoperabilidad entre sistemas operativos
Unidad 4 Interoperabilidad entre sistemas operativos Roberto Encarnación
 
Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de softwareGuillermo Lemus
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidosVicente Malaver
 
Arquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositórioArquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositóriorehoscript
 
Base de datos propiedades acid
Base de datos propiedades acidBase de datos propiedades acid
Base de datos propiedades acidJefer Lee Parra
 
IV Unidad Sistemas Operativos 2 Cliente-Servidor
IV Unidad Sistemas Operativos 2 Cliente-Servidor IV Unidad Sistemas Operativos 2 Cliente-Servidor
IV Unidad Sistemas Operativos 2 Cliente-Servidor Samuel Cervantes
 
Seguridad En Sistemas Distribuidos
Seguridad En Sistemas DistribuidosSeguridad En Sistemas Distribuidos
Seguridad En Sistemas DistribuidosHECTOR JAVIER
 

Tendances (20)

Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidas
 
Algoritmos de dekker
Algoritmos de dekkerAlgoritmos de dekker
Algoritmos de dekker
 
Capitulo 6
Capitulo 6Capitulo 6
Capitulo 6
 
Metodología orientadas a objetos
Metodología orientadas a objetosMetodología orientadas a objetos
Metodología orientadas a objetos
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos
 
Administración de transacciones, problemas, candados e interbloqueos
Administración de transacciones, problemas, candados e interbloqueosAdministración de transacciones, problemas, candados e interbloqueos
Administración de transacciones, problemas, candados e interbloqueos
 
Capitulo5
Capitulo5Capitulo5
Capitulo5
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Ingeniería del software basada en componentes
Ingeniería del software basada en componentesIngeniería del software basada en componentes
Ingeniería del software basada en componentes
 
Sistema de archivos distribuido o DFS
Sistema de archivos distribuido o DFSSistema de archivos distribuido o DFS
Sistema de archivos distribuido o DFS
 
Unidad 4 Interoperabilidad entre sistemas operativos
Unidad 4 Interoperabilidad entre sistemas operativos Unidad 4 Interoperabilidad entre sistemas operativos
Unidad 4 Interoperabilidad entre sistemas operativos
 
Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de software
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Arquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositórioArquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositório
 
Modelo 4+1
Modelo 4+1Modelo 4+1
Modelo 4+1
 
Base de datos propiedades acid
Base de datos propiedades acidBase de datos propiedades acid
Base de datos propiedades acid
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
IV Unidad Sistemas Operativos 2 Cliente-Servidor
IV Unidad Sistemas Operativos 2 Cliente-Servidor IV Unidad Sistemas Operativos 2 Cliente-Servidor
IV Unidad Sistemas Operativos 2 Cliente-Servidor
 
Seguridad En Sistemas Distribuidos
Seguridad En Sistemas DistribuidosSeguridad En Sistemas Distribuidos
Seguridad En Sistemas Distribuidos
 

Similaire à Características clave de los sistemas distribuidos tolerantes a fallos

Similaire à Características clave de los sistemas distribuidos tolerantes a fallos (20)

s.o.
s.o.s.o.
s.o.
 
Modelo paso de mensajes
Modelo paso de mensajesModelo paso de mensajes
Modelo paso de mensajes
 
Tarea3 fernando lopez
Tarea3   fernando lopezTarea3   fernando lopez
Tarea3 fernando lopez
 
Tarea3 fernando lopez
Tarea3   fernando lopezTarea3   fernando lopez
Tarea3 fernando lopez
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de Procesos
 
Sincronización de Procesos
Sincronización de Procesos Sincronización de Procesos
Sincronización de Procesos
 
Protocolos y servicios informáticos
Protocolos y servicios informáticosProtocolos y servicios informáticos
Protocolos y servicios informáticos
 
sistemas distribuidos2.pptx
sistemas distribuidos2.pptxsistemas distribuidos2.pptx
sistemas distribuidos2.pptx
 
Mensajería (Informática)
Mensajería (Informática)Mensajería (Informática)
Mensajería (Informática)
 
Descripcion y control de procesos
Descripcion y control de procesosDescripcion y control de procesos
Descripcion y control de procesos
 
Sistema operativo de tiempo real
Sistema operativo de tiempo realSistema operativo de tiempo real
Sistema operativo de tiempo real
 
Sistema operativo de tiempo real
Sistema operativo de tiempo realSistema operativo de tiempo real
Sistema operativo de tiempo real
 
(2) Arquitectura del SO (generalidades).pdf
(2) Arquitectura del SO (generalidades).pdf(2) Arquitectura del SO (generalidades).pdf
(2) Arquitectura del SO (generalidades).pdf
 
Paso mensajes
Paso mensajesPaso mensajes
Paso mensajes
 
Sincronizacion de Procesos
Sincronizacion de ProcesosSincronizacion de Procesos
Sincronizacion de Procesos
 
Capitulo 2 comunicacion
Capitulo 2 comunicacionCapitulo 2 comunicacion
Capitulo 2 comunicacion
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Procesos_so
Procesos_soProcesos_so
Procesos_so
 
2.4 Cuestionario de comunicacion entre procesos
2.4 Cuestionario de comunicacion entre procesos2.4 Cuestionario de comunicacion entre procesos
2.4 Cuestionario de comunicacion entre procesos
 
CAPA DE TRANSPORTE.pptx
CAPA DE TRANSPORTE.pptxCAPA DE TRANSPORTE.pptx
CAPA DE TRANSPORTE.pptx
 

Características clave de los sistemas distribuidos tolerantes a fallos

  • 1.  
  • 2. Una caracteristica de los sistemas distribuidos, quelos difiere de los sistemas singulares, es la nocion para errores parciales. Un error parcial puede ocurrir cuando algun componente del sistema distrbuido falla, el fallo puede afectar el correcto funcionamiento de algunos componentes, pero a la vez dejar otros componentes sin afectarlos. A contrario de un sistema monousuario , el cual puede afectar a todo el sistema, apagandolo. Un punto importante en los sistemas distrbuidos , es contruirlos de tal forma que puede recupersarse automaticamente de fallos sin afectar el rendimiento Cuando un error ocurre el sistema deberia seguir operando de forma aceptable mientras se hacen las reparaciones.
  • 3. Para que un sistema distribuido pueda ser tolerante a fallos, se ocupan las siguientes caracteristicas: Disponibilidad Confiabilidad Seguridad Mantenimiento.
  • 4. Es definida por la propiedad de que el sistema esta listo para ser usado, en otras palabras se endiende que el sistema esta operando correctamente. Un sistema con alta disponibilidad es quel que puede trabajar en cualquier tiempo Se refiere a la propiedad de que el sistema puede trabajar continuamente sin fallos, en contraste a la disponibilidad, la confiabilidad se refiere en lapsos de tiempo, en vez de momentos instantaneos. Un sistema con alta confiabilidad, es quel que funciona por largos periodos de tiempo sin fallo algiuno.
  • 5. Se refiere a la situacion en la que un sistema falla temporalmente, no pasa nada grave, ejemplo son algunos sistemas que controlan plantas nucleares, si algunos de esos sitemas fallan, pueden traer consecuencias catastroficas. Se refiere a que tan rapido puede ser repadao un sitema . Un sistema con alto grado de mantenimiento es quel, que puede evitar o reparar fallas automaticamente.
  • 7. Son aquellos fallos que aparecen una vez y despues desaperecen aun cuando la misma operacion se repite. Son aquellos fallos que aparecen una vez y despues desaperecen y despues vuelven a aparecer y continua el siclo. Son aquellos fallos que aparecen y no desaparecen hasta que el componente erroneo es reemplazado o es arreglado el problema.
  • 8. TIPO DE FALLO DESCRIPCION FALLO CRASH El servidor se detiene, pero estaba operando correctamente. Fallo por Omision Omision de recibido Omision de envio Un servidor falla en responder a las peticiones El servidor falla en recibir mensajes El servidor falla en mandar mensajes Fallo de tiempo La respuesta del servidor no esta en el intervalo de tiempo especificado. Fallo de respuesta Fallo de valor Fallo de estado de transicion La respuesta del servidor es incorrecta El valor de la respuesta es incorrecto El servidor se desvia del flujo de control Fallo arbitriario El servidor produce fallos arbitrarios en tiempo indefinidos.
  • 9. Ocurre cuando el servidor se detiene prematuramente aun cuando instantes antes estaba funcionando correctamente, un aspecto importante de estos errores es que una vez que ocurren ya no responde el servidor. Ocurre cuando el servidor no responde y se puede deber a varias razones, una de las principales es que no se establecio correctamente la conexion con el servidor.
  • 10. Ocurren cuando se da la respuesta fuera del intervalo de tiempo Cuando ocurren este tipo de fallos, usualmente el servidor lanza respuestas incorrectas y que son dificiles de detectar
  • 11. Si un sistema debe ser tolerante a fallos, lo mejor que puede hacer es esconder esos errores de otros procesos. La tecnicla clave es usando la Redundancia. Los tipos de redundancia a usar: Redundancia de tiempo Redundancia de Informacion Redundancia fisica
  • 12. Con este tipo de redundancia, se agregan bits al paquete de informacion para permitir recuperacion de datos en caso de que el paquete recibido contenga errores. Con esta redundancia, una accion se hecha y despues si es necesaria, se repite la misma accion, este tipo de redundancia se presenta cuando hay errores intrasitentes o intermitentes.
  • 13. Se le llama asi a la tecnica en la cual se hacen 2 o 3 copias del mismo mensaje para evitar fallos en el recibimiento del mismo. Es una de las tecnicas mas usadas para la tolerancia de fallos.
  • 14. El punto clave para tolerar procesos con fallo es organizando varios procesos identidos en un mismo grupo, esto es para que cuando un miembro del grpo reciba un mensaje, todos los demas lo reciban. Los procesos pueden ser dinamicos, se puede n crear nuevos grupos, eliminar antiguos, o juntar varios grupos. La razon de hacer los grupos es de permitir procesos que lidien con otra coleccion de procesos
  • 15. Una diferencia importante para distinguir a los grupos es su forma de funcionamiento, en algunos grupos todos son iguales y la decision se hace colectivamente, mientras que en otros, existe una jerarquia donde un proceso coordina a los demas.
  • 16. La replicacion basica se usa generalmente en forma de backup, cuando un proceso falla, se elije uno de los procesos del grupo y se convierte en el primario hasta que el proceso fallido es corregido
  • 17. En un sistema distribuido, muchas veces se conentran los errores en la programacion o en dispositivos dañados, Pero muchas veces es error en la comunicacion
  • 18. En muchos sistemas distribuidos, una comunicacion punto-punto debe ser fiable, esto se logra usando algun protocolo de transporte como el TCP, este enmascara fallos de comunicacion, haciendo uso de la retransmision de mensajes. RPC= Llamada a procedimientos Remotos, es un tipo de comunicacion de alto nivel, la cual enmascara la comunicacion, haciendo uso de llamadas remotas, como si fueran locales
  • 19. Habremos de distinguir 5 diferentes clases de errores en RPC El cliente no halla el servidor El mensaje del cliente a servidor se perdio El servidor hace crash cuando recibe el mensaje La respuesta del servidor se pierde El cliente hace crash al recibir respuesta. Puede suceder cuando no hay una buena comunicacion entre el cliente y el servidor, o el servidor no esta disponible en ese momento, la forma mas facil de arreglarlo es creando una excepcion en el codigo del programa, que alerte al usuario cuando no se ha encontrado un servidor al cual comunicarse.
  • 20. Este es el mas facil de detectar, solo usando un proceso tipo reloj, que tome el tiempo entre que se manda el mensaje y se espera una respuesta, si ese intervalo de tiempo expira antes de recibir respuesta, se reenvia el mensaje. Existen 3 filosofias de como detectar este tipo de fallos. 1.- Esperar que el servidor reinicie para retransimitr el mensaje. 2.- La segunda filosofia trata de log, y es cuando el servidor recibe un mensaje, antes de iniciar cualkier proceso, manda un log al cliente para que sepa que el mensaje se recibio. 3- La tercera no garantiza nada, cuando sucede un crash del servidor, no se manda ningun log. Y simplemente el cliente retransmite el mensaje hasta ke el servidor conteste
  • 21. Se puede usar otra vez el metodo del reloj por parte del servidor, otra solucion es que el cliente enumere los procesos, y que el servidor tenga un administrador de procesos que vaya mandando respuesta por el numero de mensajes recibidos, en caso de que se pierda un mensaje, simplemente se retransmite ese mensaje, en vez de reenviar todos otra vez. Cuando un servidor manda una respuesta y el cliente se crashea, dentro del servidor se kedan los proesos abiertos, a estos se les llaman Procesos huerfanos, porque no tienen ningun proceso padre que los reciba.
  • 22. Los procesos huerfanos pueden causar varios problemas, entre ellos el gastar recursos del servidor. Si el cleinte reinicia su PC y vueve a retransmitir los mensajes, la respuesta que puede recibir es confisa o falsa debido que se quedaron abierto los procesos huerfanos. Solucion 1 Antes de enviar un mensaje se cre un log que pueda resisitr los reboots del cliente, en caso de fallo, el servidor cheka el log del cleinte y si se kedan procesos abiertos, los mata. Pero esta solucion ocupa medios extraibles. Solucion 2 La reencarnacion, En caso de que el cliente reboote la pc, antes de retransmitir los mensajes, manda un mensaje al servidor para que mate todos los procesos que vinieron de el, asi se retransmite todo el mensaje de nuevo . Solucion 3 Cuando un cliente reinicia, manda el mismo mensaje tipo log al servidor, el servidor checa si tiene procesos abiertos, si el cliente no los puede recibir, los mata, y solo se retransmiten los mensajes necesarios.
  • 23. Teniendo en cuenta la importancia de la capacidad de proceso de replicación, se hablara de los servicios de multicast fiables. Ya que ofrecen el servicio de enviar los mensajes a todos los miembros de un grupo de proceso. Lamentablemente, multicas fiables son un poco dificil.
  • 24. Son el envío de la información en una red a múltiples destinos simultáneamente, usando la estrategia más eficiente para el envío de los mensajes sobre cada enlace de la red sólo una vez y creando copias cuando los enlaces en los destinos se dividen. La mayoría de las capas oferta transporte fiable punto a punto entre canales, rara vez ofrecen una comunicación fiable a una colección de procesos. Lo mejor que pueden ofrecer es dejar que cada proceso haga una conexión punto a punto entre sí, para el proceso que quiera comunicarse. Definicion:
  • 25. La multidifusión (operación de envío que se traduce en la entrega de copias del mismo paquete a distintos los receptores miembros del grupo de multidifusión) se puede implementar mediante: Varias operaciones de unidifusión a todos los receptores. Multidifusión a nivel de aplicación. Multidifusión explícita.
  • 26.  
  • 27.  
  • 28.  
  • 29. Intuitivamente, significa que el mensaje que se envía a un grupo de proceso debe llegar a cada uno de los miembros de ese grupo. ¿Pero que pasa cuando se esta enviando un mensaje y en ese instante se agrega un proceso mas, le llega el mensaje?
  • 30. Historial Recibido=24 Recibido=24 Recibido=24 Recibido=23 Red Mensaje Mensajero Receptor Receptor Receptor Receptor Mensaje Perdido
  • 31. Recibido=24 Recibido=24 Recibido=24 Recibido=23 Red Mensajero Receptor Receptor Receptor Receptor
  • 32. El principal problema con el multicast fiable que acabamos de describir es que no puede apoyar un gran número de receptores. Si hay N receptores, el remitente debe estar dispuesta a aceptar al menos N reconocimientos. Una solución a este problema es no tener receptores de mensaje recibido. En lugar de un receptor devuelve un mensaje de retroalimentación sólo a informar al remitente que le falta un mensaje. Volviendo sólo negativos tales reconocimientos se puede demostrar que, tiene mucho mejor provecho.
  • 33. La cuestión clave para las soluciones de control de comentarios en la multidifusión confiable es reducir el numero de comentarios en este caso de los mensajes que son devueltos al remitente. Para reducir los mensajes utilizan el protocolo SRM ( Scalable Reliable Multicast )
  • 34. - Para enviar un paquete requerido, se espera un tiempo aleatorio proporcional a la distancia con el receptor. - Define un marco para protocolos fiables. - Los receptores son los responsables de la recuperación. - El 5% de los mensajes son de control (estado de los vecinos). - Cada receptor mantiene una caché con los datos recibidos hasta el momento. - Cuando se detecta la pérdida de un paquete, se espera un tiempo aleatorio antes de realizar la solicitud.
  • 35. Recibido=24 Recibido=24 Recibido=24 Recibido=23 Red Mensajero Receptor Receptor Receptor Receptor Recibe solamente un aviso Los receptores retransmiten su mensaje de recibido
  • 36. Esto mas que nada se describe como una solución al envió, pero sin embargo se necesitan condiciones para que esto se cumpla y funcione bien. Lo que realiza es enviar un mensaje a un solo remitente y este a su vez envía a a un grupo muy grande de receptores.
  • 37. C R R C Área Local Área Local Remitente Coordinador Receptor conexión Root La esencia jerárquica de multidifusión confiable. cada coordinador local envía el mensaje a sus hijos y más tarde se encarga de las solicitudes de retransmisión.
  • 38. Para simplificar, supongamos que hay un solo remitente que necesita mensajes multicast a un grupo muy grande de receptores. El grupo de receptores está dividida en una serie de subgrupos, que posteriormente se organizan en un árbol. El subgrupo que contiene las formas remitente la raíz del árbol.