Я знаю, что обычно в 32-разрядной машине размер указателей, используемых в обычных программах на C, составляет 32 бит. Как насчет системы x86 с PAE?Каков размер указателей в системе C на PAE?
ответ
PAE изменяет структуру таблиц страниц, чтобы позволить им обращаться к физической памяти более чем на 32 бита. Адреса виртуальной памяти остаются неизменными - указатели в приложениях пользовательского пространства по-прежнему составляют 32 бита.
Обратите внимание, что это означает, что 32-разрядные приложения могут использоваться без изменений в PAE-системах, но все еще могут использовать только 4 ГБ памяти.
Это все еще 32 бит.
PAE увеличивает размер адресов физической памяти, что позволяет операционной системе использовать более 4 ГБ оперативной памяти для запуска приложений. Для запуска приложения операционная система сопоставляет большие физические адреса с 32-разрядными виртуальными адресами. Это означает, что адресное пространство в каждом приложении по-прежнему ограничено 4 ГБ.
Это 32 bit
only.Because,
PAE is a feature to allow 32-bit central processing units (CPUs) to access a physical address space (including random access memory and memory mapped devices) larger than 4 gigabytes.
посмотреть http://en.wikipedia.org/wiki/Physical_Address_Extension
Вы можете получить доступ к памяти через окно (диапазон адресов). Каждый раз, когда вам нужно использовать что-либо за пределами этого диапазона, вы должны использовать системный вызов для отображения другого диапазона. Рассмотрите возможность использования нескольких куч, со смещением внутри окна (указатель) - тогда полный указатель будет идентификатором кучи и смещением (структурой) окна, всего 64 бита, каждый раз, когда вам придется выходить за пределы текущей кучи, вы должны переключите их, хотя.
Вы говорите о коде приложения или коде ядра? –
@DavidHeffernan код приложения –
С точки зрения перспективы приложения все еще 32 бит. Все особенности PAE находятся на стороне ядра. –