lunes, 8 de diciembre de 2008

3.1.-Memoria expandida y extendida.



La memoria expandida fue un método desarrollado alrededor de 1984 que proporcionaba memoria paginada extra a los programas de MS-DOS.

Éstos programas, que corrían en la IBM PC original, y sus sucesores como el IBM XT y el IBM AT, eran típicamente aplicaciones como hojas de cálculo y bases de datos que necesitaban una gran cantidad de memoria para trabajar correctamente.

El IBM PC y el IBM XT tenían una arquitectura de memoria de modo real, que solo permitía a los programas usar 1 megabyte de espacio de dirección, de los cuales solo hasta 640 KB estaba disponible como RAM normal para las aplicaciones. El resto entre 640 KB y 1 megabyte era reservado para periféricos, destacándose la memoria para las tarjetas de vídeo. El IBM AT, con su microprocesador Intel 80286 soportaba un modo protegido lo que le permitía direccionar hasta 16 MB, pero este computador también usaba el MS-DOS, un sistema operativo que no usaba la memoria extendida (por arriba del megabyte) directamente.

La idea detrás de la memoria expandida era usar, también para la memoria del programa, parte de los 384 KB restantes normalmente dedicados a los periféricos. Para poder usar potencialmente mucho más memoria que los 384 KB que el espacio de direccionamiento permitía, fue ideado un esquema conmutación de bancos, donde solamente estarían accesibles a un mismo tiempo, porciones seleccionadas de la memoria adicional. Originalmente, era posible una sola ventana de 64 KB de memoria, más adelante esto fue más flexible. Las aplicaciones tuvieron que ser escritas de una manera específica para tener acceso a la memoria expandida.

En un 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 PCs basadas en el Intel 80286 o un procesador más alto. Solamente estos chips pueden accesar más de 1 MB de RAM. En un microprocesador 286 o posterior, en PCs equipados con más que 640 KB de RAM, la memoria adicional por arriba de esos 640 KB es generalmente remapeada por arriba de 1MB, haciendo que toda ella sea disponible a programas corriendo en modo protegido. Incluso sin este remapeo, las máquinas con más de 1 MB de RAM pueden tener acceso a la memoria sobre el 1 MB.

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 Global Descriptor Table (GDT) (Tabla Descriptor Global) y de una o más Local Descriptor Tables (LDTs) (Tablas de Descriptor Local). La memoria es "protegida" en el sentido que los segmentos de memoria asignados a un descriptor local no pueden ser accesadors por otro programa porque éste utiliza un LDT dfiferente, y los segmentos de memoria asignados a un descriptor global pueden tener sus derechos de acceso restringidos, causando un hardware trap (trampa de hardware), típicamente una violación General protection fault (falla de protección general). Esto evita que los programas corriendo en modo protegido interfieran con la memoria de otros.

Un sistema operativo de modo protegido como Windows puede también correr programas en modo real y proporcionarles memoria expandida. El DOS Protected Mode Interface (Interface DOS de Modo Protegido) es el método prescrito de Microsoft para que un programa de MS-DOS tenga acceso a memoria extendida bajo un ambiente Multitarea.

No hay comentarios: