ADDRSPC Parameter

Purpose

The ADDRSPC (address space) parameter specifies whether a job or job step runs in virtual storage (pageable) or real storage (non-pageable). This parameter controls how the system manages the memory allocation for the program being executed, which can impact performance and resource utilization.

Syntax

On JOB Statement

jcl
1
2
//jobname JOB parameters,ADDRSPC=VIRT //jobname JOB parameters,ADDRSPC=REAL

On EXEC Statement

jcl
1
2
3
//stepname EXEC PGM=program,ADDRSPC=VIRT //stepname EXEC PGM=program,ADDRSPC=REAL //stepname EXEC PROC=procname,ADDRSPC.procstep=VIRT

Parameter Values

ValueDescription
VIRTThe job or step executes in virtual (pageable) storage. This is the default value. Pages of virtual storage can be paged out to auxiliary storage when not actively being used.
REALThe job or step executes in real (non-pageable) storage. All pages required by the job or step will remain in central storage throughout execution (will not be paged out).

Default Value

If you omit the ADDRSPC parameter, the default is ADDRSPC=VIRT. This means the job or step will execute in virtual storage.

Usage Notes

  • VIRT versus REAL: VIRT is appropriate for most applications. REAL should only be used for time-critical applications or applications that explicitly require real storage for technical reasons.
  • Precedence: If specified on both the JOB and EXEC statements, the EXEC statement specification overrides the JOB statement specification for that step.
  • REGION parameter: When using ADDRSPC=REAL, the REGION parameter specifies the amount of real storage required. When using ADDRSPC=VIRT, the REGION parameter specifies the amount of virtual storage required.
  • System constraints: The system may ignore ADDRSPC=REAL if insufficient real storage is available.
  • Modern systems: In current z/OS environments, the ADDRSPC parameter has minimal impact as system management and memory allocation techniques have evolved significantly.

Examples

Specifying ADDRSPC on JOB Statement

jcl
1
//MYJOB JOB (ACCT),'JOHN DOE',CLASS=A,ADDRSPC=VIRT

Requests that all steps in the job execute in virtual storage (this is the default behavior)

Specifying ADDRSPC on EXEC Statement

jcl
1
//STEP1 EXEC PGM=TIMECRIT,ADDRSPC=REAL,REGION=2M

Requests that STEP1 execute in real storage with a region size of 2MB

Different Settings for Different Steps

jcl
1
2
3
4
//MYJOB JOB (ACCT),'JOHN DOE',CLASS=A,ADDRSPC=VIRT //STEP1 EXEC PGM=PROGRAM1 //STEP2 EXEC PGM=TIMECRIT,ADDRSPC=REAL //STEP3 EXEC PGM=PROGRAM3

STEP1 and STEP3 will execute in virtual storage (as specified on the JOB statement), but STEP2 will execute in real storage (overriding the JOB statement)

With a Procedure

jcl
1
//STEP4 EXEC PROC=MYPROC,ADDRSPC.PROC1=REAL,ADDRSPC.PROC2=VIRT

The PROC1 step within MYPROC will execute in real storage, while the PROC2 step will execute in virtual storage

Historical Context

The ADDRSPC parameter dates back to MVS systems when real storage was a critically limited resource. In those earlier environments, the distinction between virtual and real storage allocation had significant performance implications. Programs that needed immediate response time or had time-critical sections would request real storage to avoid paging delays.

In modern z/OS environments, the parameter remains for compatibility but has less practical significance due to sophisticated system memory management, high-performance paging systems, and large real storage capacities. Most applications today run with ADDRSPC=VIRT.

System-Level Considerations

  • Resource contention: Excessive use of ADDRSPC=REAL can reduce the overall system throughput by limiting the real storage available to other jobs
  • Installation limits: Many installations set limits on the amount of real storage that can be requested
  • Authorization: On some systems, ADDRSPC=REAL requires specific security authorization
  • System settings: System Resource Manager (SRM) settings may influence how ADDRSPC requests are handled

Use Cases

Historical Use Cases

  • Real-time applications with strict response time requirements
  • Programs that were particularly sensitive to paging delays
  • System-level utilities that managed critical resources
  • Programs that needed to access time-dependent facilities

Modern Use Cases

  • Legacy applications designed to run in real storage
  • Specialized performance-critical applications
  • System utilities with specific page-fixing requirements
  • Debugging certain types of memory-related issues

Relationship with Other Parameters

ParameterRelationship
REGIONSpecifies the amount of storage requested. With ADDRSPC=REAL, it requests real storage; with ADDRSPC=VIRT, it requests virtual storage.
MEMLIMITControls the amount of virtual storage above the bar. Works with ADDRSPC=VIRT to define the total memory available to the program.
EXEC parametersADDRSPC on EXEC overrides ADDRSPC on JOB for that specific step.

Limitations

  • Real storage constraints: The system may not be able to honor ADDRSPC=REAL if sufficient real storage is not available
  • Installation policies: System policies may restrict the use of ADDRSPC=REAL or modify its behavior
  • Authorization: Users may not have the authority to request real storage
  • Modern relevance: In current z/OS environments, the parameter often has little practical impact

Common Mistakes

  • Unnecessary use of REAL: Specifying ADDRSPC=REAL when not required by the application
    jcl
    1
    //STEP1 EXEC PGM=PROGRAM1,ADDRSPC=REAL // Not necessary for most applications
  • Inconsistent REGION specification: Not adjusting REGION parameter appropriately when using ADDRSPC=REAL
    jcl
    1
    //STEP1 EXEC PGM=PROGRAM1,ADDRSPC=REAL,REGION=100M // May request too much real storage
  • Overlooking system constraints: Not considering the impact on system performance when multiple jobs request real storage

Best Practices

  • Default to VIRT: Use ADDRSPC=VIRT (or omit the parameter) for most applications
  • Document real storage requirements: When using ADDRSPC=REAL, document why real storage is required
  • Consider alternatives: In modern environments, consider other performance tuning options before using ADDRSPC=REAL
  • Consult performance team: Work with system performance specialists when addressing memory-sensitive applications
  • Regular review: Periodically review jobs using ADDRSPC=REAL to determine if they still require it

Related Concepts

  • REGION Parameter - Specifies the amount of storage required for the job or step
  • MEMLIMIT Parameter - Specifies the limit on the total size of usable virtual storage above the bar
  • JOB Statement - Where ADDRSPC can be specified for the entire job
  • EXEC Statement - Where ADDRSPC can be specified for a specific step

Related Pages