Sistemas Distribuidos: Gestión de Recursos, Tolerancia a Fallas y Estrategias de Recuperación

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 5,48 KB

Gestión de Recursos en Sistemas Distribuidos: El Modelo Económico

Una clase de algoritmos innovadores busca transformar el sistema de cómputo en una economía en miniatura, donde existen compradores y vendedores de servicios, y los precios se establecen por la oferta y la demanda. En este modelo, los actores clave son los procesos, que deben adquirir tiempo de CPU para completar sus tareas, y los procesadores, que venden sus ciclos al mejor postor. Cada procesador anuncia su precio aproximado a través de un archivo de acceso público. Aunque este precio no está garantizado, ofrece una indicación del valor del servicio. Cuando un proceso desea iniciar un proceso hijo, primero verifica si hay disponibilidad del servicio requerido y luego determina el conjunto de procesadores que pueden proporcionarlo.

Planificación y Asignación de Tareas en Sistemas Distribuidos

La planificación en sistemas distribuidos generalmente implica que cada procesador realiza su planificación local (si tiene varios procesos en ejecución) sin considerar las acciones de los demás. Este método suele ser funcional; sin embargo, si un grupo de procesos interrelacionados y con alta interacción se ejecutan en procesadores distintos, la planificación independiente deja de ser la estrategia más eficiente.

Decisiones Clave en el Diseño de Algoritmos Distribuidos

Las principales decisiones que deben tomar los diseñadores de sistemas distribuidos se resumen en cinco aspectos fundamentales:

  1. Algoritmos Deterministas vs. Heurísticos: ¿Se busca una solución predecible o una aproximación eficiente?
  2. Algoritmos Centralizados vs. Distribuidos: ¿La lógica de control reside en un único punto o se distribuye entre los nodos?
  3. Algoritmos Óptimos vs. Subóptimos: ¿Se prioriza la mejor solución posible o una solución suficientemente buena y más rápida?
  4. Algoritmos Locales vs. Globales: ¿Las decisiones se basan en información local o en una visión completa del sistema?
  5. Algoritmos Iniciados por el Emisor vs. Iniciados por el Receptor: ¿Quién inicia la comunicación o la tarea?

Tolerancia a Fallas y Fiabilidad en Sistemas Distribuidos

La tolerancia a fallas está fuertemente relacionada con el concepto de sistemas fiables. La fiabilidad es un término que engloba varios requisitos esenciales para los sistemas distribuidos, incluyendo los siguientes:

  • Disponibilidad: Se define como la propiedad de que un sistema esté listo para ser utilizado de inmediato.
  • Confiabilidad: Se refiere a la propiedad de que un sistema sea capaz de funcionar de manera continua sin fallar.
  • Seguridad: Se refiere a la situación en que no ocurre nada catastrófico cuando un sistema deja de funcionar correctamente durante un tiempo.
  • Mantenibilidad: Se refiere a cuán fácil puede ser reparado un sistema que ha fallado. Un sistema altamente mantenible también puede ser altamente disponible.

Clasificación de Fallas en Sistemas Distribuidos

Las fallas en sistemas distribuidos pueden clasificarse en varios tipos:

  • Falla de Congelación (Crash Failure): Ocurre cuando un servidor se detiene prematuramente, habiendo funcionado correctamente hasta ese momento.
  • Falla de Omisión (Omission Failure): Sucede cuando un servidor no atiende una petición, lo que puede deberse a diversas causas.
  • Falla de Temporización (Timing Failure): Acontece cuando la respuesta de un sistema queda fuera de un intervalo de tiempo real especificado.
  • Falla de Respuesta (Response Failure): Se produce cuando la respuesta del servidor es incorrecta. Dentro de esta categoría, pueden distinguirse dos subtipos:
    • Falla de Valor: Un servidor responde de forma equivocada a una petición.
    • Falla de Transición de Estado: El servidor reacciona inesperadamente a una solicitud entrante.
  • Fallas Arbitrarias (Arbitrary Failures) o Bizantinas: Son las más serias. Cuando ocurren, los clientes deben estar preparados para el peor escenario posible. Este tipo de fallas están estrechamente relacionadas con las fallas de congelación.

Estrategias de Recuperación de Errores en Sistemas Distribuidos

La recuperación de errores es fundamental para la tolerancia a fallas. Es importante recordar que un error es aquella parte de un sistema que puede conducir a una falla. La idea central de la recuperación de errores es reemplazar un estado erróneo con un estado libre de errores. Esencialmente, existen dos formas principales de recuperación de errores:

  • Recuperación Hacia Atrás (Backward Recovery): El objetivo principal es hacer que el sistema regrese de su estado actual erróneo a un estado previamente correcto, generalmente un punto de control.
  • Recuperación Hacia Adelante (Forward Recovery): En este caso, cuando el sistema ha entrado en un estado erróneo, en lugar de regresarlo a un punto de control previo, se intenta llevarlo a un nuevo estado correcto a partir del cual pueda continuar su ejecución.

Entradas relacionadas: