2011-05-06 14 views
11

¿Es un programa de 32 bits que se ejecuta en un sistema operativo de 64 bits capaz de usar más de 4 GB de memoria si está disponible?¿Puede un programa de 32 bits usar más de 4 GB de memoria en un sistema operativo de 64 bits?

+0

También depende de la máquina/procesador y el sistema operativo. –

+0

posible duplicado de [La aplicación no puede acceder a más de 4 GB en el procesador de 64 bits] (http://superuser.com/questions/69480/application-cannot-access-more-than-4-gb-on-64-bit- procesador) –

+0

Este enlace puede ser útil: http://stackoverflow.com/questions/5916959/can-a-32-bit-program-use-more-than-4gb-of-memory-on-a-64- bit-os – Hasan

Respuesta

0

Solo asociando explícitamente rangos de memoria de 4GB en su espacio de direcciones.

2

La respuesta breve es: sí. Una respuesta más larga depende. Existe un soporte de hardware para la reasignación de páginas, que básicamente le da a su programa una ventana de unas pocas páginas en un área de memoria más grande. Sin embargo, esta ventana debe ser administrada por el programa en sí y no recibirá soporte del administrador de memoria. Hay ejemplos de programas que hacen eso, como SQL en Windows. Sin embargo, en general es una mala idea y el programa debería limitarse a 4GB o moverse a 64bits :)

1

Normalmente se limita a un espacio de direcciones de 2GB, en el que se distribuyen todas sus asignaciones y sus gastos generales , etc., debe coincidir con los archivos mapeados en memoria (que incluyen su programa y las DLL que utiliza). Esto efectivamente te limita a 1.5GB.

Con configuración especial, p. Ej. /3GB, se puede hacer más de 2 GB disponibles para las aplicaciones, pero al hacerlo se roban el núcleo del espacio, con un costo de presentar el almacenamiento en caché, manejar la capacidad, etc ..

En Win32, puede utilizar más con PAE support, pero es no transparente, usted tiene que administrarlo usted mismo.

Cuestiones relacionadas