Inanición (informática)

De Wikipedia, la enciclopedia libre

En informática, inanición (starvation en inglés) es un problema relacionado con los sistemas multitarea, donde a un proceso o un hilo de ejecución se le deniega siempre el acceso a un recurso compartido. Sin este recurso, la tarea a ejecutar no puede ser nunca finalizada.

La inanición no es sinónimo de interbloqueo, aunque el interbloqueo produce la inanición de los procesos involucrados.[1]​ La inanición puede (aunque no tiene por qué) acabar, mientras que un interbloqueo no puede finalizar sin una acción del exterior.

Un caso de inanición lo ilustra perfectamente la paradoja conocida como la cena de los filósofos de Edsger Dijkstra cuando se da el caso de que todos los filósofos cogen el tenedor a la vez.

La utilización de prioridades en muchos sistemas operativos multitarea podría causar que procesos de alta prioridad estuvieran ejecutándose siempre y no permitieran la ejecución de procesos de baja prioridad, causando inanición en estos. Es más, si un proceso de alta prioridad está pendiente del resultado de un proceso de baja prioridad que no se ejecuta nunca, entonces este proceso de alta prioridad también experimenta inanición (esta situación se conoce como inversión de prioridades). Para evitar estas situaciones los planificadores modernos incorporan algoritmos para asegurar que todos los procesos reciben un mínimo de tiempo de CPU para ejecutarse.

Referencias[editar]

  1. Anthony D. Joseph. «CS 162 Operating Systems and Systems Programming». Consultado el 18 de febrero de 2016.