Che cos'è un'unità di gestione della memoria?
L'hardware del computer responsabile della gestione del sistema di memoria del computer è chiamato MMU (Memory Management Unit). Questo componente funge da buffer tra la CPU e la memoria di sistema. Le funzioni svolte dall'unità di gestione della memoria possono in genere essere suddivise in tre aree: gestione della memoria hardware, gestione della memoria del sistema operativo e gestione della memoria dell'applicazione. Sebbene l'unità di gestione della memoria possa essere un componente chip separato, di solito è integrata nell'unità centrale di elaborazione (CPU).
In genere, l'hardware associato alla gestione della memoria include memoria ad accesso casuale (RAM) e cache di memoria. La RAM è il vano di archiviazione fisico che si trova sul disco rigido. È l'area di archiviazione principale del computer in cui i dati vengono letti e scritti. Le cache di memoria vengono utilizzate per conservare copie di determinati dati dalla memoria principale. La CPU accede a queste informazioni contenute nella cache di memoria, che aiuta ad accelerare i tempi di elaborazione.
Quando la memoria fisica o RAM esaurisce lo spazio di memoria, il computer utilizza automaticamente la memoria virtuale dal disco rigido per eseguire il programma richiesto. L'unità di gestione della memoria alloca la memoria dal sistema operativo a varie applicazioni. L'area dell'indirizzo virtuale, che si trova all'interno dell'unità centrale di elaborazione, è composta da un intervallo di indirizzi che sono divisi in pagine. Le pagine sono blocchi di archiviazione secondari di dimensioni uguali. Il processo di paging automatizzato consente al sistema operativo di utilizzare lo spazio di archiviazione sparso sul disco rigido.
Invece che l'utente riceva un messaggio di errore che indica che non c'è memoria sufficiente, la MMU indica automaticamente al sistema di creare memoria virtuale sufficiente per eseguire l'applicazione. Lo spazio di memoria virtuale contiguo viene creato da un pool di blocchi di dimensioni uguali di memoria virtuale per l'esecuzione dell'applicazione. Questa funzione è la chiave principale per far funzionare questo processo in modo efficace ed efficiente poiché il sistema non è tenuto a creare un pezzo di memoria virtuale per gestire i requisiti del programma. La creazione di spazio di memoria di varie dimensioni per adattarsi a programmi di dimensioni diverse causa un problema noto come frammentazione. Ciò potrebbe portare alla possibilità di non avere abbastanza spazio libero per programmi più grandi quando lo spazio totale disponibile è effettivamente sufficiente.
La gestione della memoria dell'applicazione comporta il processo di allocazione della memoria richiesta per eseguire un programma dalle risorse di memoria disponibili. Nei sistemi operativi più grandi, è possibile eseguire molte copie della stessa applicazione. L'unità di gestione della memoria assegna spesso a un'applicazione l'indirizzo di memoria più adatto alle sue esigenze. È più semplice assegnare a questi programmi gli stessi indirizzi. Inoltre, l'unità di gestione della memoria può distribuire risorse di memoria ai programmi secondo necessità. Al termine dell'operazione, la memoria viene riciclata per l'uso altrove.
Una delle principali sfide per l'unità di gestione della memoria è capire quando i dati non sono più necessari e possono essere scartati. Questo libera memoria per l'uso su altri processi. La gestione della memoria automatica e manuale è diventata un campo di studio separato a causa di questo problema. La gestione inefficiente della memoria presenta un grosso problema quando si tratta di prestazioni ottimali dei sistemi informatici.