Estrellas de la Hambruna

Estrellas de la Hambruna: Un Fenómeno de Concurrencia

Las estrellas de la hambruna son un problema que puede surgir en sistemas concurrentes, como las bases de datos, cuando un proceso o transacción es sistemáticamente postergado o ignorado en favor de otros, incluso cuando tiene recursos disponibles y está listo para ejecutarse. Es como si este proceso estuviera "muriendo de hambre" mientras otros procesos se alimentan.

Causas de las Estrellas de la Hambruna:

  • Prioridades Estáticas: Si se asignan prioridades estáticas a los procesos, un proceso con baja prioridad puede ser constantemente postergado, incluso si su ejecución es más corta o si los recursos están disponibles.
  • Algoritmos de Planificación Injustos: Si el algoritmo utilizado para seleccionar el siguiente proceso a ejecutar favorece sistemáticamente a ciertos procesos, otros pueden quedar marginados.
  • Condiciones de Carrera: En ciertas condiciones de carrera, un proceso puede perder constantemente la oportunidad de adquirir los recursos necesarios para avanzar, mientras que otros procesos tienen éxito.

Consecuencias de las Estrellas de la Hambruna:

  • Desempeño Degradado: El sistema puede no aprovechar al máximo todos los recursos disponibles, ya que algunos procesos no se están ejecutando.
  • Inestabilidad: Las estrellas de la hambruna pueden llevar a la inanición de procesos importantes, lo que puede causar fallas en el sistema.
  • Injusticia: Algunos procesos pueden ser favorecidos sobre otros, lo que puede llevar a resultados injustos.

Prevención de las Estrellas de la Hambruna:

  • Prioridades Dinámicas: Utilizar prioridades dinámicas que se ajusten en función de las necesidades del sistema y de los procesos.
  • Algoritmos de Planificación Justos: Implementar algoritmos de planificación que garanticen que todos los procesos tengan una oportunidad justa de ejecutarse.
  • Detección y Prevención de Condiciones de Carrera: Utilizar técnicas de sincronización adecuadas para evitar que los procesos compitan por los mismos recursos de manera no determinista.
  • Mecanismos de Tiempo de Espera: Establecer límites de tiempo para la espera de recursos, para evitar que un proceso se quede bloqueado indefinidamente.

Ejemplo:

Imagina una cola de impresión en la que los trabajos de impresión se ejecutan en orden de llegada. Si un trabajo de impresión muy grande se envía continuamente, los trabajos más pequeños pueden tener que esperar mucho tiempo para ser impresos, incluso si son más urgentes. Esto sería un ejemplo de estrella de la hambruna, ya que los trabajos pequeños están siendo sistemáticamente postergados en favor del trabajo grande.

En resumen, las estrellas de la hambruna son un problema importante en los sistemas concurrentes que puede afectar el rendimiento y la equidad del sistema. Es fundamental implementar mecanismos para prevenir y detectar este tipo de situaciones.


Comentarios

Entradas más populares de este blog

Procedimientos almacenados, manejo de excepciones

Procedimiento almacenado, manejo de transacciones

Procedimiento almacenado recuperación de información