Inanición es un problema relacionado
con los sistemas multitarea, donde a un proceso o un hilo de ejecución se le
niega siempre el acceso a un recurso compartido. Sin este recurso, la tarea a
ejecutar no puede ser nunca finalizada., cabe resaltar que este evento nunca va a ocurrir.
La inanición es una situación
similar al interbloqueo, pero las causas son diferentes. En el interbloqueo 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 prioridad).
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.
0 comentarios:
Publicar un comentario