The subpool table
The following table lists the storage subpools and their attributes. Be sure to read the notes at the end of the table where applicable.
Subpool decimal (hex) |
Location | Fetch protection | Type | Owner | Storage key | See notes |
---|---|---|---|---|---|---|
0-127 (0-7F) | Private low | Yes | Pageable | Task. TCB identified in note 11. |
Same as TCB key at the time of the first storage request. | 1, 2, 6, 8, 10, 14, 22 |
129 (81) | Private low | Yes | Pageable | Job step. TCB whose address is in TCBJSTCB of TCB identified in note 11. |
Selectable. | 1, 2, 14, 22 |
130 (82) | Private low | No | Pageable | Job step. TCB whose address is in TCBJSTCB of TCB identified in note 11. |
Selectable. | 1, 2, 14, 22 |
131 (83) | Private low | Yes | Pageable | Job step. TCB whose address is in TCBJSTCB of TCB identified in note 11. |
Selectable. | 1, 2, 6, 7, 14, 22 |
132 (84) | Private low | No | Pageable | Job step. TCB whose address is in TCBJSTCB of TCB identified in note 11. |
Selectable. | 1, 2, 6, 7, 14, 22 |
133 (85) | Private (See note 24 for more information) | Yes | Pageable | See note 24. | Selectable. | 1, 5, 6, 22, 23, 24 |
134 (86) | Private (See note 24 for more information) | No | Pageable | See note 24. | Selectable. | 1, 5, 6, 22, 23, 24 |
203 (CB) | Private ELSQA | No | DREF | Task. TCB shown in the table, "How the system determines the input TCB for task owned storage," in Selecting storage persistence in z/OS® MVS Programming: Authorized Assembler Services Guide. |
0 | 2, 4, 13, 15 |
204 (CC) | Private ELSQA | No | DREF | Job step. TCB whose address is in TCBJSTCB of TCB shown in the table, "How the system determines the input TCB for task owned storage," in Selecting storage persistence in z/OS MVS Programming: Authorized Assembler Services Guide. |
0 | 2, 4, 13, 15 |
205 (CD) | Private ELSQA | No | DREF | Address space | 0 | 2, 4, 13, 15 |
213 (D5) | Private ELSQA | Yes | DREF | Task. TCB shown in the table, "How the system determines the input TCB for task owned storage," in Selecting storage persistence in z/OS MVS Programming: Authorized Assembler Services Guide. |
0 | 2, 4, 13, 16 |
214 (D6) | Private ELSQA | Yes | DREF | Job step. TCB whose address is in TCBJSTCB of TCB shown in the table, "How the system determines the input TCB for task owned storage," in Selecting storage persistence in z/OS MVS Programming: Authorized Assembler Services Guide. |
0 | 2, 4, 13, 16 |
215 (D7) | Private ELSQA | Yes | DREF | Address space | 0 | 2, 4, 13, 16 |
223 (DF) | Private ELSQA | Yes | Fixed | Task. TCB shown in the table, "How the system determines the input TCB for task owned storage," in Selecting storage persistence in z/OS MVS Programming: Authorized Assembler Services Guide. |
0 | 2, 4, 17 |
224 (E0) | Private ELSQA | Yes | Fixed | Job step. TCB whose address is in TCBJSTCB of TCB shown in the table, "How the system determines the input TCB for task owned storage," in Selecting storage persistence in z/OS MVS Programming: Authorized Assembler Services Guide. |
0 | 2, 4, 17 |
225 (E1) | Private ELSQA | Yes | Fixed | Address space | 0 | 2, 4, 17 |
226 (E2) | Common SQA/ESQA | No | Fixed | System | 0 | 3, 5 |
227 (E3) | Common CSA/ECSA | Yes | Fixed | System | Selectable. | 1, 2, 25 |
228 (E4) | Common CSA/ECSA | No | Fixed | System | Selectable. | 1, 2, 25 |
229 (E5) | Private high | Yes | Pageable | Task. TCB shown in the table, "How the system determines the input TCB for task owned storage," in Selecting storage persistence in z/OS MVS Programming: Authorized Assembler Services Guide. |
Selectable. | 1, 2, 22 |
230 (E6) | Private high | No | Pageable | Task. TCB shown in the table, "How the system determines the input TCB for task owned storage," in Selecting storage persistence in z/OS MVS Programming: Authorized Assembler Services Guide. |
Selectable. | 1, 2, 22 |
231 (E7) | Common CSA/ECSA | Yes | Pageable | System | Selectable. | 1, 2, 25 |
233 (E9) | Private LSQA/ELSQA | No | Fixed | Task. TCB shown in the table, "How the system determines the input TCB for task owned storage," in Selecting storage persistence in z/OS MVS Programming: Authorized Assembler Services Guide. |
0 | 2, 19 |
234 (EA) | Private LSQA/ELSQA | No | Fixed | Job step. TCB whose address is in TCBJSTCB of TCB shown in the table, "How the system determines the input TCB for task owned storage," in Selecting storage persistence in z/OS MVS Programming: Authorized Assembler Services Guide. |
0 | 2, 20 |
235 (EB) | Private LSQA/ELSQA | No | Fixed | Address space | 0 | 2, 21 |
236 (EC) | Private high | No | Pageable | Task. TCB identified in note 12. |
1 | 2, 12, 22 |
237 (ED) | Private high | No | Pageable | Task. TCB identified in note 12. |
1 | 2, 12, 22 |
239 (EF) | Common SQA/ESQA | Yes | Fixed | System | 0 | 2 |
240 (F0) | Private low | Yes | Pageable | Task. TCB identified in note 11. |
Same as TCB key at the time of the first storage request. | 1, 2, 9, 10, 11, 14, 22 |
241 (F1) | Common CSA/ECSA | No | Pageable | System | Selectable. | 1, 2, 25 |
244 (F4) | Private Low | No | Pageable | Job step. TCB whose address is in TCBJSTCB of TCB identified in note 11. |
Selectable. | 1, 2, 14, 22 |
245 (F5) | Common SQA/ESQA | No | Fixed | System | 0 | 2 |
247 (F7) | Common ESQA | Yes | DREF | System | 0 | 2, 4, 13 |
248 (F8) | Common ESQA | No | DREF | System | 0 | 2, 4, 13 |
249 (F9) | Private high | No | Pageable | Job step. TCB whose address is in TCBJSTCB of TCB shown in the table, "How the system determines the input TCB for task owned storage," in Selecting storage persistence in z/OS MVS Programming: Authorized Assembler Services Guide. |
Selectable. | 1, 2, 22 |
250 (FA) | Private low | Yes | Pageable | Task. TCB identified in note 11. |
Same as TCB key at the time of the first storage request. | 1, 2, 9, 10, 11, 14, 22 |
251 (FB) | Private low | Yes | Pageable | Job step. TCB whose address is in TCBJSTCB of TCB shown in the table, "How the system determines the input TCB for task owned storage," in Selecting storage persistence in z/OS MVS Programming: Authorized Assembler Services Guide. |
Same as TCB key at the time of the first storage request. | 1, 2, 10, 14, 22 |
252 (FC) | Private low | No | Pageable | Job step. TCB whose address is in TCBJSTCB of TCB shown in the table, "How the system determines the input TCB for task owned storage," in Selecting storage persistence in z/OS MVS Programming: Authorized Assembler Services Guide. |
0 | 1, 2, 14, 22 |
253 (FD) | Private LSQA/ELSQA | No | Fixed | Task. TCB shown in the table, "How the system determines the input TCB for task owned storage," in Selecting storage persistence in z/OS MVS Programming: Authorized Assembler Services Guide. |
0 | 2, 18 |
254 (FE) | Private LSQA/ELSQA | No | Fixed | Job step. TCB whose address is in TCBJSTCB of TCB shown in the table, "How the system determines the input TCB for task owned storage," in Selecting storage persistence in z/OS MVS Programming: Authorized Assembler Services Guide. |
0 | 2, 18 |
255 (FF) | Private LSQA/ELSQA | No | Fixed | Address space | 0 | 2, 18 |
- Virtual storage is first backed by central storage when it is referenced or when it
is page-fixed by a program using the PGSER macro. The location of the central storage backing this
subpool depends on the value of the LOC parameter on the GETMAIN, STORAGE, or CPOOL macro invocation
used to obtain the storage. Central storage is assigned below 16 megabytes only if one of the
following is true:
- The program obtaining the storage specified LOC=BELOW when obtaining the storage.
- The program obtaining the storage resides below 16 megabytes, specified LOC=RES either explicitly or by default, and specified a subpool supported below 16 megabytes.
- Central storage backing this subpool can be above or below 16 megabytes.
- Central storage backing this subpool resides below 16 megabytes.
- This subpool is valid only when allocating virtual storage above 16 megabytes.
- Although central storage for this subpool must be below 16 megabytes, virtual storage for this subpool may be above or below 16 megabytes.
- Subpools 0-127, and 131 - 134 are the only valid subpools for unauthorized programs. A request by an unauthorized program for a subpool other than 0-127, or 131 - 134 causes abnormal termination of the program.
- A program can issue a request to obtain or release storage from subpool 131 or 132
in a storage key that does not match the PSW key under which the program is running. However, the
system will accept the storage request only if the requesting program is authorized in one of the
following ways:
- Running in supervisor state
- Running under PSW key 0-7
- APF-authorized
- Having a PSW-key mask (PKM) that allows it to switch its PSW key to match the storage key of the storage specified. On a request to release all the storage in the subpool, the program must be able to switch its PSW key to match all the storage keys in the subpool.
- Subpool 0 requests by programs in supervisor state and PSW key 0 are translated to subpool 252 requests and assigned a storage key of 0.
- Subpool 240 and 250 requests are translated to subpool 0 requests. This permits programs running in supervisor state and PSW key 0 to acquire or free subpool 0 storage. If a program is running in supervisor state and key 0, the system translates subpool 0 storage requests to subpool 252 storage requests.
- The system assigns the storage key based on the key in the requesting task's TCB at the time of the task's first storage request, not the current key in the TCB (unless this is the task's first storage request).
- The GSPV, SHSPV, and SZERO parameters on the ATTACH or ATTACHX macro invocation used to create the currently active task determine which TCB owns the storage in this subpool. These parameters specify the subpools to be owned by the subtask being attached (GSPV) and the subpools to be shared by the attaching task and the subtask being attached (SHSPV, SZERO). If the currently active task was given ownership of the subpool, then the TCB of the currently active task owns the storage in this subpool. If the currently active task is sharing this subpool with the task that created it, then the TCB of the attaching task owns the storage in this subpool. For more information, see the descriptions of the ATTACH and ATTACHX macros in z/OS MVS Programming: Authorized Assembler Services Reference ALE-DYN and the virtual storage management topic in z/OS MVS Programming: Assembler Services Guide.
- Virtual storage is located within the scheduler work area (SWA). The storage is
freed at the end of the started task or at initiator termination for subpool 236 and at the end of
the job for subpool 237. The NSHSPL and NSHSPV parameters on the ATTACH or ATTACHX macro invocation
used to create the currently active task determine ownership of the subpool. If the currently active
task was given ownership of the subpool, then the TCB of the currently active task owns the storage
in this subpool. If the currently active task is sharing this subpool with the attaching task, then
the TCB of the attaching task owns the storage in this subpool.
For more information, see the description of the ATTACH and ATTACHX macros in z/OS MVS Programming: Authorized Assembler Services Reference ALE-DYN and the virtual storage management topic in z/OS MVS Programming: Assembler Services Guide. For additional information about the SWA, see z/OS MVS Initialization and Tuning Guide.
- If a GETMAIN macro is issued in AMODE 31 for a DREF subpool, the LOC=BELOW parameter is ignored. VSM gives the user storage above 16M.
- Central storage backing this subpool can be pageable 1 MB page frames.
- These subpools can coexist on the same page of storage.
- These subpools can coexist on the same page of storage.
- These subpools can coexist on the same page of storage.
- These subpools can coexist on the same page of storage.
- Storage is getmained in subpool 253.
- Storage is getmained in subpool 254.
- Storage is getmained in subpool 255.
- The storage obtained from the subpool can be requested as non-executable. This request is for subpools 0 - 127, 129 - 134, 229 - 230, 236 - 237, 240, 244, and 249 - 252.
- For subpools 133 and 134, the subpool number is translated to a different subpool number before use based on the callers key. If the callers key is 0 - 7, subpool 133 is translated to 229 and subpool 134 is translated to 230. If the callers key is 8 - 15, subpool 133 is translated to 131 and subpool 134 is translated to 132.
- The location and key attributes for subpool 133 and 134 will match the location and key attributes of the subpool to which it was translated. For example, if translated to subpool 131 then the location and key attributes will be the same as those for subpool 131. See note 23 for more information regarding subpool translation.
- Notes
related to user-key (8 - 15) CSA/ECSA. When a restricted use common service area (RUCSA) is defined:
- Successful user-key allocations obtain storage from the appropriate RUCSA, not from CSA/ECSA.
- User-key allocations for, changes to, and references to any common service area are abended
under either of the following conditions:
- RUCSA is not defined and the VSM ALLOWUSERKEYCSA(NO) parameter is in effect in an active DIAGxx member of parmlib.
- RUCSA is defined, the VSM ALLOWUSERKEYCSA(NO) parameter is in effect in an active DIAGxx member of parmlib, and the requester lacks SAF READ authority to the IARRSM.RUCSA resource in the FACILITY class.
- Note any other programming differences described in Restricted use common service area (RUCSA/extended RUCSA) in z/OS MVS Initialization and Tuning Guide.