Diferencia entre revisiones de «Memoria expandida»

Contenido eliminado Contenido añadido
Diegusjaimes (discusión · contribs.)
m Revertidos los cambios de 201.153.74.153 a la última edición de Luckas-bot
Línea 9:
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 de memoria|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.
 
== Diferentes implementaciones ==
==
 
=== Tarjetas de expansión ===
 
[[Imagen:EmulexPersyst 4M ISA.jpeg|thumb|300px|Una tarjeta de expansión de memoria [[Bus ISA|ISA]]. La tarjeta está equipada con 4 [[megabyte|MB]] accesibles por medio de páginas de 64 [[kilobyte|KB]]]]
 
Esta inserción de una ventana de memoria en el espacio de dirección de los periféricos se podía lograr originalmente solamente a través de tarjetas de expansión específicas, enchufadas en el [[bus de expansión]] [[bus ISA|ISA]] del computador. Algunas famosas tarjetas de memoria expandida de los [[años 1980]] fueron el RAMPage de [[AST Research|AST]], el IBM PS/2 80286 Memory Expansion Option, el [[AT&T]] Expanded Memory Adapter, y el Above Board de [[Intel]]. Dado el precio del RAM de hasta varios cientos de dólares por megabyte durante ese período, y la calidad y la reputación de las marcas mencionadas arriba, una tarjeta de memoria expanida era muy costosa.
 
=== Tarjeta madre ===
 
Más adelante, algunas [[tarjeta madre|tarjetas madres]] de computadores basados en el [[Intel 80286]] implementaron un esquema de memoria expandida que no requería tarjetas añadidas. Típicamente, interruptores por software determinaban cuánta memoria se debía usar como memoria expandida y cuánta debía ser usada como memoria extendida.
 
=== Manejo de memoria nativo en el procesador ===
 
Comenzando en 1987, las características incorporadas de [[manejo de memoria]] del procesador [[Intel 80386]] modelaron libremente el espacio de dirección cuando corrían software en modo real, haciendo innecesarias las soluciones de hardware. La memoria expandida se podía simular simplemente por software.
 
=== DPMI ===
 
Una manera más eficiente de tener acceso al espacio de dirección más allá de 640 KB, en el 80286 y procesadores posteriores,, fue usando el Protected Mode Interface del DOS ([[DOS Protected Mode Interface|DPMI]]) (Interface de modo protegido del DOS). Los [[DOS extender]]s eran drivers que permitieron a las aplicaciones correr en [[modo protegido]]. En lugar de intentar tener acceso a más memoria por medio de mecanismos de conmutación de memoria, los drivers cambiaban el procesador a modo protegido cuando corrían el programa de aplicación, y regresaban a modo real cuando accedían a servicios del MS-DOS. Esto permitió que los programas accedieran directamente toda la memoria que era configurada como memoria extendida.
 
El uso de la memoria expandida por las aplicaciones disminuyó a principios de los [[años 1990]], a medida que los DOS Extenders llegaron a ser más predominantes.
 
=== Emulación por software ===
 
El primer programa de manejo de memoria expandida (por emulación) fue probablemente [[CEMM]], disponible en noviembre de [[1987]] con el DOS 3.31 de [[Compaq]]. Una solución comercial popular con buenas características fue el [[QEMM]] de [[Quarterdeck]]. Un competidor fue el [[386MAX]] de [[Qualitas]]. La funcionalidad fue incorporada más adelante en el MS-DOS 4.01 de 1989 y en el [[DR-DOS]] 5.0 de 1990, como el [[EMM386]].
 
El software de manejo de memoria expandida ofrecía funcionalidad adicional pero estrechamente relacionada. Notablemente, podía crear áreas de memoria ordinaria ([[Upper Memory Block]]s) en las partes no usadas de los384 KB altos (entre 640 KB y 1 MB) del espacio de dirección del modo real y proveyeron herramientas para cargar pequeños programas, típicamente [[Terminate and Stay Resident|TSRs]] usando los comandos ("loadhi" o "loadhigh").
 
La interacción entre la memoria extendida, la emulación de memoria expandida y los DOS Extenders terminó siendo regulada por las especificaciones [[Extended Memory Specification|XMS]], [[VCPI]] y [[DOS Protected Mode Interface|DPMI]].
 
Ciertos programas de emulación, coloquialmente conocidos como LIMulators, no dependían para nada de la tarjeta madre o las características del 80386. En su lugar, reservaron 64 KB de RAM básica para la ventana de memoria expandida, donde copiaron datos a y desde la memoria extendida o el [[disco duro]] cuando los programas de aplicación solicitaban cambios de página. Esto era fácil de implementar programáticamente pero el desempeño era bajo. Esta técnica fue ofrecida por AboveDisk de Above Software y por varios programas [[shareware]].
 
== Detalles ==