CICS® kernel storage consists of control blocks and data areas that CICS requires to manage system and user tasks throughout CICS execution. The majority of this storage is allocated from the CICS DSAs. A small amount of this storage is allocated from MVS™ storage.
The kernel recognises two types of task: static tasks, and dynamic tasks. The kernel storage for static tasks is pre-allocated and is used for tasks controlled by the MXT mechanism. The storage for dynamic tasks is not pre-allocated and is used for tasks such as system tasks which are not controlled by the MXT value. Because the storage for dynamic tasks is not pre-allocated, the kernel may need to GETMAIN the storage required to attach a dynamic task when the task is attached.
The number of static tasks is dependant upon the current MXT value (there are MXT+1 static tasks). The storage for static tasks is always GETMAINed from the CICS DSAs. If MXT is lowered the storage for an excess number of static tasks is freed again.
During early CICS initialization the kernel allocates storage for 8 dynamic tasks. This storage is GETMAINed from MVS and is always available for use by internal CICS tasks. All other storage for dynamic tasks is then allocated, as needed, from the CICS DSAs. Typically when a dynamic task ends, its associated storage is freed.
The storage required by a single task is the same for both types of task and can be divided into storage required above and below the 16MB line:
In addition to this storage, the kernel also allocates a number of 4K extension stacks both above and below the 16MB line. These are for use by any task, if it overflows the stack storage allocated to it. The number of 24-bit and 31-bit stack extensions pre-allocated by the kernel is determined by dividing the current MXT value by 10.
When the kernel GETMAINs storage from the CICS DSAs, the following subpools are used:
KESTK24E 4K extension stack segments
KESTK31 24K stack segments
KESTK31E 4K extension stack segments
KETASK 896 byte task entries