¿Qué sucede cuando un programa de 32 bits (que se ejecuta en una máquina de 64 bits) alcanza el límite de memoria?
Lo mismo que sucede en un sistema de 32 bits: el programa falla de alguna manera.
En lo que respecta al programa de 32 bits, el "universo" consta de hasta 4 GB de datos. No sabe sobre el área más grande fuera de su propia pequeña caja (piense en la analogía de los peces que Michio Kaku usa en su libro Hyperspace ).
Si abre demasiadas pestañas y aumenta el uso de memoria, llenará el universo y, cuando se agote, se quejará de que no tiene suficiente memoria para abrir una nueva pestaña o mostrar una imagen o lo que sea. Bueno, se quejará si está bien escrito; si está mal escrito, simplemente se bloqueará.
Piénselo desde un punto de vista de programación de bajo nivel. El programa de 32 bits utiliza punteros de 32 bits para almacenar sus datos. Eso significa que puede apuntar a un máximo de 4 GB de datos. Si ya ha usado 4 GB, incluso si el sistema operativo puede darle más, ¿cuál sería el valor del nuevo puntero? La nueva dirección estaría demasiado lejos y el programa no podría colocar una dirección tan grande en un puntero de 32 bits.
Como analogía, piense en los números de teléfono. Digamos que en su ciudad, no hay demasiada gente, por lo que sus números de teléfono tienen 5 dígitos y permiten hasta 10,000 números, por lo que todas las libretas de direcciones tienen hasta 10,000 espacios para números de teléfono. Sin embargo, el país tiene mucha gente, por lo que utiliza números de 7 dígitos. A pesar de que el país puede darle el número de una persona muy lejos, no podrá almacenarlo en su libreta de direcciones porque solo tiene 5 dígitos de espacio para imprimir números, así que una vez que haya impreso 10,000 números, El libro está completamente lleno.