Адреса, видимые процессором, всегда виртуальные адреса.Следовательно, конец памяти - это конец виртуальной памяти.Вы можете иметь очень большие адреса, например 2 ^ 32-x, но они являются виртуальными адресами.
ОС выделяет физические страницы, необходимые для процесса.Таким образом, он будет выделять страницы для текстовой части, секции данных и кучи процесса на нижнем конце виртуальных адресов и для стека на верхнем конце.ОС создает эквивалентности между виртуальными и физическими адресами в таблице страниц.Таким образом, верхние виртуальные адреса, которые содержат стек, будут сопоставляться с физическими адресами в любой позиции.
Между разделами данных и кучи и стеком существует большой объем неиспользуемой свободной виртуальной памяти, которая невыделено ОС.Таким образом, нет риска выделить 4 ГБ для процесса.