Учебник для начинающих по физической и виртуальной памяти
Вам потребуется 64-битный процессор и сборка O / S и почти наверняка достаточно памяти, чтобы избежать перегрузки вашего рабочего набора. Немного фона:
32-битный компьютер (по большому счету) имеет регистры, которые могут хранить одно из 2 ^ 32 (4 294 967 296) уникальных значений. Это означает, что 32-битный указатель может адресовать любую из 2 ^ 32 уникальных областей памяти, отсюда и магический предел в 4 ГБ.
Некоторые 32-битные системы, такие как SPARCV8 или Xeon, имеют MMU, которые позволяют использовать больше физической памяти. Это позволяет нескольким процессам занимать память общим объемом более 4 ГБ, но каждый процесс ограничен собственным 32-разрядным виртуальным адресным пространством. Для одного процесса, рассматривающего виртуальное адресное пространство, только 2 ^ 32 различных физических местоположения могут быть сопоставлены с помощью 32-битного указателя.
Я не буду вдаваться в подробности, но В этой презентации (предупреждение: powerpoint) описывается, как это работает. Некоторые операционные системы имеют средства (например, описанные Здесь - благодаря FP выше) для манипулирования MMU и обмена различными физическими местоположениями в виртуальном адресном пространстве под управлением уровня пользователя.
Операционная система и система ввода-вывода с отображенной памятью будут занимать часть виртуального адресного пространства, поэтому не все эти 4 ГБ обязательно будут доступны для процесса. Например, Windows по умолчанию занимает 2 ГБ, но может быть установлен только на 1 ГБ, если ключ / 3G вызывается при загрузке. Это означает, что один процесс на 32-битной архитектуре такого рода может создать непрерывную структуру данных размером чуть менее 4 ГБ в памяти.
Это означает, что вам придется явно использовать средства PAE в Windows или Эквивалентные средства в Linux , чтобы вручную поменять оверлеи. Это не обязательно так сложно, но это займет некоторое время, чтобы начать работать.
В качестве альтернативы вы можете получить 64-битную коробку с большим объемом памяти, и эти проблемы более или менее исчезнут. 64-битная архитектура с 64-битными указателями может создавать непрерывную структуру данных, содержащую до 2 ^ 64 (18,446,744,073,709,551,616) уникальных адресов, по крайней мере, в теории. Это позволяет создавать и управлять большими смежными структурами данных.