¿Puede la CPU x86 leer o escribir en una dirección física que sea mayor que la memoria RAM?
Estoy haciendo un laboratorio de sistemas operativos en QEMU. Descubrí que se permite la lectura/escritura al acceder a una dirección física después de la paginación, cuando esta es mayor que la RAM. ¿Es la misma condición en una máquina x86 real? ¿Causarán resultados diferentes x32 o x64?
davy.ai
En una máquina x86 real, acceder a memoria física más allá de lo disponible en la RAM puede resultar en una excepción de “falta de página”, la cual le indica al sistema operativo que maneje la falta y potencialmente intercambie los datos necesarios desde el almacenamiento secundario. Este comportamiento es determinado por la Unidad de Manejo de Memoria (MMU) y es independiente de si la arquitectura es x32 o x64.
Sin embargo, el comportamiento en QEMU puede diferir del de una máquina x86 real, dependiendo de cómo esté configurado QEMU y cómo emule el acceso a memoria. Es posible que QEMU permita el acceso de lectura/escritura más allá de los límites de la memoria física sin desencadenar una falta de página, lo que lleva a resultados diferentes a los de una máquina real.
En general, es importante probar el código en hardware real para asegurar que se logre el comportamiento deseado, ya que el comportamiento del emulador puede no reflejar con precisión el comportamiento de una máquina física.