La gestione della memoria è il processo di controllo e coordinamento della memoria del computer, assegnando porzioni chiamate blocchi a vari programmi in esecuzione per ottimizzare le prestazioni complessive del sistema. La gestione della memoria risiede nell'hardware, nel sistema operativo (sistema operativo) e nei programmi e applicazioni.
Nell'hardware, la gestione della memoria coinvolge componenti che archiviano fisicamente i dati, come chip RAM (memoria ad accesso casuale), cache di memoria e SSD basati su flash (unità a stato solido). Nel sistema operativo, la gestione della memoria implica l'allocazione (e la riallocazione costante) di blocchi di memoria specifici ai singoli programmi man mano che le richieste dell'utente cambiano. A livello di applicazione, la gestione della memoria garantisce la disponibilità di memoria adeguata per gli oggetti e le strutture dati di ogni programma in esecuzione in ogni momento. La gestione della memoria dell'applicazione combina due attività correlate, note come allocazione e riciclo.
- Quando il programma richiede un blocco di memoria, una parte del gestore della memoria chiamata allocatore assegna quel blocco al programma.
- Quando un programma non necessita più dei dati nei blocchi di memoria allocati in precedenza, quei blocchi diventano disponibili per la riassegnazione. Questa operazione può essere eseguita manualmente (dal programmatore) o automaticamente (dal gestore della memoria).