The Address Space Picture

This is a picture of what the address space looks like for several processes.

FFFFFFFF   -----------------------------------------------------
          |                     KERNEL                          |
          |            OS2 SYSTEM CONTROL BLOCKS                |
          |                                                     |
          |                   SYSTEM REGION                     |
          |                                                     |
          |                                                     |
20000000  |                                                     |
           -----------------------------------------------------
1FFFFFFF  |                                                     |
          |                                                     |
          |                                                     |
          |                  SHARED REGION                      |
          |                                                     |
13000000  |                                                     |
           - - - - - - - - - - - - - - - - - - - - - - - - - - -
          |                                                     |
          |                  EXPANSION REGION                   |
          |               ( SHARED and PRIVATE )                |
04000000  |                                                     |
           - - - - - - - - - - - - - - - - - - - - - - - - - - -
03FFFFFF  |         |         |         |          |            |
          |  PID 1  |         |         |  PID 18  |            |
PRIVATE   |         |  PID 2  |         |          |            |
 REGION   |         |         |         |          |  PID 12    |
          |         |         |  PID 3  |          |            |
          |         |         |         |          |            |
00010000   -----------------------------------------------------
          |   I N V A L I D     A D D R E S S     R A N G E     |
00000000   -----------------------------------------------------



Note: Within the private region you must know the Process ID, as well as the linear address to define a piece of virtual storage. All regions except the private region are shared among all processes. Above the private region in the shared regions, there is only one version of a given address, so you DO NOT need the Process ID.

Note: The boundary at 03FFFFFF is an initial value. If some application allocates over 03FFFFFF of private space, this boundary will move upward. It moves in steps of 00400000, because another page table is allocated.

Note: DLL's are initially loaded beginning at the 1BFFFFFF boundary, and to successively lower addresses. This 'water mark' moves downward in steps of 00400000, too.

Note: Addresses not assigned to a memory object are invalid. Any attempt to use them will generate an exception.

Note: The address space picture discussed here is a simplified overview. A more detailed description may be found in the Advanced Guide to Hang Analysis chapter, under Memory Management and Ownership Topics.


[Back: Simultaneous Exceptions]
[Next: OS/2 Implementation Details]