Memoria ampliada

La memoria extendida se encuentra por encima de 1 MB, incluye el área de memoria alta y termina en 16 MB en el Intel 286 y en 4 GB en el Intel 386DX y posteriores.

En la gestión de memoria de DOS , la memoria extendida se refiere a la memoria por encima del primer megabyte (220 bytes ) de espacio de direcciones en un IBM PC o compatible con un procesador 80286 o posterior . El término se utiliza principalmente en los sistemas operativos DOS y Windows . Los programas 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 (API) llamada Especificación de memoria extendida (XMS). Esta API se implementa mediante un controlador (como HIMEM.SYS ) o el núcleo del sistema operativo, que se encarga de la gestión de la memoria y de copiar la memoria entre la memoria convencional y la extendida, cambiando 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 directamente a la memoria extendida mediante programas DOS que se ejecutan en modo protegido utilizando VCPI o DPMI , dos métodos (diferentes e incompatibles) de utilizar 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 IBM PC más allá de los 640 kB (655.360 bytes) utilizando una tarjeta de expansión con módulos de memoria conmutada por banco . Debido al soporte disponible para la memoria expandida en aplicaciones populares, se desarrollaron controladores de dispositivos que emulaban la memoria expandida utilizando memoria extendida. Más tarde se desarrollaron dos métodos adicionales que permitían el acceso directo a pequeñas porciones de memoria adicional por encima de los 640 KB desde el modo real. Uno de ellos se conoce como área de memoria alta (HMA), que consta de los primeros casi 64 KB de memoria extendida, y el otro se conoce como área de memoria superior (UMA; también conocida como bloques de memoria superior o UMB), ubicada en el rango de direcciones entre 640 KB y 1 MB que IBM PC designa para adaptadores de hardware y ROM.

Descripción general

En los PC basados ​​en x86 , la memoria extendida solo está disponible con un procesador Intel 80286 o superior. Solo estos chips pueden direccionar directamente más de 1 megabyte de RAM . Los procesadores 8086/8088 anteriores pueden utilizar más de 1 MB de RAM si se emplea un hardware especial para que las partes seleccionables de la misma aparezcan en direcciones inferiores a 1 MB .

En una PC 286 o superior 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 IBM PC 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 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 supervisor 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 a los que se les asigna un descriptor local no pueden ser accedidos por otro programa porque ese programa usa una LDT diferente, y los segmentos de memoria a los que se les asigna un descriptor global pueden tener sus derechos de acceso restringidos, lo que provoca una excepción del procesador (por ejemplo, un fallo 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.

Un sistema operativo en modo protegido, como Microsoft Windows, también puede ejecutar programas en modo real y proporcionarles memoria ampliada . La interfaz de modo protegido de DOS (DPMI) es el método prescrito por Microsoft para que un programa de DOS acceda a la memoria ampliada en un entorno multitarea .

Especificación de memoria extendida(XMS)

La especificación de memoria extendida ( XMS ) es la especificación que describe el uso de la memoria extendida de IBM PC en modo real para almacenar datos (pero no para ejecutar código ejecutable en ella). La memoria está disponible mediante el software de gestión de memoria extendida ( XMM ) como HIMEM.SYS . Las funciones XMM son accesibles mediante llamadas directas a una dirección variable que se puede encontrar a través de la función 4310h de la interrupción de software 2Fh.

La versión 2.0 de XMS, lanzada en julio de 1988, permitía hasta 64 MB de memoria. [1] Con la versión 3.0 de XMS esto aumentó a 4 GB (232 bytes ). [2] La diferencia es un resultado directo de los tamaños de los valores utilizados para informar las cantidades de memoria extendida total y no asignada (libre) en unidades de 1 KB (1024 bytes): XMS 2.0 usa enteros sin signo de 16 bits, capaces de representar un máximo de (65535 * 1 KB) = 64 MB, mientras que XMS 3.0 agrega nuevas funciones alternativas que usan enteros sin signo de 32 bits, capaces de representar (4 G * 1 KB) = 4 TB (4 terabytes) pero limitados por la especificación a 4 GB. [1] [2] (4 GB es el rango de direcciones de los 80386 y 80486, las únicas CPU x86 de 32 bits de Intel que existían cuando se publicó XMS 3.0 en 1991.) XMS 3.0 conserva las funciones API originales de XMS 2.0 con su límite original de 64 MB, pero agrega nuevas funciones de "memoria súper extendida" que admiten 4 GB de memoria extendida (menos el primer 1 MB) y solo se pueden llamar con una CPU de 32 bits (ya que estas funciones "súper" usan registros de CPU de 32 bits para pasar valores). [2] Para diferenciar entre la cantidad posiblemente diferente de memoria que podría estar disponible para las aplicaciones, dependiendo de la versión de la especificación para la que se desarrollaron, esta última puede denominarse memoria súper extendida ( SXMS ).

El administrador de memoria extendida también es responsable de administrar las asignaciones en el área de memoria alta (HMA) y el área de memoria superior (UMA; también conocidas como bloques de memoria superior o UMB). En la práctica, el área de memoria superior será provista por el administrador de memoria expandida (EMM), después de lo cual DOS intentará asignarlas todas y administrarlas por sí mismo. [ aclaración necesaria ] [ cita necesaria ]

Véase también

Referencias

Presupuesto
  1. ^ ab Microsoft , Lotus , Intel y AST Research (19 de julio de 1988). Especificación de memoria extendida (XMS), versión 2.0
  2. ^ abc Microsoft, Lotus, Intel y AST Research (enero de 1991). Especificación de memoria extendida (XMS), versión 3.0
Base de conocimientos de Microsoft
  • Un tutorial general sobre las distintas formas de memoria
  • Descripción general de la funcionalidad de administración de memoria en MS-DOS
  • Utilidad de diagnóstico de Microsoft: definición de SXMS
  • Especificación de memoria extendida (XMS)
Obtenido de "https://es.wikipedia.org/w/index.php?title=Memoria_extendida&oldid=1247647860"