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