La inanición (starvation en inglés) es un problema relacionado con los sistemas multi-tarea, 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 es una situación similar al interbloqueo,
pero las causas son diferentes.
En el inter bloqueo, dos procesos o dos
hilos de ejecución llegan a un punto muerto cuando cada uno de ellos
necesita un recurso que es ocupado por el otro. En cambio, en este caso,
uno o más procesos están esperando recursos ocupados por otros procesos
que no se encuentran necesariamente en ningún punto muerto.
Un caso de inanición la 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.
Para ampliar la informacion, se dispone de la exposicion de ese dia.
Inanicion de los sistemas

No hay comentarios:
Publicar un comentario