Cómo evitar "Es demasiado grande para la memoria de programa"

Seleccione idioma Seleccione idioma
Id. de artículo: 67194 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Cuando intenta ejecutar un programa muy grande en MS-DOS, puede producirse el error "Programa demasiado grande para memoria". Se ejecuta MS-DOS en modo real, no permite más de 640 KB de memoria para las aplicaciones. Este artículo describe métodos posibles para evitar esta limitación. Estos métodos incluyen el uso el sistema operativo de OS/2 en lugar de DOS, archivos de disco de acceso directo para almacenamiento de datos, matrices ASIGNABLE y superpuestas.

Más información

Utilizando expandida y extendida memoria con Microsoft FORTRAN

Algunas aplicaciones de MS-DOS pueden utilizar un programa de controlador de memoria expandida (EMM) de administrador y board(s) de memoria expandida para tener acceso a memoria más allá del límite de 1 MB de memoria convencional. Sin embargo, Microsoft FORTRAN, no tiene la capacidad de utilizar memoria expandida. Se puede utilizar memoria extendida (encima de 1 MB), pero sólo cuando se utiliza con el sistema operativo de OS/2 y protegido bibliotecas de modo. Memoria extendida es el término utilizado para hacer referencia a la memoria en direcciones físicas por encima de 1 MB que puede obtener acceso una CPU 80286 o 80386 en modo protegido.

Utilizar un archivo de disco de acceso directo para almacenar grandes cantidades de datos

Una unidad de disco puede utilizarse para almacenar grandes cantidades de datos en un archivo de disco de acceso directo, por lo tanto liberar la memoria que debería utilizarse en caso contrario, los datos. Mediante un archivo de acceso directo, los registros se pueden leer o escritos en cualquier orden, simular el uso de una matriz. Si expande o extendido memoria está disponible, se puede utilizar para una unidad de RAM. Mediante una unidad de RAM, acceso de E/s a los datos es mucho más rápido que cuando una unidad de disco fija.

Utilizar matrices asignable en FORTRAN versión 5.00

Una matriz ASIGNABLE es una matriz que ajusta el dinámicamente tamaño en tiempo de ejecución mediante la instrucción ALLOCATE y el atributo ASIGNABLE (consulte las páginas 21 al 25 del manual "Microsoft FORTRAN Reference"). La instrucción ALLOCATE (vea páginas 113-114 del manual "Microsoft FORTRAN Reference") establece la parte superior y límites inferiores de cada matriz de dimensión y reserva memoria suficiente. La matriz, a continuación, se DESASIGNADO en tiempo de ejecución utilizando la instrucción DEALLOCATE (consulte la página 143 del manual "Microsoft FORTRAN Reference") para liberar memoria para utilizar otras matrices.

Por ejemplo:
  INTEGER data [ALLOCATABLE] (:,:)
  INTEGER error
  DATA i, j / 10,50 / 
  ALLOCATE (data (i,j), STAT=error)

  DEALLOCATE (data, STAT=error)
				

Utilizar superpuestas en las versiones de FORTRAN 4.00, 4.01, 4.10 y 5.00

Superposiciones (consulte páginas 366 367 del manual "Microsoft FORTRAN Reference" para las versiones 5.00 y páginas 258-260 de "Microsoft FORTRAN CodeView y utilidades de la Guía del usuario") permiten varios módulos de programa utilizar la misma área de memoria. Cuando es necesario, se carga un módulo o un grupo de módulos en la memoria desde el disco. Hora de acceso de módulo pueden acortarse si una unidad RAM se utiliza para almacenar el archivo ejecutable. Se incluyen módulos que están a se superpone entre paréntesis. CÓDIGO (pero nunca datos) se superpone. Nota: Si el programa está formada principalmente datos, a continuación, este procedimiento será de poca ayuda.

El ejemplo siguiente es para las versiones 4.00, 4.01, 4.10 y 5.00:
En la línea de comandos LINK: LINK A (E F) (B C)
Módulos de objeto B y C se intercambian dentro y fuera de la misma memoria para los módulos de objeto E y f. Nota: los módulos de objeto entre paréntesis se superponen juntos para que se cargan en memoria al mismo tiempo.

El ejemplo siguiente es para las versiones 4.10 y 5.00:
En línea de comandos FL: FL MAIN.FOR (OVER1.FOR) (OVER2.FOR)
Módulos de código FORTRAN OVER1 y OVER2 se intercambian dentro y fuera de la misma ubicación de memoria.

Propiedades

Id. de artículo: 67194 - Última revisión: lunes, 01 de diciembre de 2003 - Versión: 2.0
La información de este artículo se refiere a:
  • Microsoft FORTRAN Compiler 4.1
  • Microsoft FORTRAN Compiler 5.0
  • Microsoft FORTRAN Compiler 5.1
  • Microsoft FORTRAN Compiler 4.1
  • Microsoft FORTRAN Compiler 5.0
  • Microsoft FORTRAN Compiler 5.1
Palabras clave: 
kbmt KB67194 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 67194
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com