z/OSadvanced
z/OS Address Spaces and Memory Fundamentals
Understand how z/OS isolates work into address spaces and manages virtual storage, and why this matters for both stability and performance reasoning.
Every unit of work on z/OS runs in its own address space: a batch job, a TSO session, a CICS region, DB2 itself.
Address spaces are like separate hotel rooms on the same floor — each guest has their own private space that no other guest can wander into or disturb, even though they all share the same building's common hallways and utilities, and if one room's plumbing backs up it's a problem for that room, not the whole hotel.
Key Concepts
1
An address space is a private virtual storage range. Work in one cannot see or damage storage in another.
2
The layout each one sees.
+---------------------+
| common area | shared by ALL address spaces:
| | operating system code, control blocks
+---------------------+
| private area | this address space only:
| | the program and its data
+---------------------+3
The common area is genuinely shared, so one copy of the operating system serves every address space. The
private area is why a runaway program corrupts only itself.
4
That isolation is the stability story. A batch job that overruns its storage abends. The thousand other
address spaces are unaffected, because they do not share the memory it damaged.
5
"Below the line" still matters in old code. The original architecture addressed 16 MB. Later ones
extended far beyond it, but programs compiled with older options still place storage under that boundary:
6
below the line 16 MB, contended, shared with system control blocks
above the line 2 GB with 31-bit addressing
above the bar 64-bit addressing7
A program requesting a large table below the line runs out of space in a region with gigabytes free. The fix
is compiler and link options (RMODE, AMODE), and the symptom — an out-of-storage abend on a system that
is plainly not out of storage — is a recognisable one.
RMODEAMODE
8
REGION= on the JCL sets how much private storage a job may use. REGION=0M means no limit imposed by
JCL, and is common on jobs that legitimately need a lot.
REGION=REGION=0M
9
Where CICS is different. A CICS region is one address space serving many users. So a storage problem in
a CICS program affects everybody in that region, not just the task that caused it.
10
That is why CICS applications are split across several regions in large shops — the isolation you get free
between batch jobs has to be designed in deliberately for online work.
11
Why this matters in an interview. It explains why a batch abend is contained and a CICS storage
violation is an incident, why REGION= exists, and why 16 MB still appears in error messages on a system
with hundreds of gigabytes.
REGION=
12
What the interviewer is probing.1. "What is an address space?" Probing: the fundamentals. Stalls: "Memory." Moves up: an
isolated virtual storage range for one job, user or subsystem, which is the unit of protection and
dispatching.
13
2. "What is the significance of the 16MB line?" Probing: the history that still bites.
Stalls: "Nothing." Moves up: the original 24-bit addressing limit; modules and buffers below it
compete for scarce space, which is why AMODE and RMODE still matter.
14
3. "What does WLM do?" Probing: the modern piece. Stalls: "Scheduling." Moves up: workload
manager allocates resources against business goals rather than fixed priorities, so online work
meets response targets under load.
15
4. "What is common storage and why is it risky?" Probing: the depth. Stalls: "Shared
memory." Moves up: storage addressable by every address space — a leak there affects the whole
system, not one job.