Pagina iniziale | Navigazione |
Google

Starvation

In informatica, per starvation (termine inglese che tradotto letteralmente significa inedia) si intende l'impossibilità, da parte di un processo pronto all'esecuzione, di ottenere le risorse di cui necessita.

Un esempio tipico è l'impossibilità di ottenere il controllo della CPU da parte di processi con priorità molto bassa, qualora vengano usati algoritmi di scheduling a priorità. Può capitare, infatti, che sia sempre sottomesso al sistema un processo con priorità più alta prima. Un aneddoto riguardo questo problema è la storia del processo con bassa priorità, scoperto quando fu necessario fermare il sistema sull'IBM 7094 al MIT nel 1973, sottomesso nel 1967 e che fino ad allora non era ancora stato eseguito.

Per evitare questi problemi si possono utilizzare, oltre ad algoritmi di scheduling diversi, come RR, le cosidette tecniche di invecchiamento (aging). Ovvero si provvede ad aumentare progressivamente, ad intervalli regolari, la priorità dei processi qualora questi non siano riusciti ad ottenere le risorse richieste. Questo fa sì che anche un processo con la priorità più bassa potenzialmente possa ottenere quella più alta, riuscendo così ad ottenere, in un tempo massimo predefinito, quanto di cui necessita.

Altri usi del termine starvation sono in relazione alle risorse di accesso alla memoria o CPU : si dice che un programma è bandwidth-starved quando la sua esecuzione è rallentata da un'insufficiente velocità di accesso alla memoria, o CPU-starved quando il processore è troppo lento per eseguire efficacemente il codice.


GNU Fdl - it.Wikipedia.org




Google | 

Enciclopedia |  La Divina Commedia di Dante |  Mappa | : A |  B |  C |  D |  E |  F |  G |  H |  I |  J |  K |  L |  M |  N |  O |  P |  Q |  R |  S |  T |  U |  V |  W |  X |  Y |  Z |