¿Cuánta memoria puede acceder a un proceso de 32 bits en un sistema operativo de 64 bits?

En Windows, en circunstancias normales, un proceso de 32 bits solo puede acceder a 2 GB de RAM (o 3 GB con un interruptor especial en el archivo boot.ini). Al ejecutar un proceso de 32 bits en un sistema operativo de 64 bits, ¿cuánta memoria hay disponible? ¿Hay algún cambio o configuración especial que pueda cambiar esto?

    2 GB por defecto. Si la aplicación tiene un gran espacio de direcciones (vinculado con / LARGEADDRESSAWARE), obtiene 4 GB (no 3 GB, consulte http://msdn.microsoft.com/en-us/library/aa366778.aspx )

    Todavía están limitados a 2 GB ya que muchas aplicaciones dependen de que el puntero superior de los punteros sea cero.

    4 GB menos lo que usa el sistema si enlaza con / LARGEADDRESSAWARE.

    Por supuesto, debe tener aún más cuidado con la aritmética del puntero si establece ese indicador.

    Nadie parece tocar el hecho de que si tiene muchas aplicaciones diferentes de 32 bits, el subsistema wow64 puede mapearlas en cualquier lugar de la memoria por encima de 4G, de modo que en una ventana de 64 bits con suficiente memoria, puede ejecutar muchas más aplicaciones de 32 bits que en un sistema nativo de 32 bits.

    Un proceso de 32 bits todavía está limitado a las mismas restricciones en un sistema operativo de 64 bits. El problema es que los punteros de memoria tienen solo 32 bits de ancho, por lo que el progtwig no puede asignar / resolver ninguna dirección de memoria de más de 32 bits.

    Un solo proceso de 32 bits en un sistema operativo de 64 bits está limitado a 2 Gb. Pero si se comstack en un archivo EXE con el conjunto de bits IMAGE_FILE_LARGE_ADDRESS_AWARE, entonces tiene un límite de 4 GB, no de 2 GB; consulte https://msdn.microsoft.com/en-us/library/aa366778(VS.85). aspx

    En cualquier caso, el espacio de direcciones virtuales del kernel se comparte en todos los procesos. Es por eso que incluso si tiene una gran cantidad de procesos de 32 bits, puede quedarse sin memoria a pesar de que tiene mucha memoria disponible para su sistema operativo de 64 bits, por ejemplo, 16 GB: la de 32 bits. los procesos en total pueden agotarse rápidamente del espacio de direcciones virtuales del kernel disponible para ellos (un máximo de 2 GB).

    Las cosas que escuchas sobre indicadores de inicio especiales, 3 GB, / 3GB interruptores o / userva son todos sobre sistemas operativos de 32 bits y no se aplican en Windows de 64 bits.

    Consulte https://msdn.microsoft.com/en-us/library/aa366778(v=vs.85).aspx para obtener más detalles.

    En cuanto a los sistemas operativos de 32 bits, contrariamente a la creencia, no existe un límite físico de 4 GB para los sistemas operativos de 32 bits. Por ejemplo, los sistemas operativos de servidor de 32 bits como Microsoft Windows Server 2008 de 32 bits pueden acceder hasta 64 GB (Windows Server 2008 Enterprise y las ediciones de Datacenter) mediante Physical Address Extension (PAE), que fue introducido por primera vez por Intel en el Pentium Pro, y luego AMD en el procesador Athlon; define una jerarquía de tabla de páginas de tres niveles, con entradas de tabla de 64 bits cada una en lugar de 32, permitiendo que estas CPU accedan directamente a un espacio de direcciones físicas de más de 4 gigabytes, teóricamente, un sistema operativo de 32 bits puede acceder a 2 ^ 64 bytes teóricamente, o 17,179,869,184 gigabytes, pero el segmento está limitado por 4GB . Sin embargo, debido a razones de marketing, Microsoft tiene una memoria accesible máxima limitada en sistemas operativos que no son de servidor a solo 4 GB o, incluso, 3 GB de manera efectiva. Por lo tanto, un solo proceso puede acceder a más de 4 GB en un sistema operativo de 32 bits, y el servidor Microsoft SQL es un ejemplo.

    Tiene la misma restricción básica cuando ejecuta un proceso de 32 bits en Win64. Su aplicación se ejecuta en un 32 pero subsistema que hace todo lo posible para parecerse a Win32, y esto incluirá las restricciones de memoria para su proceso (menos 2GB para usted, 2GB superior para el sistema operativo)

    El límite no es 2g o 3gb su 4gb para 32bit.

    La razón por la que la gente piensa que es 3gb es que el sistema operativo muestra 3 gb libres cuando realmente tienen 4 gb de memoria RAM del sistema.

    Su RAM total de 4 gb. Entonces, si tiene una tarjeta de video de 1 gb que cuenta como parte de la memoria RAM total vista por el sistema operativo de 32 bits.

    4Gig not 3 not 2 got it?