El hardware de la computadora responsable de administrar el sistema de memoria de la computadora se denomina unidad de administración de memoria (MMU). Este componente sirve como búfer entre la CPU y la memoria del sistema. Las funciones realizadas por la unidad de gestión de memoria se pueden dividir normalmente en tres áreas: gestión de la memoria del hardware, gestión de la memoria del sistema operativo y gestión de la memoria de la aplicación. Aunque la unidad de gestión de memoria puede ser un componente de chip independiente, normalmente está integrada en la unidad central de procesamiento (CPU).
Generalmente, el hardware asociado con la administración de memoria incluye memoria de acceso aleatorio (RAM) y cachés de memoria. La RAM es el compartimento de almacenamiento físico que se encuentra en el disco duro. Es el área de almacenamiento principal de la computadora donde se leen y escriben los datos. Los cachés de memoria se utilizan para almacenar copias de ciertos datos de la memoria principal. La CPU accede a esta información almacenada en la memoria caché, lo que ayuda a acelerar el tiempo de procesamiento.
Cuando la memoria física, o RAM, se queda sin espacio de memoria, la computadora utiliza automáticamente la memoria virtual del disco duro para ejecutar el programa solicitado. La unidad de gestión de memoria asigna memoria del sistema operativo a varias aplicaciones. El área de direcciones virtuales, que se encuentra dentro de la unidad central de procesamiento, se compone de un rango de direcciones que se dividen en páginas. Las páginas son bloques de almacenamiento secundarios que tienen el mismo tamaño. El proceso de paginación automatizado permite que el sistema operativo utilice el espacio de almacenamiento esparcido en el disco duro.
En lugar de que el usuario reciba un mensaje de error de que no hay suficiente memoria, la MMU le indica automáticamente al sistema que cree suficiente memoria virtual para ejecutar la aplicación. El espacio de memoria virtual contiguo se crea a partir de un grupo de bloques de memoria virtual del mismo tamaño para ejecutar la aplicación. Esta característica es una clave importante para que este proceso funcione de manera efectiva y eficiente porque no se requiere que el sistema cree una porción de memoria virtual para manejar los requisitos del programa. La creación de varios tamaños de espacio de memoria para acomodar programas de diferentes tamaños causa un problema conocido como fragmentación. Esto podría llevar a la posibilidad de no tener suficiente espacio libre para programas más grandes cuando el espacio total disponible es realmente suficiente.
La gestión de la memoria de la aplicación implica el proceso de asignar la memoria necesaria para ejecutar un programa a partir de los recursos de memoria disponibles. En sistemas operativos más grandes, se pueden ejecutar muchas copias de la misma aplicación. La unidad de gestión de memoria suele asignar a una aplicación la dirección de memoria que mejor se adapta a sus necesidades. Es más sencillo asignar a estos programas las mismas direcciones. Además, la unidad de gestión de memoria puede distribuir recursos de memoria a programas según sea necesario. Cuando se completa la operación, la memoria se recicla para su uso en otro lugar.
Uno de los principales desafíos para la unidad de administración de memoria es detectar cuándo los datos ya no son necesarios y pueden descartarse. Esto libera memoria para su uso en otros procesos. La gestión de memoria automática y manual se ha convertido en un campo de estudio independiente debido a este problema. La gestión ineficaz de la memoria presenta un problema importante cuando se trata del rendimiento óptimo de los sistemas informáticos.