Что происходит, когда 32-разрядная программа (запущенная на 64-разрядной машине) достигает предела памяти?
То же самое происходит в 32-битной системе: программа каким-то образом дает сбой.
Что касается 32-битной программе, то, "Вселенная" состоит до 4 Гбайт данных. Он не знает о большей площади за пределами своей маленькой коробки (вспомните аналогию с рыбой, которую Мичио Каку использует в своей книге « Гиперпространство»).
Если вы откроете слишком много вкладок и увеличите объем используемой памяти, он заполнит юниверс и, когда он закончится, пожалуется, что у него недостаточно памяти, чтобы открыть новую вкладку или отобразить изображение или что-то еще. Ну, он будет жаловаться, если он хорошо написан; если он плохо написан, то просто рухнет.
Подумайте об этом с точки зрения программирования низкого уровня. 32-битная программа использует 32-битные указатели для хранения данных. Это означает, что он может указывать не более 4 ГБ данных. Если он уже израсходовал 4 ГБ, то даже если ОС может дать ему больше, какое значение будет иметь новый указатель? Новый адрес будет слишком далеко, и программа не сможет поместить такой большой адрес в 32-битный указатель.
Как аналогия, подумайте о телефонных номерах. Допустим, в вашем городе не так уж много людей, поэтому все ваши телефонные номера состоят из 5 цифр, что позволяет хранить до 10 000 номеров, поэтому во всех ваших адресных книгах до 10 000 мест для телефонных номеров. Однако в стране много людей, поэтому она использует 7-значные числа. Несмотря на то, что страна может дать вам номер человека, находящегося далеко, вы не сможете сохранить его в своей адресной книге, потому что у вас есть только 5 цифр для печати чисел, поэтому после того, как вы напечатали 10000 номеров, книга полностью заполнена.