Memoria extendida


En la gestión de memoria DOS , memoria extendida se refiere a la memoria por encima de la primera megabyte (2 20 bytes) de espacio de direcciones en un PC IBM o compatible con un 80286 o posterior procesador . El término se utiliza principalmente en los sistemas operativos DOS y Windows . Los programas de DOS, que se ejecutan en modo real o en modo x86 virtual , no pueden acceder directamente a esta memoria, pero pueden hacerlo a través de una interfaz de programación de aplicaciones llamada Especificación de memoria extendida.(XMS). Esta API es implementada por un controlador (como HIMEM.SYS ) o el sistema operativo, que se encarga de la administración de la memoria y de copiar la memoria entre la memoria convencional y extendida, al cambiar temporalmente el procesador al modo protegido . En este contexto, el término "memoria extendida" puede referirse a la totalidad de la memoria extendida o solo a la parte disponible a través de esta API.

También se puede acceder a la memoria extendida directamente mediante programas de DOS que se ejecutan en modo protegido usando VCPI o DPMI , dos métodos (diferentes e incompatibles) de usar el modo protegido en DOS.

La memoria extendida no debe confundirse con la memoria expandida (EMS), un método anterior para expandir la capacidad de memoria de la PC IBM más allá de 640 kB (655,360 bytes) usando una tarjeta de expansión con módulos de memoria conmutados por banco . Debido al soporte disponible para memoria expandida en aplicaciones populares, se desarrollaron controladores de dispositivo que emulaban memoria expandida usando memoria extendida. Posteriormente, se desarrollaron dos métodos adicionales que permitían el acceso directo a una pequeña parte de la memoria extendida desde el modo real. Estas áreas de memoria se denominan área de memoria alta (HMA) y área de memoria superior (UMA; también denominada bloques de memoria superior o UMB).

En las PC basadas en x86 , la memoria extendida solo está disponible con un procesador Intel 80286 o superior. Solo estos chips pueden direccionar más de 1 megabyte de RAM . Los anteriores 8086 / 8088 procesadores pueden hacer uso de más de 1 MB de RAM si se emplea un hardware especial para hacer piezas seleccionables de aparecer en las direcciones por debajo de 1 MB.

En una PC de 286 o mejor equipada con más de 640 kB de RAM, la memoria adicional generalmente se reasignaría por encima del límite de 1 MB, ya que la arquitectura de la PC IBM reserva direcciones entre 640 kB y 1 MB para la ROM del sistema y los periféricos.

La memoria extendida no es accesible en modo real (excepto por una pequeña porción llamada área de memoria alta ). Solo las aplicaciones que se ejecutan en modo protegido pueden usar la memoria extendida directamente. Un sistema operativo de supervisión en modo protegido , como Microsoft Windows, administra el acceso de los programas de aplicación a la memoria. El procesador hace que esta memoria esté disponible a través de la tabla de descriptores globales (GDT) y una o más tablas de descriptores locales.(LDT). La memoria está "protegida" en el sentido de que los segmentos de memoria asignados a un descriptor local no pueden ser accedidos por otro programa porque ese programa usa un LDT diferente, y los segmentos de memoria asignados a un descriptor global pueden tener sus derechos de acceso restringidos, causando una excepción del procesador (p. Ej. , una falla de protección general o GPF) en caso de violación. Esto evita que los programas que se ejecutan en modo protegido interfieran con la memoria de los demás.


La memoria extendida se encuentra por encima de 1 MB.