La técnica normal es mediante el uso de una función del administrador de memoria virtual presente en la mayoría de las CPU modernas.
La forma en que funciona el hardware es que mantiene una lista de fragmentos de memoria en un caché y una lista de las direcciones a las que corresponden. Cuando un programa intenta leer alguna memoria que no está presente en esa caché, la MMU no solo va a buscar la memoria desde la ram principal, ya que las direcciones en la memoria caché son solo direcciones "lógicas". En cambio, invoca otro programa que interpretará la dirección y buscará esa memoria desde donde debería estar.
Ese programa, llamado localizador, es suministrado por el kernel, y los indicadores especiales en la MMU impiden que ese programa sea anulado.
Si ese programa determina que la dirección corresponde a la memoria que debe usar el proceso, le proporciona a la MMU la dirección física en la memoria principal que corresponde a la dirección lógica solicitada por el programa del usuario, la MMU la trae a su caché y reanuda la ejecución del programa de usuario.
Si esa dirección es una dirección "especial", como para un archivo mapeado en memoria, entonces el kernel busca la parte correspondiente del archivo en la caché y permite que el programa se ejecute junto con eso.
Si la dirección está en el rango que pertenece al núcleo, o si el programa aún no se ha asignado esa dirección, el localizador genera un SEGFAULT, lo que causa la muerte del programa.
Dado que las direcciones son direcciones lógicas, no físicas, diferentes programas de usuario pueden usar las mismas direcciones lógicas para significar direcciones físicas diferentes, el programa de buscapersonas kernel y la MMU lo hacen todo transparente y automático.
Este nivel de protección no está disponible en CPUs antiguas (como 80286 cpus) y algunos dispositivos de muy baja potencia (como ARM CortexM3 o Attiny CPU) porque no hay MMU, todas las direcciones en estos sistemas son direcciones físicas, con correspondencia 1 a 1 entre el espacio de memoria rAM y dirección
Quiere decir MMU en lugar de VMU, y las CPU ARM sin MMU generalmente tienen una MPU que le permite establecer algunas regiones de memoria (8 en ARM946E-S) con derechos de acceso para usuario/kernel. – ninjalj