La memoria extendida o especificación de memoria extendida (Extended Memory Specification, XMS) es la especificación que describe el uso de la memoria extendida para almacenar datos (pero no código ejecutable) en el modo real de las computadoras IBM PC y compatibles. La memoria se hace disponible mediante software manejador de memoria extendida (extended memory manager, XMM). Las funciones del XMM son accesibles por medio de la interrupción 2Fh.
El XMS no debe ser confundido con la especificación de memoria expandida (Expanded Memory Specification, EMS).[1]
En una computadora IBM PC o compatible con un microprocesador 80286 o posterior, la memoria extendida se refiere a la memoria por arriba del primer megabyte de espacio de dirección.
La memoria extendida está solamente disponible en PC basadas en el Intel 80286 o un procesador más moderno. Solamente estos chips pueden acceder a más de 1 MiB de RAM. En un microprocesador 286 o posterior, en PC equipados con más que 640 KiB de RAM, la memoria adicional por encima de esos 640 KiB es generalmente remapeada por arriba de 1 MiB, haciendo que toda ella esté disponible para programas que se ejecutan en modo protegido. Incluso sin este remapeo, las máquinas con más de 1 MiB de RAM pueden tener acceso a la memoria por encima de 1 MiB.
En modo real, la memoria extendida está disponible solamente por medio de EMS, UMA, XMS, o HMA. Solamente las aplicaciones ejecutándose en modo protegido pueden usar directamente la memoria extendida. En este caso, la memoria extendida es proporcionada por un sistema operativo en modo protegido que la supervisa, como Microsoft Windows o Linux. El procesador hace disponible esta memoria a través de la "Tabla Descriptor Global" (Global Descriptor Table, GDT) y de una o más "Tablas de Descriptor Local" (Local Descriptor Table, LDT). La memoria es "protegida" en el sentido que los segmentos de memoria asignados a un descriptor local no pueden ser accedidos por otro programa porque este utiliza un LDT diferente, y los segmentos de memoria asignados a un descriptor global pueden tener sus derechos de acceso restringidos, causando una "trampa de hardware" (hardware trap), típicamente una violación general protection fault o GPF (falla de protección general). Esto evita que los programas que se ejecutan en modo protegido interfieran con la memoria de otros.
Un sistema operativo de modo protegido como Windows puede también ejecutar programas en modo real y proporcionarles memoria expandida. La DOS Protected Mode Interface (DPMI) es el método prescrito de Microsoft para que un programa de MS-DOS tenga acceso a memoria extendida bajo un ambiente Multitarea.