Inanició (informàtica)

De la Viquipèdia, l'enciclopèdia lliure

En informàtica, inanició (starvation en anglès) és un problema relacionat amb els sistemes multitasca, on a un procés o a un fil d'execució se li denega sempre l'accés a un recurs compartit. Sense aquest recurs, la tasca a executar no pot ser mai finalitzada.

La inanició és una situació similar a l'interbloqueig, però les causes són diferents. En l'interbloqueig, dos processos o dos fils d'execució arriben a un punt mort quan cadascun d'ells necessita un recurs que és ocupat per l'altre. En canvi, en aquest cas, un o més processos estan esperant recursos ocupats per altres processos que no es troben necessàriament en cap punt mort.

Un cas d'inanició l'il·lustra perfectament la paradoxa coneguda com el sopar de filòsofs d'Edsger Dijkstra quan es dona el cas que tots els filòsofs agafen la forquilla al mateix temps.

La utilització de prioritats en molts sistemes operatius multitasca podria causar que processos d'alta prioritat s'estiguessin executant sempre i no permetessin l'execució de processos de baixa prioritat, causant inanició en aquests. És més, si un procés d'alta prioritat està pendent del resultat d'un procés de baixa prioritat que no s'executa mai, llavors aquest procés d'alta prioritat també experimenta inanició (aquesta situació es coneix com a inversió de prioritat). Per evitar aquestes situacions els planificadors moderns incorporen algorismes per assegurar que tots els processos reben un mínim de temps de CPU per executar-se.