Storage model

The Language Environment storage model is based on a model of multiple heaps that can be dynamically created and discarded. Each heap has a unique heap-ID. The Language Environment storage model includes a single heap sub-model for languages whose intrinsic storage model does not comprehend multiple heaps. A single heap model does not have all the function of the multiple heap model. Missing from the model are group de-allocation capabilities. The initial heap cannot be discarded. Table 1 lists all Language Environment heaps and their purpose.

Table 1. Heap IDs recognized by Language Environment heap manager
Heap Name Heap-ID Intended Purpose Created by Disposed of by
Initial Heap 0 Application program data. Language Environment initialization; size and location are determined from HEAP runtime option. Language Environment termination
Extended Initial Heap (returned by CEECRHP) Application program data. Call CEECRHP. Size and location determined from HEAP runtime option. Call CEEDSHP, or Language Environment termination
Language Environment/ language anywhere heap CEEEDBANHP Runtime library data that can reside above 16 MB (Language Environment and member language control blocks). Language Environment initialization. Storage can reside either above or below 16 MB; size determined from ANYHEAP runtime option. Language Environment termination
Language Environment/ language below heap CEEEDBBEHP Runtime library data required to reside below 16 MB (Language Environment and member language DCBs). Language Environment initialization. Storage always resides below 16 MB; size determined from the BELOWHEAP runtime option. Language Environment termination
Additional Heaps (returned by CEECRHP) Collections of application program data that can be quickly disposed with a single CEEDSHP call. Call CEECRHP. Arguments define heap size and location. Call CEEDSHP, or Language Environment termination