Articulo de referencia

Memoria ampliada

La memoria extendida se ubica 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 ...

La memoria extendida se ubica 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 que supera el primer megabyte ( 2²⁰ bytes) del 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 de DOS, que se ejecutan en modo real o virtual x86 , no pueden acceder directamente a esta memoria, pero sí pueden hacerlo a través de una interfaz de programación de aplicaciones (API) denominada Especificación de Memoria Extendida (XMS). Esta API es implementada por un controlador (como HIMEM.SYS ) o el núcleo del sistema operativo, que se encarga de la gestión de memoria y de la copia de memoria entre la memoria convencional y la extendida, cambiando temporalmente el procesador a modo protegido . En este contexto, el término "memoria extendida" puede referirse tanto a la totalidad de la memoria extendida como solo a la porción disponible a través de esta API.

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

La memoria extendida no debe confundirse con la memoria expandida (EMS), un método anterior para ampliar la capacidad de memoria del IBM PC más allá de 640 kB (655.360 bytes) mediante una tarjeta de expansión con módulos de memoria conmutados por bancos . Debido a la compatibilidad con la memoria expandida en aplicaciones populares, se desarrollaron controladores de dispositivo que emulaban la memoria expandida mediante la memoria extendida. Posteriormente, se desarrollaron dos métodos adicionales que permitían el acceso directo a pequeñas porciones de memoria adicional por encima de 640 KB desde el modo real. Uno de ellos se denomina área de memoria alta (HMA), que consta de los primeros casi 64 KB de memoria extendida, y el otro se denomina á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 el IBM PC asigna a los adaptadores de hardware y la ROM.

Descripción general

En los PC basados ​​en x86 , la memoria extendida solo está disponible con un procesador Intel 80286 o superior, como el IBM PC AT . [ 1 ] 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 hardware especial para que partes seleccionables de la misma aparezcan en direcciones inferiores a 1 MB .

En un PC 286 o superior equipado 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 del 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 denominada á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, gestiona el acceso de los programas de aplicación a la memoria. El procesador pone esta memoria a disposición 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 una LDT diferente, y los segmentos de memoria asignados a 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 otros. [ 2 ]

La memoria extendida no se utilizó inicialmente porque ningún software se ejecutaba en el modo protegido del 80286. Por el contrario, la industria adoptó rápidamente el estándar de memoria expandida de 1985 , que funciona con todos los PC independientemente del procesador. [ 1 ] Un sistema operativo en modo protegido, como Microsoft Windows, también puede ejecutar programas en modo real y proporcionarles memoria expandida. 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 extendida en un entorno multitarea . [ 2 ]

Especificación de memoria extendida (XMS)

La especificación de memoria extendida ( XMS ) describe el uso de la memoria extendida de IBM PC en modo real para almacenar datos (pero no para ejecutar código ejecutable). La memoria se pone a disposición mediante software de gestión de memoria extendida ( XMM ), como HIMEM.SYS . Se puede acceder a las funciones XMM mediante llamadas directas a una dirección variable que se puede obtener a través de la interrupción de software 2Fh, función 4310h.

La versión 2.0 de XMS, lanzada en julio de 1988, permitía hasta 64 MB de memoria. [ 3 ] Con la versión 3.0 de XMS, esto aumentó a 4 GB (2 32 bytes). [ 4 ] 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 utiliza 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 utilizan 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. [ 3 ] [ 4 ] (4 GB es el rango de direcciones del 80386 y el 80486, las únicas CPU Intel x86 de 32 bits 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). [ 4 ] 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 se encarga de gestionar las asignaciones en el área de memoria alta (HMA) y el área de memoria superior (UMA; también conocida como bloques de memoria superior o UMB). En la práctica, el administrador de memoria expandida (EMM) proporciona el área de memoria superior , tras lo cual DOS intenta asignarlas todas y gestionarlas por sí mismo.

Véase también

Referencias

Presupuesto
  1. 1 2 Mendelson, Edward (1989-12-12). "Una ranura llena de RAM" . PC Magazine . Vol.  8, n.º  21. Ziff Davis Publishing Co. págs.  169–. Archivado del original el 8 de febrero de 2020. Recuperado el 8 de febrero de 2020 .
  2. 1 2 Este artículo se basa en material tomado de extended+memory en el Free On-line Dictionary of Computing antes del 1 de noviembre de 2008 e incorporado bajo los términos de "relicencia" de la GFDL , versión 1.3 o posterior.
  3. 1 2 Microsoft , Lotus , Intel y AST Research (1988-07-19). Especificación de memoria extendida (XMS), versión 2.0
  4. 1 2 3 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 diversas 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)