Adaptive Address Space Whitepaper
0xFFFF FFFF (quadrants 2 and 3) is consumed by most 32-bit processes in the
system. For example, if processes A and B want to share 1MB of data, they will
use this space to share it (the kernel will pick a virtual address in this range). This
1MB data may not be visible to process C, but the data will consume 1MB of
virtual address space that process C could have used. Processes A and B will
access the data using the same virtual address – hence they will read / write
the same data. This is how HP-UX allows multiple processes to share data – by
giving them the same virtual address (i.e. aliasing of different virtual addresses
to the same physical page is not needed).
Also note that this layout reserves 1GB for text. This 1GB may not be used by the
process for any other purpose. All processes using the same binary with the
default layout will share the text using the same virtual address.
This method of sharing costs virtual address space, but is very efficient because
of the lack of aliasing. The advantages of not having aliasing are:
1. Fewer faults are needed by the processes to access the data.
2. The sharing processes incur fewer TLB misses when accessing the data.
3. Less space is needed by the kernel for its data structures.
Some applications may not like this particular distribution of the quadrants. For
instance, an application may need more than 1GB of process private address
space (for example, because it has a large heap). Or, it may want more than
2GB of shared address space. And so on.
HP-UX provides other address space layouts. The 32-bit layouts of HP-UX are
summarized in the table below:
table 1a. 32-bit Address Space layouts.
Text
Process
private
address
space
Shared
address
space
Limitations on
usage
Default (Share-
Magic)
Quadrant 0 Quadrant 1
Quadrants
2,3
None.
Exec-Magic Quadrants 0,1
Quadrants
2,3
None.
Shmem-Magic Quadrant 0
Quadrants
1,2,3
None.
Q3 Private
Share-Magic
Quadrant 0 Quadrants 1,2 Quadrant 3
PA-RISC
platforms only
Q4 Private
Share-Magic
Quadrant 0
Quadrants
1,2,3
None.
PA-RISC
platforms only
Q3 Private
Exec-Magic
Quadrants 0,1,2 Quadrant 3
PA-RISC
platforms only
Q4 Private
Exec-Magic
Quadrants 0,1,2,3 None.
PA-RISC
platforms only
MPAS Quadrants 0,1,2,3
Available only
with AAS
64-bit processes are treated differently on IPF and PA-RISC. On IPF, the address
space for a 64-bit process is divided into 8 octants. The layout for the default 64-
4