Hardware-ul computerului care este responsabil cu gestionarea sistemului de memorie al computerului se numește unitatea de gestionare a memoriei (MMU). Această componentă servește ca un buffer între CPU și memoria sistemului. Funcțiile îndeplinite de unitatea de gestionare a memoriei pot fi de obicei împărțite în trei zone: managementul memoriei hardware, managementul memoriei sistemului de operare și managementul memoriei aplicațiilor. Deși unitatea de gestionare a memoriei poate fi o componentă separată de cip, este de obicei integrată în unitatea centrală de procesare (CPU).
În general, hardware-ul asociat cu gestionarea memoriei include memorie cu acces aleatoriu (RAM) și memorie cache. RAM este compartimentul de stocare fizic care se află pe hard disk. Este principala zonă de stocare a computerului unde sunt citite și scrise datele. Cache-urile de memorie sunt folosite pentru a păstra copii ale anumitor date din memoria principală. CPU accesează aceste informații păstrate în memoria cache, ceea ce ajută la accelerarea timpului de procesare.
Când memoria fizică, sau RAM, rămâne fără spațiu de memorie, computerul folosește automat memoria virtuală de pe hard disk pentru a rula programul solicitat. Unitatea de gestionare a memoriei alocă memorie din sistemul de operare către diverse aplicații. Zona de adrese virtuale, care este situată în unitatea centrală de procesare, este compusă dintr-o serie de adrese care sunt împărțite în pagini. Paginile sunt blocuri de stocare secundare care au dimensiuni egale. Procesul automat de paginare permite sistemului de operare să utilizeze spațiul de stocare împrăștiat pe hard disk.
În loc ca utilizatorul să primească un mesaj de eroare că nu există memorie suficientă, MMU instruiește automat sistemul să construiască suficientă memorie virtuală pentru a executa aplicația. Spațiul de memorie virtuală contiguu este creat dintr-un grup de blocuri de memorie virtuală de dimensiuni egale pentru rularea aplicației. Această caracteristică este o cheie majoră pentru ca acest proces să funcționeze eficient și eficient, deoarece sistemul nu este obligat să creeze o singură bucată de memorie virtuală pentru a gestiona cerințele programului. Crearea de diferite dimensiuni de spațiu de memorie pentru a găzdui programe de dimensiuni diferite cauzează o problemă cunoscută sub numele de fragmentare. Acest lucru ar putea duce la posibilitatea de a nu avea suficient spațiu liber pentru programe mai mari atunci când spațiul total disponibil este de fapt suficient.
Gestionarea memoriei aplicației presupune procesul de alocare a memoriei necesare rulării unui program din resursele de memorie disponibile. În sistemele de operare mai mari, pot rula multe copii ale aceleiași aplicații. Unitatea de gestionare a memoriei atribuie adesea unei aplicații adresa de memorie care se potrivește cel mai bine nevoilor acesteia. Este mai simplu să atribuiți acestor programe aceleași adrese. De asemenea, unitatea de gestionare a memoriei poate distribui resurse de memorie către programe, după cum este necesar. Când operațiunea este finalizată, memoria este reciclată pentru utilizare în altă parte.
Una dintre principalele provocări pentru unitatea de gestionare a memoriei este să sesizeze când datele nu mai sunt necesare și pot fi aruncate. Acest lucru eliberează memorie pentru utilizare în alte procese. Gestionarea automată și manuală a memoriei a devenit un domeniu separat de studiu din cauza acestei probleme. Gestionarea ineficientă a memoriei prezintă o problemă majoră când vine vorba de performanța optimă a sistemelor informatice.