What is the size of pointers in C on PAE system?

I know that usually on a 32-bit machine the size of pointers used in regular C programs is 32-bit. How about an x86 system with PAE?

+3


source to share


4 answers


That's 32 more bits.



PAE increases the size of physical memory addresses, which allows the operating system to use more than 4 GB of RAM to run applications. The operating system maps large physical addresses to 32-bit virtual addresses to run the application. This means that the address space in each application is still limited to 4 GB.

+4


source


PAE changes the structure of the page tables to allow them to access more than 32 bits of physical memory. Virtual memory addresses remain unchanged - pointers in user-space applications are still 32 bits.



Note that this means 32-bit applications can be used unchanged on PAE systems, but can still only use 4GB of memory.

+1


source


Only 32 bit

. 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.

see this http://en.wikipedia.org/wiki/Physical_Address_Extension

+1


source


You can access memory through a window (address range). Every time you need to use something outside this range, you must use a system call to display a different range. Consider using multiple heaps, with an offset within the window (pointer) - then the full pointer will be the heap id and offset (structure) of the window, 64 bits in total, every time you have to go outside of the current heap you have to switch them though.

0


source







All Articles