GC33 5371 7_DOS_VSE_sys Mgmt 7 DOS VSE Sys

GC33-5371-7_DOS_VSE_sysMgmt GC33-5371-7_DOS_VSE_sysMgmt

User Manual: GC33-5371-7_DOS_VSE_sysMgmt

Open the PDF directly: View PDF PDF.
Page Count: 273

DownloadGC33-5371-7_DOS_VSE_sys Mgmt GC33-5371-7 DOS VSE Sys
Open PDF In BrowserView PDF
GC33-5371-7
File No. 5370/54300-34

DOSNSE
Systems

System Management Guide

---- .=-=-=
-- -=-=
-- ----.-_
=~~

~~-===-

Eighth Edition (February, 1979)
This is a major revision of, and obsoletes, GC33-5371-6 and TNL GN33-9227. This edition
applies to the IBM Disk Operating System/Virtual Storage Extended, DOS/VSE, and to all subsequent versions and releases until otherwise indicated in new editions or Technical Newsletters.
Changes are continually made to the information herein; before usmg this pUblication in
connection with operation of IBM systems, consult the latest IBM System/370
Bibliography, GC~I, for the editions that are applicable and current.
Requests for copies of IBM publications should be made to your IBM representative or
to the IBM branch office serving your locality.
A form for readers' comments is provided at the back of this publication. If the form has
been removed, comments may be addressed to IBM Laboratory, Publications Department,
Schoenaicher Strasse 220, 0-7030 Boeblingen, Germany. IBM may use or distribute any
of the information you supply in any way it believes appropriate without incurring any
obligation whatever. You may, of course, continue to use the information you supply.

©

Copyright International Business Machines Corporation 1972, 1973, 1974, 1975,
1976, 1977, 1979

Summary of Amendments
Edition GC33-5371-7 documents:
•

New processor support
4331 and 4341
3031

•

New device support
3310 and 3370 Direct Access Storage Devices
PRTI printers (3289 Model 4 and 3203-5)
5424 MFCU

•

Improved installation aid
Maintain System History Program (MSHP)

•

Improved supervisor functions
Pageable supervisor options
Deletion of obsolete supervisor options
Improved method for loading SVA

•

Extension of label information area

•

Common EREP for DOS/VSE and OS/VS

•

VSE/ Advanced Functions
Asynchronous operator communication
Up to seven partitions
Partition balancing
Library device independence
Implicit linkage editor invocation
Switchable fast CCW translation
Fast B- and C-transient fetch
User label area definition by means of the DLA command
User job-to-job communication by means of the JOBCOM macro
Automated system initialization
Removal of LBLTYP statement
Improved access control
Alternate dump files
Use of up to 15 extents for page data set

With DOS/VSE the following programming support has been removed:
•

QTAM support

•

Support of the System/370 Model 20 Emulator on System/370

•

Support of the IBM 2321 Data Cell

•

Support of the IBM 2495 Tape Cartridge Reader
This manual has been completely reorganized and rewritten. Changes are
therefore not marked by vertical bars in the left margin.

TIllS MANUAL ..•

... is a guide to using the functions available with the system control
programming (SCP) support of the mM Disk Operating System/Virtual
Storage Extended (DOS/VSE) in its specified operating environment: with
VSE/ Advanced Functions installed. In addition, the manual provides guide
information for using significantly improved or extended functions that have
of VSE/Advanced Functions. Such information
been
.. ............. :. . . . !. • ·.1.. ..... ..••.............• ;.......•.......•...•••........•...... : •. .• . .... Unless specifically
.. iDiormatIon .applies to ·bOth the specified environment
stated, all
and the SCP only (without VSE/ Advanced Functions) environment.
Note:

In this publication, DOS/VSE refers to the specified operating
environment.

SCP support of OOS/VSE is discussed on a conceptual and functional
level. System management refers not only to the way DOS/VSE is
organized, but also to the way the user can efficiently manage the SCP
facilities at his disposal. This manual, therefore, does more than describe
the functions and interaction of the control programs that constitute the
SCP. It also describes how you - as a system planner, systems programmer,
or applications programmer - can use DOS/VSE to your best advantage.
Before you begin reading this manual, you should be familiar with the
information contained in the Introduction to DOS/VSE.
This book is not a guide to data management; instead, a separate
manual is provided for this purpose, called the DOS/VSE Data
Management Concepts.

After reading this manual and the above mentioned manuals, you
should be able to turn directly to the DOS/VSE library of reference
manuals in order to work with your operating system. A reference manual
is organized so that you can easily retrieve specific information on the
formats of the control statements, macro instructions, labels, and messages,
which you deal with daily.
This manual is divided into four chapters:

Chapter, 1: DOS/VSE Overview provides conceptual information on
multiprogramming, virtual storage and multitasking.
Chapter 2: Planning the System gives planning information for system
generation.
Chapter 3: Using the System provides information on how to use the
system, in particular on the use of the IPL, job control, linkage editor,
and librarian programs.
Chapter 4: Using the FaciHties and Options of DOS/VSE provides guidance
information on how to use facilities and options of DOS/VSE; for
example, writing IPL and job control user exit routines, checkpointing
and restarting a program, or designing programs for virtual mode
execution.

For reference purposes the organization of the system residence disk file
(SYSRES) is shown in Appendix A.

The following mM manuals are referred to in the text of this manual:

DOS/VSE Data Management Concepts . . . . . . . . . . . . . . . . . . . . GC24-5138
DOS/VSE Macro User's Guide . . . . . . . . . . . . . . . . . . . . . . . . . . GC24-5139
DOS/VSE Macros Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . GC24-5140
Guide to the DOS/VSE Assembler . . . . . . . . . . . . . . . . . . . . . . . GC33-4024
DOS/VSE mM 3800 Printing Subsystem Programmer's Guide .... GC26-39oo
Introduction to DOS/VSE . . . . . . . . . . . . . . . . . . . . . . . . . . . .. GC33-5370
DOS/VSE Tape Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GC33-5374
DOS/VSE DASD Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GC33-5375
DOS/VSE System Control Statements . . . . . . . . . . . . . . . . . . . . . GC33-5376
DOS/VSE System Generation. . . . . . . . . . . . . . . . . . . . . . . . . . . GC33-5377
OOS/VSE Operating Procedures. . . . . . . . . . . . . . . . . . . . . . . .. GC33-5378

OOS/VSE Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. GC33-5379
DOS/VSE Serviceability Aids and Debugging Procedures ........ GC33-5380
DOS/VSE System Utilities. . . . . . . . . . . . . . . . . . . . . . . . . . . .. GC33-5381
DOS/VSE OLTEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. GC33-5383
DOS/VSE Maintain System History Program (MSHP) User's Guide GC33-6060
Data Security under DOS/VSE* . . . . . . . . . . . . . . . . . . . . . . . . . GC33-6077

* available 2nd Quarter 1979

Table of Contents
Chapter 1: DOS/VSE Overview ......... . . . . . . . . . . . . . . . . . . . .. 1.1
Multiprogramming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1.1
Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1.2
Partition Priorities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 3
Storage Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 3
Device Considerations Under Multiprogramming . . . . . . . . . . . . . . . . . . . . . 1.3
Virtual Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4
Virtual Storage in DOS/VSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5
Storage Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.8
Relating Virtual Storage to Locations in Processor Storage ........... 1.9
Virtual Storage Implementation under DOS/VSE . . . . . . . . . . . . . . . . . . . . . 1.13
Division of Address Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.14
Processor Storage Utilization . . . . . . . . ..' . . . . . . . . . . . . . . . . . . . . . . 1.17
Executing Programs in VIrtual and Real Mode .................... 1.17
Storage Allocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.18
Multitasking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.25
Two Types of Multitasking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.26
Cross-Partition Event Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.26

Chapter 2: Planning the System . ............................. 2.1
System Generation Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1
Handling the Distribution System .. . . . . . . , . . . . . . . . . . . . . . . . . . . . . .. 2.1
Planning the Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2
Purpose and Contents of the Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3
Core Image Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3
Re1ocatab1e Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4
Source Statement Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4
Procedure Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5
Private Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5
Choosing the Libraries for an Installation . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6
Re1ocatab1e and Source Statement Libraries . . . . . . . . . . . . . . . . . . . . . . 2.6
Procedure Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7
Determining the Location of the Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7
Planning the Size and Contents of the Libraries ......................2.11
System and Workfiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.12
Page Data Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.12
Recorder File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2.13
Hard Copy File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.13

I~:.~~t:r~i:
__l(:~ill:[ii*~~ililill:~i!ijl[:;i:~iiliiii:[*~i.lill.ij:iiil*iiij::~iliii.i'rilil¥l:i!
Workfiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.14
Label Information Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.15
Planning for Compiling in More Than One Partition ................... 2.16
Tailoring the Supervisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2.17
Storage Management Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.18
Virtual Storage Size ......................................2.18
The Shared Virtual Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.18
Defining the Number of Pa..."titions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.21
Defining Partition Priorities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2.22
Defining the Page Data Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.23
Improving the Paging Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.24
Library Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.24
Extended Support for the Procedure Library . . . . . . . . . . . . . . . . . . . . . 2.24
Second Level Directory for Core Image Libraries . . . . . . . . . . . . . . . . . .2.25
Telecommunication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.25
BTAM-ES Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.26

Job Accounting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.28
Timer Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.28
Time-of-Day Clock ........................................ 2.29

Interval Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.29
Task Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.29

Interval Timer Exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2.31
Program Check Exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2.31
Abnormal Termination Exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.32
Operator Communications Exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.32
Task Timer Exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.32
Page Fault Handling Overlap Exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.33
Disk Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.33
System Files on Disk or Diskette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.33
DASD File Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.34
Track Hold Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.34
Rotational Position Sensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.35
I/O Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.38
Channel Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.38
Supervisor Buffers for I/O Processing . . . . . . . . . . . . . . . . . . . . . . . . . . 2.39
Error Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.41
Reliability/ Availability/Serviceability .............................2.41
Recovery Management Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.42
Defining the System Configuration ...............................2.43
Central Processing Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.43
Display Operator Console Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.44
I/O Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.44
Emulators . . . . . . . . . . . . . . . . . . . . . . . . ". . . . . . . . . . . . . . . . . . . . . 2.45

Chapter 3: Using the System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.1

Starting the System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1
Initial Program Loading (IPL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2
Establishing the Communications Device for IPL . . . . . . . . . . . . . . . . . . 3.3
IPL Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3
Automatic Functions of IPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7
IPL Communication Device List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7
Building the SDL and Loading the SVA . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9
Automatic SVA Loading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9
User Options for the SVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 3.9
Creating the System Recorder File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.11
Creating the Hard Copy File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.14
User-Defined Processing after IPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.14
Entering RDE Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.14
Allocating Address Space to the Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . 3.15
AllOC;ltiIlg Processor Storage to the Partitions . . . . . . . . . . . . . . . . . . . . . . . . 3.16
Im1tlating tiolreg:rOUlnd Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.17

LJ"'HUUlf<, a Job
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.25
Job Streams ., . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.28
Relating Files to your Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.29
Symbolic I/O Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.30
Logical Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.32
Types of Device Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.34
Device Assignments in a Multiprogramming System . . . . . . . . . . . . . . . . 3.35
Additional Assignment Considerations . . . . . . . . . . . . . . . . . . . . . . . . . 3.38
Processing of File Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.39
Label Information for Files on Diskette Devices . . . . . . . . . . . . . . . . . . . 3.43
Label Information for Files on Direct Access Devices . . . . . . . . . . . . . . . 3.44
Label Information for Files on Magnetic Tape . . . . . . . . . . . . . . . . . . . . 3.47
Storing Label Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.48
Tape and Print Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.51
Controlling Magnetic Tape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.51
Controlling Printed Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.51
Executing a Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.53
Assembling/Compiling, Link-Editing, and Executing a Program ........ 3.53
Defining Options for Program Execution . . . . . . . . . . . . . . . . . . . . . . . . 3.58
Communicating with Problem Programs via Job Control . . . . . . . . . . . . . 3.59

Executing in Virtual or Real Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.59
Dynamic Allocation of Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.61
System Files on Tape, Disk or Diskette . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.63
System Files on Tape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.64
System Files on Disk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.65
System Files on Diskette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.68
Interrupting SYSIN Job Streams on Disk, Diskette, or Tape .......... 3.69
Record Formats of System Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.70
Using Cataloged Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.70
Retrieving Cataloged Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.70
Temporarily Modifying Cataloged Procedures . . . . . . . . . . . . . . . . . . . . . . . .3.71
Several Job Steps in one Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.74
Modifying Multistep Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.75
SYSIPT Data in Cataloged Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 3.76
Partition-Related Cataloged Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 3.77
Use of Cataloged Procedures by the Operator . . . . . . . . . . . . . . . . . . . . 3.78
Linking Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.79
Structure of a Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.80
Source Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.80
Object Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.81
Program Phases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.82
The Three Basic Applications of the Linkage Editor . . . . . . . . . . . . . . . . . . . 3.82
Cataloging Phases into the Core Image Library . . . . . . . . . . . . . . . . . . . 3.83
Link-Edit and Execute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.83
Assemble (or Compile), Link-Edit, and Execute . . . . . . . . . . . . . . . . . . . 3.84
Processing Requirements for the Linkage Editor . . . . . . . . . . . . . . . . . . . . . . 3.86
Symbolic Units Required . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.86
Preparing Input for the Linkage Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.87
Assigning a Name to a Program Phase . . . . . . . . . . . . . . . . . . . . . . . . . 3.87
Defining a Load Address for a Phase . . . . . . . . . . . . . . . . . . . . . . . . . . 3.89
Building Phases from Object Modules with the INCLUDE Statement .... 3.91
Linkage Editor Storage Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . 3.91
The AUTOLINK Feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.92
Reserving Storage for Label Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.93
Specifying Linkage Editor Aids for Problem Determination or Prevention .... 3.94
Clearing the Unused Portion of the Core Image Library ............. 3.94
Obtaining a Storage Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.94
Terminating an Erroneous Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.95
Designing an Overlay Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.95
Relating Control Sections to Phases . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.95
Using FETCH and LOAD Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.97
Examples of Linkage Editor Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.97
Catalog to the System Core Image Library Example . . . . . . . . . . . . . . . . 3.98
Catalog to a Private Core Image Library Example . . . . . . . . . . . . . . . . 3.100
Link-Edit and Execute Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.101
Compile and Execute Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.103
Using the Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.105
The Librarian Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " . " ... 3.106
Maintaining the Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.108
Organizing the Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.122
Using the Service Functions of the Librarian . . . . . . . . . . . . . . . . . . . . 3.128
Creating and Working with Private Libraries . . . . . . . . . . . . . . . . . . . . . . . 3.132
Private Library Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.132
Using Private Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.135

Chapter 4: Using the Facilities and Options of DOS/VSE ......

4.1

User-Written Program-Exit Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1
Writing an IPL User Exit Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1
Writing a Job Control User Exit Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3
Writing a Job Accounting Interface Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.7
Job Accounting Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.7
Programming Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.8
Tailoring the Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.9
Checkpointing "Facility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.13
Restarting a Program from a Checkpoint . . . . . . . . . . . . . . . . . . . . . . . . . . .4.13
DASD Switching under DOS/VSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.14
Designing Programs for Virtual Mode Execution . . . . . . . . . . . . . . . . . . . . . . . . .4.16
Programming Hints for Reducing Page Faults . . . . . . . . . . . . . . . . . . . . . . . .4.16
General Hints for Reducing the Working Set . . . . . . . . . . . . . . . . . . . . .4.17
Using Virtual Storage Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4.19
Fixing Pages in Processor Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4.19
Indicating the Execution Mode of a Program . . . . . . . . . . . . . . . . . . . . . 4.21

Influencing the Paging Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . .4.21
Balancing Telecommunication Activity . . . . . . . . . . . . . . . . . . . . . . . . .4.21
Coding for the Shared Virtual Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.22

Appendix A: System Layout on Disk . ......................... A.I
IPL Records ...............................................
System Volume Label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
User Volume Label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
System Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Library Directories and Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Label Information Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

A.I
A.I
A.I
A.I
A.I
A.I

Glossary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..

5.1

Index . .....................................................

6.1

List of Figures

Chapter 1: DOS/VSE Overview
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure

1-1
1-2
1-3
1-4
1-5
1-6
1-7
1-8
1-9
1-10
1-11
1-12
1-13

Figure
Figure
Figure
Figure

1-14
1-15
1-16
1-17

The Partitions of a DOS/VSE . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1.2
Assigning Different Physical Devices to the Same Logical Units .... 1.4
Virtual Storage and Processor Storage . . . . . . . . . . . . . . . . . . . . . . 1.6
Storage Management Concept - DOS/VSE . . . . . . . . . . . . . . . . . .. 1.7
Running a Program in Virtual Storage . . . . . . . . . . . . . . . . . . . . . . 1.9
Loading Program Pages into Page Frames . . . . . . . . . . . . . . . . . . . 1.11
Storing Pages on the Page Data Set (pageouts) . . . . . . . . . . . . . . . . . 1.12
Managing the Page Pool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.13
Supervisor Area in Virtual Storage Address Space . . . . . . . . . . . . . . 1.14
Partition Distribution in a Four Partition System . . . . . . . . . . . . . . . 1.15
Shared Virtual Area in a Four Partition System . . . . . . . . . . . . . . . . 1.16
Supervisor Routines - Fixed and Pageable . . . . . . . . . . . . . . . . . . . 1.17
Address Space for 200K Bytes of Virtual Storage and 512K Bytes
of Processor Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.19
Supervisor Location in Both ECPS:VSE and 370 Mode .......... 1.19
A 4-Partition System in ECPS:VSEand316 Mode . . . . . . . . . . . . . . 1.21
Executing in Real Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.23
A 4-Partition System in ECPS:VSE and 370 Mode with the
GETVIS Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.24

Chapter 2: Planning the System
Figure 2-1
Figure 2-2
Figure 2-3
Figure 2-4
Figure 2-5
Figure 2-6
Figure 2-7
Figure 2-8

The Relative Location of the Four System Libraries . . . . . . . . . . . . . 2.8
Alternative Locations of the Libraries . . . . . . . . . . . . . . . . . . . . . . 2.9
Example of Library Organization .........................2.10
Layout of the Shared Virtual Area . . . . . . . . . . . . . . . . . . . . . . . . .2.19
System Directory List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2.20
User Program Running in Virtual Storage without RPS Support .... 2.37
User Program Running in Virtual Storage using RPS Versions of
Logic Module and Channel Program . . . . . . . . . . . . . . . . . . . . . . . 2.37
Channel Queue Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.39

Chapter 3: Using the System
Figure 3-3

Example for the Creation of the SYSREC File and for Loading
User Phases in the SVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.13

. . ,,,,,,': W~~[i W~Hn:Jl!l ~,i~i iF 3,2) ,1

Figure
Figure
Figure
Figure
Figure
Figure
Figure

3-7
3-8
3-9
3-10
3-11
3-12
3-13

Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure

3-14
3-15
3-16
3-17
3-18
3-19
3-20
3-21
3-22
3-23
3-24
3-25
3-26
3-27
3-28

Example of A Job Stream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.28
Example of Symbolic I/O Assignment . . . . . . . . . . . . . . . . . . . . . . 3.31
Possible Device Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.36
Device Assignments Required for an Assembly . . . . . . . . . . . . . . . . 3.37
File Label Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3.41
Summary of Label Option Functions . . . . . . . . . . . . . . . . . . . . . . . 3.50
Job Control Statements to Assemble, Link-Edit, and Execute
a Program in one Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.54
Submitting Input Data on SYSIPT . . . . . . . . . . . . . . . . . . . . . . . . . 3.55
System Operation oi an Assembie, Link-Edit and Execute Job ..... 3.57
Storage Layout of a Partition with Default GETVIS Area ......... 3.61
Storage Layout of a Partition after the SIZE Command is given .... 3.62
Program Execution with the SIZE Parameter . . . . . . . . . . . . . . . . . 3.63
Creation ofSYSIN on Tape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.65
Processing System Input and Output Files on Disk . . . . . . . . . . . . . . 3.67
Interrupting a Job Stream on Disk . . . . . . . . . . . . . . . . . . . . . . . . . 3.69
Example of Modifying a Three-Step Procedure . . . . . . . . . . . . . . . . 3.76
Stages of Program Development . . . . . . . . . . . . . . . . . . . . . . . . . . 3.80
Record Types of an Object Module . . . . . . . . . . . . . . . . . . . . . . . . 3.81
A Job Stream to Catalog a Program into the Core Image Library ... 3.84
A Job Stream to Link-Edit a Program for Immediate Execution .... 3.85
A Job Stream to Assemble, Link-Edit and Execute . . . . . . . . . . . . . . 3.86
Naming Multiphase Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.88

Figure
Figure
Figure
Figure

3-29
3-30
3-31
3-32

Figure 3-33
Figure 3-34
Figure 3-35
Figure 3-36
Figure 3-37

Overlay Tree Structure .................................. 3.96
Link-Editing an Overlay Program . . . . . . . . . . . . . . . . . . . . . . . . . 3.97
Or~ani7.ation of the Directories and Ubraries 0n SYSRES ....... 3.106
Summary of Librarian Programs, Their Functions, and Real Mode
Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.107
Assembling and Cataloging to the Relocatable Library in the Same
Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.110
Example of Deleting and Condensing . . . . . . . . . . . . . . . . . . . . . . 3.116
Disk Space available for System Libraries . . . . . . . . . . . . . . . . . . . 3.119
Symbolic Unit Names and Filenames Required to Create
Private Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.133
Library Status Report for SYSRES on an FBA Device .......... 3.137

Chapter 4: Using the Facilities and Options of DOS/VSE
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure

4-1
4-2
4-3
4-4

4-5
4-6

4-7
4-8

Summary of Program Exit Conditions . . . . . . . . . . . . . . . . . . . . . . 4.1
IPL User Exit Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3
Job Control User Exit Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5
Job Accounting Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.8
Job Accounting Routine Example . . . . . . . . . . . . . . . . . . . . . . . . .4.11
Example of a RESTART Job . . . . . . . . . . . . . . . . . . . . . . . . . . . .4.14
PFIX and PFREE Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4.20
Example of Conventions for SVA Coding . . . . . . . . . . . . . . . . . . . . 4.23

Appendix A: System Layout on Disk
Figure A-I
Figure A-2

System Residence Organization on CKD Devices . . . . . . . . . . . . . . A.2
System Residence Organization on FBA Devices . . . . . . . . . . . . . . . A.3

Chapter 1: DOS/VSE Overview

DOS/VSE is a combination of programs that interact with user-written
programs running on a System/370 or mM 3031 or on a 4300 Processor.
A reference to System/370 implies, in this manual, a reference to the mM
3031. When installed on an 4300 Processor, DOS/VSE may run in either
370 mode or ECPS:VSE mode. DOS/VSE installed on a System/370 runs
in 370 mode only.
This chapter expands on the conceptual information contained in
Introduction to DOS/VSE about the following topics:

•

Multiprogramming

•

Virtual storage

•

Multitasking

Multiprogramming
Multiprogramming is a technique that allows the concurrent execution of
more than one program in a single computer system. Multiprogramming
balances the difference between the speed of the central processing unit
(CPU) and the relatively slower speed of the I/O devices, and improves the
overall throughput of the system.
When a single executing program requests an I/O operation, it may not
be able to continue processing until the I/O request has been satisfied.
During this time, the CPU is idle. With multiprogramming, when one
program stops processing, the CPU is put at the disposal of another
program.
A program is said to be in control of the system when its instructions
are being executed by the CPU. A program can voluntarily yield control of
the CPU, or control can be withdrawn from it. Programs that share the use
of the CPU in multiprogramming do not have an equal claim on the CPU.
Instead, one program is given a greater priority than another.

When a program must wait for an event to occur before it can continue
processing, it yields control of the CPU. DOS/VSE then passes control to a
program of lower priority. Conversely, DOS/VSE withdraws control from a
program whenever a program with higher priority is ready to resume
processing. This generally happens when the I/O operation for which the
program has been waiting is completed.
Multiprogramming, therefore, allows the I/O operations of one program
to be overlapped by the processing of other programs. When a program has
to wait for the completion of an I/O operation, DOS/VSE sets the
program in the wait state and selects another program for execution on the
basis of its priority and readiness to run. This process, called task selection,
is performed by the supervisor program of OOS/VSE. The supervisor is
always resident in storage and controls many functions of DOS/VSE. The

Chapter 1: DOS/VSE Overview 1.1

supervisor is discussed in detail in the section Tailoring the Supervisor in
Chapter 2, Planning the System.

Partitions
Efficient use of the system relates not only to the degree of CPU activity
but also to storage management. Storage is allocated to partitions to
accommodate the programs that will be executed in them. At times, only a
portion of the partition is used by the program being executed. Some
programs require a large partition. DOS/VSE automatically balances the
storage demands made by programs by making processor storage not being
used by one program available to a program in another partition as
required.
The number of partitions supported equals the number of problem
programs that can be executed concurrently within the system. There is
always support for one background (BG) partition and one foreground (FI)
partition. Optionally, support for up to three additional foreground
partitions (F2 through F4) can be requested if you operate in an SCP only
environment, i, '

' ';;i;i'~~;,e;/;:!/ ~':,'iii/i ';hLn';

;:;n:]!

num
.. configUration is a supervisor
generation option, and as such is described in the section Tailoring the
Supervisor in Chapter 2, Planning the System.

Background

Storage
available
to problem
programs

Foreground-3
Foreground-2
Foreground-1

FJgUI'e 1-1. The Partitions of a DOS/VSE
The background partition differs from the foreground partitions in the
following respects:
•

The backgroun«i partition is automatically activated by IPL. A
foreground partition must be activated via the BATCH or START
operator command. (The BATCH and START operator commands are
discussed in detail in DOS IVSE Operating Procedures.)

1.2 DOS/VSE System Management Guide

•

Certain ffiM-supplied programs can be executed only in the background
partition. These programs are CORGZ (the merge into SYSRES
functions), and MAINT (except deleting, renaming and condensing
functions for a private core image library). Refer to the section Using
the Libraries in Chapter 3, Using the System.

•

Link editing a program to the system core image library can be done
only in the background partition.

Partition Priorities
During supervisor generation, priorities are established for each partition
defined in the system. The default priorities are (from low to high): BG,

F4, F3, F2, Fl.· .

During processing the operator can display the partition priorities and
change them dynamically by issuing the PRTY command. This can be used
to accelerate the execution of a given program. However, the priorities
should be reset to the installation standards as soon as possible to handle
the normal flow of jobs through the system.
Changing priorities while jobs are being executed should be done with
special care if the licensed program VSE/POWER or teleprocessing, which
normally run in a high-priority partition, are active in the system.

Storage

Protec~

Storage protection, which is standard on all System/370 and 4300
processOr models, ensures that the instructions and data of one program in
a given partition do not interfere with those of another program in another
partition.

Device COIISiderations U1Uler MlIltiprogra""";,,g
Generally, the same physical I/O device (or extent of a direct access or
diskette device) may not be used concurrently by programs being executed
in different partitions. Exceptions to this are:
•

The device or extents assigned to the system logical units:
SYSRES

for system residence

SYSREC

for the recording of system information such as console
messages and hardware statistics

SYSLOG

for system-operator communication

SYSCAT

for use with VSE/VSAM, a licensed DOS/VSE access
method.

Chapter 1: DOS/VSE Overview 1.3

These devices (extents) are considered to belong to the system as a
whole, rather than to individual partitions. (A description of these
system logical units is contained in the section Symbolic I/O Assignment
in Chapter 3, Using the System).
•

The page data set.

•

Private libraries which may be shared for read-only operations (for
more information refer to Using Private Libraries in Chapter 3, Using
the System).

•

A file on a direct access device can be accessed across partitions,
providing it is not being created simultaneously by programs in more
than one partition (see Track Hold Option in Chapter 2, Planning the
System for information on protection when updating a file concurrently
by separate tasks).

IT, for example, you wish to link-edit programs in different partitions
concurrently, different physical devices or extents (except.for SYSRES and
SYSLOG) must be assigned for~each partition to all logical units used by
the linkage editor program. Figure 1-2 shows an example of the device
assignments in order to link-edit in two partitions concurrently.
Logical Unit,
SYSIN
SYSlST
SYSlOG
SYSlNK
SYSOOl
SYSClB
SYSRES

FJgUI'e 1-2.

F1 "'Partition
X'18l'
X'182'
X'OlF
X'13l'
X'13l'
X'130'
X'130'

BG Partition
X'OOC'
X'OOE'
X'OlF
X'132'
X'132'

X'130'

ARgning Different Physical Devices to the Same Logical Units

In this case, the output on SYSLST in FI is written on a tape. A listing of
this output can be obtained by printing the tape after the job is completed.
IT VSE/POWER is used, the listing could be automatically obtained
whenever a printer becomes available.

Virtual Storage
The objective of the virtual storage concept is to achieve greater
throughput. Multiprogramming, for example, increases throughput by
sharing CPU time between two or more partitions. Virtual storage enables
you to improve real (processor) storage utilization.
In the previous multiprogramming discussion the statement is made that
"Multiprogramming . . . allows the concurrent execution of more than one
program ... ". Note that concurrent does not mean simultaneous. Even in
the multiprogramming environment, when two or more programs are
executing in storage, the CPU (Central Processing Unit) can execute only
one instruction at a time. Hence, the space in storage used by all other
instructions, data areas etc. is temporarily not needed. All that must be in
storage at anyone point in time is the instruction (and its associated data
areas) that is being executed. The Virtual Storage concept exploits this fact.

1.4 DOS/VSE System Management Guide

Vil1llal Storage in DOS/VSE
Through a combination of hardware design and programming support,
DOS/VSE has an address space, called virtual storage, that can extend to
the maximum allowed by the system's addressing scheme, which is
16,777,216 bytes (16M bytes).
How much of the maximum address space (16 M bytes) will be used in
a particular system depends on a number of factors: the size of the
computer's processor storage, the amount of disk storage available, the
number of partitions, their sizes, and the characteristics of the installation's
programs and operating environment.

Chapter 1: DOS/VSE Overview 1.5

Virtual Storage
OK,~--------------------~
Processor Storage

OKr----------------------

address
space <

Your Programs

----------------------~nK

max.=16M-l bytes

It is in the address space that proarams conceptually no.

Figure 1-3.

Virtual Storage and Processor Storage

Your programs are conceptually loaded and run in address space. See
Figure 1-3. Of course, each instruction of a program must be in processor
storage when the instruction is executed, and so must the data this
instruction manipulates. The other instructions and data of that program in
virtual storage need not be in processor storage at that same moment; they
can reside on auxiliary storage until needed. The file used for this purpose
is called the page data set.
It would be inefficient, however, to bring every instruction and its
associated data into processor storage individually. Virtual storage is
manipulated in sections called pages; the size of a page in DOS/VSE is 2K
bytes. Processor storage is also divided into 2K byte sections; these are
called page frames. Page frames accommodate pages of a program during
execution.
The resident routines of the DOS/VSE supervisor occupy tlte low
address page frames, while the remaining page frames are available for the
execution of processing programs and the pageable routines of the
supervisor. These remaining page frames are collectively called the page
pool.
When a program is loaded from the core image library into virtual
storage, all its pages are brought into page frames of the page pool. If there

1.6 DOS/VSE System Management Guide

are not enough page frames available to contain all the pages of a program,
DOS lYSE writes the contents of some page frames to the page data set.
Set: Figure 1-4.

Page
Data
Set

Core
Image
Library

r---Z
,X ..

,"~\X\
'
'----\, X',
-_--I',X,\
, ,
\

\

~\X;
~I.

,'x',

-----,
i

I
I

e
I
I

_____ .L
I __________

PROGX

... "

~

-----r-----e-- 1/
X X X X X X

I
I

I

I

,'X I
'/

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

I
I

I
I
L ______________ ...JI

Processor Storage

Virtuai Storage
A program named PROGX (A) is "conceptuaDy" loaded into virtual storage (8). DOS/VSE
f"JDds page frames in the page pool of processor storage (C). When there are not enough
page frames to accomodate aD of PROGX, DOS/VSE stores the contents of some page
frames on the page data set (0). 1be remaining pages of the program caD then be loaded.

Figure 1-4.

Page
Pool

>

J

Storage Management Concept - DOS/VSE

Chapter 1: DOS/VSE Overview 1.7

Storage Management

The following discussion amplifies the concept of DOS/VSE storage
management shown in Figure 1-4.
When programs are loaded for execution they may be loaded in
non-contiguous page frames of processor storage. DOS/VSE knows what
processor storage locations pages of a given program occupy. H the
program should cancel, due to an error, the listing produced by DOS/VSE
reflects the virtual addresses where the program was conceptually running.
In Figure 1-5, a 16K-byte program named INVEN, is conceptually loaded
at the virtual storage location 1024K. As shown, DOS/VSE selected eight
page frames of processor storage which are not contiguous. H the program
were to end abnormally, and a listing representing storage was produced
(on SYSLST), the INVEN program would be shown as occupying addresses
1024K through 1040K minus 1.
All of the information pertaining to the virtual storage and page frames
is maintained within the system in a series of tables. It is through these
tables that the virtual storage exists. Entries in these tables reflect the
current status of a given page of virtual storage.

1.8 DOS/VSE System Management Guide

Virtual Storage

Page Pool of 128 K

1 0 2 4 K I - - - - - - - - - - - - -.... ---------------

f

I

INVEN (16K)

I

1040K-1,

I

,,

,,

,,
,

,

I

\

\

I

,
\
\

,
\

I

,,

,

I

\
\

\

,
\

,,

,,
\

\

,,
Processor Storage

8 page frames are occupied by the 16K program
INVEN.

Figure 1-5.

Running a Program. in Virtual Storage

Relating Virtual Storage to Locations in Processor Storage

Since the system does not anticipate where in processor storage a page will
be loaded, the virtual addresses must be translated into real addresses when
required for execution. The address translation is performed by a

combination of the system hardware and DOS/VSE.
If an entire program fits in processor storage, none of the program's
pages will be placed on the page data set.

Chapter 1: DOS/VSE Overview 1.9

In the example shown in Figure 1-5, no page of INVEN will be paged
out as long as the demand on processor storage does not exceed the
number of available page frames.
H a second program were to be executed (mUltiprogramming) and this
program together with INVEN were larger in size than the number of
frames available in the page pool, DOS/VSE would store as many pages as
necessary on the page data set to keep both programs running.

In Figure 1-6 a program called PAYROLL is being executed as well as
INVEN. PAYROLL is a IISK program. As the page pool in this example
is only 12SK, the total demand (INVEN + PAYROLL) of 134K exceeds
the processor storage resource by 6K or three page frames.

The program PAYROLL will not start executing until all of its pages
have been loaded into processor storage. After having loaded 112K of
program PAYROLL, DOS/VSE must make three page frames available for
that program. It does this by selecting the three least recently used (LRU)
pages and storing them on the page data set. See Figure 1-7. Once the
pages have been saved on the page data set the page frames are available
for the last three pages of the program PAYROLL. See Figure I-S.

1.10 DOS/VSE System Management Guide

OK

Virtua I Storage

Page Pool of 128K

1024K

I

P

P

P

I

P

P

P

P

P

I

P

P

P

I

P

P

P

P

P

P

P

P

P

I

P

P

P

I

P

P

P

P

P

P

I

P

P

P

P

P

I

P

P

P

P

P

P

P

P

P

P

P

P

P

P

P

P

P

P

P

P

P

P

INVEN (16K)
1040K-

1060K

PAYROLL (118K)

IP Ip Ip I
1178K-

Processor Storage

I = a page of program INVEN
P =a page of program Payroll
3 pages of PA YRO LL not yet loaded

FJgUre 1-6.

Loading Program Pages into Page Frames

Chapter 1: DOS/VSE Overview 1.11

Virtual Storage

1024K

p
INVEN (16K)

p
1040K-

p
1060K

p

PAYROLL (118K)

I

P

I

p

I

p

p

p

p

p

p

p

p

p

I

1178K- 1 .....

p

.......

.......................

..... ......

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

Processor Storage
I = a page of INVEN
P =a page of Payroll
3 pages of INVEN have been paged out to the
page data set making room for the 3 remaining
pages of PAYROLL.

Figure 1-7.

1.12 DOS/VSE System Management Guide

Storing Pages on the Page Data Set (pageouts)

Virtual Storage

Kr-----------------------

o

Page
Data

Set

Page Pool of 128K

1024Kr-----------------------~--------------

~--~-------

~-----------

p

p

p

INVEN (16K)

p

p

1040K-

p
1060Kr---------------------~

p

p

p

p

p

p

p

p

p

PAYROLL (118K)

p
1178K-1 ....

' .........
' .........

.........

.... .........

........ ,

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

p

Processor Storage
I = a page of INVEN
P =a page of PA YRO LL
The last 3 pages of PAYROLL are loaded and
execution begins.

During execution, whenever a required instruction or some data is not present in processor
storage, execution is interrupted by a so-called page fault. DOS/VSE mR then read the
required page into processor storage.

FJgUre 1-8.

Managing the Page Pool

Virtual Storage Implementation under DOS/VSE
Under DOS/VSE you may generate a system that will execute on 4300 or
/370 hardware. Using the 4300 hardware, your DOS/VSE System may be
generated to run in either ECPS:VSE mode or 370 mode. DOS/VSE on
the System/370 hardware may only run in 370 mode.

Chapter 1: DOS/VSE Overview 1.13

The generated supervisor in 370 mode is functionally the same, whether
the hardware is System/370 or a 4300 processor.
The concepts of virtual storage are the same in both modes of
execution; however, the implementation differs slightly.
This section discusses: virtual storage, processor storage, and program
execution (with and without paging). The implementation of most of these
items is the same in both modes. The differences and figures showing the
different execution modes (ECPS:VSE or 370) are at the end of this
section.

Division of Address Space
As stated earlier, all programs, including the supervisor, run in an address
space called virtual storage. this address space is divided into areas: for the
supervisor, the partitions, a shared virtual area (SVA).

Supenfior Area. The address space reserved for the supervisor is the low
addresses of your virtual storage. The supervisor area begins at location OK
and extends up to the size of your generated supervisor (see Figure 1-9).
Virtual Storage

OK----------------------------~
Resident Supervisor Routines

Pageable Supervisor Routines
Resident Supervisor Routines

~--------------------------~nK
Address
space

Figure 1-9.

Supenisor Area in V'o1uaI Storage Address Space

Partitions. The virtual storage contains the areas which are used by the
DOS/VSE partitions. Programs will execute from these areas. The number
of partitions is determined at system generation. See Chapter 2, Planning
the System. The distribution of the partitions in the address space follows

1.14 DOS/VSE System Management Guide

the default partition priority scheme, that is the lower priority partitions
have the lower addresses. The sequence is always BO, F4, F3, F2, Fl for a
five partition system.
Figure 1-10 shows the layout of virtual storage for a 4-partition
DOS/VSE system. In this figure each partition is 200K in size.
Virtual Storage

512K

BG Partition

712K

F3 Partition
Address
space

912K

F2 Partition

1112K

F 1 Partition

FJgUre 1-10. Partition Distribution in a Four-Partition System

The Shared Virtual Area (SVA). The SVA occupies the address space
immediately following the partitions, see Figure 1-11. Certain frequently
used programs are loaded into the sVA. Such programs (or parts of
programs), which are relocatable and reenterable, are available for
concurrent use by programs executing in any partition. Additional

Chapter 1: DOS/VSE Overview 1.15

information on the use of the SVA is contained in this guide where
appropriate.
Virtual Storage

-

~
512K

BG

712K

F3

912K

F2

Address
space
1112K

Fl

1312K

Shared Virtual Area

Figure 1-11. Shared Virtual Area in a Four Partition System

1.16 DOS!VSE System Management Guide

Processor Storage Utilization

Under DOS/VSE processor storage is used as follows:
•

For the accommodation of the resident supervisor routines.

•

For the loading and execution of the pageable supervisor routines.

•

For the loading and execution of programs.

As shown in Figure 1-12, all page frames of processor storage not needed
for the resident supervisor routines are available to the page pool. It is
from this page pool that DOS/VSE selects page frames for pages of
executing programs (including the pageable routines of the supervisor).
Virtual Storage

Processor Storage

R-es-ident S-tl-perv-i-s-ef R-e-ut-ines

Resident Supervisor Routi-nes

S

S

S

Pageable Routines of Supervisor

Resident Supervisor Routines

Resident Supervisor Routines

S

S

S

S

1

S
> Page
Pool

S = pages of pageable supervisor routines

Figure 1-12. Supervisor Routines - FIXed and Pageable

Executing Programs in Virtual and Real Mode

All programs when executing are conceptually running in the address space
associated with a partition. DOS lYSE selects page frames from the page
pool for pages of the executing programs. The execution can be in one of
two modes:

Chapter 1: DOS/VSE Overview 1.17

Execution in Virtual Mode: The page frames occupied by pages of programs
running in virtual mode continue to be part of the page pool. DOS/VSE
will manage the processor storage placing some pages on the page data set,
when necessary, and retrieving those pages as required. Programs in virtual
mode are pageable.
Execution in Real Mode: The page frames occupied by pages of programs
running in real mode are taken out of the page pool for the duration of that
program's execution; the page frames will not be selected by DOS/VSE for
another program of higher priority; the program is fixed in processor
storage and is non-pageable.
To have a program executed in real mode, an amount of processor
storage must be allocated to the partition in which that program is to run.
The allocated processor storage remains part of the page pool until real
mode execution begins. Under DOS/VSE certain programs - such as those
with critical time dependencies - may have to run in real mode. A partition
may execute in only one mode at a given point in time; for example, the
BG partition can not initiate both real and virtual execution at the same
time.

Storage Allocation
From a storage management point of view, only minor differences exist in
virtual and processor storage utilization techniques between ECPS:VSE and
370 mode. These differences are indicated as the following topics are being
discussed:
•
•
•

Address space layout
Partition allocation
Processor storage allocation for real mode execution
Dynamic storage areas.

Address Space Layout. In ECPS:VSE mode, the virtual storage is one area
whose size is determined at Initial Microprogram Load (IML).
In 370 mode, the virtual storage is logically divided into two areas: real
address space and virtual address space, see Figure 1-13. The virtual
address space is defined when the supervisor is assembled. The size of the
real address space is determined at the time of Initial Program Load (IPL);
it is equal to the amount of processor storage installed. The supervisor
resides in the low addresses of your virtual storage. In 370 mode, this is in
the real address area. See Figure 1-14.

1.18 DOS/VSE System Management Guide

ECPS: VSE-Mode

37G-Mode

OK~-----------------------.

Real Address Space

512K~--------------------~

The Address Space

Virtua I Address Space

~48K-=====================~

Virtua I Storage

Virtual Storage

Figure 1-13. Address Space for 2048K. Bytes of Virtual Storage and 512K.
Bytes of Processor Storage
ECPS: VSE-Mode

OK~----------------------~

OK

Supervisor

370-Mode
Supervisor

96K

96K

Real
)

Address
SpaCe

512K
The
Address
Space

~

>

2048K U
......____________~
Virtual Storage

2048K~I--------------------~I,)
Virtual Storage

961{ as sapenisor size is an arbitrary ..alber, somewhere above the ......... sapenisor size.

Figure 1-14. Supenisor Location in Both ECPS:VSE and 370 Mode

Chapter 1:· DOS/VSE Overview 1.19

Virtual
Address
Space

Partition Allocation. Only the number of partitions but not their sizes are
defined when the supervisor is assembled. IPL allocates all of the address
space available for the partitions to the Background (BG). After IPL, you
allocate the foreground (FG) partition sizes. See Chapter 3, Using the
System.

Figure 1-15 shows the layout of a 4-partition system after IPL and
allocation, respectively, has taken place.

1.20 DOS/VSE System Management Guide

OK

ECPS:VSE-Mode

370-Mode

OK

Supervisor

Supervisor
96K

96K

>

Real
Address
Space

~

Virtual
Address
Space

BG
512K

BG
712K
F3

F3
912K

F2

F2
1112!(
Fl

Fl
1312K

SVA

SVA

Virtual Storage

2048K
Virtual Storage

Figure 1-15 assmnes a virtual storage size of 20481{ and a processor storage size of 512K..
The supervisor wiD OCCUpy. the low address 961{
this system.

of

In ECPS:VSE mode, the address space from the end of the s.msor to the begilDng of the
~ belongs t~ the BG partition (6161{).

Foreground 3

In 370 mode the BG partition's. address space starts at the beginning of the virtual address
space (512K). The real a.w.ress space is the address space from Wbicb. ~ rQDDing in

real mode are executed~

Figure 1-15. A 4-PartitiOD System in ECPS:VSE and 370 Mode

Processor Storage AUoeatiOD for Real Mode Execution. A specific number of
page frames of proCessor storage may be allocated to any of the partitions
for real mode execution~ The allocation may be d()ne at any time with the
ALLOCR coIIHIiand,.

Chapter 1: DOS/VSE Overview 1.21

Submitting
ALLOCR BG=20K, F1=24K
for example, causes the following:
•

In ECPS:VSE mode:

DOS/VSE notes that 10 page frames and 12
page frames of processor storage are available
to partitions background and foreground 1,
respectively, for real mode execution.

•

In 370 mode:

DOS/VSE allocates 20K and 24K of real
address space to partitions background and
foreground 1, respectively. In addition, when
real mode execution takes place, the processor
storage addresses used by DOS/VSE are the
same as the addresses within the allocated real
address space.

With the above ALLOCR command the largest program that can be
executed real in the two partitions are 20K in BG and 24K in Fl.
When not occupied by a program running in real mode, the page
frames allocated to a partition are part of the page pool.
When a program running in real mode does not require all the allocated
page frames, the unused page frames may be made available to the page
pool by specifying the amount of storage required by the program in the
SIZE operand of the EXEC job control statement for the program. In
order to execute a program in real mode an EXEC statement with the
REAL parameter must be used. For more details on the EXEC statement
see Chapter 3, Using the System.
Figure 1-16 shows the results of the above discussed ALLOCR
command with a 20K-program REALRUN executing in the BG partition in
real mode.

1.22 DOS/VSE System Management Guide

ECPS:VSE-Mode

OK-----------------------------,
80K

- - - - - - - Supervisor------

96K _1-------------------1

REALRUN (20K)
BG

Processor Storage

Virtual Storage
370-Mode

OK~--------------------------~

80K - - - - - - - Supervisor------96K~--------------------------~}
REALRUN(20~

116K

BG

s

s

Allocated to F 1
130K

s

Virtua I Storage

s

Processor Storage
R
S

=

pages of REA LR UN in processor storage

=

pages of supervisor pageable routines in storage

Tbe shaded portions of processor storage are not part of the page pool at tbis time. Tbe
illustration assumes a supermor with 10K resident routines and 16K pageable routines. Tbe
program REALRUN is 10K in size and is executing in real mode in the BG partition. Note
that in ECPS:VSE mode tbe page frames are selected randomly from the page pool, while in
370 mode the page fnDes o~d by REALRUN have tbe same processor storage
addresses as the pages that are occupied by REALRUN within virtual storage. Tbe aIocation
for Fl bas not affected the page pool.

FJgUI'e 1-16. Executing in Real Mode

Chapter 1: DOS/VSE Overview 1.23

Fixing Pages in PrOCes§Ol' Storage. The allocated page frames are used not
only for programs running in real mode, but may also be used for programs
running in virtual mode.

Some programs that run in virtual mode contain instructions or data
that must be in processor storage when needed and therefore cannot
tolerate paging. The pages containing such code or data can be fixed via the
PFIX macro instruction, and freed immediately after use via the PFREE
macro instruction. The licensed program VSE/POWER is an example of an
mM program that uses PFIX/PFREE macros.
When pages of a program running in a given partition are fixed in
response to the PFIX macro, they are fixed in the page frames allocated to
the partition. IT a PFIX macro is issued and enough storage is not allocated,
the pages are not fixed, and a completion code indicating this is returned to
the program.
Fixing pages in processor storage means that, in a niultiprogramming
environment, fewer page frames are available to other programs running in
virtual mode, potentially degrading total system performance. When
channel programs with large I/O areas are involved, the initial size of the
page pool may be too small. Consider this effect carefully before allowing
the use of the PFIX macro at your installation.
Dynamic Storage Areas. Under DOS/VSE there is a requirement for certain
system functions to acquire virtual storage dynamically during program
execution. An area called GETVIS area is used for this purpose. Each

partition has its own partition GETVIS area, the SVA includes the system
GETVIS area. The GETVIS areas occupy the high address space associated
with each partition and the SVA. Figure 1-17 shows the virtual storage
layout in ECPS:VSE and 370 mode with the GETVIS areas included. For
further information on the size and use of GETVIS areas see Chapter 3,
Using the System.

1.24 DOS/VSE System Management Guide

370-Mode

ECPS: VSE-Mode

OK

Supervisor

96K

OK

Supervisor

n

96KI----~11
1

I

~

Real
Address
Space

~

Virtual
Address
Space

BG

512K
BG

1------------------GETVIS Area BG

712K

F3

-------------------GETVIS Area F3

------------------GETVIS Area BG
F3
~-------------------

912K

GETVIS Area F3

F2

F2

-------------------GETVIS Area F2

~-----------------

1112K

Fl

-------------------GETVIS Area Fl

GETVIS Area F2
Fl

1312K

------------------GETVIS Area F1
SVA

SVA

r.-------------------

~------------------

System GETVIS

System G ETVIS
2048K

Virtua I Storage

Virtual Storage

Figure 1-17. A 4-Partition System in ECPS:VSE and 370 Mode with the
GETVIS Areas

Multitasking
At the beginning of this chapter, we defined multiprogramming as the
ability to execute more than one program concurrently in separate partitions
within a single computer system. Multitasking can be regarded as an
extension of multiprogramming in that it provides the ability to execute
more than one program concurrently in a single partition. In simple terms,
therefore, multitasking can be regarded as multiprogramming within one
partition.

Chapter 1: DOS/VSE Overview 1.25

Some installations using former versions of DOS, employed multitasking
to run more than three programs in a 3-partition system. The additional
partitions that DOS/VSE provides serve the same purpose. However,
running programs concurrently in separate partitions usually requires less
preparation than running programs concurrently in the same partition.

Two Types of Multitasking
Programs (or parts of a program) that are executed concurrently in a given
partition are called tasks. A distinction is drawn between the main task in a
partition and one or more subtasks in the same partition. The main task is
that program (or program part) which is initiated by job control. The
subtasks are programs (or program parts) that are initiated by the main task
through the use of the ATTACH macro in an assembler language routine.
A subtask executed in a given partition may be (1) logically
independent, or (2) logically dependent.
In the first case, the main task monitors the execution of the subtasks,
treating them as independent programs. Such subtasks may be coded in any
programming language. This type of multitasking is sometimes called
multiprogramming within a partition. It is a suitable technique to use, for
example, for concurrent execution of more programs than partitions are
available.
In the second case, both the main task and the subtasks are program
routines that are logically part of the same program. Thus, the tasks can
communicate with one another. In this case the subtasks are likely to be
coded in assembler language to allow the use of the task
intercommunication macros. They can share code (in particular, an access
method or subroutines), provided that it is of a read-only nature (that is,
that the code or subroutines are not modified during execution). This
technique is complex and can best be understood after studying the first
type of multitasking.

Cross-Partition Event Control
Highly complex applications may have a need for communication between
programs executing in separate partitions. For example, two such programs
may need to perform operations on a common file, and the operations may
require actual communication between the two programs.
Through cross-partition event control macros, one partition can delay
the execution of part of a program until another partition signals the
completion of a critical event. This allows synchronized multiprogramming
in separate partitions - thus protecting programs against inadvertent
destruction of each other - while at the same time providing for any
necessary communication between them. mM licensed programs require
this support in certain complex applications. One example is the licensed
program VSE/POWER generated with SPOOL =YES. For details about
cross-partition event control, see the manual DOS/VSE Macro Reference.

1.26 DOS/VSE System Management Guide

Chapter 2: Planning the System

After a brief description of the system generation procedure in general, this
chapter discusses in greater detail three major considerations during system
generation, namely:
•

Planning the libraries (planning the contents, the location and size of
the libraries).

•

Planning the system files and workfiles.

•

Tailoring the supervisor (adding functions to those of the basic
supervisor) .

Because of the nature of this information, this chapter primarily addresses
programmers who are responsible for planning the system.

System Generation Procedure
Proper and detailed planning is essential for efficient system generation and
minimizes the need to modify the system after it is generated. You may
want to contact your ffiM marketing representative to set up a system
generation planning meeting. ffiM field engineering should be invited to
attend the meeting to discuss the procedure to install the nonlicensed SCP
(system control programs). Generating a system includes:

Har.dling the

~.strib"tior.

•

Planning the contents, organization, and size of the system and
(optionally) private libraries. This entails distributing the storage space
available (on the disk packs) between the libraries desired for
day-to-day use. You must consider the size of the system core image
library and other system and private libraries.

•

Planning the location and size of system and workfiles. This entails
determining, what system files are required, how large they must be and
where they shall be placed. Additionally workfile space needed to
assemble the supervisor and to link-edit and catalog the components
selected to the system core image library must be reserved.

•

Planning the options and estimating the approximate size of the
supervisor. This entails selecting from the programming services
provided by ffiM, those options you wish to include in the supervisor,
and estimating the cost of these services in terms of bytes of storage.

System
To install the DOS/VSE SCP, you work with the ffiM-supplied distribution
medium (normally a magnetic tape), which is composed of four system
libraries
core image
relocatable
source statement
procedure
and a system history file.

Chapter 2: Planning the System 2.1

Unless you decide to operate in an SCP only environment, your system
generation approach should be as follows:
1. Restore the SCP and also the supplied history file to disk. (This step
does not apply if you receive the ffiM supplied code on disk.)

3.

Generate the supervisor by coding a set of supervisor generation
macros, which define the system configuration and the services you
wish the supervisor to contain. These are described in detail in the
section Tailoring the Supervisor.

4.

Delete from the libraries any components you do not require and then
condense to free library space.

S. Assemble or compile and/or link-edit programs - both your own and
ffiM's - and catalog them into the appropriate libraries.
After you deleted any of the supplied components, you must update your
history file by running the service program MSHP (Maintain System
History Program). The usage of MSHP is described in DOSjVSE Maintain
System History Program (MSHP) User's Guide.
Having determined what elements are to be contained in the system
libraries, you may wish to retain additional elements in private libraries and
therefore want to create private core image, relocatable, or source statement
libraries. These choices are discussed in the section Planning the Libraries.
The system libraries, together with certain system work areas, constitute
the system residence file (SYSRES), which is one extent of a direct access
storage volume. The SYSRES file is described in Appendix. A: System
Layout on Disk.
After establishing your SYSRES file and the history file, you should
copy those onto tape or disk for backup purposes. The utility programs
Backup/Restore System and Fast Copy Disk, which are provided for this
purpose, are described in DOSjVSE System Utilities.
For complete details on how to perform a system generation procedure
refer to DOSjVSE System Generation.

Planning the Libraries
The components of DOS/VSE are shipped in four system libraries: the core
image library, the relocatable library, the source statement library, and the
procedure library. Most programs and procedures developed and used by
your installation will also be stored in these libraries. In addition to the
system libraries, DOS/VSE supports private libraries which you may use to
either substitute for or supplement the corresponding system libraries.

2.2 DOS/VSE System Management Guide

Planning the size, contents, and location of these libraries according to
the needs of your installation is an essential part of the system generation
procedure. Such detailed planning will ensure that:
•

No disk space is wasted by components not required in your
installation.

•

The libraries are large enough to allow for future additions.

•

The libraries are accessed by the system with maximwil efficiency.

Following a brief description of the purpose and contents of the individual
libraries, this section discusses the major considerations involved in tailoring
the libraries to the needs of your installation:

•

Which libraries are required.

•

How many disk drives are available and where on these devices should
the individual libraries be placed.

•

How large should each of the libraries be and what should they contain.

Note that this section is intended to give only general guidance for planning
the libraries. More details. about DASD space requirements for the libraries
are contained in DOS/VSE System Generation. How to change the size of
a library, how to insert elements into or delete elements from a library, and
how to create private libraries is described in Chapter 3, Using the System.

Purpose and Contents of the Libraries
The following is a brief summary of the purpose and contents of the
DOS/VSE system and private libraries.

Core Image Library
In order to be executed, all programs must be link-edited into phases and

placed in the core image library (CIL). mM supplies the DOS/VSE system
control program (SCP) components pre-linked and cataloged in the CIL. A
complete list of the supplied SCP components is shipped with the program
directory documentation which accompanies your DOS/VSE SCPo Prior to
receiving your DOS/VSE, consult DOS/VSE System Generation and the
applicable VSE/ Advanced Functions publication for a listing of the
DOS/VSE components.
mM also supplies cataloged distribution supervisors. Assembler source
statements used to generate these supervisors are shown as part of the
Memorandum to Users and are contained in the source statement library.
The entries in the CIL directory of phases are sorted in alphanumeric
sequence. The phases themselves are cataloged in the next available space
in the library.
You have to decide which of the mM supplied SCP phases to retain in
the CIL. To delete unwanted SCP components, use the delete procedures
contained in the procedure library. See DOS/VSE System Generation for a
list of these procedures.

Chapter 2: Planning the System 2.3

Besides mM SCP components you may add to the CIL your own
application programs such as your payroll or accounts receivable programs,
program packages obtained from mM (for example, licensed programs), or
program packages from other sources. If you wish to include such programs
in the CIL, you must catalog them yourself. For information on how to do
so, refer to the description of the linkage-editor in Chapter 3, Using the
System.

Relocatable Library

The relocatable library as shipped by mM uses a considerable amount of
DASD space. The library contains:
•

SCP component object modules

•

Compiler logical input/output control system (LIOCS) modules

SCP Object Modules. These modules make up unlinked code of the
executable SCP component phases in the CIL. The modules have been
link-edited and cataloged into the elL you receive. These modules are
provided in the relocatable library for maintenance purposes only.
CompHer LIOCS Modules. The LIOCS modules needed by the various
compilers are cataloged in the relocatable library. There are different
modules for each device type and access method. Some modules can be
used by more than one compiler. For a complete list of the LIOCS module
names and device applicability, see DOS/VSE System Generation.

Source Statement Library
The elements in the source statement library are called books. A book is
either a sequence of source statements or a macro definition.
You can catalog into the source statement library sets of source
statements that are used by more than one program, and then include these
statements in your source program by specifying a COpy (assembler,
DOS/VS RPG II, and COBOL) or %INCLUDE (PL/I) statement.
The macro definitions in the source statement library include those
macros supplied by mM as well as any others which you may have written
and cataloged yourself. When you issue a macro instruction in your
program, the corresponding macro definition is retrieved from the source
statement library and included in your program according to the parameters
you specified.
Each book in the source statement library is classified as belonging to a
specific sublibrary; for example, an assembler, a PL/I, or a COBOL
sublibrary. Sublibraries are identified by a I-letter prefix added to the book
name. Letters A through I and the letters P, Rand Z are reserved for
sublibraries containing system components. You can use all other letters,
the digits 0 through 9, and the special characters $, &, and #, to define
your own sublibraries.

2.4 DOS/VSE System Management Guide

Procedure Library
Frequently-used sets of control statements can be cataloged into the

~~=~::s~~::~o~~te!~iljrli\.j·lii• •irr~~~~~r~~taloged
statements and/or SYSIPT data. Included VSE/POWER JECL statements
will be treated as DOS lYSE comment statements. If extended procedure
support was included during supervisor generation (by specifying the
SYSFIL option) you can also catalog procedures containing data that is to
be read from SYSIPT under control of the device-independent sequential
IOCS, by your program or by mM-supplied service programs and language
translators. SYSIPT in-line data can be, for example, the control statements
processed by the librarian or the sort/merge program. Cataloged procedures
are retrieved from the procedure library by a special form of the EXEC job
control statement.
The procedures shipped in the procedure library are provided as system
installation aids. They include:
•

library-member-delete and module-link procedures

•

MSHP history file update procedures
standard label definition procedures

Delete and Link Procedures. The delete procedures are provided to assist
you in tailoring your libraries. A complete list of the delete procedures is
provided in the manual DOS/VSE System Generation. Once your system is
installed these procedures themselves can be deleted.
The link procedures are provided to link-edit SCP modules contained in
the relocatable library to the core image library. These procedures are
provided for system-service purposes (the SCP's have been link-edited prior
to your receiving the system).
MSHP History File Update Procedures. If you have installed a component
without the use of MSHP (Maintain System History Program) there is no
entry in the history file for that component. This can occur if, for example,
you have a DOS/VS Release 34.0 or earlier with a licensed program, such
as DOS/VS COBOL, running under it. The MSHP history file update
procedures may be used to create a history file entry for the component, in
this example DOS/VS COBOL. Now, you may use MSHP for subsequent
modification (updates, maintenance etc.) of that component. For more
details on the use of the program MSHP see DOS/VSE Maintain System

History Program (MSHP) User's Guide.
Standa!'d L4!ool Procedures. These procedures are discussed in section Label
Information Area in this chapter. A complete listing showing the contents
of the procedures is included in the Program Directory Document shipped
to all recipients of DOS lYSE.

Private Libraries
Private libraries can be defined for the core image, relocatable, and source
statement libraries. The procedure library is supported as a system library

Chapter 2: Planning the System 2.5

only. Private libraries are created by using the program CORGZ and have
the same format as the system libraries.
You may establish private relocatable or source statement libraries
either to supplement or to replace the system libraries on the SYSRES file,
thereby extending the space available to the system core image library.
Conversely, you may reduce the size of the system core image library by
cataloging selected programs in a private core image library.
Private libraries are also useful in a testing environment where you may
keep working copies of your programs intact on a system library while you
test modifications of the same programs on a private library. Private
libraries thus add a great deal of flexibility to your system.
You may define as many private core image, relocatable, and source
statement libraries as desired, each serving a particular purpose. For
instance, having a separate core image library for each partition, each on a
separate disk drive, would reduce disk arm movement on the SYSRES
volume, which means faster access to the libraries.
When you define the private core image library extent (associated with
the logical name SYSCLB) it can reside on any disk volume that is
supported by DOS/VSE. Multiple private core image libraries can reside on
one volume or they can be created on separate volumes. They can be
created on the same volume as SYSRES, but this is not recommended
unless the access level is low. SYSCLB can be assigned only permanently
(not temporarily).
In an SCP only environment, private relocatable (SYSRLB) and private
source statement (SYSSLB) libraries are restricted to the same device type
as the SYSRES device; the private core image
can be on a device
type different from that of the SYSRES file.

Choosing the Libraries lor all Instalilltioll
In an operational DOS/VSE, all SCP components must reside in the system
core image library. Therefore, a system core image library must be present
in every DOS/VSE installation. Which of the other libraries you need
depends largely on the type and amount of work to be done and the
resources available at your installation.

Relocatable and Source Statement Libraries
Although these libraries are optional, few installations can operate
efficiently without them. H, for example, you work with a PL/I compiler
and you need to have the PL/I resident library routines on-line at all times,
these routines must be in the relocatable library. (The only - and very
inefficient - alternative would be to include the physical card decks for
such modules in-line with the linkage editor input.) Similarly, when you
assemble programs that use mM-supplied macros, the corresponding macro
definitions must be present in the source statement library.

2.6 DOS/VSE System Management Guide

The same advantages as those gained by having ffiM-supplied modules
in a library can of course be obtained if you store your own object modules
or source statement books in a relocatable or source statement library. The
more information you have on-line in a library the less card handling is
required and the more efficient your system will operate. Because the disk
space available to the libraries is limited, you may prefer to reduce the
number of SCP components in the relocatable and source statement
libraries to a minimum to allow for sufficient space for the core image
library. If additional disk drives are available, the space problem can be
solved by creating private libraries.

Procedure Library
In most data processing installations there are a number of programs that
are frequently executed. An inventory control program, for instance, may

have to be run daily or weekly. Or a payroll program may have to be
executed weekly or monthly. These programs are probably used for a long
period of time without being changed.
For each of these programs, there would be one or more sets of job
control statements which the programmer prepared and tested when the
program was first run. These sets of job control statements can be
cataloged as cataloged procedures in the procedure library; then, to retrieve
a set, only one statement is reqUired. This minimizes repetitive operator
handling (which often includes the replacement of defective cards or
reinsertion of diskettes) and reduces machine time and errors.
A cataloged procedure is exactly the same as what is described above
as a fixed set of job control statements. But the individual procedure is no
longer collected by the operator and selected manually for use; instead, it is
cataloged and retrieved through a special form of the EXEC job control
statement. Cataloged procedures can be modified as they are retrieved from
the library.
The use of cataloged procedures is discussed in Chapter 3, Using the
System.

Determining the Location

0/

the Libraries

Having decided which libraries you want in your system, you must
determine where on the available devices these libraries are to be placed.
All system libraries must reside in the SYSRES extent of the system disk
pack in a predefined sequence (see Figure 2-1). Although it is theoretically
possible to have private libraries on the system pack, outside the SYSRES
extent, this is not recommended because it involves increased movement of
the disk arm.

Chapter 2: Planning the System 2.7

Note: For details on SYSRES refer to
Appendix A: System Layout on Disk.

•

end of SYSRES extent

FJgUl"e 2-1. The Relative Location of the Four System Libraries

H you have additional disk drives, you can define private core image,
relocatable, and/or source statement libraries on the extra volumes. Private
relocatable and private source statement
volumes must be of the

iiiip::v~~ !,~~~ge Iib£~::~ "" ~~~~y disk device iype
supported by DOS/VSE. The system relocatable and system source
statement libraries can be removed from SYSRES and established as private
libraries; the system core image library, however, must always be present on
SYSRES. It can be supplemented but not replaced by a private core image
library. The procedure library is supported only as a system library; you
cannot create a private procedure library.
Figure 2-2 shows two examples of how you can organize the libraries in
a system with three disk drives. Any other combination of libraries on the
available devices is possible.
The examples in Figure 2-2 are to demonstrate that you can distribute
your private libraries among the available devices as you may see fit,
provided you observe the existing restrictions regarding device types. A
more practical example of how you can organize your libraries is given in
Figure 2-3. The example assumes a system with three disk drives, but it is
also applicable if you have only two drives or more than three. The
organization of the libraries in this example is especially useful when you
need large amounts of data on-line during execution.

2.8 DOS/VSE System Management Guide

SYSRLB
SYSSLB

If a private relocatable library and a private source statement library are to replace the corresponding system library, the core image library
directly precedes the procedure library. These private libraries can also be used to supplement the system relocatable and source statement
libraries, in which case the SYSRES file would appear exactly as shown in Figure 2-1.

SYSCLB

A private core image library can only be used to supplement the system core image library, which must always be present on SYSRES.
Several private libraries may reside on the same disk as illustrated.

FJgUI'e 2-2. Alternative Locations of the Libraries

Chapter 2: Planning the System 2.9

D

Compiling - Assembling - Link-Editing

Drive X'190'

Drive X'191'

Di'ive X'192'

The system cOre image library (CI Ll contains only those programs required for execution-time·
processing. The compilers, assemblers, and the linkage editor are kept in the private core
image library (PCI L).

EI

Processing

Drive X'190'

Drive X'191'

Drive X'192'

For execution-time processing, the private libraries are no longer required and can be replaced
by a data volume. Thus, maximum possible space is allowed for processing data.

CI L
PL
PCIL
PR L
PSSL

system core image iibrary
procedure library
private core image library
private relocatable. library
private source statement library

Figure 2-3. Example of Library Organization

2.10 DOS/VSE System Management Guide

Planning the Size and Contents of the Libraries
When planning the libraries for an operational system, you must decide on
their precise contents and size for daily use. Although you can change the
size of your system libraries at any time after system generation (by means
of the librarian programs), you should try to anticipate future space
requirenients and, if possible, provide this space. Such detailed planning can
eliminate the need for a complete reorganization of the libraries which
would be necessary if the extension of a library results in an overflow on
just one disk pack. Careful planning of the private libraries will save you
additional work because you cannot easily redefine the extents of a private
library once it has been created. To change the size of a private library you
must create a new private library and copy the contents of the old library
into it.
Consider the following factors before deciding on the contents and size
of the libraries:
•

The average size of a program iti-your installation.

•

The number of programs you want on-line.

•

The amount of space available.

The core iImige library, for example, is the library in which you normally
keep most of your programs. (Otherwise, each program must be submitted
to the linkage editor and placed in the core image library temporarily before
it can be executed.) Therefore, ensure that your core image library is large
enough to accommodate all programs that must be on-line; this includes
your own programs as well as ffiM-supplied components.
Special considerations apply when you work With an on-line private
core image library:
•

Phases whose names start with $ could be in a private core image
library, but it is more efficient to keep them in the system core image
library. When a $ phase is required, DOS/VSE first searches the
system core image library and then, if it does not find the phase,
searches the assigned private core image library.

•

For all other phases (not beginning with $), first the private and then
the system: core image library is searched; thus, if you work with a
private core image library, search time is reduced for these phases
cataloged in the private core image library.

The system relOcatable and source statement libraries initially contain more
(ffiM-suppiied) members than you normally use for daily operation. By
deieting from your system libraries those members which you do not need
daily you are creating operational libraries. This reduces the disk space
requirement of the SYSRES extent. In planning the contents and size of an
operational relocatable library, determine which of the ffiM-supplied
modules can be deleted and how much space you need to store your own
object modules on-line.
With one disk pack available for system files, you may prefer to
maintain only enough free space in the relocatable library of the operational
pack to contain the modules for the largest component in the system. This

Chapter 2: Planning the System

2.11

small relocatable library permits temporary insertion of any component in
relocatable format. The component can then be immediately link-edited into
the core image library and deleted from the relocatable library.
Similar considerations apply to an operational source statement library.
Determine which of the ffiM-supplied components you need on-line, which
should be transferred to a backup volume for future extensions of your
system, and which can be deleted entirely.
If you intend to use the procedure library, you should allocate sufficient
space for it on the SYSRES file during system generation. In estimating the
. b
amount of space required, consider the number of' .
control statements and SYSIPT data records (source modules, utility control
statements, etc.) you expect to store in the procedure library.

After you have determined the space requirements for your libraries in
terms of number and size of programs, you must define and allocate the
amount of disk space needed to accommodate these programs. A set of
formulas is available to calculate the disk space required for each library.
These formulas are contained in DOS/VSE System Generation.
The contents of the libraries are identified in the Memorandum to Users
(shipped with the distributed DOS/VSE system). The storage requirements
(sizes) for these components and macro definitions are identified in the
section for each component.

System and Workflles
The SYSRES file is only one of the system files that must be planned. The
location of the other system and workfiles and their sizes deserves some
thought. The system files besides SYSRES are:
Page data set
Recorder file (SYSREC)
Hard copy file (SYSREC)
History file (SYSREC)

Page Data Set
If you have the licensed program VSE/POWER installed, the page data set

should not be placed on the same drive as the VSE/POWER data files if
this can be avoided. You should attempt to place the page data set on a
pack that has relatively low activity yet is on-line all the time. Normal data
files are not conducive to this approach as you probably do not want to
leave these files on-line when they are not needed. In many cases the best
place for the page data set is on the same pack that contains the SYSRES
file. A user with only two disk drives should place the page data set on the
pack that contains SYSRES. For information on the size of the page data
set see Defining the Page Data Set in this chapter.

2.12 DOS/VSE System Management Guide

Recorder File
The recorder file contains recovery management support statistics provided
primarily for mM service personnel to analyze the performance of your
system. The information collected is related, for example, to:
•

I/O errors

•

CPU errors

•

IPL reason codes

The system logical name used for the recorder file is SYSREC. The file
name is USYSRC. The SYSREC file must be defined as a disk extent on a
DASD type that is supported by DOS/VSE as SYSRES.
The recorder file is created immediately after the first IPL for your
DOS/VSE with the SET RF=CREATE command. The file is opened by
the first occurrence of a / / JOB statement after IPL. No / / JOB statement
may be submitted prior to the SET RF=CREATE command. See Starting
the System in Chapter 3, Using the System.

Hard Copy File
The hard copy file, a disk extent, must be on the same device as the
recorder file SYSREC. The system logical name is SYSREC and the file
name is USYSCN.
The hard copy file contains all of the messages displayed on the display
operator console (DOC). These messages can be retrieved on SYSLOG by
using the operator redisplay (D) command, or on SYSLST by using
program PRINTLOG. The hard copy file is created immediately after the
first IPL with the SET HC=CREATE command. The file is opened by the
occurrence of the first / / JOB statement after IPL. See Starting the System
in Chapter 3, Using the System.

ITlStory File
Each system needs a history file containing information about the
components of the system and the fixes applied to those components. The
history file is used by MSHP (Maintain System History Program) for the
recording of information about your installed components. When
DOS/VSE is shipped to you, a history file is also shipped. This file reflects
the change level of the supplied DOS/VSE SCP components. An
up-to-date history file eases maintenance of your system.
The history file is a disk extent and must be on the same device as the
recorder and hard copy files. The system logical name is SYSREC and the
file name is USYSHF.
For information on installing the supplied history file consult
DOS/VSE System Generation. How MSHP uses the history fue is
described in DOS/VSE Maintain System History Program (MSHP) User's
Guide. You should also consult DOS/VSE System Utilities for information
on BACKUP/RESTORE and those programs' relationship with the history
file.

Chapter 2: Planning the System 2.13

Workfiles
Workfiles are temporary files that are used by a program during the
execution of a given application. User-written programs as well as
ffiM-supplied programs can use workfiles. Workfiles used by your own
programs must be defined, created, and named individually by you. They
are not discussed here.
System workfiles are used in compiling (assembling) source statements
and preparing input for the linkage editor. System workfile naming uses the
following conventions:
Symbolic Name Fde Name

SYSLNK
SYSOOl
SYS002
SYS003
SYS004
3YSOOS
SYS006

2.14 DOS/VSE System Management Guide

USYSLN
USYSOl
USYS02
USYS03
USYS04
USYSOS
USYS06

For example, the assembler requires three workfiles to translate source
input and one workfile (SYSLNK) to prepare linkage editor input.
The workfiles are defined via / / DLBL and / / EXTENT statements.
They are opened and created when needed.
Listed below are the symbolic device requirements for the Assembler,
DOS/VS COBOL, and DOS/VS RPG IT, the language translators, most
frequently used under DOS/VSE.
SYSLNK SYS001 SYS002 SYS003 SYS004 SYS005 SYS006
Assembler

L

M

M

M

DOS/VS
COBOL

L

M

M

M

DOS/VS
RPGIT

L

M

M

M
0

=

L

=

M

0

0

Mandatory
Optional
Required when link-editing

The size requirements of these files vary. Refer to DOS/VSE System
Generation which gives the formulas for calculating the size requirements of
the assembler and linkage editor workfiles. DOS/VS COBOL and DOS/VS
RPG IT workfile sizes are described in their respective installation guides.
To compile and link in two or more partitions simultaneously you will
need a set of workfiles for each partition in which you plan to compile and
link programs. A method for handling this situation is given in section
Label Information Area which follows.

Label Information Area
The label information area is part of the SYSRES file and follows the last
library in SYSRES. If SYSRES is an FBA device, the label information area
comprises 200 blocks. For CKD devices the area is two cylinders. (For the
3340 disk, it is 3 cylinders and for the 3350 it is 1 cylinder).
For FBA devices, but not for CKD devices, you may change the size of
the label information area using the RESTORE program. See DOS/VSE
System Utilities for details on this program.

Chapter 2: Planning the System

2.15

Usage of the label information area is described in Chapter 3, Using
the System.
Entries in the label information area point DOS/VSE to the appropriate
files on a given disk pack. mM provides standard label procedures in the
procedure library for placing standard label information into the label
information area for the following files:
Yde Name

Yde-ID

Symbolic Name

USYSRS
USYSRC
USYSHC
USYSHF
USYSLN
USYSOI
USYS02
USYS03
USYS04
USYSIN*

DOS.SYSRES.FILE
DOS/VS.RECORDER.FILE
DOS/VS.HARDCOPY.FILE
DOS/VS.HISTORY.FILE
DOS/VS.SYSLNK.FILE
DOS/VS.WORK-FILE.l
DOS/VS.WORK-FILE.2
DOS/VS.WORK-FILE.3
DOS/VS.WORK-FILE.4
DTTEPTF

SYSRES
SYSREC
SYSREC
SYSREC
SYSLNK
SYSOOI
SYS002
SYS003
SYS004
SYSIN

* SYSIN labels for diskette cardless system.
The label information assumes you have taken the default library allocations
when you restored your system from tape to disk. If you use different
library allocations or if your page data set size is larger than the default,
prepare your own label information and execute your own
/ / OPTION STDLABEL run. If you wish to add standard label
information, run the supplied standard label procedure(s) (or your own)
and supply also the new entries.
The Memorandum to Users shipped with DOS/VSE lists the standard
label procedure names and the contents of those procedures.

Planning for Compiling in More Than One Partition
Once the standard label area contains label information for the workfiles
you can now assign the symbolic names (SYSnnn) to some physical drive
and start compiling. Initially there is only one set of / / DLBL and
/ / EXTENT statements for each workfile (USYSOl, USYS02, etc.), so you
cannot run compiles simultaneously in two different partitions.
The DOS/VSE open routines always look for the label information in
the label storage area in the following sequence:
1. partition userlabel area
2.

partition standard label area

3. system standard label area
To cause each partition to have its own set of workfiles, place the necessary
label information in the partition standard label area associated with that
partition.
The job control program will write label information to the partition
standard label area of the partition in which job control is running when it
encounters the / / OPTION P ARSTD statement.

2.16 DOS/VSE System Management Guide

(a)

(b)

II
II
II
II
II
II
II
II
II
II
II
II
II
II
II
II

OPTION PARSTD
DLBL IJSYS01,'BG-WORKFILE-1' ,O,SD
EXTENT SYS001,,1,O,12,12
DLBL IJSYS02,'BG-WORKFILE-2' ,O,SD
EXTENT SYS002,,1,O,24,12
DLBL IJSYSLN,'BG-SYSLNK' ,O,SD
EXTENT SYSLNK,,1,O,36,12
OPTION PARSTD
DLBL IJSYS01,'F2-WORKFILE-1',O,SD
EXTENT SYS001,,1,O,48,12
DLBL IJSYS02,'F2-WORKFILE-2' ,O,SD
EXTENT SYS002,,1,O,60,12
DLBL IJSYSLN,'F2-SYSLNK' ,O,SD
EXTENT SYSLNK,,1,O,72,12
DLBL IJSYSCL,'PCIL-FOR-F2',O
EXTENT SYSCLB,,1,O,84,24

Job streams (a) and (b) above, when run in the BG and F2 partitions with
appropriate ASSGN statements, will enable simultaneous use of the
DOS/VS RPG IT compil~r in both p_artiti()ns. When running the compiler in
either partition, the OPEN routines will search for file names USYS01,
USYS02, USYSLN. In the BG partition the compiler will use cylinder 1
through cylinder 3 of a 3340, and in the F2 partition cylinders 4 through 6.
Note:

Label information for a private core image library (PCIL) has
been provided in job stream (b). To link edit in a foreground
partition a PCIL must be permanently assigned. See Creating
and Working with Private Libraries in Chapter 3, Using the
System for information on creating private libraries.

Tailoring the Supervisor
The ffiM-shipped DOS/VSE includes three supervisors, one of which is
used during system gener~tion. Part of your system generation procedure is
to plan and assemble your tailored supervisor. You may generate a system
to run either in ECPS:V~E or 370 mode for the 4300 processor, or in 370
mode for the System /370 CPUs.
This section describes the optional and required parameters of the
DOS/VSE generation macros in a topical sequence; that is, such that
related options are presented together regardless of the macros in which
they are contained. For the exact formats of these macros, refer to
DOS/VSE System Generation. This section discusses, in addition, the
advantages or necessity of specifying the support for the various features in
the supervisor.
In tailoring your supervisor to the requirements of your installation, you
can take into consideration future plans to add functions that require
supervisor options by including their requirements in your supervisor
generation macros. This allows you to upgrade your installation without
having to regenerate your supervisor. In your library planning, you should
include space for modules or components that will be required by a planned
future configuration or functional upgrades. The storage cost of additional
supervisor options ma,y be estimated by conslilting section Storage
Requirements in DOS/VSE System Generation.

Chapter 2: Planning the System 2.17

Storage MalUlgement Options
This section describes those supervisor options that relate to
•

The size of virtual storage (applies to 370 mode only)

•

The number of partitions and their priorities

•

The layout of the page data set

•

Facilities for improving the paging mechanism

Virtual Storage Size
The method of defining virtual storage is different for ECPS:VSE mode and
370 mode.
ECPS:VSEMode Virtual Storage Def"mition•.
In ECPS:VSEmooe, the default value for the total size of your virtual
stQrage is 16M (16,777,216) bytes. the operator may change this value at
IML (Initial Microprogram Load). For details about IML on a 4300
processor, see the Operator's Library Procedures manual provided by mM
for the pertinent processor model. The value is used by DOS/VSE to
4~termine tl1e size of the page data set. How to define the page data set is
discussed later.
370 Mode Virtual Stonge Def"lDition.
In 370 mode, virtual storage is composed of virtual address space and real
address space. You specify the size of the virtual address space in the
VSIZE operand of the VSTAB generation macro. The size of the real
address space is determined automatically when you execute the Initial
Program Load (IPL) program. The value you specify for VSIZE is equal to
the sum of the virtual address space allocated to the defined partitions and
the size of the shared virtual· area.
The value specified for VSIZE cannot be changed without a new
supervisor generation. The maximum size of virtual storage is 16M
(16,777,216) bytes. The maximum value you can specify for VSIZE is 16M
minus the size of the real address space. The value you specify for VSIZE
must be equal to or greater than 704K bytes (the minimum for a two
partition system).
The value you specify for VSIZE is used by DOS/VSE to determine
the size of the page data set. Refer to Defining the Page Data Set later in
this section.

The Shared Virtual Area.
The shared virtual area (SVA) is divided into subareas as follows; a system
directory list (SDL), an area for phases, a system GETVIS area (see Figure
2-4).
You cannot define the SVA size at the time of supervisor generation;
DOS lYSE determines the size during IPL at which time you may allocate
additional space. Because the SVA space shortens the amount of virtual

2.18 DOS/VSE System Management Guide

storage that is left to the partitions, you should take the SVA and its size
into your planning considerations.

I

I

Supervisor

Virt-I.Ja~

Storage <

...
System Directory List
~-------------------

Resident, Reenterable
Relocatable Phases

> SVA

~-------------------

System GETVIS Area

FJgUre 2-4. Layout of the Shared Virtual Area

The System Directory Ust. The system directory list (SDL) contains copies
of selected entries of the system core image library directory. This provides
fast retrieval of frequently used phases. (These phases may be resident in
the SVA or in the system core iinage library.) Having SDL entries avoids
searching the system core image directory (on disk) for each phase load
request. Figure 2-5 shows the SDL and its relationship to the system core
image library.

Chapter 2: Planning the System 2.19

Virtual Storage

SOL

/

/
/

/

/

/

/

/

/

/

/

/

/

/
/

(/

/

/

/

System GETVIS Area

/

/

/
I

/

SVA

/

/
/

/

/

/

/
/

/

Reenterable, Relocatable Phases

/

/

/

/

/

/

/

/

/
/

/

/
/

/

/
/

/

I

/

/

/

I J.oL.-...a..-P_HA_S_E_X_ _~~
---

PHASEB

--------

--- ----

--- --- --- ----

PHASEA

PHASEB

PHASEX

,. ,. "
/

""

"

,. / "
/

,,.

/

,.
," "

,. "

The system directory list (SOL), built by OOSIVSE, provides for fast locating of frequently used phases either in the SVA
or in the system core image library.
The SOL entries point directly to a phase's location on disk.
The SO L entries are copies of selected Core I mage Library Directory entries.

Figure 2-5. System Directory List

2.20 DOS/VSE System Management Guide

The SVA Phase Area. The SVA phase area always contains DOS/VSE
system phases; the area may, in addition, contain mM licensed program
phases and user-written phases.
Phases that are in the SVA may be used concurrently by more than one
partition if the phases are reenterable and relocatable. Having phases Ll1 the
SVA speeds processing by:
•

eliminating loading from a core image library - When a phase is
resident in the SVA, it does not have to be loaded from the library for
each execution. This saves the disk I/O of a directory search.
Additionally, even if the phase was paged out to the page data set,
time is saved as paging is generally faster than loading from a core
image library.

•

reducing processor storage demands - If the phase is being shared
between two or more partitions, the impact on the page pool is less
than if two or more copies of the phase were loaded into storage.

The System GETVIS Area. The system GETVIS area is used by DOS/VSE
to dynamically acquire virtual storage for its own use.
An example of the GETVIS area use is the initialization of the SDAID
program. The SDAID program normally requires approximately lOOK of
system GETVIS space when it is being initialized. For more details on the
SDAID program see DOS /VSE Serviceability Aids and Debugging
Procedures.

Size of the SVA. At IPL, based upon the chosen supervisor options,
DOS/VSE calculates the SVA size. The supervisor options and their cost in
SVA space are shown in the manual DOS/VSE System Generation.
Additional space requirements for installed licensed programs such as
VSE/VSAM or DOS/VS SORT/MERGE are also automatically calculated
by DOS/VSE at IPL. The space requirements for each licensed program
are shown in the appropriate licensed program documentation. To support
user-written programs in the SVA you must indicate the required SVA
space. The parameters SDL, PSIZE and GETVIS of the IPL command SVA
are used to increase the SVA size beyond the DOS/VSE defaults.
The loading of certain phases into the SVA, and the creation of SDL
entries for them occur automatically at IPL. For information on how to
increase the size of the SVA as well as loading items not automatically
included by DOS/VSE, see the section Starting the System in Chapter 3,
Using the System.

Denning the Number of Partitions
In the NPARTS parameter of the SUPVR generation macro, you define the

maximum number of partitions for your system.
In selecting the appropriate number of partitions for your particular
installation, you should consider the type of processing you require. Assume
you want to run concurrently the following types of programs:

Chapter 2: Planning the System

2.21

•

Test cases (assemble/compile, link-edit, and execute)

•

Daily application programs

•

A spooling program, such as VSE/POWER
Teleprocessing application program.

For this case, you should generate a system with four to five partitions,
depending on the volume of application program processing. If, for
example, your system includes the licensed program ACF /VT AM, at least
two partitions must be specified: one for ACF/VTAM and one for your
VTAM application programs.
Because you cannot alter the NPARTS specification unless you
regenerate the supervisor, it may be advantageous to specify more partitions
than you see an immediate need for.

Denning Partition Priorities
A processing priority is associated with each partition in a
multiprogramming system. If you do not specify processing priorities during
system generation, DOS/VSE establishes them by default following the
concept indicated by the examples given below.
H you specify

The default processing is
(from low to high)

NPARTS=2
NPARTS=3
NPARTS=4

BG-FI
BG - F2 - FI
BG - F3 - F2 - FI

In most cases, there will be no need to select another priority sequence;
however, the PRTY parameter in the FOPT generation macro is provided
for this purpose. In the PRTY parameter you can specify the partition
identifiers in any desired sequence, and thus select another priority
sequence.

The operator can display and modify the priorities established during
supervisor generation at any time during processing with the PRTY
command. He may want to do this in order to accelerate the execution of a
given job.

2.22 DOS/VSE System Management Guide

DerIDing the Page Data Set

The page data set, a sequentially organized set of records on a direct access
device, is required to accommodate paged-out pages of programs that are
being executed in virtual mode. The size of the page data set depends on
the amount of pageable address space.
You define the page data set through the IPL command DPD. This
command is discussed in section IPL commands in Chapter 3, Using the
System.
other items,
the channel and unit number
of the
the extent.
The page data set can reside on any disk device that is supported by
DOS/VSE as a system residence device .

.;.;; DOS!VSEcalculates th~·~pp~~lilnit address according to the
amount ··pageable storage defined for your system. The usage of disk
space is shown below:
Disk Device Type

Note:

Pages per Cylinder

2314
3330
3340
3350

60
114
36
240

FBA

see note

Four FBA blocks contain one page of virtual storage; hence a 2M
byte system (2048K) requires 4096 FBA blocks (2048K + 2K x 4
blocks).

In ECPS:VSE mode, the virtual storage size to be mapped on the page
data set, is a function of the hardware. The default system size is 16M

bytes (16,384K). The default may be altered during Initial Microprogram
Load (IML) to: 2048K, 4096K or 8192K. How to perform IML is
described in the mM provided Operator's Library Procedures manual for
your central processor. If disk space is a concern, you Inight consider
reducing the virtual storage size. For example, a 16M (16,384K) system
requires 32,768 FHA blocks whereas a 4M (4096K) system requires 8192
FBA blocks.
In 370 mode, DOS/VSE uses the value specified in the VSIZE
parameter of the VSTAB macro to calculate the disk space requirements. If
your supervisor includes pageable routines, DOS/VSE reserves space on the
page data set for these routines.

Chapter 2: Planning the System

2.23

Improving the Paging Mechanism
The page handling is controlled by the page management routines of the
supervisor. You can, however, influence the paging mechanism in order to
reduce the number of page faults, to minimize the page I/O activity, and to
control the page traffic within a specific partition. You can do this by
means of three macros: RELPAG, FCEPGOUT, and PAGEIN.
RELPAG (Release Page). This macro informs the page management
routines that the contents of one or more pages is no longer required and
need not be saved on the page data set when the page frames occupied by
these pages are claimed for use by other pages. This saves unnecessary page
I/O.
FCEPGOUT (Force Page-out). The macro informs the page management
routines that one or more pages will not be needed until a later stage of
processing, and that they should be given highest page-out priority. This
prevents page-out of other pages which, should they be paged-out, might be
needed again immediately after being written onto the page data set.
PAGEIN. This macro requests one or more pages to be paged-in in
advance, so that page faults can be avoided when the specified pages are
needed in processor storage. If the specified pages are already in processor
storage when the macro is issued, they are given lowest priority for
page-out.
If you anticipate the use of one or more of the above macros in any of
your programs, specify PAGEIN=n in the SUPVR generation macro. This
generates the support for the three macros. The value of n must be 1 or
greater. It specifies the number of page-in requests that can be queued if
more than one P AGEIN macro is issued concurrently in the system.

Library Options
You may generate support for special applications in the procedure library
and for reserved supervisor space to achieve better fetching performance.
These options are described below.

Extended Support for the Procedure Library
Normally, cataloged procedures can consist of job control statements or
linkage editor control statements or both. However, with the extended
support, cataloged procedures can include data that is to be read from
SYSIPT. Such data may be, for instance, utility control statements to be
processed by a utility program.
To include the extended support for the procedure library, specify the
SYSFIL parameter in the FOPT generation macro, which is discussed in the
section Disk Options in this chapter.
More information on the procedure library is contained in the section
Planning the Libraries.

2.24 DOS/VSE System Management Guide

Second Level Directory for Core Image Ubraries
The directory entries for phases in the core image library are sorted by
phase name in alphameric sequence.
An index of the directory entries is kept in the supervisor in a second
level directory (SLD). The SLD speeds the retrieval of phases froin the
system core image library. You may specify the number of entries the SLD
will contain through the SLD parameter of the FOPT generation macro.
The value specified depends on the type of disk device that contains the
system core image library:

For CKD devices - the number of directory tracks.
For FBA devices - the number of directory blocks.
There is a PSLD parameter in the FOPT macro which specifies the number
of entries for a private second level directory (PSLD) for the private core
image libraries. You have one PSLD for each partition specified in
NP-AR'f-S in the SUPVR generation macro. You should specify a PSLD
value that accommodates for your largest private core image library; the
size of each PSLD will be based on one specification in the FOPT macro.

Telecommunication
DOS/VSE provides facilities for telecommunication, the interchange of data
between an application in the system and terminals connected via
telecommunication lines. These facilities provide the ability to define such
lines for supervisor assembly and to specify one or more access methods for
input/ output services between an application and terminals.
Teleprocessing devices (terminals) are normally attached to the CPU
through transmission control units or communications controllers. The
control unit must be defined via the IPL command ADD. In some cases
there is a direct local attachment.
The access methods, defined in the TP parameter of the SUPVR
generation macro, are the licensed programs:
•

Advanced Communication Function/VTAM (ACF /VTAM)

•

Basic Telecommunication Access Method - Extended Support
(BTAM-ES)

Supervisor support for BTAM-ES is standard, also the support for TP
balancing (teleprocessing balancing).
For detailed information on generating and using a teleprocessing access
method, refer to the appropriate teleprocessing publications. Teleprocessing
users should also pay particular attention to section I/O Options later in
this chapter and read section Balancing Telecommunication in Chapter 4,
Using the Facilities and Options of DOS/VSE.

Chapter 2: Planning the System 2.25

BTAM-ES Support
Applications using BTAM-ES can execute in either virtual or real mode. If
you have used BTAM under DOS or DOS/VS in the past, you have to
reassemble and catalog BTMOD before submitting your applications to
DOS/VSE for execution. If BTMOD and the application program were
assembled together, the application program must also be reassembled and
re-linkedited.

ACF /VTAM Support

ACF/VTAM executes in virtual mode in its own partition. When VTAM is
specified, RMS support (370 models 115 and 125 only) is automatically
generated.
As ACF /VTAM uses the PFIX macro, processor storage page frames
must be allocated to the partition in which ACF/VTAM is to run. A
separate partition is required for VTAM application programs. For
information on installing this licensed program refer to the ACF /VTAM
documentation.

Interactive Computing and Control
The licensed program VSE/Interactive Computing and Control Facility
(VSE/ICCF) offers interactive time shared computing and control services
to terminal users.
VSE/ICCF provides a collection of tools for
•

Online library maintenance

•

Context editing and text manipulation

•

Development and execution of interactive problem programs

•

Job entry

•

Monitoring of time-shared job processing.

VSE/ICCF runs in a DOS/VSE partition. Support for VSE/ICCF is
generated in the supervisor by specifying ICCF=YES in the SUPVR
generation macro.

2.26 DOS/VSE System Management Guide

Chapter 2: Planning the System 2.27

ASCII Support
In addition to processing EBCDIC files, DOS/VSE can process magnetic
tape files written in ASCII (American National Standard Code for
Information Interchange), a 128-character, 7-bit code. The high-order bit in
the 8-bit environment is zero. ASCII tape files may be either unlabeled or
labeled according to the specifications of the American National Standards
Institute, Inc. (ANSI).
ASCII tape files may be processed in any partition. Input files
containing ASCII data are translated to EBCDIC as records are read into
the I/O area. Output files described as ASCII are translated from EBCDIC
to ASCII just prior to writing the records. No user translation tables or
instructions are required.
If your DOS/VSE is required to process ASCII files, specify
ASCII= YES in the SUPVR generation macro.

Job Accounting
The job accounting interface facility provides job and job step information
that can be used for charging system use, supervising system operation,
planning new applications, etc.
When this option is selected (JA=YES in the FOPT generation macro),
job accounting tables are built in the supervisor to accumulate accounting
information. One DOS/VSE job accounting table is maintained per
partition. The format of these tables and information on how to write a
DOS/VSE job accounting routine is given in Chapter 4, Using the
Facilities and Options of DOS/VSE.
To utilize this job accounting information, you must write a routine to
store or print the desired portions of the table. This routine must be
cataloged in the core image library under the name $JOBACCT.
If the user I/O routine ($JOBACCT) is written using LIOCS with label
processing, the JALIOCS parameter of the FOPT macro must be specified
in addition to the JA parameter. JALIOCS indicates that a user save area
and a label area in the supervisor are to be reserved. The label area
replaces the one normally used by LIOCS label processing routines.
If the licensed program VSE/POWER job accounting is desired,
support for the job accounting interface is required. No user-written data
collection routine is then necessary. Refer to the VSE/POWER
documentation.

Timer Services
The following timer services are available to DOS/VSE users:
•
•
•

Time-of-day clock
Interval timer
Task Timer

2.28 DOS/VSE System Management Guide

The time-of-day clock is a standard hardware feature, while the task timer
and the interval timer require other hardware features (the clock
comparator and the CPU timer) which are standard on all System/370 and
4300 processors, except the 370 models 135 and 145. Utilization of these
timer services in DOS/VSE is briefly discussed below. Except for the task
timer, the timer services are automatically provided in DOS/VSE. Support
for the task timer is a supervisor generation option.

Time-of-Day Clock
The time-of-day (TOD) clock provides a consistent measure of elapsed time
suitable for time-of-day indication.
The TOD clock support also enables programs to issue the GETIME
macro instruction, which causes the exact time-of-day to be stored in
general register 1. A description of the use of the GETIME macro
instruction is given in DOS/VSE Macro User's Guide.
The time-of-day and the date are automatically included with each
/ / JOB and / & job control statement that is printed on SYSLST or
SYSLOG.
The ZONE parameter in the FOPT macro is associated with the TOD
support. In the ZONE parameter you indicate the difference between
Greenwich mean time (GMT) and local time in hours and minutes. If the
local time to be specified is GMT, the ZONE parameter can be omitted.
During the IPL procedure, if IPL is performed from SYSLOG, a
message is printed on the operator console to inform the operator of the
status of the date, clock, and zone. If necessary, the operator can correct
this information in the SET command.

Interval Timer
The interval timer can be used by programs (main tasks or subtasks or
both) that need to schedule certain processing based on discrete time
intervals. If a problem program is written with the appropriate macros and
routines, the interval timer causes an external interrupt when the time limit
established by the program has elapsed.
Several problem program macros relate to interval timer support. For
information about using these macros, refer to DOS/VSE Macro User's
Guide.

Task. TIDIer
The task timer can be used by the main task of the partition owning the
task timer to escape from processing and enter an exit routine after a
specified period of time. This discrete time interval is decremented only
when the main task is executing. If support for the task timer is included in
the supervisor, and the owning partition's main task is written with the
appropriate macro instructions and routines, the specified task timer routine
is entered when the time interval has elapsed.

Chapter 2: Planning the System 2.29

To include support for the task timer in the supervisor, specify the
TTIME parameter in the FOPT generation macro.

H an exit routine is not specified in the STXIT IT macro, the interrupt
is ignored. The SETI macro is used to set the time interval, and that
interval can be tested or canceled by means of the TESTI macro. The
EXIT TI macro is used to return control from a task timer exit routine.

Console BUffering
In an installation with a relatively slow console device, the entire system
can be held up while messages are being issued to the operator. Console
buffering support builds a queue of output messages and returns control
immediately to the partition requesting the output. The messages are then
written as soon as the console becomes available.
Console buffering is useful in two cases:
•

when your console device is a 3210/3215 printer keyboard, or

•

when your console is a display operator console and a printer is used to
produce a hard copy of messages while they are displayed on the
screen.

In an installation without such printers, a performance improvement cannot

be obtained by requesting console buffering support. On the contrary,
console buffering may in that case even work to your disadvantage: certain
DOS/VSE tasks such as error recovery routines issue high priority
messages. H your console is a display operator console, and a DASD rather
than a printer is used as a hard copy file, then, depending on the size of
your console buffer, messages may be issued to the screen in such rapid
succession that a message like INTERVENTION REQUIRED ... can easily
be overlooked by the operator.
Support for console buffering is indicated by the CBF=n parameter in
the FOPT generation macro (where n is the number of I/O requests to be
buffered). H you decide to use console buffering, at least one buffer should
be specified for each partition or task issuing messages so that buffers are
available and the task can continue processing while the message is being
printed. Two per partition is recommended. Console buffering is not split
per partition, but used by the whole system.

2.30 DOS/VSE System Management Guide

User Exit Routines
If required, the supervisor can permit user routines to gain control when
any of the following types of events occurs:

•
•
•
•
•
•

Interval Timer Interrupt (IT)
Program Check Interrupt (PC)
Abnormal Termination (AB)
Operator Communication Interrupt (OC)
Task Timer Interrupt (TT)
Page Fault Handling Overlap (PHO)

Both the supervisor and the problem program that contains the user routine
must have the proper code to establish an interface.
The problem program that wants to utilize the options must contain
code to set up the interface. For the first five events, code can be generated
by the STXIT macro. For the last event, code is generated by the SETPFA
macrj)~ ThiS-codeis- assembled -in the -main-line of a pr-Oblem p-r-ogram.
Short descriptions of the support for each of the types of user exit
routines follow, indicating the associated problem program macros. For
information on how multitasking affects this support and what happens if
multiple events coincide, refer to DOS/VSE Macro User's Guide. Some
high-level languages offer similar facilities, for details of which see the
appropriate programmer's guide.

Interval Tmer Exit
Suppose you want to take a checkpoint on a job at a certain time after it
has started. Code the STXIT to set up the interface of your user-exit
routine with the supervisor; use the SETIME macro to set a time interval.
When that interval elapses, an interval timer interrupt occurs and control is
given to your user routine. The user routine need not be entered
immediately. For instance, if the user routine is in the background partition,
and a foreground partition is active, the user routine will not be entered
until the background partition becomes active.
To find out the time remaining in an interval, a program can issue the
TTIMER macro instruction. The supervisor then loads this value in general
register O. This macro can also be used to cancel the remaining time in the
interval.

Program Check Exit

Programs can establish linkage from the supervisor to a user program-check
exit routine by coding an STXIT macro. If a program check occurs within
the program, the supervisor gives control to the user routine instead of
discontinuing the program. The user routine can analyze the program check
and choose to ignore, to correct, or to accept it.
If the check is ignored, control can be given back to the supervisor by
executing an EXIT PC macro; if the user routine can correct the error

Chapter 2: Planning the System 2.31

condition, the routine can request via the EXIT macro that processing of
the main line program continue.

H the problem cannot be resolved, the program check is accepted as
valid. The user routine can then terminate further processing of the program
by issuing a CANCEL, DUMP, JDUMP, or EOJ macro.
The ability to include a user routine to process program checks can be
especially advantageous when using LIOCS. In that case, I/O housekeeping
such as closing files and freeing tracks can be performed before termination
of the job or task.

Abnormal Termination Exit

Programs can establish linkage from the supervisor to an abnormal
termination exit routine by issuing an STXIT AB macro.
The macro allows a user routine to get control from the supervisor
before an abnormal end-of-job condition discontinues the processing of the
program. The user routine normally ends with one of the termination
macros (CANCEL, DUMP, JDUMP or EOJ) to terminate the problem
program and to return control to the supervisor, rather than by initiating
the continuation of the problem program.

Operator Communications Exit

DOS/VSE allows problem programs to provide a routine for handling
external interrupts from the operator. This support is useful in a number of
applications, for example:
•

A change in the environment is needed. A message is then issued by
the program. For example: MOUNT TAPE XXX on unit xxx and press
the interrupt key.
In telecommunication, the OC exit allows the operator to start and stop
activities on certain lines or terminals, or to invoke diagnostic
procedures. In this case, program run sheets with explicit instructions
may be required to ensure understanding between programmer and
operator.

The external interrupt that links to an OC user exit routine is caused by
pressing the request key and, when the attention routine identifier AR
appears, replying MSG followed by the partition identifier (such as BG or
F2).

Task Timer Exit

Task timer support is included in the supervisor by the TTIME parameter
of the FOPT generation macro. This parameter also identifies the partition
owning the task timer. Only the main task in the owning partition can
utilize the task timer.
The time interval is specified in the SETI macro and is decremented
only when the main task is executing. The exit routine specified in the

2.32 DOS/VSE System Management Guide

STXIT 'IT macro is entered when the interval has elapsed, provided linkage
between that routine and the supervisor has already been established, at
that point of program execution.
To find out the time remaining in an interval, the task can issue a
TES'IT macro. This causes the time remaining in the interval to be
returned in register O. The task can aiso issue a TESTT CANCEL to
cancel the remaining interval time. In this case the exit routine is not
entered.

Page Fault Handling Overlap Exit
A user routine can continue processing during the time a page fault is being
handled by the system, provided this page fault occurs in the same task and
not in a supervisor routine invoked by this task. This support is of interest
only for programs executed in virtual mode and making use of
user-developed subtasking rather than ffiM-supplied multitasking.
Such programs may issue the SETPFA macro instruction to establish
linkage from the page management routines in the supervisor to a user
routine, called the page fault appendage routine. The usage of the SETPFA
macro is described in DOSjVSE Macro User's Guide.

Disk Options
Options are provided for some DASD devices. These options are:
•
•
•
•

System files on disk (or diskette)
DASD file protection
Track hold
Rotational position sensing

System Fdes on Disk or Diskette
The system logical units SYSRDR, SYSIPT, SYSLST, and SYSPCH can be
assigned to a disk or diskette device. When a system logical unit is assigned
to a disk, it must have only one extent.
For example, you may want to catalog the output from a language
translator to the relocatable library. During the language translation step,
SYSPCH could be assigned to a disk extent. The resultant object module
would then be cataloged via the librarian program MAINT by assigning
SYSIPT to the same disk extent.
Support for system files on disk or diskette is specified in the SYSFIL
parameter of the FOPT generation macro.
The SYSFIL option is required to implement extended support for the
procedure library. This means that cataloged procedures may contain in-line
SYSIPT data. The sets of control statements that can be cataloged into the
procedure library are, therefore, not limited to job control or linkage editor
control statements. (See also Library Options earlier in this chapter.)

Chapter 2: Planning the System 2.33

For systems without magnetic tapes, the SYSFIL option is required in
order to install mM programs and apply program maintenance, which, in
this case, must be distributed on disk packs in SYSIN format.

DASD Fde Protection
This feature is provided to prevent user programs, which utilize DAM or
user-written channel programs for writing onto DASD, from writing data
outside of the limits of the DASD file currently being accessed. This might
happen if, for example, a randomizing algorithm produces an unexpected
DASD address which is outside the file limits.
DASD file protection support is indicated in the DASDFP parameter of
the FOPT generation macro.
DASDFP gives protection on the basis of programmer logical units. If
two DASD files are open in the same partition and use the same
programmer logical unit, the DASDFP option does not give any protection
to either of the two files.
If you are using physical IOCS, you must use the DTFPH macro to
define the file. The file must be opened using the OPEN or OPENR macro,
and each channel program must commence with a long seek (X'07')
command, and contain no chained long seeks.

Specifying DASDFP does not prevent file contention between
partitions, or within partitions if the same symbolic unit is used. Thus, more
than one partition may access the same file at the same time and may even
attempt to update the same record simultaneously. The track hold option
(TRKHLD) is provided to solve this problem. Note, however, that all
DASD writes (DAM and others) will be checked for being within the
file-protect range.
Note that, for CKD devices, no protection is given to partially allocated
cylinders; files to be protected should begin and end on cylinder
boundaries.

Track Hold Option
The track hold option is used to ensure that, while data in a DASD file is
being modified by one task, no other task in the system can access that
data. The facility is available to all DOS/VSE disk access methods,
including VSE/VSAM (and also ISAM Interface, except the LOAD
function).
The track hold option can be selected by specifying the TRKHLD
parameter in the FOPT generation macro.
Additionally, user programs must invoke the track hold feature. For the
track hold feature to be effective all programs accessing the same file must
request its use.
The track hold feature is requested in the DTF of the user program by
specifying HOLD =YES. For VSE/VSAM files the track hold feature is

2.34 DOS/VSE System Management Guide

specified at the time the file is defined via the SHARE OPTION 4
parameter.
. For FBA devices, the track hold facility protects the range of blocks
which contains the accessed data. For eKD devices, the facility protects the
track that contains the data being accessed.
Deadlock occurs if one task is waiting for a DASD area held by a
second task and the second task is waiting for a DASD area held by the
first. This can be prevented by establishing the convention that every task
must be programmed so that it will not attempt to hold more than one
DASD area at a time. Deadlock may also occur if the maximum number of
DASD areas demanded to be held by all tasks combined exceeds the
niaximum specified in the TRKHLD parameter.

Rotational Position Sensing

Rotational Position Sensing (RPS) is a feature on all mM eKD disk
storage devices except 2311,2314, and 2319; it is optionally available on
mM 3340. It provides the ability to overlap positioning operations on one
device with service requests for other devices on a block multiplexer
channel (or its equivalent on System/370 Model 115 or 125).
DOS/VSE makes use of the feature if you specify RPS=YES in the
FOPT generation macro. However, you should not request RPS support if
you use the 23xx emulator on a Model 115 or 125.
Better channel utilization can increase system throughput, especially in
large multiprogramming systems with heavy concurrent I/O activity.
Because a selector channel is monopolized once a channel program has
been initiated, no other device on this channel can be accessed until the
data has been transferred. With block multiplexer channels and the RPS
feature of DASD devices, however, the device can disconnect from the
channel during positioning operations. The channel is then available for
other requests so that other devices on the channel can be accessed.
Overlap of positioning to a record on a track requires adding RPS
eews to the direct access storage device channel programs. DOS/VSE
system control and service programs that support RPS, dynamically build
these eews during program execution provided that the supervisor is
generated with RPS support and that the direct access storage device has
the feature.
RPS support for DOS/VSE is provided in all access methods which
support RPS DASD devices and in the DOS/VSE system control and
service programs where the implementation benefits total system
performance. Implementation of RPS support in DOS/VSE utilizes virtual
storage to enable you to use RPS to avoid recompiling or relink-editing
your problem programs. The partition GETVIS area is used to generate an
extension to the DTF, and the shared virtual area is used to hold the RPS
phases which are used in lieu of the logic modules of LIOeS.
Efficient use of RPS depends on each channel program's ability to free
that channel so that it can service requests for other devices. Programs
using DOS/VSE DASD LIOeS access methods will have RPS channel

Chapter 2: Planning the System

2.35

programs built by the access method. Programs using PIOCS for DASD
access have to be recoded to include Set Sector CCWs and to establish
arguments for the CCWs. If this is not done, these programs will destroy
the effectiveness of RPS by monopolizing the channel.
The RPS phases are loaded into the SVA by IPL if you have specified
RPS= YES in the FOPT generation macro.
Figure 2-6 shows the organization of a user's program running in virtual
storage without RPS support.
Figure 2-7 shows how, with RPS support, this organization will be
modified when the pertinent file is opened to put the DTF extension in the
partition GETVIS area. The pointers to the RPS phases which are used in
lieu of the logic module and channel program will be put into the DTF
while the non-RPS logic module and channel program addresses will be
saved in the DTF extension. The DTF extension will be freed and the
pointers restored to their original values when the file is closed.
DASD File Support for 3330-11 and 3350. Sequential or direct-access files
can be created and accessed on the 3330-11 and 3350 disk devices in the
same way as on other mM DASDs if the pertinent program has so been
written. However, to access these devices from programs that were written
to create and access sequential and direct-access files on other mM DASD
types (such as 2314 or 3330-1), do one of the following without
recompiling or reassembling your programs:
•

Specify RPS= YES in the FOPT generation macro for supervisor
assembly. With RPS support, DOS/VSE is able to access the 3330-11
or 3350 even if the original program specified a different device.

•

If you have DOS/VSE or Release 34 of DOS/VS installed, relink your

programs. This makes them capable of accessing the 3330-11 or 3350.
The sequential disk and direct access logic modules are able to handle
all CKD disk types.

2.36 DOS/VSE System Management Guide

T

USER PROGRAM

DTF
NON-RPS CCW STRiNG
NON-RPS LOG IC MODULE

I

+
+

r---------------NON-RPS CHANNEL PROGRAM

NON-RPS
LOGIC MODULE

r----------------VIRTUAL STORAGE

}

Partition
GETVIS
area

~------------------------~

FIgUre 2-6. User Program R.unning in Vutual Storage without RPS Support

USE R PROG RAM
DTF
RPS CCWSTRING
RPS LOGIC MODULE

w

(!)

«a:

-------------NON-RPS CHANNEL PROGRAM
(not used)

o

I-

en

...J

NON-RPS

I-

LOGIC MODULE
(not used by RPS DTF
but available to other DTF)

«
::::>
a:

:;

~---------------- ....

NON-RPS CCW STRING
NON-RPS LOGIC MODULE

-----------DTF EXTENSION

j

~~~~~A~NE=-PROGR~j-

Partition

>GETVIS
area

FIgUre 2-7. User Program Running in Virtual Storage using RPS Versions of
Logic Module and Channel Program

Chapter 2: Planning the System 2.37

1/0 Options

Channel Queue
The channel queue (CHANQ) is used by DOS/VSE to schedule I/O
operations. DOS/VSE builds an entry in the channel queue whenever a
request is made for an I/O operation and the entry remains in the queue
until the operation has completed. Thus, at any point in time, the queue
consists of entries for I/O operations in progress and I/O operations
waiting for initiation. Whenever an I/O event completes, the queue is
examined to see if another entry exists for the channel, and if so, the
operation is initiated. The number of channel queue entries to be reserved
in the supervisor can be specified in the CHANQ parameter of the lOTAB
macro.
The number of occupied entries in the channel queue depends on the
activity in the system and no accurate formulas for determining the
optimum size can be given.
Specifying too small a channel queue will cause performance
degradation, too large a channel queue value will waste storage space.
Tasks or programs that request an I/O operation when the channel
queue is full will be set in the wait state until an entry becomes free.
To avoid performance degradation it is better initially to specify ample
channel queue space, and reduce the allotted space later, if desired. Given
below is a rule-oJ-thumb that you may follow:
•

Specify at least one queue entry for each I/O request that can be
issued concurrently (open files per job step per partition).

•

Specify one entry for the SYSRES file and one for the page data set.

•

Specify one entry for each task or partition in the system.

•

Specify one entry for each console buffer in the system.

•

If multiple volume files are used on the system, specify one entry for
each file being accessed at the same time.

•

Add two entries per tape drive.

•

Specify one entry for each teleprocessing line that could solicit input. If

mM 2260 local or 3270 local video display units are to be supported
by BTAM-ES, specify one entry for each display.
•

Add five entries to the total for contingencies.

When the system has been generated, run as many programs as represent
the heaviest work load; in particular, run any teleprocessing programs.
Then, before the next IPL, obtain a formatted dump of virtual storage.
An analysis of the channel queue should show that entries near the
beginning of the table have been used, whereas those near the end are
unused. Although the unused entries are normally redundant, a few surplus
entries should be retained to allow for exceptional cases. If all the entries

2.38 DOS!VSE System Management Guide

have been used, then the channel queue was almost certainly too small, and
a process of experimentation will show the correct size.
Figure 2-8 shows the channel queue as displayed in a formatted dump.
Refer to DOS /VSE Serviceability Aids and Debugging Procedures for
information on obtaining a formatted dump.

***
FRFF LT 5T
A8DR
0123P4
0123D4
0123F4
012414
01;>434
012454
012474
012494
01?4H4
0l:?4D4
O12-.F4
012')14
012534
012')54
012574
O12c;Q4
012'5'14
012<:;D4
0125F4
012614

PGS
0)

01

02
03
04
0')

06

C7

08

Oq

OA

O~

f'C

CO

(;E

ct:

lei
11
12
13

P(JPHE~

(HAl1\!

PTR

03

FF

as

01
00
06
07
08
09
OA

eCB
ADDR

I!)

30
20

OC[550

50
40

0(10:)00

06A~b8

000000
0001)00
OOf)OOO

000000

000)00

0D
OE
OF
10

OOGOOO

F-F

R.E~

OA6568
087D68

000000

11
12
13

QUFur TARLF

***

02

06

ac

CHANN~L

000000

00,)000
000')00
000')00
000000
OI)C)'}O
oor~ooo

000000

FLr; LUIj 'SI(
NfJ
10

00
00
00
00

04

m

FF
FF

0::

F~

FF
FF

FF
FF

FF
t:~

FF
Fe:
FF
FF
Fe:
FF

04

03
04
04

00
00

FF

OJ

00
00
00

FF

00
00
00

FF

FF
FF

OC

t:~

I:-F

0)

FF

FF

00
00

FF

0')

FF

00
00

F-F

FF

30
20

50

50
40
FF

FF

FF

FF
FF

FF
FF
FF

FF
FF
FF
FF

F;::

FF
FF

TRANSMIT FIX
INFORMTN FLG

F I XL 1ST

8BOOOO,)0
88000')00
330000')0
880000'10
BBOOOO00
00000000
0)0000')0
()I)OOOc.oo
(10000000
1),)0000,')0
000000 110
0')000000
f)')000000
0')000000
8·)000001)
00000000
00000000
onoooooo
')0000000
000000CO

01~144

00
00
00
00
00
00
00
00
00
00
0(')
00
00
00
00
00
00
00
00
00

AOOR

01'3168
000000
018180
01B120
00001)0

ooooao

1)000')0
000000
000000
000000
000000
000000
001)000
000000
000000
000000
000000
<)00000
000000

I NFORMA nON
USFD INTERNALLY
00014C7400000000
00014C7400000000
0001401COOOOOOOO
00014C7400000000
00014C7400000000
0000000000000000
OryOOOOOooooooooo
0000000000000000
0000000000000000
0000000000000000
000000-0000-000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000:)00000000000
0000000000000000
0000000000000000
0000000000000000
000000000000001)0

ACCUMULATED C5W
INFORMA nON
0000000000000000
0000000000000000
000029500C40OC40
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
000-0-0-00000 00 0000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
000000000001)0000
0000000000000000
0000000000000000
0000000000000000

An unused entry wi II have an F F in this location

Figure 2-8. Channel Queue Table

Supervisor Buffers for I/O Processing
Supervisor buffer space is used for the handling of I/O requests from
programs that execute in virtual mode. You specify the number of buffers
via the BUFSIZE parameter of the VSTAB generation macro.
The amount of buffer space required is dependent on the number and
type of concurrent 110 requests. The number of entries that you specify in
the channel queue table can be used as a guide. Generally three times the
number of channel queue table entries will give a sufficient number of
buffers. If ISAM is the predominant access method used or if you have
generated RPS support, you should increase the number of buffers by 20%.
Because your supervisor must end on a 2K boundary, any space
between the end of the supervisor and the next 2K boundary will be used
for I/O buffers in addition to the amount you specify in the VSTAB
generation macro.
To determine whether or not you specified a sufficient number of
buffers, use a technique similar to the one suggested for an analysis of the
channel queue. While running as many programs as represent your heaviest
work load, issue the DUMP command specifying the begin and end
addresses of the buffer area in the supervisor; if all blocks have been used,
then probably too few buffers were specified.
The use of the buffers is different in ECPS:VSE and 370 mode.

Chapter 2: Planning the System 2.39

ECPS:VSE Mode. The buffers are called work blocks, and they have a size
of 36 bytes each. DOS/VSE uses the work blocks to store information
about your channel program and the I/O areas for that channel program.
The information will be used to fix in processor storage your I/O areas,
channel program and control blocks until the I/O request has been
satisfied. The information stored is referred to as a fixlist. For example,
DOS/VSE needs one workblock per I/O request for an FBA type DASD
and two or more such blocks per I/O request for a CKD type DASD.
If you are writing your own channel programs it is suggested that you
use the IORB macro rather than the CCB so that your channel program
will contain a fixlist; processing will then be faster. For more information
about these two macros, refer to DOS/VSE Macro Reference.

370 Mode. In 370 mode the buffers are called copyblocks and have a size
of 72 bytes each. DOS/VSE uses the copy blocks to keep a copy of your
channel program and control blocks in the supervisor area.
Your channel program refers to virtual addresses and these addresses
must be translated to reflect the processor storage locations that your I/O
area(s) actually occupy. (The translation is necessary since 370 mode does
not support relocating channels which can do the address translation.) Once
your channel program is translated, the I/O area(s) are fixed in processor
storage and the translated channel program is given to the channel for
execution. If you have installed the licensed program VSE/VSAM the
minimum number of buffers you should specify is 40. To execute
DOS/VSE system utility programs, DOS/VSE needs up to 38 copy blocks.

Bypassing System Translation of I/O Addresses. In most instances, double
buffering techniques and an increase in block size can significantly reduce
the system overhead associated with channel program translation. However,
in extreme cases, you may wish to perform your own translation of channel
programs and thereby avoid system CCW translation overhead. Programs
that might require this are EXCP programs that have very high start I/O
rates and that repeatedly use the same channel programs.
DOS/VSE provides support that assists in the translation of channel
programs. This support allows you to use the VIRTAD and REALAD
macros as well as the REAL parameter of the EXCP macro. You must
obtain processor storage by means of the PFIX macro and then translate
the channel program. For detailed information see DOS/VSE Macro User's
Guide and DOS/VSE Macro Reference.
The Fast Translate or Fast Function Option. You may specify
F ASTTR= YES in the FOPT generation macro. This creates a supervisor
with fast-function support in ECPS:VSE mode and fast-translate support in
370 mode.
The feature works essentially the same way in both ECPS:VSE and 370
mode. That is, the supervisor buffers used for an I/O request are not
released when the I/O request is completed. The buffers are saved and the
referenced I/O areas are fixed in processor storage until the end of job.
This can speed I/O processing if your program has frequent repetitive I/O
requests. The overall effect on your DOS/VSE system is subjective,
however.

2.40 DOS/VSE System Management Guide

The page pool is decreased in size because the I/O areas remain fixed.
Additionally, more supervisor buffers are required than without this support.
In ECPS:VSE mode specify, as a rule of thumb, a number of buffers that is
9 times the number of channel queue entries and in 370 mode 6 times the
number of channel queue entries.
If you do not specify enough buffers or the page pool becomes too
small, the saved buffers and fixed I/O areas are released as required by
DOS/VSE.

Specification of FASTTR= YES may cause degradation of performance
when CICS/VS accesses SAM, ISAM arid DAM files.

Error Queue
The error queue option is of value to installations using a large number of
I/O devices, for instance, teleprocessing systems. The ERRQ parameter of
the FOPT generation macro allows you to specify the number of error
queue entries within the error recovery block of the supervisor. These
entries are used to record information on I/O device errors, and this
information is used by the ERP and RMSR routines. The normal default
value is five entries, but in ERRQ you can specify up to 25.

Reliability/A. vailability/ Se",iceability
DOS/VSE includes routines that analyze and record CPU, channel, and
device errors and attempt to recover from them. The data is stored on the
system recorder file (SYSREC). The information obtained from this file
serves not only as an aid in diagnosing machine errors, but also helps mM
customer engineers to increase reliability, availability and serviceability
(RAS) of your system.
If on-line recovery is impossible, the system may be placed in a hard
wait state. A message is then issued to the system operator to run either the
SEREP or EREP program to obtain the diagnostic data.

On the mM System/370 Models 115 and 125, errors in the CPU and
natively attached input/output devices (for example, card reader/punch,
disk and printer) are recorded on the system diskette (see note). This
hardware error recording is independent of the software routines. The
recorded hardware statistics may be obtained on the video display unit
(DOC), on advice of the mM customer engineer, through the LOG
ANALYSIS displays. Error recovery for channel-attached input/output
devices for these CPU models requires the use of software routines with
error recording on SYSREC, known a recovery management support
(RMS). DOS/VSE Serviceability Aids and Debugging Procedures contains
more detailed information about the various RAS features discussed below
in context with a discussion of RMS.

Chapter 2: Planning the System 2.41

Note: IBM System/3 70 Model 158 and the IBM 3031 have a similar
hardware error recording feature in addition to a software error recording
facility.

Recovery Management Support
These routines, referred to as RMS, are standard for all /370 and 4300
processors except for the System/370. Models 115 and 125. For these
models, specify the RMS parameter of the SUPVR generation macro to
obtain the RMS support of your choice.
If full RMS support is included (RMS= YES is specified or forced for
models 135 and above), the following RAS facilities are provided:

•

Machine Check Analysis and Recovery

•

Channel Check Handler

These facilities provide hardware error analysis and attempt recovery.
Another RAS facility, the Recovery Management Support Recorder
(RMSR) provides for recording of error and operational statistics on
SYSREC as follows:
•

Machine Check (CPU)

•

Channel Check

•

Unit check

•

Tape/ disk error statistics by volume

•

MDR (Miscellaneous Data Recorder)

•

IPL information

•

End-of-Day statistics held in main storage

Device ERP routines are standard for all CPU models. For models 115 and
125, if full RMS support is not desired, RMSR support for channel attached
devices, tape units, and TP devices is still included even if you specify
RMS=NO. Specification of RMS=NO will cause the system to enter a
hard wait on the occurrence of a hardware failure with no recording on
SYSREC. However, the system diskette will contain error recordings for
the CPU and natively attached devices: If your installation plans to use
DASD switching, RMS= YES must be specified.
RMSR has several options that may be specified during supervisor
assembly. These options involve the tape error statistics and error volume
analysis.
Tape Error Statistics. As a standard feature the DOS/VSE system gathers
tape error statistics. This information is accumulated in the PUB2 table for
each tape unit and stqred in the system recorder file SYSREC. For tapes
with standard labels the information is accumulated and stored per volume.
When error statistics are required to enable the monitoring of nonstandard
or unlabeled tapes, the TEBV parameter of the FOPT generation macro
gives you two options: the parameter can be specified as IR (individual

2.42 DOS/VSE System Management Guide

recording) or as CR (combined recording). IR refers to the accumulation of
error statistics between two consecutive OPENs on the same tape unit. CR
refers to the accumulation of error statistics ori the same tape unit until a
standard labeled tape is opened on that unit or uiltil a ROD command is
issued.
Error Volume Analysis. This option ,of RMSR enables you to specify the

number of temporary read/write errors thatoccur on a tape volume before
an informatory message is printed on SYSLOG. The threshold value of
temporary read/write errors is specified in the EVA parameter of the
FOPT generation macro.

Defining the System Configuration
During supervisor generation you must code various generation macros that
relate to the central processing unit, to the portability of your system and to
the I/O devices installed (or planned to be installed).

Central Processing Unit
In ECPS:VSE mode, there is no need for specifying a CPU model. In 370

mode, you must specify which central processing unit is to be used. The
specification is made in the MODEL parameter of the CONFG generation
macro.
H you plan to run your generated system on more than one CPU
model, you may specify any of the models you plan to use. However, you
must take the following precautions:

•

restrict yourself to one CPU-mode. For example, it is not possible to
generate a supervisor to be run either on a System/370 or on a 4300
processor in ECPS:VSE mode.

•

ensure disk support that fits all configurations you plan to use.

•

if you have a display operator console (DOC) installed, this DOC must
be compatible with the DOC support of your generated supervisor.
Note that the 3210/3215 printer keyboard is always supported.
Therefore, if you specify DOC=3277 in the FOPT generation macro,
for example, your actual console must not be a 125D; it can only be a
3277 DOC or a 3210/3215 printer keyboard.

•

ensure RMS support, except if you plan to stay with /370 Models
115/125. For example, if you specify MODEL =125 and you plan to
run your supervisor on a Model 138, specify RMS=YES.

•

specify the larger range of channels in the DASDFP parameter, if you
use DASD file protection.

Chapter 2: Planning the System

2.43

Display Operator Console Support

In ECPS:VSE mode, 3277 is the standard operator console support. In 370
mode, the DOC parameter of the FOPT generation macro determines the
operator console support in the supervisor. The following discussion
pertains to 370 mode only.
If you do not specify the DOC parameter, the following defaults apply:
MODEL (in CONFG macro)

Default

115, 125

1250

138, 148, 158, 3031, 4300 (in 370 mode)

3277

135, 145, 155-11

NO
(3210/3215 printer
keyboard support)

A specification other than the default is not checked or changed to the
default. For example, MODEL= 158, DOC=NO gives a supervisor that is
generated for the 158 with console support in 3210/3215 printer keyboard
mode.

I/O Devices
The supervisor generation macros that relate to the I/O devices attached to
the CPU are: PIOCS and IOTAB. These macros are discussed below.
The PIOCS generation macro defines the I/O configuration that is to
be supported. The associated parameters involve the channel switching and
disk device support.
The lOTAB generation macro, in general, defines the area for the
necessary device tables for the system. The parameters involved refer to:
•

The number of programmer logical units for each partition defined by
the NPARTS parameter in the SUPVR macro.

•

The number of job information blocks for the system. One is required
whenever a temporary or alternate assignment is made.

•

The number of DASD devices separate for each mM DASD type
included in your system configuration.

•

The number of tape devices.
Other devices like the mM 3800 Printing Subsystem, the mM 3886
Optical Character Reader, or the mM 3540 Diskette Reader.

•

The number of telecommunication devices (Models 115/125 only).

•

The estimated number of physical I/O devices.

2.44 DOS/VSE System Management Guide

Before you can actually use your I/O devices, you must define each unit to
the system, specifying its characteristics such as channel and unit address,
device type, its mode (if applicable). You do this via the ADD command at
the time of Initial Program Load (IPL).
A supervisor generation macro is not available for t}ljs pu..rpose.
Nevertheless, because the definition of your I/O devices is likely to remain
stable over a longer period, you should already at the time of system
generation give some thought to the sequence of ADD commands you are
going to use. The total number of ADD commands must not exceed the
total number of devices specified in the IODEV parameter of the lOTAB
generation macro.
Furthermore, physical I/O device addresses must be assigned to logical
unit names, via the / / ASSGN job control statement or job control
command (no / I). You cannot make these assignments at the time of
supervisor generation, even though you may want to have them remain
unchanged for a longer period of time.

Definition and assignment of I/O devices is described in sections

Starting the System and Controlling Jobs within Chapter 3, Using the
System.

Emulators
Through emulation, a program written for execution on a 1400 series
machine can be executed under DOS/VSE. The emulator program, serving
as the interface between the user program and the DOS/VSE supervisor,
runs together with the user program in the same partition.
Several emulators can be executed concurrently. One exception,
however, is the Model 125, which cannot execute two 1400-series emulator
jobs concurrently. To use a 14xx emulator on a Model 125, RPQ SU002 is
required.
Tape reading and writing on 1400-series machines can operate with odd
or even parity checking. If you will be using a 1400-series emulator and
mixed-parity tape processing, you must specify EU =YES in the SUPVR
generation macro.
Prior to executing emulator jobs, you must generate the emulator
program and catalog it into the core image library. This can be done when
the system is generated or at a later time.
For more information about available emulator programs see the
publication Introduction to DOS /VSE.

Chapter 2: Planning the System 2.45

Chapter 3: Using the System

This chapter is intended primarily for programmers who are responsible for
optimum system throughput and for servicing the installation's libraries. The
topics discussed are:

Starting the System - describes the initial program load (IPL) procedure.
It also describes how to create the file required for recording error
information, how to allocate storage to a partition, and how to start a
foreground partition.
Controlling Jobs - describes the required input to the job control
program, which controls the execution of a job; it includes a brief
discussion of label processing.
Linking Programs - -describes -the input t-O the linkage erutm program,
which links the modules produced by language translators, produces
executable phases and places them in the core image library.
Using the Libraries - provides the information on how to alter, copy, and
inspect the contents of the libraries. It also describes how to allocate space
to the libraries and how to create private libraries.

Starting the System
Before a job can be submitted to DOS/VSE for execution, the supervisor
must be read into processor storage and the job control program must be
loaded into the background partition. To do this, the operator starts
DOS/VSE by following the initial program load (IPL) procedure.
On a 4300 processor the amount of virtual storage available can be
altered during IML (Initial Microprogram Load) which is done prior to the
IPL procedure. Refer to section Virtual Storage Size in Chapter 2,
Planning the System, and also to the Operator's Library Procedures manual
for the pertinent CPU model.
This section describes the use of the IPL commands. The exact formats
of these commands are contained in DOS/VSE System Control Statements
and DOS/VSE Operating Procedures. This chapter also provides a
summary of the automatic functions of IPL; descriptions of how to load the
shared virtual area, and how to create the system recorder file (SYSREC)
and the hard copy file; a section on the optional user exit routine for
user=defined processing after IPL; and a section on enter.ng data into
SYSREC.
You must perform the IPL procedure each time you have to do one of
the following:
•

Load a new supervisor (for normal system start-up, for different
supervisor options, or to recover from a system malfunction. For the
last, refer to DOS/VSE Serviceability Aids and Debugging Procedures).

•

Modify the shared virtual area size.

Chapter 3: Using the System 3.1

Add devices to or delete them from the system configuration.
•

Set or change the time-of-day clock value.

•

Set or change the system's time zone value.

•

Change the channel and unit assignment of the system residence
(SYSRES), the VSE/VSAM master catalog (SYSCAT), SYSREC, or
the page data set due to hardware problems with the channel or disk
drive.
Create SYSREC (for the first time or because of hardware problems).

•

Replace SYSRES or the page data set because of a hardware problem
with the pack.

Initial Program Loading (IPL)
For IPL, you place the system residence disk pack on a disk drive and set
the address of that drive in the load unit switches, ready SYSLOG and the
device containing the page data set and press LOAD on the console (on the
video display/keyboard console, type in the address of the drive and press
ENTER).

Next, DOS/VSE enters the wait state. You now must indicate to
DOS/VSE the device that is to be used as the operator console (SYSLOG).
To do so, press the Request key (or END/ENTER) on the selected device.
This causes an interrupt and automatically transmits the address of this
device to DOS/VSE. (If you have installed an IPL communication device
list, DOS/VSE accepts the interrupt only if the address of the device is
contained in the list). IPL assigns SYSLOG to the device. This assignment
remains valid until the next IPL.
At this point, DOS/VSE requests you to specify the supervisor you
want to be used. You indicate this by one of the following:
•

pressing ENTER or the Request key

•

entering supervisomame[,P I N](,LOG I NOLOG]

Pressing ENTER or the Request key indicates that the pageable default
supervisor is to be loaded ($$A$SUPl,P,LOG).
Specifying P causes the loaded supervisor (default or your own) to have
certain routines pageable; specifying N causes the loaded supervisor (default
or your own) to be non-pageable. If, on entering the supervisor name, you
specify neither P nor N, P will be assumed.

3.2 DOS/VSE System Management Guide

By setting the list-option to NOLOG, you can prevent IPL from listing
the IPL commands on SYSLOG. If you don't specify the list-option, LOG
will be taken as default; that is, all IPL commands are listed on SYSLOG.
Invalid commands are always listed.
IPL now reads the supervisor into low processor storage from the core
image library. If an irrecoverable error is sensed while reading the
supervisor, an error message is displayed on SYSLOG; the hard wait status
is entered and an error code is set in the first four bytes of processor
storage. The IPL procedure must then be restarted. For more information
on wait states, refer to DOS/VSE Serviceability Aids and Debugging
Procedures.

EstabHsbing the Communications Device for IPL

DOS/VSE again goes into a wait state with all interrupts enabled (see
Note). At this time you must indicate which device is to be used to
communicate the IPL commands to the system. The specific manual
operation you must perform depends on the selected device:
•

If you wish to use the console (SYSLOG), press the Request key on
the console. (On the video display/keyboard console, you can press the
Enter key, the Request key, or the Cancel key.)

•

If you wish to use a card reader, ready this card reader. DOS/VSE
then assigns SYSRDR to this device for the duration of IPL.

•

If you wish to use an mM 3540 Diskette I/O Unit, ready it.
DOS/VSE assumes that the file IJIPL is part of the diskette and that it
contains the IPL commands in card image format (unblocked 80 byte
records).

Note: Because any interrupt will (on a first-come basis) establish the issuing
device as the IPL communication device, it is advisable that TP installations
and terminal-oriented installations with locally attached terminals, (for
example, IBM 3277) install the IPL-phase $$A$CDLO. (See IPL
Communication Device List)

IPL Commands

IPL commands serve to set or change various characteristics of your system.
They operate on the following items:
I/O configuration

ADD and DEL commands

System date and time

SET command

System disk file assignments

DEF and DPD commands

Shared Virtual Area size

SVA command

ADD and DEL commands should precede all other commands; the SVA
command is the last command to be submitted.

Chapter 3: Using the System 3.3

The ADD Command. Use the ADD command to define all your input and
output devices to your system. This definition specifies for a device the
channel and unit address, the device type, the mode (if applicable), and
whether automatic channel switching is desired.
Each individual drive of a DASD (of a 3333/3330 or 3310, for
example) requires an ADD command. Note that if one physical spindle
contains two or more logical spindles, ADD commands must be issued for
each of these logical spindles.
The following requirements should be kept in mind:
•

You can add a device only if sufficient device table space was provided
via the lOTAB generation macro during supervisor assembly.

•

If DASD file protection was generated in the supervisor and you add a
CKD DASD, the DASD must conform to the channel range specified in
the DASDFP parameter of the FOPT generation macro.

If any of these requirements is not satisfied, you will get an appropriate
error message. You must then provide space in the control blocks for the
additional device by:

•

deleting unnecessary devices of the type you want to add and then
re-issuing the ADD command, or

•

re-assembling the supervisor.

Note:

For an mM 3031 CPU, one service record file 7443 must be
defined. This allows DOS/VSE to access the system diskette on the
service support corisole. After having created the system recorder
(SYSREC) file and encountered the first / / JOB statement,
DOS/VSE reads machine check frames ·and channel check frames
from the service record file and writes them onto the SYSREC file.
Those frame records will be available as input for the
Environmental Recording Editing and Printing (EREP) program
when that program is executed.

The DEL Command. Use the DEL command to drop an I/O device from
the configuration you had established via ADD commands; this may be
necessary if, for example, you defined (ADDed) more devices than you had
allowed yourself in the lOTAB .generation macro, or if you want to correct
the device type for one of the preceding ADD commands. Because all
references to the device are removed, any subsequent ASSGN job control
statement that refers to a deleted device will not be accepted.
The Set Command. You can use the SET comm_and to set the system date,
the time-of-day clock, and the system time zone. If you specify a
time-of-day clock setting, set the time-of-day clock switch to the "enable
set" position at the exact time specified in the SET command. The SET
command is required only if the time-of-day clock has not been set. If this
is the case, a message at IPL will prompt the operator.
The DEF Command. You use the DEF command to assign the SYSCAT,
.- ·····:i and SYSREC files. This command is mandatory.

3.4 DOS/VSE System Management Guide

The SYSCAT file, the VSAM master catalog, is required if you have
the licensed program VSE/VSAM installed. If you don't have VSE/VSAM
installed, specify DEF SYSCAT=UA. SYSREC is the symbolic name used
for the system recorder file, the hard copy file and the "
Creation of these files is discussed later in this section. "

The DEF command must be submitted after any ADD and DEL
commands and prior to the SVA command. The ASSGN job control
statement or command is not valid for::;'• • •i'::SYSCAT or SYSREC
assignments.
The DPD Command. The DPD command is used to define the disk
attributes of your page data set. The operands of the command allow you
to specify

•

a device address.

•

the beginning address of the disk e~tent.

•

the disk volume ID.

•

whether or not the page data set should be formatted.

Because formatting tpe page data set is time-consuming, you should request
it only if the pack was damaged. The first time you use the page data set, it
will be formatted automatically. '
'.
The page data set can re~ide on any DASD supported by DOS/VSE as
a system residence device. To help ensure better performance, the page
data set should not reside on a pack that is subject to heavy I/O requests.
The DPD command is mandatory. It must be submitted after any ADD
and DEL commands and prior to the SVA command.

Chapter 3: Using the System

3.5

1he SVA Command. This command must be the last IPL command

submitted. The SVA command may be given with or without parameters.
The command's parameters (SOL, PSIZE, GETVIS) are used to
increase the SVA size beyond the size set by the DOS/VSE IPL routine.
They serve to add space for
•

System Directory List (SOL) entries

•

phases that you want to have loaded into the SVA

•

the system GETVIS area.

H the parameters are not specified during IPL, no user SDL or phase space

is reserved in the SVA for user phases. An SVA will be allocated which is
large enough to contain:
•

Phases required for use by OOS/VSE.

•

Phases required for installed licensed programs.

•

The default system GETVIS area.

•

Required SDL entries.

3.6 DOS/VSE System Management Guide

Automatic Functions of IPL

performs the following
•

Builds the required control blocks and device tables.

•

In 370 mode, determines the size of the real address space.

•

Unassigns any DASD assignments for devices that are not operational
at this time (so as to prevent the error recovery routines from trying to
establish error recording statistics for these devices).

•

Loads the printer-control buffers with the installation defined standard
buffer images.

•

Initializes the DOS/VSE RMS routines.

•

Loads into the SVA required system phases and licensed program
phases.

After IPL completes these operations, the system loader loads the job
control program into the background partition and places the system in the
problem program state. The message "READY FOR COMMUNICAnONS" appears on the console immediately after IPL is complete.

IPL Communication Device List

For telecommunication installations and for installations with locally

Chapter 3: Using the System

3.7

attached terminals (such as the mM 3277), devices allowed to present an
interrupt during IPL should be restricted because an unsolicited interrupt
might interfere with your system start-up procedures. By installing an IPL
communication device list, you can avoid that a device outside the
operator's control establishes itself as the device used for submitting IPL
commands.
To build a restrictive pool of IPL communication devices, you assemble
an IPL communication device list (COL) and catalog the list under the
phasename $$A$COLO in the system core image library. During IPL,
OOS/VSE loads this phase (if present) into storage. When OOS/VSE
enters the wait state and an interrupt occurs, the COL can now be searched
for the address of the device issuing the interrupt. H the address is listed,
the interrupting device is accepted as an IPL communication device and
processing continues. H the address is not found, OOS/VSE remains in the
wait state. Installation of the COL is optional.
For IPL to be successful, once $$A$COLO is installed, the SYSLOG
device address must be present in the COL. H you intend to submit IPL
commands from card reader or diskette, you must enter their addresses in
the COL as well. To ensure backup in case of hardware errors during IPL,
consider stand-by devices, such as another card reader, diskette, or even an
additional SYSLOG device in the COL.
The COL may have up to eight entries each of which is four bytes
long:

Bytes

Ireserved Icc

luu

o

3

2

where: cc = channel number
uu = unit number
You create the COL by submitting a job that catalogs $$A$COLO into the
system-core image library. The example in Figure 3-2 creates a COL with
five entries:

II JOB CATALOG CDL
II OPTION CATAL,NODECK
PHASE $$A$CDLO,+O

II EXEC ASSEMBLY
$$A$CDLO CSECT
DC
DC
DC
DC
DC
END

XL4'00C'
XL4'009'
XL4'01F'
XL4'OBD'
XL4'240'

card reader
1052
SYSLOG (DOC)
3277
diskette

1*

I I EXEC LNKEDT
/&
Figure 3-2.

Example for the Creation of a CDL

Once phase $$A$COLO has been cataloged, the CDL addresses remain
effective for subsequent IPLs. However, you may:

3.8 DOS/VSE System Management Guide

•

Replace the phase by another one, either by assembling and link-editing
a new phase or by using the DOS/VSE MAINT program to rename an
already cataloged CDL that has a name other than $$A$CDLO.

•

Override any CDL entry by manual intervention, which is the suggested
approach should an erroneous CDL be cataloged in the core image
library. The procedure for manually overriding the CDL is given in
DOS/ VSE Serviceability Aids and Debugging Procedures.

Building the SDL and Loading the SVA

Automatic SVA Loading

DOS/VSE builds a fresh copy of the SVA at each IPL. It loads phases into
the SVA from the system core image library. DOS/VSE uses pre-defined
load lists to fitJ,d the a,pprQPriate pnases. The load lists_ that identify r-equir-ed
system phases are shipped in the system core image library ready for use at
IPL. DOS /VSE System Generation contains a listing of the required system
phases.

H you install an mM licensed program that includes SVA eligible
phases, you must catalog a load list for that licensed program. The licensed
program documentation will describe this procedure and tell you how much
space in the SVA the loaded phases require. Although DOS/VSE
automatically allocates sufficient SVA space (by checking the load lists),
you should know how much virtual storage will remain to be allocated to
the partitions. (In 370 mode, your specification in the VSIZE parameter or
the VSTAB generation macro is dependent on this information.)
BuDding the System Directory List (SOL). Entries in the SDL are copies of
specific system core image library directory entries. Having entries in the
SDL speeds up the loading of the corresponding phases.
At the time of IPL, DOS/VSE builds entries in the SDL for each phase
that it automatically loads into the SVA. Each of those entries contains a
pointer to the associated phase in the SVA.

User Options for the SVA
In order to load user chosen elements into the SVA (phases or SDL entries
or both) the SVA space must be made large enough to accommodate the
new entries. Space for user entries may be defined at IPL via the SVA
command (see The SVA ComJr.ar.d earlier in this section). The SET SDL
command is available for having DOS/VSE both build an SDL and load
phases into the SVA.

You should build SDL entries for certain frequently used DOS/VSE
phases that are not SVA eligible. DOS/VSE provides a procedure (its name
is SDL) that you should execute at the time of IPL. For a listing of the
phases referenced by procedure SDL, refer to DOS/VSE System Generation.
DOS/VSE does not automatically reserve SVA space for these SDL entries.
In order to do that, you must define space with the IPL command SVA.

Chapter 3: Using the System 3.9

The SET SDL Command. The command used to create SDL entries and to
load phases in the SVA is the SET SDL job control command. This
command can be given only in the background (BG) partition. The
command may be given at any time after IPL. There is no limit to the
number of times it may be given.
It is recommended that you create a SET SDL job stream, catalog it as
a procedure in the procedure library and run that procedure immediately
after IPL. For compatibility with DOS/VS, SET SDL=CREATE will be
accepted by DOS/VSE. H the SET SDL job stream is not being entered
through a procedure, it may be submitted to job control through SYSRDR
or SYSLOG (depending on the device from which job control is reading).
This job stream can be entered via the IPL communications device. Figure
3-3 illustrates such a job stream.

Following the SET SDL command the input should be in the format
of:
name[,SVA]
where name is any valid phase name and SVA indicates whether or not the
phase is to be loaded into the SVA. H you specify SVA and the phase is
SVA eligible, DOS/VSE loads that phase.
The phases need not be currently cataloged in the core image library
and, if they are not, DOS/VSE issues a message on SYSLST (or SYSLOG
if SYSLST is not available). H you subsequently catalog a phase into the
system core image library under a name listed in the SDL as uncataloged,
the entry in the SDL is activated. In this case, if the phase is also identified
in the SDL as eligible for the SVA, it is loaded there immediately after it
has been link-edited.
H duplicate phase names are submitted, only the first one is valid. For
example:

SET SDL
PHASEONE
PHASEONE, SVA

/*
If PHASEONE exists in the system core image library, DOS/VSE builds an

SDL entry. The phase is not loaded into the SVA; DOS/VSE recognizes
statement PHASEONE, SVA as a duplicate and rejects it. In the above
situation no message is issued to the operator. H the statements were
submitted in two separate job streams;
SET SDL
PHASEONE

/*
SET SDL
PHASEONE,SVA

/*
an error message would be issued saying that an entry already exists in the
SDL.

3.10 DOS!VSE System Management Guide

You will be able to place PHASEONE in the SVA the next time you
IPL. The SVA (and of course the SDL) is rebuilt at each IPL.
It is recommended that you run the librarian program DSERV after a
SET SDL job stream to be certain that all entries have been entered the
way you wish. Include the DSERV control statement DSPLY SDL.

Replacing Phases Stored in the SVA. Occasionally, a phase stored in the
SVA needs to be changed; that is, it must be replaced by an updated
version. To replace a phase in the SVA, linkedit the updated version of the
phase to the system core-image library. Immediately after this linkedit
operation, DOS/VSE loads the updated phase into the SVA. The old
version of the phase remains in the SVA, but is not addressable.
Linkediting for inclusion of a phase in the SVA is further discussed in
Linking Programs in this chapter.

Creating the System Recorder File
The DOS/VSE recovery management support requires a disk extent on
which to record statistical information about machine errors and
environmental information. This disk extent is caned the system recorder
file and is identified by the symbolic name SYSREC. The SYSREC file
must exist before job control encounters the first / / JOB statement after
IPL. Usually, you create the SYSREC file only after the first IPL following
a system generation (not aiter each IPL). If the SYSREC file has been
damaged, however, you must re-IPL and re-create SYSREC.
If your DOS/VSE is running on an mM 3031, the SYSREC file must
be evaluated via program IFCEREPI and recreated each time a hardware
(microcode) change is installed which affects the frame records on the
3031's Service Record File. For details on IFCEREP1, refer to OS/VS,
DOS/VSE, VM/370 Environmental Recording Editing and Printing
(EREP) Program.

Chapter 3: Using the System 3.11

On a CKD device the SYSREC file requires a minimum of ten tracks
(not including an alternate track), and it cannot be a split cylinder file. On
an FBA device the SYSREC file requires a minimum of 72 blocks of 512
bytes each. You must define SYSREC as an extent of a permanently online
ru.slc device that DOS/VSE supports as a system residence device.
The ffiM 3031 requires additional space on the recorder file to
accomodate machine check frames and channel check frames (these frames
are peculiar to the ffiM 3031). On an ffiM 3330, for example, this space
amounts to approximately 9 tracks. If the SYSREC file resides on an FBA
device with blocksize of 512 bytes, add 164 blocks. The exact amount of
additional space needed for the recording of those frames can be calculated
after the first / / JOB statement has been processed and message '11931
RECORDER FILE IS XX% FULL' is issued.
The SYSREC file label information must be included in the standard
label portion of the label information area on the SYSRES file. Therefore,
submit a / / OPTION STDLABEL statement when you create the SYSREC
file. Since the label information you sub~t is written at the beginning of
the standard label area, which overwrites label information that was present
there, you must resubmit all the information needed for subsequent
operation. A more detailed description of preparing standard label
information is given under section Controlling Jobs later in this chapter.
Figure 3-3 illustrates a job stream (via SYSLOG) to create the system
recorder file. The IPL commands are included in the figure to show the
proper placement of the statements that create the SYSREC file. Be sure
that you do not submit a / / JOB statement until you have supplied all the
information applicable to SYSREC. This is because the SYSREC file is
opened when the first / / JOB statement is encountered. Note that the file
name IJSYSRC is required in the DLBL job control statement.

3.12 DOS/VSE System Management Guide

01301 DATE= .. / .. / .. , CLOCK= .. / .. / •.
0110A GIVE IPL CONTROL COMMANDS
ADD .. .
ADD .. .

e

ADD .. .
SET .. .
DEF SYSREC=190
DPD
SVA
01201 IPL COMPLETE FOR DOSIVSE REL. nn.n ECLEVEL=01
BG 1100A READY FOR COMMUNICATIONS
BG SET SOL
1S511 ENTER PHASE NAME OR /*
BG USERONE
1S511 ENTER PHASE NAME OR /*
BG USERTWO,SVA
1S511 ENTER PHASE NAME OR /*

BG
BG
BG
BG /*
BG ASSGN

BG SET RF-CREATE

!

BG // OPTION STDLABEL
BG // DLBL IJSYSRC:DOS.SYSTEMRMSR.FILE' - - -...._ Submit with the rest of the
STDLABEL statements
BG // EXTENT SYSREC, , , , 1700,43

BG /*
BG II JOB FIRST

Figure 3-3.

Example for the Creation of the SYSREC File and for Loading
User Phases in the SVA

When the system is to be shut down, you should issue the Record On
Demand (ROD) command to ensure that no statistical data is lost. For a
370 Model 115 or 125, the U command of the mode select display, should
also be issued to save disk usage statistics on the system diskette. These
commands are not valid for recording statistics on telecommunication
operation; refer to the appropriate telecommunication guides for more
information.
To obtain a listing of the SYSREC file, run the EREP program as
described in OS/VS, DOS/VSE, VM/370 Environmental Recording
Editing and Printing (EREP) Program. During execution of the EREP
program, recording on SYSREC is suppressed.

Chapter 3: Using the System

3.13

Creating the Hard Copy File
On a system that supports a video display/keyboard console, all messages
displayed on the screen and all information typed in by the operator are
saved in a file on the device assigned to SYSREC. This file, called the hard
copy file, can be used to obtain hard (printed) copies of the file whenever
required.
You must create the hard copy file after the first IPL procedure and
before you submit the first / / JOB statement to DOS/VSE.
The control statements and commands needed to create the hard copy
file are the same as those shown in Figure 3-3 for the SYSREC file with
the exception that you specify HC=CREATE in the SET command, and
the filename DSYSCN in the DLBL job control statement. More
information about creating and printing the hard copy file is given in
DOS/VSE Operating Procedures and DOS/VSE System Utilities.

User-Defined Processing after IPL
At large DOS/VSE installations, it may be desirable to perform certain
processing at the end of an IPL procedure. It may, for instance, be
important to know who performed the procedure, whether the right system
pack was mounted, and whether the correct date was entered for the new
work session. Moreover, if you work with labeled data files it is important
that they bear the correct creation date, so as to guarantee that data files
are protected until their expiration date.
After the IPL procedure has been completed, control can be passed to
a user exit routine (phase name = $SYSOPEN) that you may include for
the purpose of checking system security and integrity. This routine is
entered once after every IPL procedure. The DOS/VSE distribution
volume contains a dummy phase $SYSOPEN in the system core image
library. If you do not use the facility, that phase has no effect on your
system. Conventions for writing this kind of user exit routine, together with
an example, are contained in the section Writing an IPL User Exit Routine
in Chapter 4, Using the Facilities and Options of DOS/VSE.

Entering RDE Data
Standard DOS/VSE support includes the reliability data extractor (RDE),
and DOS/VSE requests you by a message to SYSLOG to provide a
2-character IPL reason code when the first / / JOB statement after IPL is
processed. The system may have been started at the beginning of normal
operation or restarted because of a machine error, a program error, an
operator error, etc. In addition, DOS/VSE requests you to supply a
subsystem identifier, a code which identifies the device type or program
type that failed. On the basis of these replies job control will build a record
for SYSREC.
Before shutting down at the end of the day (or processing period), you
must ensure that no environmental data is lost, by issuing the ROD
command. This command also causes the RDE end-of-day record to be
written on the disk assigned to SYSREC. To obtain a listing of this file, run

3.14 DOS/VSE System Management Guide

the EREP program as described in OS/VS, DOS/VSE, VM/370
Environmental Recording Editing and Printing (EREP) Program.
RDE information can be very valuable to your operations management.
By replying with the exact reason code that applies in each case, you are in
fact ensuring a permanent record of the reason why you had to re-IPL.
Refer to the DOS/VSE Operating Procedures, for more information on
the RDE messages and the valid replies to them.

Allocating Address Space to the Partitions
For each partition specified in the NPARTS parameter of the SUPVR
generation macro, address space must be allocated. The address space
available to the partitions is all of the address space from the end of the
supervisor area to the beginning of the SVA. The minimum size of that
address space is SI2K.
Allocation of address space to a foreground partition must be done
explicitly. Space not.allocated to a foreground partition belongs to the BG
partition. IT no allocations are made, for example immediately after IPL,
then all available address space belongs to the BG partition. In this case,
the BG partition has the following size:

ECPS:VSE mode:

Virtual storage size (16M default or as specified at
Initial Microprogram Load)
minus supervisor size
minus SVA size;

370 mode:

Virtual address space size (VSIZE value of VSTAB
macro)
minus SVA size.

Through the use of the job control ALLOC command you allocate the
foreground partitions. Address space allocations are in multiples of 2K.
The minimum amount of address space that may be allocated to a partition
(explicitly or implied) for execution in virtual mode is 128K. This 128K size
includes a minimum partition GETVIS area of 48K.
IT a foreground partition is defined (via the NPARTS parameter of the
SUPVR generation macro), but not needed for a while, you can set its size
to OK by submitting an appropriate ALLOC command.
During certain periods of processing, the operator can modify the
allocations to the individual partitions, again by using the ALLOC
command. Details on the ALLOC command are given in DOS / VSE
Operating Procedures and in section Starting the System in Chapter 3.

Chapter 3: Using the System 3.1S

Allocating Processor Storage to the Partitions
Processor storage is allocated to the partitions to enable the following:
•

Program execution in real mode.

•

Fixing pages by means of the PFIX/PFREE macros.

When processor storage is used for running a program in real mode or for
fixing pages of a program running in virtual mode (for example,
VSE/POWER), the page pool is reduced by the number of page frames
required for real mode execution or page fixing, respectively. Because
reducing the page pool may reduce total system throughput, the use of real
mode execution and PFIX/PFREE macros should be carefully considered.
Processor storage is allocated to the partitions via the ALLOCR
command. For a partition's allocation to be affected the partition identifier
(BG, F 1, F2, ... ) must be specified. The allocation is made in multiples of
2K, with 2K being the smallest allocation permissible. Absence of the
partition identifier means: do not change the current allocation. An
allocation of 2K allocates one page frame, 20K allocates 10 page frames
etc.
Note:

In 370 mode, when the ALLOCR command is issued, the
system delineates real address space as well as allocating
processor storage frames. In 370 mode, programs executing real
execute in the real address space.

The size of a given processor storage allocation for a partition is determined
either by the largest program you must run in real mode, or by the
maximum number of pages a program may fix. The number of pages that
can be fixed by the PFIX macro is limited by the amount of processor
storage allocated to that partiton.
Given: ALLOCR BG=20K, F3=10K
with the above allocation you could PFIX 10 pages in BG (while executing
in BG) or 5 pages in F3 (while executing in F3). You could not PFIX 15
pages from one program in either partition without reallocating processor
storage.
Page Pool. The page pool is all processor storage beyond the resident
supervisor routines. When you use the ALLOCR command you are
potentially reducing the size of the page pool. The page pool is not reduced
until the processor storage page frames are taken for real mode execution
or for PFIX use in virtual mode. The minimum page pool size is 24K. H
you allocate processor storage to partitions you must ensure that at least
24K remain unallocated. A program running in virtual mode that needs
more than 6K for its I/O processing requires a corresponding increase of
the minimum page pool size.

3.16 DOS/VSE System Management Guide

Initiating Foreground Partitions

In order to initiate a foreground partition, at least 128K of virtual
storage must be allocated to that partition. The allocation is made after IPL
with the ALLOC job control command.
Since DOS/VSE automatically determines the size of the SVA at IPL,
it is recommended that you issue the MAP command prior to any virtual
storage allocation. The MAP command will display the current allocations
and you can determine the amount of virtual storage available for allocation
to the foreground partitions.
The ALLOC command is both a job control and an attention routine
command. (The attention routine is loaded when you press the Request key
on the console keyboard; that routine is in control of the system when AR
is dlSpiayed on SYSLOG.) When the ALLOC command is given through
the attention routine it cannot decrease the size of an active partition. The
initial allocation of foreground partitions decreases the size of the BG
partition because all available virtual storage is allocated to BG at IPL.
Since, after IPL, the BG partition is active, the ALLOC command must be
given through job control.
Once virtual storage is allocated to the foregound partitions, they may
be made "active" through the attention routine. Issuing the BATCH or
START command, specifying a foreground partition, causes DOS/VSE to
initiate that foreground partition. For example:
AR BATCH F1
causes the job control program to be loaded into the virtual storage
allocated to the F 1 partition.
Input may now be submitted to the F 1 partition. Submitting jobs is
described in the following section, Controlling Jobs.

Chapter 3: Using the System 3.17

3.18 DOS/VSE System Management Guide

Chapter 3: Using the System 3.19

3.20 DOS/VSE System Management Guide

Chapter 3: Using the System

3.21

3.22 DOS/VSE System Management Guide

Chapter 3: Using the System

3.23

3.24 DOS!VSE System Management Guide

Controlling Jobs
Mter DOS/VSE has been successfully started by means of the IPL
program, the following messages are displayed on the console:
BG lIOOA READY FOR COMMUNICATIONS
BG
This shows that the job control program is in the background partition

ready to accept input.
At this poirit, the job control program will accept commands submitted
through the console (SYSLOG). Job control's normal input source,
however, is the logical unit SYSRDR.
Job control reads from SYSRDR if, at this point, you depress the
ENTER key on the console without entering any commands. Normally,
SYSRDR is standardly assigned to a card reader or diskette device.
The unit of work that is submitted to DOS/VSE for execution is called
a job. A job, and the environment in which it is to run, must be defined to
the system through job control statements and commands. These job
control statements and commands are processed by the job control program
which DOS/VSE loads into storage automatically as required.
The job control program runs in virtual mode in any partition. It
performs its functions only between jobs and job steps, and is not present
in the partition while a problem program is being executed.
Mter each job control statement or command is read, control can be
given to a user exit routine for examining and altering the input before it is
processed by DOS/VSE. For a description of this facility refer to Chapter
4, Using the Facilities and Options of DOS/VSE.
The difference between job control statements and commands are not
discussed here because there is no need for a distinction in this section.
Whenever applicable, it is simply stated whether the function can be
performed using statements, commands, or both. The description of the job
control statements and commands in this section is limited to their use and
functions; formats and characteristics of statements and commands are
detailed in DOS/VSE System Control Statements.
This section describes how to define a job, how to relate files to a
program, and how to work with cataloged procedures.

De/ining a Job
The beginning and end of a job are defined by the JOB and / &
(end-of-job) statements.

Chapter 3: Using the System 3.25

The program to be executed in a job is requested through an EXEC
statement. The occurance of an EXEC statement is called a job step. Each
job may consist of one or more job steps.
You may include as many job steps in a job as you wish. However, it is
not advisable to execute, in one job, several programs that are completely
independent of one another because, if one step terminates abnormally, the
job control program ignores the remaining job steps up to the next / &
statement. A typical example of related job steps that should form a single
job are assembling, link-editing, and executing a program, where correct
execution of one job step depends on successful completion of the
preceding one. Figure 3-6 shows an example of a multistep job.
1

II JOB jobname

2

3

II EXEC PAYROLL

3

II EXEC CHEX

4

1&

1

Defines the beginning of a job. For jobname, you may specify a name of
your own choosing.

2

Additional job control statements if required.

3

The two job steps. Job control is reloaded into storage at the end of each
job step, enabling the reading of subsequent job control statements.

4

At the end of the CHEX program's execution job control is reloaded and
reads the end of job indicator.

FJgIU"e 3-6.

Control Statements Def"miDg a Job Consisting of Two Job Steps

Following are some additional details about the job and end-of-job (/ &)
statements. The EXEC statement is discussed later in this chapter.
The JOB Statement. The JOB statement indicates the beginning of control
information for a job. The specified job name is stored in the
communications region of the corresponding partition and is used, for
example, by job accounting and to identify listings produced during the
execution of the job.

3.26 DOS/VSE System Management Guide

IT the JOB statement is omitted, DOS/VSE uses NO NAME as the job
name. IT the JOB statement is without a job name it is rejected by job
control as an invalid statement. The JOB statement should not be omitted,
as many DOS/VSE functions assume its presence. IT, for example, the
operator cancels a job using the attention routine CANCEL command, the
job control program normally bypasses all statements on SYSRDR until
encountering a / & . However, if the job in question was submitted without
a JOB statement, no statements in the job stream are bypassed even though
job NO NAME was canceled.
Having JOB statements with specific job names is useful when you
issue the MAP command in a multiprogramming environment. The MAP
command displays on SYSLOG the storage allocations for each partition,
together with the name of a job that is currently active in the corresponding
partition.
The JOB statement is always printed in positions 1 through 72 on
SYSLST and SYSLOG; also, the time of day is printed The JOB statement
causes a skip to a new page before printing is started on SYSLST.

The End-of-Job (/It) Statement. This statement is the last one for each job
(not job step). It signals the end of the input stream for the job. When job
control encounters / & on SYSRDR during normal operation, the
permanent assignment for SYSIPT becomes effective and SYSIPT is
checked for an end-of-file condition.
IT the / & statement is omitted, the next JOB statement will cause
control to be transferred to the end-of-job routine to simulate the / &
statement, except for abnormal job termination.
When a job terminates abnormally all statements on SYSRDR are
bypassed until / &. A JOB statement preceding that / & statement does
not stop this bypass operation.
When a / & statement is encountered, the job control program
performs such operations as the following:
•

Resets all job control options for the partition to standard: either as
established by the SIDOPT command, or the system default if the
particular option was not set through a SIDOPT command.

•

Resets all system and programmer logical unit assignments for the
partition to the permanent assignment established by job control
commands. Logical unit assignment is discussed under Relating Files to
Your Program later in this chapter.

•

Modifies the communications region as follows:
1. Resets the date from the DATE statement to the one specified in
the SET command during IPL.

2.

Stores the job name NO NAME.

3. Sets the user area and the UPSI byte to zero.
•

Displays an end-of-job (EOJ) message on SYSLST and SYSLOG with
the time and duration of the job.

Chapter 3: Using the System 3.27

•

Ensures that end-of-file has been reached on SYSIPT.

•

Deletes the temporary labels in the label information area on SYSRES.
(See Storing Label Information, later in this chapter.)

•

Checks whether the condense limits of any of the libraries have been
reached (if library maintenance has been done in the job).

Job Streams
The job control program provides automatic job-to-job transition. In other
words, an unlimited number of jobs can be submitted to the system in one
batch, and job control processes one job after the other without requiring
intervention by the operator. The job or jobs submitted are referred to as a
job stream (see Figure 3-7 for an example of a payroll jobstream).

( 1&

( II
( II

EXEC PAYCHK

-

PAUSE LOAD PAYCHECKS
~

( 1*

~

(

( II
( II
(II
( II
( II

Time cards
EXEC PAY RUN
I--

EXTENT SYSOO 1

I--

ASSGN SYSOO 1 , 160

'"

[~/_I_J_U_B_I_JA_Y_1

__________

L

!--

ASSGN SYSLST,OOE

FJgUre 3-7.

~

DLBL FILEP, 'PAYFILE'

~~

Example of a Job Stream

When setting up a job stream for a partition, you should bear in mind that
all jobs will get the priority of that partition. The selection of the jobs for a
particular partition in a multiprogramming system can help to improve the
efficiency of your installation. For example, jobs which have a relatively
low CPU usage and a relatively high rate of I/O activity, and which
therefore spend most of their time waiting for the completion of I/O
operations, should run in a high priority partition. Conversely, CPU-bound
jobs should be in a partition with a lower priority.

3.28 DOS/VSE System Management Guide

The operator may interrupt the processing of a job stream in any
partition to make last-minute changes to one of the jobs or to squeeze in a
special rush job. He does this by using the PAUSE statement or command.
A PAUSE statement may be included anywhere among the job control
statements of a job stream (see Figure 3-7). It becomes effective at the
point where it was inserted; processing is suspended in the aiiected
partition, and the operator console is unlocked for input. The PAUSE
statement can contain instructions to the operator and is always displayed
on SYSLOG.
The PAUSE statement may also be helpful when SYSIN is assigned to
a 5424 or 5425 card reader (neither of which have an end-of-file button).
Place the / / PAUSE card after the last / & card; this will force control to
be given to the console-keyboard, which enables the console operator to
control subsequent system operation.
A PAUSE command may be entered either through the operator
console (after pr-essin-g the r-equest k-ey), Of within a joo st-ream t-{}g-et-ber
with the job control statements for a job. If entered through the console to
the attention routine, the command must specify the partition that is to
pause (if the background partition is intended, however, no operand is
required). After encountering a PAUSE command, DOS/VSE passes
control to the operator (through the console) into the specified partition, at
the end of the current job step (which may also be the end of the job). If
that PAUSE command specifies the EOJ operand, control passes to the
operator at the end of the current job, regardless of the number of steps
needed to reach that point.

Relating Files to You, Program
Most programs perform some kind of input/output operation (that is, they
process files) on auxiliary storage devices. Before such files can be
processed, certain information about them must be provided to DOS/VSE.
This information includes:
•

The address of the I/O device on whicli each of the files resides.

•

For files on direct access storage devices (DASD), the exact location of
the file on the storage medium.

•

For files on DASDs, on diskettes, or on labeled magnetic tape, a
description of the file, called a label, which is used for checking and
protection purposes.

The above information, specified in job control statements, is stored in the
system by the job control program for use by the DOS/VSE data
management routines. How this is done is described below.

Chapter 3: Using the System 3.29

Symbolic I/O Assignment
Whenever a processing program needs access to a file on auxiliary storage
the program need not specify an actual device address, but only a symbolic
name which refers to a logical, rather than physical, unit. Before the
program is executed that logical unit must be associated with an actual
device. This is done by DOS/VSE when it executes an ASSGN job control
statement or command which specifies the symbolic name of the logical unit
and one of the following:
•

A general device class or specific device type, with or without volume
serial number.

•

The physical address (channel and unit number) of the I/O device.

•

A list of physical addresses.

•

Another logical unit.

See Figure 3-8 for an illustration of some of these combinations.
ASSGN statements may be submitted
between jobs or job steps.

3.30 DOS/VSE System Management Guide

Processing Program

DEVADDR=SYS008

I

,,

Job Control

,
1

I

// ASSGN SYS008,OOE

I/O Device

1.

The logical unit specified in the processing program (via DTF or CCB or IORB) is
a print file referred to by the symbolic device name SYSLST.

2.

An ASSGN statement is used to associate SYSLST with the physical address OOE of
a printer. This information is stored in the system by job control and can be
accessed when a program is executed.

FJgUre 3-8.

Example of Symbo6c I/O Assignment (Part 1 of 2)

Chapter 3: Using the System

3.31

Processing Program

DEVADDR=SYS002

Job Control

II ASSGN SYS002,(130,131)

e

II ASSGN SYS003,3330,VOL=oooo03

0

II ASSGN SYS004,TAPE (9

o
«9
(9

Device list - if drive 130 is unassigned SYS002 will be assigned to it, if it is
assigned DOS/VSE tries 131.
Device type - DOS/VSE searches for the device type (3330 in this case)
that is available and has the volume-id 000003.
Device class - DOS/VSE searches for an available tape device.

FlgUl"e 3-8.

Example of Symbolic I/O Assignment (Part 2 of 2)

Logical Units

There are two types of logical units: system logical units, primarily used by
the system control and service programs, and programmer logical units,
primarily used by the processing programs. The following list shows the
names, logical units and the 1/0 device~ that each of these logical units can
represent. In the case of disk devices, the logical unit is not assigned to the
entire volume mounted on the device but only to the referenced extent(s).
Refer to the section Files on Direct Access Devices for more information on
disk files.

3.32 DOS/VSE System Management Guide

Logical
unit name

Type of I/O device

SYSRDR

Card reader, magnetic tape unit, disk device, or diskette used as
input unit for job control statements or commands.

SYSIPT

Card reader, magnetic tape unit (single volume), disk, or
diskette extent used as input unit for programs.

SYSPCH

Card punch, magnetic tape unit, disk, or diskette extent used as
the unit for punched output.

SYSLST

Printer, magnetic tape unit, disk, or diskette extent used as the
unit for printed output.

SYSLOG

Operator console used for communication between the system
and the operator.

SYSLNK

Disk extent used as input to the linkage editor.

SYSRES

System residence extent on a disk pack.

SYSCLB

Disk enent used f-era private oor-e imag€ library.

SYSSLB

Disk extent used for a private source statement library.

SYSRLB

Disk extent used for a private relocatable library.

SYSREC

Disk extent used to store error records collected by the
recovery management support recorder (RMSR) function. If a
display operator console (DOC) is installed, messages to or
from the operator are stored in the hard copy file, a separate
SYSREC extent so that a hard copy listing of these messages
can be produced. A third SYSREC extent holds the system
file.

SYSCAT

Disk extent used to hold the VSAM master catalog.

SYSCTL

Used by DOS/VSE.

SYSnnn

Format for coding programmer logical units which are discussed
later in this section.

System Logical Units. All of the above logical unit names, except SYSnnn,

represent system logical units. Of these system logical units, user-written
programs may use SYSIPT and SYSRDR for input, SYSLST and SYSPCH
for output, and SYSLOG for communication with the operator. All other
system logical units may not be used within user-written programs (or
EXTENT statements, which are discussed later in this section).
Two additional symbolic names, SYSIN and SYSOUT, are used under
certain conditions:
SYSIN .

Can be used if you want to assign SYSRDR and SYSIPT to
the same card reader pr magnetic tape unit. You should not
assign SYSRDR and SYSIPT to the same disk or diskette
extent, assign SYSIN to that extent instead.

SYSOUT

Must be used if you want to assign SYSPCH and SYSLST to
the same magnetic tape unit. SYSOUT cannot be used to
assign SYSPCH and SYSLST to disk or diskette because these
two units must refer to separate extents.

Chapter 3: Using the System 3.33

SYSIN and SYSOUT are valid only to job control and cannot be referenced
in a user-written program. Examples for the use of SYSIN and SYSOUT
are given in the section System Files on Tape, Disk, or Diskette later in this
chapter.
Prognunmer Logical Units. Programmer logical units may be assigned to any
device installed 011 the system used for processing program input and
output. Each partition has a minimum of 10 programmer logical units
(SYSOOO-SYS009) and a maximum of 241 (SYSOOO-SYS240). The number
of programmer logical units is a supervisor generation option.

Types of Device Assignments
Device assignments are either permanent or temporary, depending on the
time of the assignment and the type of ASSGN statement or command
used.
Permanent Device Assignments. A permanent assignment is set up between
jobs or job steps any time after IPL by the ASSGN job control command
(no / /) or the / / ASSGN job control statement with the PERM operand.
It is valid until the next IPL procedure unless superseded by another
ASSGN job control command. A permanent assignment can be changed for
the duration of a job or job step by a / / ASSGN statement or by an
ASSGN command with the TEMP option.
Temporary Device Assignments. A temporary assignment is established
either by a / / ASSGN statement or by an ASSGN command with the
TEMP option. It is valid for a single job only, unless superseded by another
temporary or permanent assignment. Temporary assignments are reset to
permanent by
•

a / & or JOB statement, whichever occurs first, or by

•

a RESET job control statement or command.

Restrictions: The type of device assignment is restricted under certain
conditions:
1. If one of the system logical units SYSRDR, SYSIPT, SYSLST, or
SYSPCH is assigned to a disk device or diskette, the assignment must
be permanent. If SYSCLB is assigned, its assignment must also be
permanent.

2. If SYSRDR and SYSIPT are to be assigned to the same disk or diskette
extent, SYSIN should be assigned instead, and this assignment must be
permanent.
3. SYSOUT, if used, must be a permanent assignment.
4. The SYSLOG assignment is restricted when IPL was done from either a
125D or 3277 device. You may not assign SYSLOG to a 125D if IPL
was done from a 3277 and vice-versa.

3.34 DOS/VSE System Management Guide

Device Assignments in a Multiprogramming System

_.,-_._--------------------\. Each partition hasitsownset~t~ystem 10gi~~~lP!!!§:.1 For example, the BG
.

- ' - " . _ - - - - _ ..

-.

._-

.

_

.. -.-,

.

-. . ..
_"

-, partitionhas"a-SYSRDlr;'SYSLST, SYS1PT~et~~'" as~ do all the other
generated partitions. As each partition is started, assignments must be made
for the system logical units. Some assignments need be made only in one
partition and are valid for all partitions. These are logical units that service
the system rather than one partition. The page data set (assigned via the
DPD command) and the following units fall into this category:
logical name

how assigned

SYSLOG

ASSGN job control command

SYSREC

DEF IPL command

SYSCTL

automatically assigned by DOS/VSE

SYSRES

Entering disk address at IPL

SYSCAT

DEF IPL command

All of the other system logical unit assignments must be made for each
individual partition.
E..~h partition also has its own set ~tP.~~N~I!!m~I.!~~£31 ~~ (SYSOOO
through SYSnon) where non is the number of programmer logical units
specified for the partition minus 1.

You must make assignments of the programmer logical units as needed
by the programs running in each partition. Certain mM supplied programs
require specific programmer logical unit assignments. For example the
linkage editor requires SYSOO 1 and the assembler requires SYSOO 1,
SYSOO2, and SYSOO3.
Sharing Assignments. Within the same partition, different logical units may

be assigned to the same physical device. For example:

II ASSGN SYSLST,OOE
II ASSGN SYS007,OOE
Both logical names SYSLST and SYSOO7 are assigned to the device at
address OOE.
Normally it is not possible to share physical devices (except DASD)
between partitions. For example if you have a tape drive assigned to the
BG partition, but not used by that partition, you must first unassign it in
BG before attempting to assign it in F2. If, however, you use a spooling
package, such as the licensed program VSE/POWER, you can share unit
record devices (card reader, card punch, for example) and diskette between
partitions (see the licensed program VSE/POWER documentation for more
details).
With direct access devices this problem does not exist because each
extent on a disk can be thought of as a separate device. It is not possible,
however, to share a diskette between partitions.
Figure 3-9 illustrates possible device assignments.

Chapter 3: Using the System

3.35

6)
BG

I

SYSOO5

F21

SYSOO5

Fll

SYSOO5

BG

SYSOO5

F2

SYS006

F1

SYS007

BG

SYS005

BG

SYSOO6

BG

SYSOO7

·U
·U
·U

191

192

193

191

280

Each partition has its own set of programmer logical units.
Each assignment must be for a separate extent on the disk for this example to
be valid. Extents are discussed under Processing of File Labels in this chapter.
These assignments allow access to the tape volume by three different logical
unit names. No assignments to this tape are valid from a partition other than
BG at this ti me.

FlgUl"e 3-9.

Possible Device Assignments

Figure 3-10 shows the logical units needed for an assembly. The illustration
shows that the ASSGN statements must always precede the EXEC
statement of the job step for which they are to be effective. (The device
assignments for compilers are similar to the device assignments shown in
this assembler example; any variations are documented in the applicable
programmer's guides.)

3.36 DOS/VSE System Management Guide

r------,
I

__ l __ ~,

...

"-_

I

I

----

,..1.--,

,
~------~~

~

II EXEC ASSEMBLY

y'

I

I
I
~ __ .J

I
\

I

\
)
, -;'

,-

/&

Only if the program is to
be link-edited ~

...

I

:

.~-

II OPTION ....

r------,

/I ASSGN SYSLNK, ....
Only if an object deck ~
is desired
II ASSGN SYSPCH, ....

....

I
I
"I
I
~_...J

I
.L--J"::-,

f-----..~

I

1/ ASSGN SYSOO1, ....

/

. . _L..,

I
I
\'- __ .... )

,

II

I
I
/

£._-

r-----..,
I

.... __ .J __ .( . . .,

I
I

f,-----.. .r'__ ...J:

I
/_1.',
I

~

\

,I

\

L_-;'

I
I

J

~--

SYSLST

CPU

SYSRES

SYSOO1
SYSOO2
SYSOO3

SYSPCH
(Optional)

FtgUre 3-10. Device Assignments Required for an Assembly

Chapter 3: Using the System 3.37

Additional Assignment Consideratiom

The following summarizes the functions of the job control ASSGN
statement (or command). Also included are statements (commands) that
can be used with logical unit assignments.
The ASSGN Statement/Command. The ASSGN statement or command is

used to connect a logical I/O unit to a general device class, a specific
device type, a physical device or a list of physical devices, or another logical
unit. An ASSGN statement or command can also be used:
•

to specify a temporary or permanent assignment.

•

to specify a volume serial number for a tape, disk, or diskette.

•

to specify that a disk is shareable by more than one partition or logical
unit.

•

to unassign a logical unit to free it for assignment to another partition.

•

to ignore the assignment of a logical unit, that is, program references to
the logical unit are ignored (useful in testing and certain rerun
situations) .

•

to specify an alternate tape unit to be used when the capacity of the
original is reached.

The assignment routines check the operands of the ASSGN statement/
command for the relationship between the physical device, the logical unit,
the type of assignment (permanent or temporary), etc. The following list
summarizes the most pertinent items to remember when making
assignments:
•

Assignments are effective only for the partition in which they are
issued.

•

Apart from the operator console, no physical device except DASD can
be assigned to more than one active partition at the same time.

•

All system input and output file assignments to disk or diskette must be
permanent.

•

SYSIN .must be assigned if both SYSRDR and SYSIPT are to be
assigned to the same extent.

•

SYSOUT cannot be assigned to disk or diskette; it must be a
permanent assignment if assigned to tape.

•

SYSLNK must be assigned before issuing the LINK or CATAL option
in an OPTION statement; otherwise, the option is ignored and the
message 'PLEASE ASSIGN SYSLNK' is issued to the operator.

•

Before a tape unit is assigned to SYSLST, SYSPCH, or SYSOUT, all
previous assignments to this tape unit must be permanently unassigried.
This may be done byusing a DVCDN command as discussed below.

•

The assignment of SYSLOG cannot be changed while a foreground
partition is active.

3.38 DOS/VSE System Management Guide

•

SYSRES, SYSCAT, SYSREC,I• • • and the page data set can
never be assigned by an ASSGN statement or command. An IPL is
required to change these assignments.

The RESET StatementlCommand. The RESET statement or command can
be used to reset temporary assignments of a partition to permanent. With
one RESET statement or command you can reset
•

all logical units.

•

all system logical units.

•

all programmer logical units.

•

one specific system or programmer logical unit.

The LISTIO Statement/Command. With the LISTIO statement or command
you can obtain a listing of the current status of the 110 assignments in your
system. This may be done for all devices or individual devices as required.
If the LIS'fI()---oommann is used (no I I), the output goes to SYSLOG,
otherwise the output is on SYSLST.
The DVCDN Command. The DVCDN (device down) command informs the
system that a device is no longer physically available for system operations.
This command releases all logical assignments to the device.
wp.en the device becomes available again for system operations, a
DVCUP (device up) command must be given and new assignments made,
before the device may be used.
The DVCUP Command. The DVCUP (device up) command informs the
system that a device is available for -system operations after it has been
down.

Processing of File Labels
As shown above, DOS/VSE relates physical devices to logical names, used
in programs, via the ASSGN job control statement (or command). Certain
device types (magnetic tape, disk, and diskette) have removable volumes. It
is important to ensure that the volume(s) containing the filets) to be
processed are present on the assigned device(s). Magnetic tape, disk and
diskette files are identified through file labels which are processed by the
DOS lYSE data management routines.' Magnetic tape file labels are
optional, though desirable for reasons of data integrity. Disk and diskette
file labels are required.

DOS/VSE writes file labels when a file is created based on label
information submitted through job control statements.
To write a file label on magnetic tape, DOS/VSE uses the /1 TLBL
statement. This label is written by DOS/VSE immediately preceding the
associated file.
To write a file label on disk or on diskette, DOS/VSE uses the / /
DLBL and / / EXTENT statements. The label is written into the volume
table of contents (VTOC), and a utility program, LVTOC, is available to

Chapter 3: Using the System 3.39

list all labels included in this VTOC. Details on the DLBL and EXTENT
statements are given in DOS/VSE System Control Statements. When a
labeled file is to be processed, you must submit the required / / TLBL, / /
DLBL and / / EXTENT statements, so that DOS/VSE can perform the
desired label checking on your existing file. Figure 3-11 shows the
relationship of label information that you provide by the above mentioned
statements to file labels and programs. For a detailed discussion of label
processing, refer to DOS/VSE DASD Labels and DOS/VSE Tape Labels.

3.40 DOS/VSE System Management Guide

/I ASSGN SYS021,281
IITLBL PAYPMO,'PAY MARCH78'
II ASSGN SYS011,DISK, VOL=444444
II DLBL PAYROLL,'MASTER',99/365,SD
II EXTENT SYS011,1,0,100,50

Label I nformation provided
by the user is stored by
DOS/VSE in the label information area.

Label I nformation Area

Data Management Routines

Executing Program
OPEN PA VROLL,PAVPMO

The OPEN invokes the DOS/VSE ---------Data Management routines.

----------

The Data Management routines search the label information
for the file names PAYROLL and PAYPMO.
Once the label information is found, the file I D's MASTER
and PAY MARCH78 are searched for on the mounted

444444
Master

,,

,,
,,
,,
,

\
\
\
\

\
\
\

\

\

I

\
\

\
\
\

I

\

I

I

I

I

/

I

/

/

/

/

I

I

\

I

\

\

\

I

\

I

I

I

I

I

\
\
\

Data of File Master
(50 tracks)

Figure 3-11. File Label Processing

Chapter 3: Using the System 3.41

The / / TLBL, / / DLBL, and / / EXTENT job control statements may be
submitted with each execution of a given program that processes labeled
files. Job control temporarily stores these statements in the label
information area. A recommended alternative for frequently accessed files
is to permanently store the label information in the label information area.
The section Storing Label Information later in this chapter describes how
to permanently store label information.
When the program that processes the file is executed, the data
management routines of DOS/VSE access the label information
to write the appropriate labels onto the storage volume, and to check
that no unexpired files are overwritten, if the file is to be created, or
•

if an existing file is to be processed, to check the contents of the label
information area against the label(s) of the file to ensure, for example
that the correct volume is mounted.

The first two parameters of both the / / TLBL and / / DLBL statements
are the same:

II TLBL filename,'file-id'
II DLBL filename,'file-id'
The file!l~VJ~, is not part of the file label. You code a filename in your
prograni to 'identify your file.
•

In assembler language it is the DTF (Define The File) name.

•

In DOS/VS RPG

•

In DOS/VS COBOL it is the name specified in the SELECT clause.

•

In PL/I it is the identifier (with the Fn...E attribute) in the DECLARE

n it is the FILENAME.

statement.
•

In FORTRAN it is the file name associated with the data set reference

number.
The filename from your program is used as a search argument by the data
management routines in searching for label information in the label
information area. Accordingly you must code a matching fIlename in your
/ / TLBL or / / DLBL statements.
The file-i4 is part of the [tIe label. After the DLBL or TLBL
statements are located (based on filename), the file-id is used to:
•

create a label for an output file.

•

locate and check the labels of an input file.

3.42 DOS/VSE System Management Guide

Example of label checking:

II
II
II
*
II
II
II

JOB UPDATE
ASSGN SYS007,OOC
ASSGN SYS008,280
PLEASE MOUNT CURRENT ACCOUNTS RECEIVABLE TAPE
PAUSE
TLBL ACCT,'ACCTS.REC.FILE'
EXEC UPDATE
data cards

1*

II
II
II
II
II

1&

MTC REW,SYS008
ASSGN SYS010,280
ASSGN SYS007,OOE
TLBL ARFILE,'ACCTS.REC.FILE'
EXEC ARREPO~T

The two programs UPDATE and ARREPORT access the same file
'ACCTS.REC.FILE'. The two programs happen to use different file names
and different programmer logical units.
UPDATE opens a file named ACCT on logical unit SYSOO8 and
ARREPORT opens a file named ARFILE on SYSOI0. In both cases the
file accessed is ' ACCTS.REC.FILE'. If the two programs had used the
same file name and programmer logical units, one ASSGN statement and
one / / TLBL statement permanently stored in the label information area
would suffice.

Label Information for Fdes on Diskette Devices
After you have informed the system, via the ASSGN statement or
command, on which physical device the file is to reside, you must supply
the following information to allow the creation and checking of diskette
labels:
1. A description of the characteristics of the file. You specify this in the
DLBL job control statement.
2. The volume(s) the file is contained on. You specify this in one or more
EXTENT job control statements.
The label information you supply in the DLBL job control statement may
include the following:
•

The name of the file. This name must be identical to the correspOnding
file name specified in your program. For programs written in assembler
language, this would be the name of the DTF.

•

An identification of the file. This name is the one contained in the file
label on the diskette. It is associated with the file name via the DLBL
statement.

•

The expiration date of the file.

•

The type of access method used to process the file; always coded as
DU.

Chapter 3: Using the System 3.43

A diskette file consists of a data area on one or more volumes; each volume
contains only one data area for a particular file. For each of these data
areas, called extents, you must supply the following information on an
EXTENT job control statement:
•

The symbolic name of the device on which the volume containing the
file is mounted.
The serial number of the volume.

•

The type of extent; always coded as 1.

In the following example, the program CREATE creates a diskette (DU)
file named SALES that has a file-id of MONTHLY and is to be retained
for 30 days. The file comprises up to three diskettes. The diskettes have
the volume serial numbers 111111, 111112, and 111113, and are mounted
on the drive assigned to the symbolic device named SYSOO5.

II
II
II
II
II
II
II

JOB EXAMPLE
ASSGN SYS005,060
DLBL SALES,'MONTHLY',30,DU
EXTENT SYS005,111111,1
EXTENT SYS005,111112,1
EXTENT SYS005,111113,1
EXEC CREATE

If:.
The job control program checks the DLBL and EXTENT statements for
correctness and stores the supplied information in the label information area
on SYSRES for the durati6n of the job (see Storing Label Information
later in this chapter).

Label Information for Flies on Direct Access Devices

After you have informed the system, via the ASSGN job control statement
or command, which volume or physical device you want, you must supply
the following information to allow the creation and checking of DASD
labels:
1. A description of the characteristics of the file. You specify this in the
DLBL job control statement.
2. The exact location of the file on the storage medium. You specify this
in one or more EXTENT job control statements.
3. For non-sequential DASD files, the amount of storage in the partition
to be reserved for label processing.!'
.• You specify
~n11'1t"1",n.1 statement.
. information
'is needed by the linkage editor, the LBLTYP statement is discussed in
Linking Programs later in this chapter.
The label information you supply in the DLBL job control statement may
!Jtc1ude the following:
•

The name of the file ..This name must be identical to the corresponding
file name specified in your program. For programs written in assembler
language this would be the name of the DTF.

3.44 DOS/VSE System Management Guide

•

An identification of the file which may include generation and version

numbers of the file. This name is the one contained in the file label on
the storage device. It is associated with the file name via the DLBL
statement.
•

The expiration date of the file.

•

The type of access method used to process the file.

•

An indication of whether or not a data secured file is to be created.

•

The blocksize to be used for this file on an mM 3330-11 or 3350
device.

•

The control interval size (CISIZE) if your file is a sequential disk file
and resides on an FBA device.

A DASD file can consist of one or more data areas on one 9r more
volumes. For each of these data areas, called extents, you must supply the
following information on an EXTENT job control statement:
•

The symbolic name of the device on which the volume containing the
file extent is mounted.

•

The serial number of this volume.

•

The type of the extent. An indexed sequential file, for instance, can
consist of data areas, index areas, and overflow areas. For each of these
areas an extent must be defined, and its type (data, index, or overflow)
must be specified.

•

The sequence number of the extent within the file.

•

For CKD devices:
The number of the track (relative to zero) on which the file extent
begins.
The amount of space (in tracks) the file occupies.

•

For FBA devices:
The block number on which the file extent begins.
The amount of space (in blocks) the file occupies.

Examples for Submitting Label Information for DASD Flles. Here are a

number of examples of how to code the job control statements required to
create or access the labels for the various types and organizations of DASD
files. It is helpful if you are familiar with the formats of the DLBL and
EXTENT job control statements as described in DOS/VSE System Control
Statements. Detailed information on the possible organizations and access
methods for DASD files is given in DOS/VSE Data Management Concepts.
Sequentially Organized Disk Flies (Single Drive, Single Volume). In the

following example, the program CREATE creates a sequential disk (SD)
file named SALES that is to be retained until the end of 1979. The file
comprises one extent of 190 tracks on a CKD device, starting on relative
track number 1320. The disk pack has the volume serial number 111111
and is mounted on the drive assigfied to the symbolic device name SYSOO5:

Chapter 3: Using the System

3.45

II
II
II
II
II

1&

JOB EXAMPLE
ASSGN SYS005,D1SK,VOL=111111,SHR
DLBL SALES, 'ANNUAL SALES RECORDS',79/365,SD
EXTENT SYS005,111111,1,O,1320,190
EXEC CREATE

The job control program checks the DLBL and EXTENT statements for
correctness and stores the supplied information in the label information area
on SYSRES for the duration of the job or job step.
SequentiaDy Organized Disk Files (Single Drive, Multivolume). Assume that a
program.PROGlOO needs a sequential disk file located on three different
disk packs that are to be moUnted successively on the same device
(SYSOO5). The file consists of four extents on an FBA device: two on the
pack with serial number ()()()()20, one on pack 000100, and one on pack
000006. The following job stream shows the label statements required:

1

2
3

II
II
II
II
II
II
II
II

1&

JOB SAMLABEL
ASSGN SYS005,D1SK,VOL=000020,SHR
DLBL F1LNAME,'F1LE 1D',99/365,SD
EXTENT SYS005,000020,1,O,10,2010
EXTENT SYS005,000020,1,1,4000,lS10
EXTENT SYSOOS,000100,1,2,64,1300
EXTENT SYS005,000006,1,3,SO,636
EXEC PROG100

1

Orily one DLBL statement is required. For each extent one EXTENT statement
must be supplied in the sequence in which the extents are processed.

2

Logical Ioes in PROG100 opens the first extent using the file name and file ID in
the DLBL statement, and the logical unit and volume serial number in the first
EXTENT statement to locate the actual label on the disk pack. After PROG100 has
processed the first extent, logical IOeS opens the second extent, based on the
extent sequence number.
For the third extent, volume serial number 000100 is specified while the volume
currently mounted on SYSOO5 has the number 000020. The OPEN routine of
LIOeS notifies the operator of this discrepancy, and the operator can mount the
correct volume, at which time the OPEN routine regains control. The same is true
for the fourth extent.

3

The / & statement causes the label information stored in the label information area
to be cleared. Thus, if the next job requires the same file, the label statements must
be resubmitted (see Storing Label Information later in this chapter).

SequentiaDy Organized oa Files (Multiple Drives). This example has the
same requirements as the preceding 'Single Drive' example except that the
three volumes are mounted on three different drives. The required job
control statements are as follows:

3.46 DOS/VSE System Management Guide

II
II
II
II
1 II
II
II
II
II
2 II

JOB SAMLABEL
ASSGN SYS005,DISK,VOL=000020,SHR
ASSGN SYS006,DISK,VOL=000100,SHR
ASSGN SYS007,DISK,VOL=000006,SHR
DLBL FILNAME,'FILE ID',99/365,SD
EXTENT SYS005,000020,1,O,10,2010
EXTENT SYS005,000020,1,1,4000,1510
EXTENT SYS006,000100,1,2,64,1300
EXTENT SYS007,000006,1,3,50,636
EXEC PROG100

1&

1

All label statements submitted are identical to the 'Single Drive' example except for
SYSnnn in the EXTENT statements.

2

Logical IOCS opens each extent in the same way as described in the 'Single Drive'
example except that processing does not stop for removal and mounting of packs,
because enough devices are online to contain the file. A combination of this and
the 'Single Drive' example could be used to reduce handling time without
excessively increasing the total drive requirements.

OA Files. The program PROG t61 processes a direct access fite consisting
of four extents contained on three CKD disk packs. The three packs must
be ready at the same time. The following job stream shows the label
statements required to process the file:

1

II
II
II
II
II
II
II
II
II
II

JOB DALABEL
ASSGN SYS005,DISK,VOL=000065,SHR
ASSGN SYS006,DISK,VOL=000025,SHR
ASSGN SYS007,DISK,VOL=000002,SHR
DLBL FILNAME,'FILE ID',99/365,DA
EXTENT SYS005,000065,1,O,1320,190
EXTENT SYS005,000065,1,1,80,740
EXTENT SYS006,000025,1,2,50,906
EXTENT SYS007,000002,1,3,1275,64
EXEC PROG101

1&
1

The label statements follow the same pattern as for sequential files (described in the
preceding examples) except that the DLBL statement must specify DA to indicate
direct access.

Label Information for Flies on Magnetic Tape
Files on magnetic tape can be processed with or without labels. For tape
files with ffiM standard labels, the label information must be submitted
through the TLBL job control statement. (A tape file can also have
standard-user or non-standard labels; for th¢.se labels, n:oj<}l> control
statemeD;ts are required. ~ore"information on tape labels is given in

DOS/VSE Data Management Concepts).
The standard label information submitted in the TLBL statement may
include the following:
•

The name of the file. This name must be identical to the corresponding
filename (DTF name) specified in your program.

•

An identification of the file.

•

Creation date for input and expiration date (or retention period) for
output files.

Chapter 3: Using the System

3.47

•

The volume serial number of the tape reel that contains the file.

•

For files that extend over more than one volume, the sequence number
of the volume.

•

For volumes that contain more than one file, sequence number of the file.

•

The version and modification number of the fIle.

When a program that processes tape files with standard labels is to be
link-edited, you must supply a LBLTYP job control statement to define the
amount of storage required in the partition for label processing (see also
~"'·"'·'·b Plrn{!jranl.\' later inr.Jthisi·
•••

1

As with DASD files, the label information you supply in the TLBL job
control statement is checked and stored in the label information area on
SYSRES (see Storing Label Information, below).

Storing Label Information

Job control stores label information in the label information area. The label
information is stored temporarily (for the duration of one job or job step)
or permanently.
As label information is submitted, DOS/VSE acquires a portion of the
label information area which is referred to as a label subarea.

The minimum size of a label subarea is one track for a CKD device and
2K for an FBA device, the maximum size is the entire label information
area. There are three types of label subareas:
•

partition temporary subarea

•

partition standard subarea

•

system standard subarea

Label information stored in either of the two types of partition subareas
may be accessed only from the partition in which the label information was
originally submitted. Label information stored in the system subarea may
be accessed from all partitions. The type of subarea used is controlled by
the following three options of the OPTION job control statement:

Pt.~

-=.. UlRLABEL

PARSTD

3.48 DOS/VSE System Management Guide

causes all DASD, diskette, and tape label information to be
s.t,ored temporarilx for one job or job step. ~
information submitted between job steps overlays the label
iformation from the former job step. the label
informatIOn is written to a p.artition temporary subarsa (one
per partition) and is accessible only by the partition in
which it was submitted. It is a good idea to include all
TLBL, DLBL, and EXTENT statements in the first step of
a job (preceding the / / EXEC statement). If no option is
specified, or if the OPTION statement is omitted,
USRLABEL is assumed.
causes all DASD, diskette, and tape label information to be
stored permanently for all subsequent jobs. The label

information is written to a partition standard subarea (one
per partition) and is accessible only by the partition in
which it was submitted.
STDLABEL

Note:

causes all DASD, diskette, and tape label information to be
stored permanently for all subsequent jobs. The label
information is written to the system standard subarea and
is accessible by all partitions but can only be submitted in
the background partitiQ.n. This ensures that the system
standard label information is not updated simultaneously by
two partitions. Logical unit numbers contained in the
submitted label information must not be greater than the
highest logical unit number specified for background at
system generation.

When SYSRES is on an FBA disk device, DOS/VSE blocks
user-supplied label information before writing that information to
disk. Therefore, you should terminate your / / OPTION PARSTD
Of· I/OP'IlONSTDLABEL job stream witha./ / OPTION
USRLABEL statement. This ensures that all label information is
actually written to the label information area as permanent partition
or system standard labels. Labels in the system standard subarea
are accessible from other partitions only after they have been
written completely. The OPTION ,statement with USRLABEL
specified indicates to DOS/VSE that no further partition or system
standard labels will follow. The same effect is accomplished by a
/ & , / / JOB, or / / EXEC statement.

A partition can have only one temporary and one standard subarea at any
point in time. As the subareas are variable in size it is possible that disk
space is not available in the label information area when DOS/VSE
attempts to write label information. When this occurs a message will be
displayed on the console stating that the label area is exhausted. To clear a
subarea (in order to run the current job), you can do one of the following:
•

Submit a / & in another partition to clear that partition's temporary
subarea.

•

Submit a / / OPTION PARSTD followed by a / & in any partition to
clear that partition's standard subarea.

Do not clear the system standard subarea. If you find that the system
standard subarea is using more disk space than you want, reorganize your
label information area. For example if you have an application that always
runs in the same partition (such as the licensed program VSE/POWER) the
labels for that application should be put on that partition's standard label
subarea, not the system standard subarea.
During program execution, the DOS/VSE data management routines
search the label information area in the following sequence:
(1) user label information (partition temporary subarea)
(2) partition standard information (partition standard subarea)
(3) system standard information (system standard subarea).
It is important to distinguish between the conditions under which a label
option remains in effect and the conditions that govern the retention of the

Chapter 3: Using the System

3.49

label data in the label information area. For example, the label data.
submitted following an OPTION statement with the P ARSTD option is
retained for all subsequent jobs until overwritten by another P ARSTD
option, but the P ARSTD option is canceled at the end of the job or job
step in which it was specified. This is shown in the summary of label
options in Figure 3-12.
Option in search sequence

Type of label
information

Option in effect
until

Label information
retained

For

USRLABELI

temporary

STDLABEL or
PARSTD is
specified.

for one job. The
the partition in
/ & statement
which the option
causes the
was specified.
temporary label area
to be cleared. 4

PARSTD

permanent

a) end of job step
b) end of job
c) USRLABEL or
STDLABEL is
specified. 5

for all subsequent
jobs until another
PARSTD option is
used. 1

STDLABEL

permanent

a) end of job step
b) end of job
c) USRLABEL or
PARSTD is
specified. 5

all partitions}
for all subsequent
jobs until another
STDLABEL option is
used. 1

the partition in
which the option
was specified.

1 If no option is given or if the OPTION statement is omitted, USRLABEL is assumed.
1 All label information submitted following a PARSTD or STDLABEL option is written at the beginning of the label area thus

destroying any previously stored information. Therefore, if you want to add label data for another file, all previously stored
label information that is to be kept must be resubmitted.
3 Label information stored with the STDLABEL option is available to all partitions but can be submitted only through the
background partition.
4 Additional label information from a subsequent job step will overlay previous label information.
5 It is recommended that a USRLABEL option be submitted following the PARSTD or STDLABEL job stream when SYSRES
is on an FBA device.

FJgUre 3-12. Summary of Label Option Functions
By permanently storing the label information for a disk file in the label
information area, DOS/VSE relates that file to the type of the device which
is assigned to the pertinent logical unit when this file is processed for the
first time. A later attempt to use this label information for the same file
(and extent) on a different device type causes DOS/VSE to cancel the job.
If a different device type has to be used for this file, DOS/VSE requires
that the label statements be resubmitted and the pertinent logical unit
assigned to the device of the new type.
Remember that, when adding to or altering permanently stored label
information, all of the partition's (or system's) permanently stored label
information must be resubmitted along with the updates. Stored label
information may be displayed using program LSERV as follows:

II JOB
II EXEC LSERV

1*

IF:.

3.50 DOS/VSE System Management Guide

Tape and Print Operations

Controlling Magnetic Tape
The MTC job control statement or command controls certain magnetic tape
operations, for example, file positioning. Files on magnetic tape are almost
invariably processed sequentially. This means, for example, that if you have
five files on one tape reel and you want to process the last one, you have
to read four files before you can access the one you need. You can,
however, instruct the job control program to position the tape at a
particular file.
The MTC job control statement or command controls operations such
as:
•

Spacing the tape backward or forward to the required file.

•

Spacing the tape backward or forward a specified number of records.

•

Rewinding the tape to the beginning.

•

Writing a tapemark to indicate the end of a file.

In the following example, program FROGA creates a labeled tape file
named RATES on tape volume 222222. At the end of the first job step, an
MTC job control statement is used to rewind (REW) the tape to the
beginning of the tape volume so that the newly created file can be
processed by PROGB.

II
II
II
II
II
II

1&

JOB TAPE
ASSGN SYS004,TAPE,VOL=222222
TLBL RATES,'MASTER',75/365,222222
EXEC PROGA
MTC REW,SYS004
EXEC PROGB

Controlling Printed Output
Most of the DOS/VSE supported printers use a forms control buffer
(FCB) to control the length of forms skips. In addition, printers may be
equipped with the universal character set feature, which is controlled by a
universal character set buffer (UCB). Examples of printers equipped with
these buffers are the 3203 and 3211 printers.
The buffers of these printers must be loaded during or immediately
after IPL, and they may have to be reloaded later between job steps or,
occasionally, while a job step using the printer is being executed.
The following methods for loading the buffers are available:

Chapter 3: Using the System 3.51

To load the FCB
•

Automatic loading during IPL

•

Using the SYSBUFLD program between job steps or immediately after
IPL

•

Using the LFCB command

•

Using the LFCB macro in the problem program

•

Using the FCB parameter in the VSE/POWER

* $$

LST statement.

To load the UCB
•

Automatic loading during IPL (applies to PRT1 and 5203U printers)

•

Using the SYSBUFLD program between job steps or immediately after
IPL

•

Using the LUCB command

•

Using the UCS command (applies only to a 1403 UCS printer).

The method of loading the buffers by using the SYSBUFLD program offers
the advantage that hardly any operator activity is involved; on the other
hand, loading the buffers by using the LFCB or LUCB command does not
require the operator to wait for a partition to finish processing.
When the contents of an FCB or a UCB are replaced by a new buffer
image, the system uses this new image to control printed output until the
buffer is reloaded (or until the next IPL). None oLtbe above methods
provides automatic resetting of the buffer load to the original contents. It
may be necessary to reset the buffer to the original contents before taking a
storage dump, to ensure that the dump is printed in the correct format,
without any part of it being left out.
Details on how to load the FCB and UCB are contained in DOS/VSE

System Control Statements.
The 3800 Printing Subsystem. The 3800 Printing Subsystem is a noimpact,
high-speed, general-purpose system printer that uses an electrophotographic
technique with a low-powered laser to print output. It provides more
features than current impact printers.
The following methods of controlling the 3800 are available:
•

The SETPRT job control statement ~r command, which allows you to
set the 3800 with user-specified control values. These values are reset
at the end of the current job to the installation's default control valu~s
as specified in the SETDF operator co~and, or to the hardware
defaults if SETDF is not specified.

3.52 DOS/VSE System Management Guide

•

The SETDF operator command, which allows the operator to set
and/ or reset default control values for the 3800. A SETDF command
can set default control values for the following:
One cha.tacter arrangement table
The forms control buffer
,t'

The copy modification phase
The paper forms identifier
The forms overlay name
Bursting and trimming or continuous forms stacking
The setting of all hardware defaults with one command.
•

The SETPRT macro instruction, which is generally invoked via the
preceding statements but can also be used directly by the programmer
to initialize or dynamically change the setup of the 3800.

For information on available techniques for controlling the 3800, see

DosTvSE--JiiM' 3st)'i) printing

SubsYstem Programme,.'s Guide.

Executing a Program
After you have properly defined the I/O requirements of your program to
the system you can instruct job control to prepare your program for
execution. How this is done and how the supplied information is processed
is described in the following section.

Assembling/Compiling, Link-Editing, and Executing a Program

In DOS/VSE, three processing steps are necessary to obtain results from a
problem program once the source program has been written:

1. ASsembly or compiling of the source program into an object module.
(Object modules are discussed in section Linking Programs later in this
chapter.)

2. Link-editing of the object module to form an executable program
phase.
3. Execution of the program phase.
Each of these steps is initiated. by the job control program in response to an
EXEC job control statement. The EXEC statement must be the last of the
job control statements submitted for anyone job step. Figure 3-13 shows
an example of the job control statements needed to asseTnble, Hnk-edit, and
execute a source program.

Chapter 3= Using the System 3.53

II
II
2 II
3 II
4 II
1

1&

JOB EXECUTE
OPTION LINK
EXEC ASSEMBLY
EXEC LNKEDT
EXEC

1

To link-edit a program, the LINK option must be set ON.

2

The assembler is fetched from the core image library and starts execution.

3

The linkage editor is fetched from the core image library and starts execution.

4

When an EXEC statement without a program name is encountered, the program
last stored (if stored within the same job) in a core image library by the linkage
editor is fetched for execution.

FJgUI'e 3-13. Job Control Statements to
Program in one Job

~mble,

Link-Edit, and Execute a

Language translators read their input from SYSIPT. H SYSRDR and
SYSIPT are assigned to the same device, the source statements of your
program must follow the corresponding EXEC job control statement. In
this example, the assembler language statements would have to follow the
// EXEC ASSEMBLY statement. The end of the input data submitted for
one program must be indicated by a /* (end-of-data) statement. The /*
statement is not processed by job control; it is read by the logical IOCS
routines of DOS/VSE. (Note: For an input file on an mM 5424 MFCU,
the /* card must be followed by a blank card.) The placement of input
data and the /* statement is shown in Figure 3-14.

3.54 DOS/VSE System Management Guide

II
II
II

JOB INPUT
OPTION LINK
EXEC ASSEMBLY

source program

1*

II
II

EXEC LNKEDT
EXEC

input data for user program

1*
1&
FIgUre 3-14. Submitting Input Data on SYSIPT

How the job shown in Figure 3-14 is processed by the system is illustrated
in Figure 3-15. The numbers to the left of the subsequent paragraphs refer
to the encircled numbers in that illustration. The inclusion of SYSIPT data
in job streams in the procedure library is described in the section SYSIPT
Data in Cataloged Procedures.
1

Job control reads the JOB statement and stores the job name in the
supervisor. Other functions of the JOB statement are described under
Defining a Job, earlier in this chapter.

2

Job control reads the OPTION statement with the LINK option and
sets the LINK bit in the supervisor. This indicates
a) to the assembler, that the assembled object module is to be written
onto SYSLNK,
b) to job control that link editing is allowed in this job,
c) to the linkage editor, that the executable program is to be stored in
the core image library only temporarily for execution in the same job.

3

On encountering the / / EXEC ASSEMBLY statement, job control
transfers control to the supervisor passing it the name of the assembler
program.

4

The supervisor loads the assembler into the partition, replacing job
control.

5

The assembler reads the source program, assembles it, and stores the
object module on SYSLNK (not shown).

6

The assembler transfers control to the supervisor.

7

The supervisor loads job control into storage, replacing the assembler.

8

Job control reads the / / EXEC LNKEDT statement, as well as any
preceding linkage editor statements, and transfers control to the
supervisor, passing it the name of the linkage editor.

Chapter 3: Using the System 3.55

9

The supervisor loads the linkage editor into storage, replacing job
control.

10 The linkage editor reads the object module from SYSLNK and
link-edits it.
11 The linkage editor stores the executable program in the core image
library.
12 The linkage editor transfers control to the supervisor.
13 The supervisor loads job control into storage.
14 Job control reads an EXEC statement without a program name and
transfers control to the supervisor.
15 The supervisor loads the program last stored in the core image library
by the linkage editor replacing job control.
16 The user program is executed. It reads and processes the data from
SYSIPT and, at end-of-job, returns control to the supervisor.
17 The supervisor loads job control.
18 When job control reads the / & statement, it turns off the LINK option
and replaces the jobname stored in the supervisor by NO NAME.
Other functions of the / & statement are described under Defining a
Job, earlier in this chapter.

3.56 DOS/VSE System Management Guide

CS;erVisor:J

Input on SYSIN

I

Core I mage Library

INPUT

LINKAGE EDITOR
INPUT I I .........:L:.;.;IN
__K~I,~_ _-i~IJI._ _-Ml_

-

;::
y

~-----.....

--I I
I ~I
ell:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;)

___ JOB CONTROL

/ / EXEC ----~-I..-

USER
PRO_GRAM

input data ----+-11-

r

--

r
I

.

t\..

I til:::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::;:::;:::::::::::::::::::{:.

LINK I

~

INPUT

I

~-)

----v

JOB CONTROL

~

_ _ _ _...........-

EXECUTABLE USER
PROG RAM (LiJJ-*-rJ·~'1

JOB CONTROL
INONAMEI

. .

- -.....- T ra nsfer of data

~

'

"-"""\

c;if4"J )\f.. ~

LINK J

.'

--- JOB CONTRO_L:_-_-_-_-_-_-:_-_-_-_-__+_

~-----------~~- ~

INPUT

EXECUT AB LE USE R
PROGRAM

T.ransfer of control

_..___~) Loading fro~ core image library

Figure 3-15. System Operation of an Assemble, Link-Edit and Execute Job

Executing Cataloged Programs. Programs may be cataloged permanently in
the core image library after they have been assembled and link-edited. This
saves assembling and link-editing a program for every run.
Cataloging into the core image library is done by the linkage editor in
response to an OPTION job control statement with the CATAL option (see
Linking Programs later in this chapter).
To execute a cataloged program you use an EXEC job control
statement specifying the name under which the program was cataloged (as
shown for the assembler and linkage editor in the preceding example).

Chapter 3: Using the System 3.57

For example, the following job executes a program that was cataloged
in the core image library under the name PROGA; data cards are submitted
on SYSIPT:

II JOB CAT
assignment and label
statements, if required

II EXEC PROGA
input data

1*
1&

Denning Options for Program Execution
In the preceding section, it was shown how the OPTION job control
statement can be used

•

to specify the type of label information to be stored for a file
(USRLABEL, PARSTD, STDLABEL options), and

•

to define whether a program is to be link-edited (LINK. option).

There are a number of additional functions which you can invoke through
the OPTION job control statement. The most important ones are:
/ / OPTION LOG
Logs all job control statements submitted to the system on SYSLST. This
facilitates diagnosing the job control statements in case of an error.
/ / OPTION PARTDUMP
Dumps the contents of the registers, a formatted portion of the supervisor
area, and the current partition on SYSLST in case of abnormal program
termination. To obtain the entire supervisor area unformatted,
/ / OPTION DUMP may be used.
/ / OPTION DECK
Puts an object module on SYSPCH. The object module can then be
combined with other object modules by the linkage editor to form one
executable program, or it can be used as input to the library maintenance
program to catalog it into the relocatable library.
/ / OPTION LIST, USTX, SYM, XREF, ERRS
Prints various listings produced by the language translators (compilers) on
SYSLST. These listings include object code, symbol table, cross-reference,
and error lists which are useful debugging aids during the test period of a
program. SXREF may be specified instead of XREF to obtain a cross
reference listing that includes only the referenced labels in the assembled
program.

3.58 DOS/VSE System Management Guide

These (and other) options may be permanently set by using the
STDOPT command. The specified options become effective after the next
I & or I I JOB ~tatement.
Permanent options are valid for all jobs unless overridden by an
OPTION job control statement. Options specified in an OPTION statement
remain in effect until (1) a contrary option is read or (2) a JOB or 1&
~tement is encountered which resets the options to permanent.
Certain of these options can be suppressed by specifying the prefix NO
(for example, NOUST, NODUMP). A complete list of the available
options is given in DOSIVSE Sysu:m Control Statements.

CommuniCiting with Problem Programs via Job Control

Via job control a program can be instructed to take a specific path of
action. This instruction is given by setting program switches which can be

testea-liy-llie-jjrotileni-program--aflhetime--of program execu{ioli
These program switches, called UPSI (user program switch indicator),
can be set "on" (1) or "off" (0). They are set by job control in response
to the UPSI job control statement. The specific meaning attached to each
bit in the UPSI byte depends on the design of the program. The statement

I I UPSI 10000001
for exaniple, sets bits 0 and 7 of the UPSI byte to 1, and bits 2 through 6
to zero. A program can inspect these switches and take a 'specific path
based on their setting. Since the I I JOB statement sets the eight bits of the
UPSI byte to zero, the I I UPSI statement should follow the I I JOB
statement.

1

UPSI switches might be useful, for example, in an accounting
application that prepares reports of daily, weekly, and monthly accounts.
Through the program switches, -the application can be instruc.ted as to when
the daily, weekly, or monthly reports are due.
For more details on the UPSI statement see DOSIVSE System Control
Statements.

Executing in Virtual or Real Mode

All programs invoked for execution through an EXEC job control
statement are normally executed in virtual mode. To ron a program in real
mode, you specify the REAL operand in the EXEC statement. Example:
-

~

II JOB NAME
II

1&

EXEC PROGA, REAL

H, for the above example, job control runs in partition F2, then the
program PROGA will be loaded and executed in real mode if there is
sufficient processor storage all~ted to the F2 partition to hold the entire program PROGA.

Chapter 3: Using the System 3.59

If a program executing in real mode is smaller than the allocated
processor storage, the unused allocated processor storage should remain part
of the page pool. Specifying the size of the program in the SIZE operand of
the EXEC statement accomplishes this. Example:

II JOB NAME
II EXEC PROGA,REAL,SIZE=30K

1&

If the F2 partition has SOK of processor storage allocated and the program
PROGA has a size of 30K bytes, the remaining 20K bytes of that partition
will remain in the page pool.
If you specify SIZE=AUTO, job control automatically uses the
information in the program's core image directory entry to calculate the size
of the program to be loaded.

Running programs in real mode implies temporarily forfeiting a number
of page frames in the page pool, which may lead to degradation of system
throughput. Therefore, real mode execution should be used sparingly.
With a few exceptions, all mM-supplied and user-written programs can
be executed under DOS lYSE either in virtual or real mode. These
exceptions are listed in the following section.

Programs that Must Run in Real Mode. The mM-supplied program OLTEP
(On-line Test Executive Program) must be executed in real mode.
User-written programs must be executed in real mode if they contain
channel programs for devices· not supported by DOS/VSE.
User-written programs must be executed in real mode or modified if
they
•

contain MICR stacker selection routines or other time-dependent code
for execution of I/O requests.

•

contain channel programs that are modified during command execution.

•

contain I/O appendage routines causing page faults.

A program may request to obtain additional storage from the partition
GETVIS area (this area is described in the following section, Dynamic
Allocation of Storage). During real mode execution, that storage is
obtained from the unused allocated processor storage. Specifying a SIZE
value, therefore, allows you to issue GETVIS requests from a program
running in real mode (contrary to execution in virtual mode, DOS/VSE
does not provide a default partition GETVIS area for real mode execution).
For a program that is executed in real mode, allow 16K per open file, and
allow additional processor storage if double buffering is used or if FBA files
with large CI-sizes or VSE/VSAM files are opened. For most mM-supplied
programs that you want to run real, an allowance of 48K for GETVIS
requests suffices.

3.60 DOS/VSE System Management Guide

Note that the FREEVIS macro releases GETVIS space which was
obtained through a GETVIS macro; that space is again available for
subsequent GETVIS requests. When issued from a program running in real
mode, however, the space is not returned to the page pool until the
execution of the particular job is finished.

Dynamic ADocation of Storage
DOS/VSE dynamic storage areas, called GETVIS areas, are part of the
virtual storage. The system GETVIS area (in the SVA) is discussed in
Chapter 2, Planning the System. Each partition has an area called the
partition GETVIS area. These areas occupy the high address space of a
partition's· virtual storage. The minimum GETVIS area for a partition is
48K, which is the mM-set default. This default is not applicable to real
mode execution; in this case, you have to reserve storage yourseH (as
described in the preceding section).
The partition GETVIS area is used by certain DOS/VSE system
components for items such as opening of files, label processing etc.
Programs using rotational positional sensing (RPS) require 256 to 512 bytes
in the partition GETVIS area for each open file. This value should be
added to the minimum system requirement of 48K.
Programmers 'writing in assembler language may request space from the
partition GETVIS area via the GETVIS macro. When no longer needed by
the requesting program, area so acquired can be released by issuing the
FREEVIS macro. For details about using these macros, refer to the
publication DOS/VSE Macro User's Guide.
Figure 3-16 shows the virtual storage layout of a 200K partition with a
default-size partition GETVIS area.

Problem
Program
Execution

~-------------

Partition GETVIS Area

200K

-r-

T

48K

i

1

The largest size program that could execute in the shown partition is one that is
152K.

Figure 3-16. Storage Layout of a Partition with Default GETVIS Area

Chapter 3: Using the System 3.61

You may increase the size of a partition GETVIS area through:
•

the SIZE job control or attention routine command.

•

the SIZE parameter of the job control EXEC statement.

With the SIZE command, you specify the amount of virtual storage
available for program execution in a given partition. The balance of that
partition's allocation is the partition GETVIS area.
Given SIZE BG= 140K, the result is a storage layout for the partition
as shown in Figure 3-17.

Problem
Program
Execution

fo-------------Partition GETVIS Area

200K

T

60K

1

Figure 3-17. Storage Layout of a Partition after the SIZE Command is given

The boundaries set by the SIZE command are permanent until (1) another
SIZE command for the same partition or (2) the next IPL.
You may temporarily alter the partition GETVIS area by using the
SIZE parameter on the job control EXEC statement. The SIZE parameter
establishes boundaries in the same way as the SIZE command, except that
the parameter value holds only for one job step (the EXEC). At the end of
the job step, the GETVIS size is set to the DOS/VSE default (48K) or the
amount established by a preceding SIZE command. See Figure 3-18.

3.62 DOS/VSE System Management Guide

Given:

II EXEC PROGX,SIZE=110K

PROGX

1--------------

T

Permanent
GETVrS 5ITK
Allocation

1

Partition GETVIS Area

200K

T

90K

1

When PROGX is finished executing the partition GETVIS area size returns to its
permanent allocation.

Figure 3-18. Program Execution with the SIZE Parameter

With the SIZE parameter you may also specify SIZE=AUTO, in which case
job control uses the information available in the associated core image
library directory to determine the amount of storage needed by the program
and then allocates the remainder of the partition as GETVIS area.

mM licensed programming support (for example VSE/VSAM) may
have partition GETVIS requirements beyond 48K bytes. Consult the
appropriate licensed program documentation to determine the partition
GETVIS area size requirements.

System Files

011

Tape, Disk or Diskette
As mentioned earlier in this chapter, I/O devices (except DASD) cannot be
assigned to more than one active partition at the same time. This means, for
instance, that in an installation with only one card reader the input job
stream on SYSRDR and SYSIPT for one partition must have been
completely processed by job control and unassigned for that partition
before job streams can be read by another partition. This also applies
accordingly to the system output on SYSLST and SYSPCH if only one
printer and one card punch are available.
Since this situation can cause a considerable decrease of system
throughput, DOS/VSE permits storing the input job streams and the system
output on a direct access device or, if enough tape units are available, on
magnetic tape. This allows several partitions simultaneously to read system
input from or to write system output to high-speed devices, thus increasing

Chapter 3: Using the System 3.63

system throughput and, due to reduced CPU wait time, improving the
overall performance.
Note: If system logical units (SYSIPT, SYSLST, SYSPCH, SYSRDR) are to
be device independent, DTFDI must be used in application programs that refer
to any of these system logical units.

The following section describes how to store system input and output on
high-speed devices and to read and process the job streams from these
devices.
The same improvements as those gained by having system files on
high-speed devices - but far more efficient and easier to use - can be
achieved by using a spooling program such as VSE/POWER. The spooling
program stores the job streams on disk, transfers the jobs to the partitions
for execution, and stores list and punch output on disk before it is finally
printed or punched.

System Fdes on Tape
If the system input units SYSRDR and SYSIPT are assigned to the same
magnetic tape unit, they may (but need not) be referred to as SYSIN. H the
system output units SYSLST and SYSPCH are assigned to the same
magnetic tape they must be referred to as SYSOUT. The tapes may be
unlabeled or they may have standard labels. If SYSLST or SYSPCH is
assigned to a standard label tape and no new label information is supplied,
the old labels will remain on the tape. SYSIPT assigned to a magnetic tape
cannot be a multiple-volume file.

To store the input stream on magnetic tape you must write your own
program that transfers the job stream to the tape. Assume, in the following
example, that you have written such a program and cataloged it in the core
image library under the name CDTOTP; the program CDTOTP uses
SYSOO4 to read the input job stream, and SYSOO5 for the tape onto which
the job stream is to be written; the end of input data for CDTOTP is
indicated by ••. The example in Figure 3-19 shows how to use the program
CDTOTP to create a combined system input file on tape.

3.64 DOS/VSE System Management Guide

1
2

3

II
II
II
II
II

JOB BUILDIN
ASSGN SYSOO4,OOC
ASSGN SYSOO5,182
EXEC CDTOTP
JOB A

read from SYSRDR

16

II

JOB B

job stream
read from SYS004

16
4

**

16
1

SYSOO4 is assigned to the card reader from which CDTOTP reads the job stream.

2

SYSOO5 is assigned to the tape which is to receive the job stream.

3

The CDTOTP program is executed and writes the job stream onto tape.

4

** (or any other significant character combination) signals end-of-data to
CDTOTP

Figure 3-19. Creation of SYSIN on Tape

After completion of the job BUILDIN shown in Figure 3-19 you can assign
SYSIN to the tape containing the job stream; job control will then read and
process the jobs A and B from the tape just as it would have done from the
card reader.
In the same way you can direct the system output on SYSLST and
SYSPCH to go on magnetic tape and then use your own or an
mM-supplied program to print or punch the contents of the tape on the
printer or card punch, respectively.

System Files on Disk
System files on disk can be used only if the SYSFll.. parameter was
specified in the FOPT generation macro during supervisor generation.
Systf:ms without tape units should specify the SYSFIL parameter to
facilitate system maintenance.
When both SYSRDR and SYSIPT are assigned to disk, they must refer
to the same disk extent, and should be referred to as SYSIN. Since the
output units SYSLST and SYSPCH have different record lengths, they must
be assigned to separate disk extents; SYSOUT therefore cannot be used if
SYSLST and SYSPCH are assigned to disk. Note that only single extent
system files are supported.
For system files on disk, you must provide the required label
information by means of DLBL and EXTENT job control statements. In
those statements, use the following predefined filenames:
USYSIN for SYSRDR, SYSIPT, SYSIN
USYSPH for SYSPCH
USYSLS for SYSLST

Chapter 3: Using the System

3.65

For example, the label information for SYSIN assigned to a disk extent
could be submitted by the following job control statements:

II DLBL IJSYSIN,'DISKINFILE'
II EXTENT SYSIN,DOSRES,1,O,1260,30
The assignment of a system file to a disk extent must always be permanent,
and it must follow the DLBL and EXTENT statement. Example:

II DLBL IJSYSIN,'DISKINFILE'
II EXTENT SYSIN,DOSRES,1,O,1260,30
ASSGN SYSIN, 131
After a system file on disk has been processed, it must be closed by a
CLOSE job control command (no / /). The second (optional) operand of
the CLOSE command can be used to unassign a system logical unit or
reassign it to another device. The following command closes the SYSIN file
on disk and reassigns SYSIN to the card reader at address OOC:

CLOSE SYSIN,OOC
The CLOSE command can either be entered on SYSLOG by the operator
or it can be included at the end of the job stream on disk.
H SYSIPT is assigned to a disk extent, the CLOSE command must
precede the / & . Multiple SYSIPT data files can be read via multiple job
steps with one / & at the end of the job stream.
The example in Figure 3-20 shows the job control statements needed to
1. write a job stream on disk,
2.

execute the job stream from disk and store the print output on disk,
and

3.

print the output from disk on the printer.

The example assumes that you have written your own programs to write the
job stream on disk (CDTODISK) and to list on the printer the print output
stored on disk (DISKTOPR).
System Files on fued Block Architecture (FBA) DASD. H an FBA DASD

has a system logical unit assigned to it, the supervisor SYSFIL support will
block and deblock system file records into the FBA Control Interval-based
data format, handle all special conditions, and update the Disk Information
Block (Dm). This permits existing DTFDI and DTFCP programs to
process system files on FBA devices without making logic changes to
handle the FBA blocking.
Note, however, that the DTFSD SYSFll.. support is limited to
sequential GET or PUT for fixed unblocked records. (That is, the
UPDATE =YES parameter is not supported.)

3.66 DOS/VSE System Management Guide

II JOB STORE
I I ASSG N SYSOO 1,OOC
II ASSGN SYS006,190
II DLBL DASDOUT,'DASDOUTFI LE'
II EXTENT SYS006,DOSRES, 1,0,1260,30
II EXEC CDTODISK
JOB A

1&
II JOB B
JOB STREAM
IS EXECUTED
FROM DISK

1&
CLOSE SYSLST,OOE
CLOSE SYSIN,OOC

**

1&

®

II DLBL IJSYSLS,'OUTPR'
II EXTENT SYSLST,PVRLST, 1,0, 1970,20
ASSGN SYSLST,191

II DLBL IJSYSIN,'DASDOUTFILE'
II EXTENT SYSIN,DOSRES,1,0,1260,30
ASSGN SYSIN, 190

(3)

II JOB PRINT
II ASSGN SYS001, 191
II ASSGN SYS002,OOE
II DLBL OUTPR
II EXTENT SYS001 ,PVR LSL, 1,0, 1970,20
II EXEC DISKTOPR
1&

PRINTED
LISTING

G)

The program CDTODISK reads the following job stream from the card reader (SYS001) and stores it on disk (SYS0061. The end
of the job stream is indicated to CDTODISK by * *.

®

SYSLST and SYSI N are switched to disk. Job control now reads the job stream from the disk on de\(ice 190. The job stream is
executed and the print output is stored on the disk on device 191. The CLOSE commands at the end of the job stream will close
the system files on disk and reassign them to the printer and card reader, respectively.

(3)

The program DISKTOPR reads the print output from disk (SYSOOll and lists it on the printer (SYS002).

FJgUI'e 3-20. Processing System Input and Output Fi1es on Disk

Chapter 3: Using the System 3.67

System Files on Diskette

System files on diskette can be used only if the SYSFll... parameter was
specified in the FOPT generation macro during supervisor generation.
If the system input units SYSRDR and SYSIPT are assigned to a
diskette extent, they must be referred to as SYSIN. Since the output units
SYSLST and SYSPCH have different record lengths, they must be assigned
to separate diskette extents; SYSOUT therefore cannot be used if SYSLST
and SYSPCH are assigned to diskette.
For system files on diskette, you must provide the required label
information by means of DLBL and EXTENT job control statements. In
those statements, use the following predefined filenames:
USYSIN for SYSRDR, SYSIPT, SYSIN
USYSPH for SYSPCH
USYSLS for SYSLST
For example, the label information for SYSIN assigned to a diskette extent
could be submitted by the following job control statements:

II DLBL IJSYSIN,'DISKETTE'"DU
II EXTENT SYSIN,DSKETE,1
The assignment of a systern file to a diskette extent must always be
permanent, and it must follow the DLBL and EXTENT statement.
Example:

II DLBL IJSYSIN,'DISKETTE'"DU
II EXTENT SYSIN,DSKETE,l
ASSGN SYSIN,060
After a system file on diskette has been processed, it must be closed by a
CLOSE job control command (no / I). The second (optional) operand of
the CLOSE command can be used to unassign a system logical unit or
reassign it to another device. The following command closes the SYSIN file
on diskette and reassigns SYSIN to the card reader at address OOC.

CLOSE SYSIN,OOC
The CLOSE command can either be entered on SYSLOG by the operator
or it can be included at the end of the job stream on diskette.
If SYSIPT is assigned to a 3540 diskette, the CLOSE command must
precede the / & . Multiple input data files can be read via multiple job steps
with one / & at the end of the job stream.
When job control encounters / & on SYSRDR during normal
operation, the standard assignment for SYSIPT becomes effective and
SYSIPT is checked for an end-of-file condition. If the standard assignments
for SYSRDR and SYSIPT are not to the same device, SYSIPT is advanced
to the next /. statement.

3.68 DOS/VSE System Management Guide

Interrupting SYSIN Job Streams on Disk, Diskette, or Tape

After a SYSIN or SYSRDR job stream has been prepared on tape, diskette,
or· disk, it may be necessary to interrupt the normal schedule to execute a
rush job. To do this, press the Request key on the operator console and
enter a PAUSE command with the EOl operand causing the corresponding
partition to suspend processing at the end of the current job. At this point
you can make a temporary assignment for SYSIN to a card reader to
execute the rush job. At the end of this job, processing of the job stream
on disk, diskette, or tape will resume at the point of interruption. This is
illustrated in Figure 3-21. Starting an urgent job that uses a cataloged
procedure by means of a single EXEC statement is discussed in the section
Partition-Related Cataloged Procedures later in this chapter.
Disk Extent

Card Reader

Operator Console

/I OLBL IJSYSIN, .. .
/lEXT-ENT SYSiN; ... .
ASSGN SYSIN,191

/I JOB A

/&
/I JOB B

®
Press REQUEST key and
enter PAUSE xx, EOJ
where xx is the 10 of
the partition

/I ASSG N S YS I N,OOC

/&

1&

/I JOB 0

~L-"'&-_ CLOSE SYSIN,OOC

/&
1/ JOB E

/&

CD
®
®

SYSI N is assigned to disk and processing of the jobstream on disk begins.
While job B is being executed a PAUSE command is entered at the operator console.
At the end of job B control comes to the operator who can now enter a temporary assignment for SYSI N to the card reader.

@)

The job RUSH is read and processed from the card reader. Note that the temporary
assignment of SYSIN is not reset by the IIJOB RUSH statement but is retained to end of
the job.

®

The /& statement resets the temporary assignment of SYSIN to permanent (190) and
the next job in the stream on disk is read and executed.

®

The CLOSE command closes the system file on disk and reassigns ::sYSIN to the card
reader to process jobs 0 and E.

Figure 3-21. Interrupting a Job Stream on D_

Chapter 3: Using the System 3.69

Record Formats of System Flies

SYSLST records are i 21 characters and SYSPCH records 81 characters in
length. From SYSRDR and SYSIPT, job control accepts either 80- or
81-character records.
The first character of the SYSLST and SYSPCH records is assumed to
be an ASA carriage control or stacker selection character. SYSIPT,
SYSRDR, SYSPCH, and SYSLST records assigned to DASD have no keys,
and record lengths are the same as stated above. (For CKD devices the
records are unblocked; for FBA devices, DOS/VSE automatically blocks
records into the FBA format and also deblocks them.)

Using Cataloged Procedures
This section describes how to retrieve a cataloged procedure from the

procedure library and how to temporarily modify the contents of a
cataloged procedure. How a procedure is cataloged in the procedure library
is discussed in Using the Libraries later in this chapter.
Note: The procedure library should not be updated in a running
multiprogramming system.

Retrieving Cataloged Procedures

To retrieve a cataloged procedure from the procedure library you use the
PROC parameter in the EXEC job control statement, specifying the name
of the cataloged procedure. Assume that a program called PAYROLL uses
the following job control statements (in addition to the / / JOB and / &
statements) and that these statements have been cataloged in the procedure
library under the name PAY.

II
II
II
II
II
II
II
II
II

ASSGN SYS017,SYSRDR
ASSGN SYS018,SYSPCH
ASSGN SYS019,OOE
ASSGN SYS020,TAPE
ASSGN SYS021,DISK,VOL=111111
TLBL TAPFLE,'FILE-IN'
DLBL DSKFLE,'FILE-OUT' ,99/365,SD
EXTENT SYS021,111111,1,O,200,400
EXEC PAYROLL

If the program PAYROLL is to be executed, the programmer or operator

would simply prepare the following job control statements:

II
II

JOB USER1
EXEC PROC=PAY

16
When the job control program starts reading the job control statements in
the input stream on SYSRDR and finds the EXEC statement, it knows by
the operand PROC that a cataloged procedure is to be inserted. It takes the
name of the procedure to be used (PAY) and retrieves the procedure with
that name from the procedure library. At this point SYSRDR is temporarily

3.70 DOS/VSE System Management Guide

assigned to the procedure library. Job control reads and processes the job
control statements in its normal fashion. The statement
/ / EXEC PAYROLL

causes the program PAYROLL to be loaded and given control. When
execution of PAYROLL is complete, the job control program reads the
next statement from the procedure library and, in this example, would find
an end of procedure indicator (/ +). The end of procedure indicator returns
the SYSRDR assignment to its permanent device, where the job control
program finds the / & statement and performs end-of-job processing as
usual.
Note: The listing of job control statements on SYSLOG and/or SYSLST will
show the message EOP PAY at the end of the inserted procedure.

Temporarily Modifying Cataloged Proced"res
The preceding example is the simplest case of the use of cataloged
procedures. It will work as long as the requirements of the program do not
change.
It may happen, however, that some of the statements in a cataloged
procedure must be modified for a specific run of a program. For example,
the printer normally used (OOE in the preceding example) may be
temporarily unavailable and a different printer must be assigned. It does not
make much sense to delete the old procedure and to catalog a new one
because the old procedure will be needed again as soon as the normal
printer becomes operational again.

Likewise, it may be necessary to add or remove certain statements to or
from a cataloged procedure for a specific run of a program. You may wish, for
example, to process a different copy of the file FILE-OUT (see the preceding
example). You must therefore temporarily suppress the corresponding DLBL
and EXTENT statements in the cataloged procedure and replace them by
statements that identify the file you want to process instead.
For cases like this, DOS/VSE permits one or more statements in a
cataloged procedure to be
•

temporarily modified (thus, overriding what was present).

•

temporarily suppressed (deleted) without modifying them.

•

temporarily incorporated at desired locations in a cataloged procedure.

You can request temporary modification of statements in a cataloged
procedure by supplying the corresponding modifier statements in the input
stream.
Since normally not all statements need be modified, you must establish
an exact correspondence between the statement to be modified and the
modifier statement by giving them the same symbolic name. This symbolic
name may have from one to seven characters, and must be specified in
columns 73 through 79 of both statements.
- ...,--.,..,.....'''~.,.. ,.~ ............ ,~-..,.,.,.., .. ,.......--,."'' .,..=-'""""'...........-.....-~

Chapter 3: Using the System

3.71

Note: An unnamed statement cannot be modified. Therefore, to be able to
modify any statement in a cataloged procedure for any usage of the procedure
you should name each statement when cataloging. Moreover, the modifier
statements must be in the sequence in which modification is to be performed on
the cataloged statements. The JOB statement cannot be modified; also, job
control continuation statements cannot be overriden.

A single character in column 80 of the modifier statement specifies which
function is to be performed:
A - indicates that the statement is to be inserted after the statement in the
cataloged procedure that has the same name.
B - indicates that the statement is to be inserted before the statement in
the cataloged procedure that has the same name.
D - indicates that the statement in the cataloged procedure that has the
same name is to be deleted.
Any other character or a blank in column 80 of the modifier statement
indicates that the statement is to replace (override) the statement in the
cataloged procedure that has the same name.
If the LOG function is active (by having issued the LOG job control
command), statements to be deleted are printed, with a D in column 80, on
the console, but not 'executed'.

In addition to naming the statements and indicating the function to be
performed, you must inform the job control program that it has to carry out
a procedure modification. This is done
(1) by specifying an additional parameter (OV for overriding) in the EXEC
statement that calls the procedure, and

(2) by using the statement / / OVEND to indicate the end of the modifier
statements.
Placement of the / / OVEND statement is as follows:
•

directly behind the last modifier statement or,

•

if the last modifier statement overwrites a / / EXEC statement and is
followed by data input, between the /* and the / &.

The following examples show how you can temporarily modify a cataloged
procedure.
Assume that a procedure named PROC5 for the program PAYROLL
contains the following statements:

3.72 DOS/VSE System Management Guide

II
II
II
II
II
II
II
II
II

73--79
ASSGN SYS017,SYSRDR
ASSGN SYS018,SYSPCH
ASSGN SYS019,SYSLST
ASSGN SYS020,181
ASSGN SYS021,DISK,VOL=111111,SHR
TLBL TAPFLE,'FILE-IN'
DLBL DSKFLE,'FILE-OUT'
EXTENT SYS021,111111,1,O,200,200
EXEC PAYROLL

PAYOOl
PAY002
PAY003
PAY004
PAY005
PAY006
PAY007
PAY008
PAY009

1+
Assume further that the programmer wants to use tape unit 183 instead of
181. The input stream on SYSRDR, in this case, would have to be as
follows:

II
II
II
II

73--80
JOB USER
EXEC PROC=PROC5,OV
ASSGN SYS020,183
OVEND

PAY004R

1&
The form of the EXEC statement in the input stream indicates that (1) the
procedure PROC5 is to be used and (2) this procedure is to be modified in
some way. The first three procedure statements are processed without
change. The procedure statement named P AYOOO4 is replaced by the
corresponding statement in the input stream. (As any character other than
A, B, or D specifies override, an R was used to indicate this.) The
remaining procedure statements are again processed without change.
As another example, assume that the program PAYROLL is to use file
FILE-OUT1 instead of FILE-OUT and that this file resides on two extents
of· a disk pack that has the volume serial number 111112. The input stream
might then look as follows:

II
II
II
II
II
II
II

Co1.73--80
JOB USER
EXEC PROC=PROC5,OV
ASSGN SYS021,DISK,VOL=111112,SHR
DLBL DSKFLE,'FILE-OUT1'
EXTENT SYS021,111112,1,O,100,200
EXTENT SYS021,111112,1,1,500,200
OVEND

PAY0005R
PAY0007R
PAY0008R
PAY0008A

1&
Processing would be as follows: The JOB statement and all procedure
statements up to the statement named P A YOOO4 are processed without
modification. The procedure statements labeled P A YOOO5, P A YOO07, and
PAYOOO8 are replaced by the corresponding statements in the input stream.
The second EXTENT statement in the input stream has the character A in
column 80, which indicates that the statement is to be inserted after the
(replaced) statement named P A YOOO8. The procedure statement named
P A YOOO9 is processed without modification.
The possibility of modification as described above makes the use of
cataloged procedures more flexible. Often, however, it is simpler and more
economical to have different procedures for the same program than to have
a single procedure and modify it.

Chapter 3: Using the System 3.73

SYSIPT data in a cataloged procedure cannot be overridden by the
procedure override facility.

Several Job Steps in one Procedure
A cataloged procedure may contain more than one EXEC statement, that
is, it may contain control statements for more than one job step (within the
same job). However, as the number of job steps in a procedure increases,
so does the time required to re-execute the whole procedure after an error
occurs.
A program written in assembler language, for instance, requires three
job steps to assemble, link-edit, and execute the program. For the use of a
cataloged procedure, your input stream for the entire job (on SYSIN for
simplicity) would contain the following:

II
II
II

JOB USER
OPTION LINK
EXEC ASSEMBLY
source deck of program to be assembled

1*

II
II

EXEC LNKEDT
EXEC
data for program to be executed

1*
1&
H the OPTION statement and the three EXEC statements were cataloged
under the name ASDPROC, the input stream could be simplified as shown
below.
Procedure ASDPROC

Input from SYSIN

II

JOB USER

II EXEC PROC=ASDPROC
~.~

____

~r-

[ II OPTION LINK
II EXEC ASSEMBLY

so~rce statements of
[ II EXEC LNKEDT
program to be ~ I I EXEC
assembled
1*
1+ (end indicator)
data to be
processed

1*
1&
The same can be done for any number of job steps that logically belong
together and are frequently executed. A stock control program STOCK, for
instance, may be run daily to compile statistics that can be used to prepare
the following lists:

1. An exception list that shows which items are low in stock. Required
daily.
2.

A list that shows the sales in currency for a certain item or group of
items. Required weekly.

3.74 DOS/VSE System Management Guide

3.

A list that shows the sales in -number of units for each item or group of
items. Required monthly.

4.

An inventory list. Required semi-annually.

To simplify processing, four procedures may have been cataloged:
STKPRI - two job steps: the first to execute STOCK, the second to
prepare list 1.
STKPR2 - three job steps: the first two are the same as for STKPRl, the
third to prepare list 2.
STKPR3 - four job steps: the first three the same as for STKPR2, the
fourth to prepare list 3.
STKPR4 - five job steps: the first four the same as for STKPR3, the fifth
to prepare list 4.
Which lists are printed after every run of STOCK then depends on what
cataloged procedure is used.

Modifying Multistep Procedures
Multistep procedures may be modified in the same way as the single-step
procedure described earlier. However, a number of considerations apply to
the ordering of the modification statements in the input stream when a
logical unit used for data input is assigned to the same physical unit as
SYSRDR.
•

It is advisable to avoid using identical symbolic names for the
statements in the procedure.

•

The modifier statements must be in the same sequence as the
statements in the referenced procedure.

•

Modifier statements are normally placed immediately following the
EXEC PROC=procedure,OV statement. When input data is read by a
job step (EXEC statement) executed from the procedure, the following
cautions should be observed:

1. The first statement following the EXEC PROC=procedure,OV
must be a modifier statement (see "1" in Figure 3-22).
2.

Modifier statements that take affect after the input data is read are
placed following the input data except for the first modifier which
must precede the input data (see "1" and the modifier statement
ASSGN SYSSLB,UA in Figure 3-22).

3.

An exception to point 2 above is when the input data is processed
by a job step that itself was modified (see "3" and "4" in Figure
3-22). In this case the next modifier must follow the data (see
statement "3" and the modifier ASSGN SYSCLB,UA in Figure
3-22).

Figure 3-22 shows an example of modifying the second and third steps of a
three-step procedure.

Chapter 3: Using the System 3.75

In the example given in Figure 3-22, it is assumed that SYSRDR and
SYSIPT are assigned to the same physical unit.

SYSIN Input Stream

Procedure CAT01 Containing JCL Only

Co,umnr-79

Column 73-79

II JOB EXAMPLE
II EXEC PROC=CAT01,OV
II ASSGN SYSRLB;UA

1

STMT3

1/ EXEC PSERV

STMT1

/*

ASSGN SYSCLB,130

1/ ASSGN SYSSLB,UA
,1/ EXEC DSERV,REAL

STMT4
STMT5

1/ ASSGN SYSR LB, 130
1/ ASSGN SYSSLB, 130
1/ EXEC DSERV

STMT2
STMT3
STMT4
STMT5

1/ ASSGN SYSSLB,UA
1/ EXEC DSERV,REAL

STMT6
STMT7

DSPLY CAT01

8
0

DSPLY CD,RD,SD

/*
ASSGN SYSCLB,UA
II OVEND
DSPLY CD, PO

STMT6

1+

/*
1&

o

This is the first modifier statement. It refers to the second job step.

@

This statement provides SYSIPT data for PSERV.

e
e

o

This modification overwrites the EXEC statement.
This statement provides SYSIPT data for DSERV (STMT5).
This statement provides SYSIPT data for DSERV (STMT7).

Figure 3-22. Example of Modifying a Three-Step Procedure

SYSIPI' nata in Cataloged Procedures
In the example shown in Figure 3-22 the librarian service programs PSERV
and DSERV accessed data from the logical unit SYSIPT. This 'SYSIPT'

data may be made part of your cataloged procedure if SYSFIL= YES was
specified in the FOPT generation macro at supervisor assembly. System
utility, system service programs, and language translators all read their input
from SYSIPT.
When you catalog a procedure containing SYSIPT data, the directory
entry for the procedure indicates this. When you execute such a procedure,
job control checks to see whether or not it contains SYSIPT data. If it
does, both SYSRDR and SYSIPT are assigned to the procedure library until
the end of the procedure. SYSIPT data in a cataloged procedure cannot be
overriden by the procedure library override facility.
SYSIPT inline data in procedures may also be any data that is
processed under control of the device independent IOCS used by your

3.76 DOS/VSE System Management Guide

program or ffiM-supplied programs. Normally, though, you would not
catalog source programs or data for your problem programs in the
procedure library.
SYSIPT ~e data in procedures is useful and convenient mainly in the
case of control information for system utility and service programs.
A job stream for an initialize disk utility run could, for instance, contain
the following control statements (the statements are shown in skeleton
format only):

I I ASSGN ...
II EXEC INTDK
II UID IR,C1,R=(0027003)
II VTOC STANDARD
VOL 1111111
II END

16

_

The job control stat~meJ:lts_ ar~ read from SYSRDR, the utility control
statements are read from SYSIPT. If, however, both the job control and
utility control statements had been cataloged (for example, under the name
INITDK), only the following statements would be required on SYSRDR:

II
II

JOB NAME
EXEC PROC=INITDK

16
If two or more programs in a procedure read SYSIPT data, the SYSIPT
data must be handled in a consistent manner, that is, if the SYSIPT data is
included in the procedure for one job step, it must be included for all job
steps in that procedure which require SYSIPT data.

Partition-Related Cataloged Procedures
Although a given procedure may be executed in any partition, a particular
job may need a specific set of job control statements, dependent on the
partition of execution. For example, you may want to run a job to store
DLBL and EXTENT statements in the partition label subarea for each
partition (OPTION PARSTD). Since each partition requires a different set
of label information, you would need a cataloged procedure for each of
your partitions. Partition-related cataloged procedures then allow you to
retrieve and execute the appropriate procedure with one version of the
EXEC statement, no matter which -partition you are running in. One
benefit of this feature lies in the ease with which unscheduled jobs can be
started.
To use the feature, you must fi..rst create separate procedures that
conform to the specific partitions in your system. Most probably, the
difference in these procedures will be in the- EXTENT and DLBL
statements because of the different device and DASD space assignments
from partition to partition. Next, in order to distinguish between the
procedures and relate them to the appropriate partitions, the following
naming convention must be used for cataloging these procedures:

Chapter 3: Using the System 3.77

First character of name
Second character
Third-eighth characters

$
B for BO partition
1 for Fl partition, 2 for F2 partition, etc.
any alphameric character

In the EXEC statement used to start the job, the first two characters of the
procedure name must be $$, with the remaining characters identical to the
last six characters of the cataloged name.

To continue the previous example, the procedures may be named
$BPARSTD for the BO partition, $lPARSTD for the Fl partition and so
on. The statement thus needed to invoke the appropriate procedure is
/ / EXEC PROC=$$PARSTD.

Use of Cataloged Procedures by the Operator
Partition related procedures or procedures for the starting of urgent jobs are
of great help to the operator. Full details on the use of cataloged
procedures by the operator are given in DOS/VSE Operating Procedures.

3.78 DOS/VSE System Management Guide

I linking Programs
Prior to execution in storage, all programs must be placed in the core image
library by the linkage editor. This section describes the role of the linkage
editor and how you can communicate with it through control statements.
The name linkage editor appropriately reflects the editing and the
linking operations that this program performs. The linkage editor prepares a
program for execution by editing the output of a language translator into
one or more executable phases. The linkage editor also combines separately
assembled or compiled program sections or subprograms (called object
modules) into phases. This process is referred to as linking.
A program can be link-edited into one or more phases and
•

cataloged permanently,

•

cataloged permanently and executed immediately, or

•

catatoged temporarily and executed immediately.

When a phase is cataloged permanently into the core image library, the
linkage editor is no longer required for that phase *, because, the supervisor
can load it directly from the library in response to an EXEC job control
statement, or a FETCH or LOAD macro. On the other hand, if the phase
is cataloged temporarily and executed immediately, the linkage editor is
required again the next time the phase is to be run.
Phases are stored either temporarily or permanently, depending on the
option specified in the OPTION job control statement:
/ / OPTION LINK

If the LINK option is specified, the phase is stored temporarily for
immediate execution in the same job. This phase will be overwritten in the
core image library by the next phase that is link edited.
/ / OPTION CATAL

If the CATAL option is specified, the phase is stored permanently and can

be executed any time after the link-edit run.
Phases produced by the linkage editor while running in a foreground
partition are cataloged into a private core image library. To catalog a phase
into the system core image library, the linkage editor must execute in the
background partition. You may, optionally, use a private core image library
in the background partition by ensuring that it is assigned during execution
of the linkage editor. For more information on using private libraries, refer
to Using the Libraries later :in this chapter.

*If a phase is non-relocatable and the partition boundaries change so that the cataloged
program's start and end addresses no longer fall within the partition, the program must
be link-edited again.

Chapter 3: Using the System 3.79

Structure of a Program
To understand the functions of the linkage editor, you must understand the
structure of a program during the various stages of its development. Figure
3-23 summarizes the three sections that follow, which discuss source
modules, object modules, and program phases.
SOURCE MODULE

OBJECT MODULE

->

->

Language
Translator

Relocatable
Library

Source Statement
Library

Linkage
Editor

Core Image
Library

A set of source statements, or source mQdule 0), must be processed by a language translator, but can first be
catalo&ed as a hook (2) into the SOurce statement library. The output of the language translator is called an
object module (3), which must be processed by the linkage editor, but can first be cataloged as a module (4)
into the relocatable library. The output of the linkage editor is called a phase (5), which is cataloged into the
core image library temporarily or permanently, and c~_ru.so._~l.o_~c:led into the shared virtual area.

Figure 3-23. Stages of Program Development

Source Modules
After planning the most logical approach to your application, you write a
set of source statements in a programming language. Your set of source
statements, called a source module, is processed by a language translator.
The language translator assembles source modules written in assembler
language, or it compiles source modules written in a high-level language
(for instance, COBOL, PL/I, or RPG ll). The language translator
transforms the source module into an object module, which is in machine
language. .
You can either submit your source module directly to the language
translator for processing, or you can catalog it into a sublibrary of the
source statement library for processing at a later time by tfle language
translator.

3.80 DOS/VSE System Management Guide

Source modules are written in one or more control sections (CSECTs).
Using assembler language the programmer defines the control sections.
Source modules written in a high-level language have their control sections
defined by the various compiler options used.

Object Modules
An object module, the output of a language translator, consists of the

dictionaries and text of one or more control sections. The dictionaries
contain the information needed by the linkage editor to modify portions of
the text for relocation and to resolve cross-references between different
object modules. The text consists of the actual instructions and data fields
of the object module. You can either submit your object module directly to
the linkage editor for processing, or catalog it into the relocatable library
for later inclusion in a linkage editor job stream.
For each object module the language translator produces four types of
records as illustrated and summarized in Figure 3-24. For more information
about these records see DOS/VSE System Control Statements.

Byte

"

o

"

e

4

Contains X'02'. Identifies the record as one of an object module.
Indicates the record type and can be one of the following:
C'ESO' -- External symbol dictionary. Contains symbols defined in this module and referred to by one or more other modules and symbols referred to
in this module but defined in another module.
C'TXT' - Text. Contains actual code plus control information needed by the
linkage editor.
C'RlO' -- Relocation list dictionary. Identifies those portions of the text
which must be modified when the program is relocated for execution.
C'ENO' -- End of module. Indicates the end of a module. The record may
contain an address where execution is to begin (transfer address) or the length
of the control section or both.

Figure 3-24. Record Types of an Object Module

If you want to change information in a TXT record, you can prepare a

REP record (user replace record) and submit it with your object module for
cataloging into the relocatable library or for linkage editor processing. A
REP record must be submitted between the TXT record it modifies and the
END record; otherwise, the TXT record is not modified. Usually, you place
the REP record(s) immediately before the END record.

Chapter 3: Using the System

3.81

Program Phases

The linkage editor produces a program phase from the object module(s)
you identify in linkage editor control statements. A phase is the functional
unit (consisting of one or more control sections) that the system loader can
load into a partition in response to a single EXEC job control statement (or
a FETCH or a LOAD macro instruction in an assembler language
program).
In the PHASE control statement you instruct the linkage editor to
produce one of three types of phases: relocatable, self-relocating, or
non-relocatable.
Relocatable Phases. A phase is relocatable if it can be loaded for execution
in any partition's address area. The linkage editor produces a relocatable
phase unless you specify an absolute origin (load) address instead of a
relative address. However, mM recommends that you always specify a
relative origin address. An address, in order to be relative, is represented by
a symbol with or without a displacement; for details see DOS/VSE System
Control Statements.
If a relocatable phase is also designed as a reenterable phase, it is
eligible to be loaded into the shared virtual area (SVA). Phases resident in
the sVA can be shared concurrently by programs running in either real or
virtual mode.

Self-Relocating Phases. Prior to the availability of a loader with the
relocating capability some users coded self-relocating programs in order to
gain the advantages of relocatability. If you have to perform maintenance
on such a program, you must write this program in assembler language
according to the rules described in DOS/VSE Macro User's Guide. In the
PHASE control statement you indicate an origin address of +0. The
program must relocate all its addresses at execution time to correspond with
the addresses available in the partition where the program is loaded.
Non-Relocatable Phases. A non-relocatable phase is link-edited to be loaded
at a specific location (absolute address) associated with a partition. When
you request execution of a non-relocatable phase in a given partition, the
starting and ending addresses of the phase must be included within that
partition. Otherwise, the job is canceled. If you wish to execute a
non-relocatable phase in more than one partition, you must catalog a
separate copy of the phase for each partition.

The Three Basic A.pplications of the Linkage Editor
The three basic applications of the linkage editor are referred to as:
•

cataloging phases into the core image library

•

link-edit and execute

•

assemble (or compile), link-edit, and execute

The following sections include a discussion of the system flow during each
of these applications.

3.82 DOS/VSE System Management Guide

Cataloging Phases into the Core Image Library
When you have an operational program (as an object deck in cards or on
tape, for example) and you expect to use that program frequently, you
should catalog it into a Core image library. You can do this in a single job
step, which is shown in Figure 3-25, and described below.
Job control copies, onto SYSLNK, the linkage editor control statements
present on SYSRDR. The INCLUDE statement, without operands, signals
job control to read any object modules that are to be included from
SYSIPT. H an ENTRY statement is not encountered before the / / EXEC
LNKEDT statement, job control writes one on SYSLNK. An ENTRY
statement signals termination of the input to the linkage editor.
The linkage editor is loaded mto the partition where the job stream was
submitted; it uses SYSOOI as a work file.
Because the CATAL operand of the OPTION statement was specified,
the linkage editor places the executab1e program petffianen.tly mto a core
image library. H a private core image library is assigned to this partition,
the program is cataloged there; otherwise, (for the background partition) it
is cataloged into the system core image library. The library descriptor entry
in the core image directory for cataloged phases is updated.
H the phase is eligible for the shared virtual area and is indicated as
SVA eligible in the system directory list, the phase is also loaded into the
SVA.

Note: System and work files such as SYSLNK and SYSOO 1 must be defined.

Cataloging a Supervisor. Supervisors may also be cataloged permanently into
the core image library as described above. Be sure, when doing this, to
specify unique name (eight alphameric characters) for each supervisor.

a

Link-Edit and Execute

You do not always need to catalog a permanent copy of your program into
the core image library in order to execute the program. For instance, you
have modified parts of your program and want to test these modifications
with the entire program. In this case, you can specify the LINK option,
which requests that the linkage editor place a temporary copy of the
program into the core image library. Again, the INCLUDE statement
signals job control to read the following input from SYSIPT. The shaded
portions of Figure 3-26 illustrate how this job stream differs from Figure
3-25.
By specifying an EXEC statement without a program name operand
after the EXEC LNKEDT statement, the program just link-edited is loaded
for execution. The space temporarily occupied by this program in the core
image library is overwritten the next time a program is link-edited.

Chapter 3: Using the System 3.83

FJgUI"e 3-25. A Job Stream to Catalog a Program into the Core Image
Library

Assemble (or CompHe), Link-Edit, and Execute
You can also combine the job steps described above with a job step for
assembly (or compilation) of your source program. This is especially useful
when you are developing a program. Figure 3-27 shows how your job
stream should be set up. The shaded portions of the figure illustrate how
this job stream differs from that shown in Figure 3-26. Linkage editor
control statements are not required when linking single-phase programs
temporarily into the core image library.
You direct the language translator to write the object module directly
onto SYSLNK by specifying the LINK option at the beginning of the job.
After the linkage editor processed the input from SYSLNK, your program is
loaded for execution.
"

3.84 DOS/VSE System Management Guide

/ / JOB TEMP

The / / EXEC statement (without a program name operand) causes this program to be
loaded for execution immediately.
The / / OPTION CATAL statement may also. be used in this job stream. In this
case, the program that was cataloged (permanently) is executed immediately. When
/ / OPTION CATAL is specified a PHASE statement is required.

FJgUre 3-26. A Job Stream to Unk-Edit a Program for Immediate Execution

If errors occur in one job step causing an abnormal termination, the
remaining job steps are ignored. Certain linkage editor errors do not cause
job step termination. If you do not want to execute the program when
these errors occur, you may specify ACTION CANCEL after the / /
OPTION LINK.

Chapter 3: Using the System

3.85

/&

Figure 3-27. A Job Stream to Assemble, Link-Edit, and Execute

Processing Reqllirements for the Linkage Editor
The linkage editor can be executed in any partition. When the linkage
editor is executed in a foreground partition, a private core image library
(SYSCLB) must be uniquely assigned to that partition and phases are
placed there. When the linkage editor is executed in the background
partition where no private core image library is assigned, phases are placed
into the system core image library; phases are placed into a private core
image library also from the background partition if such a library is
uniquely assigned to that partition.

Symbolic Units Required

The linkage editor requires the following symbolic units:
SYSIPT

Module input (if any) --

SYSLST

Programmer messages and listings (if SYSLST is not assigned,
no map is printed and programmer messages appear on
SYSLOG)

SYSLOG

Operator messages

SYSRDR

Control statement input (via job control)

SYSLNK

Input to the linkage editor

SYSOOI

Work file.

Note that SYSRDR and SYSIPT may contain input for the linkage editor.
This input is written on SYSLNK by job control.

H output from the linkage editor is to be placed in a private core image
library, the following symbolic unit is required:

3.86 DOS/VSE System Management Guide

SYSCLB

The private core image library. It may be assigned anywhere in
the job stream but before job control reads the / / EXEC
LNKEDT statement.

If object modules from a private relocatable library are to be link-edited,

the symbolic unit SYSRLB must be assigned.

Preparing Input for the Linkage Editor
The input you prepare for the linkage editor consists of job control
statements, linkage editor control statements, and object modules. Job
control reads the job control statements and the linkage editor control
statements from the device assigned to SYSRDR and object modules from
SYSIPT. The linkage editor control statements and object modules are
copied onto the disk extent assigned to SYSLNK.
The linkage editor con~rol statements direct the execution of the linkage
editor. The statements are: ACTION, ENTRY, INCLUDE, and PHASE.
A description of how to prepare. these control statements is given on the
following pages. Here, the various operands of the control statements are
described under headings that indicate their function.

AS4iigning a Name to a Program Phase

Each program phase the linkage editor is to produce should have a name,
which you specify in the PHASE statement. When a phase is cataloged in
the core image library, the phase name identifies that phase for subsequent
retrieval. In other words, the same phase name you supplied in the PHASE
statement when permanently cataloging the initial or only phase of a
program must be used as the operand in the EXEC job control statement
or in a FETCH or a LOAD macro instruction.
When you catalog a phase with the same name as a phase already
residing in the core image library, the earlier entry with the same phase
name is deleted from the core image directory (and, if applicable, the
system directory list in the SVA) and cannot be accessed again.
The choice of a phase name has a bearing on retrieval efficiency and
the subsequent use of the librarian programs. Job control scans the
directory of the appropriate library for all phases starting with the same
four characters as the program name specified in the EXEC statement.
Any phases with the same first four characters of their phase name will
be classified as a multiph~_,program. When a phase of a multiphase
program is fetched, the available address space must be large enough to
contain the largest of those phases even if that phase is not part of the
program which is being executed.
~~.'.

Phase names may be formed only from characters 0-9, A-Z, /, #, $,
and @. Otherwise, the phase statement is invalid. The names "S", "ALL",
and "ROOT" are invalid phase names.
In choosing a name for any multiphase program, make sure that the
first four characters are the same for all phases of that program but

Chapter 3: Using the System 3.87

different from those of other programs. Such names simplify the deleting,
displaying, punching, merging, and copying of the entire program. Figure
3-28 summarizes the above reoommendations.
Note: A phase name "//" cannot be placed into the System Directory List via
the job control command SET SDL.

Different names should be given to each
multiphase program; each phase of a
multiphase program should be named
with the same first four characters. This
simplifies library maintenance.

PrOgl
ABCDl
ABCD2
ABCD3
ABCD4

Prog2
ANNll
ANN12
ANN13
ANN14
ANN15

Prog3
WXYZl
WXYZ2
WXYZ3

WXYZn

Simplified library maintenance means, for example, that one simple control statement deletes all phases of Progl :

(

DELETC ABCD.ALL

If the programs had been named:
Progl

Prog2

Prog3

ABCDl
ABCD2
ABCD3
ABCD4

ABCD5
ABCD6
ABCD7
ABCD8
ABCD9

ABCD10
ABCDll
ABCD12

ABCDn

the statement required to delete Progl would be:
DELETC ABCD1, ABCD2, ABCD3, ABCD4

FJgUI'e 3-28. Naming Multiphase Programs

3.88 DOS/VSE System Management Guide

Denning a Load Address for a Phase

For link-editing, you specify where your program is to be loaded for
execution. You have several choices.
A phase can be link-edited to be loaded into and executed from:
•

a specific partition's address area

•

the shared virtual area

•

an absolute address.

A phase can be link-edited as a relocatable phase, a self-relocating phase,
or a non-relocatable phase.
The load address you specify in the PHASE statement determines the
relocatability status of the link-edited phase:
•

For a phase to be relocatable, specify a symbolic address with or
without a displacement.

•

For a phase to be non-relocatable, specify an absolute address.

•

For a phase which you wrote to be self-relocating, specify +0.

Full details on possible load address (also called origin address)
specifications are given in DOS/VSE System Control Statements.
Link-Editing for Execution at Any Address. H the linkage editor determines
that a phase is to be given the relocatable format, it flags the core image

directory entry for that phase, and inserts the relocation information behind
the text of the phase in the core image library.
When a relocatable phase is link-edited, it is ~Jgp.ed a load address
f',re~~!~e p_~ti0J?-'s !,

L ...... ~ ..

·u,

for Execution in a Speciflc Partition's Address Space. Unless

Chapter 3: Using the System 3.89

otherwise specified in the PHASE statement, a prJob name. 8-byte character string taken from
JOB statement.
User Information. 16 characters of information
taken from the JOB statement.
Partition ID, BG, ... , F2, or F 1.
Cancel Code. Refer to DOS/VSE Serviceability Aids and

Debugging Procedures

SIO Tables. Variable number of bytes. Six bytes are
reserved for each device specified in the JA parameter.
First two bytes are X'Ocuu', next four are hex count of
SiCs for job step. Unused entries contain X'10' followed by
five bytes of zeros. Stacker select commands for MICR
devices are not counted. Error recovery SIOs are not charged
to the JOB Accounting Table. Devices are added to the table
as they are used.
1

Overflow. Normally X'20'. Set to X'30' if more devices are
used than set by the JA parameter at system generation time.

Note: The difference between Start and Stop times will not necessarily equal the sum of CPu,
A.II Bound. and Overhead times. A.II Bound and O'H!rhead times will vary, depending on the
number of acti'H! partitions and the type of partition activity. CPU time is accurate for each
partition, but it may not be reproducible. That is, the same job being executed under different
system conditions (varying number of active partitions, logical transient available, etc.) may
show differences in CPU time.

FtgUI"e 4-4.

4.8 DOS/VSE System Management Guide

Job Accounting Table

H physical IOCS is used for printing, you must 'space after' to prevent
overwriting of job control statements.

For efficiency, an overlay structure should be avoided and the length of
the program should preferably not exceed one core image library block.
H the job accounting program is canceled as the result of an error
condition, the current information cannot be retrieved, the job accounting
information for the current job step is unreliable. However, provision is
made that the job aceounting information for any subsequent job steps will
be correct, provided the cancellation was not caused by an error in the
$JOBACCT routine itself. H there was an error in the $JOBACCT routine,
it must be corrected first.
In order to avoid unintentional cancellation of the job accounting
program by operator action, the operator should issue the MAP command
and check the job name for the running partition. H the job name is 'JOB
ACCT', the job accounting routine is active; the CANCEL command
should not be issued until the original job name is displayed after another
MAP command.

Register Usage. Important data for the user's job acpounting routine are
passed in the following general registers:
12
15
11
13
14

Base address for $JOBACCT
Address of the job accounting table
Length of the job accounting table
Address of the user save area
Return address to job control

H $JOBACCT uses LIOCS, the contents of general registers 14 and 15
must be saved (also registers 0 and 1 if necessary) because LIOCS uses
these registers.

Save Area for the User's Routine. The address of a save area that can be
used by the job accounting routine is passed in general register 13. This
save area is 16 bytes long unless a greater length (up to 1024 bytes for
saving DTF information for LIOCS) was specified at system generation
time. However, CCBs and executable CCWs must not be included.
User's Area for LIOCS Label Processing. H your job accounting routine
uses LIOCS for processing such items as standard tape labels, DTFDA, or
DTFPH with MOUNTED = ALL, then an alternative label area must be
specified at system generation. The length of this label area should
normally be the number of bytes that would be allocated by a given
parameter of the LBLTYP statement. For information on determining the
number of bytes, see DOS/VSE System Cor.tro! Statements.

Tailoring the Program
The requirements of the program may be simply to record the accounting
information as part of the SYSLST output for each job step or job, or it
may be to accumulate information to be used for equitably allocating the
costs of a computing center.

Chapter 4: Using the Facilities and Options of DOS/VSE

4.9

H data is to be written out on a disk or tape, the save area can be used
for communicating between job steps. Such information as the disk address
for the next record or an indication that tape labels have been successfully
processed, or even the DTF used to control the output, may be stored in
the save area.

Figure 4-5 illustrates a job accounting program that writes records to
disk without additional processing.

4.10 DOS/VSE System Management Guide

JAACT

CSECT
USING
* ,R12
JASAVE,R13
JOB ACCT SAVE AREA
USING
LR
R9,R15
SAVE ADDR OF TBL
RO,JADTFLNG+L'JABSAVE LENGTH FOR GETVIS
LA
LENGTH=(O)
GET SPACE IN PARTITION
GETVIS
R15,R15
CHECK RETU~~ CODE
LTR
JARET1
NO GETVIS SPACE
BNZ
RO,JABROUT
AB'ROUTINE
LA
AB,(0),(1)
SET ABNRML TERM EXIT
STXIT
R1,L'JABSAVE(R1)
UPDATE GETVIS POINTER
LA
JASTATSW,X'CO'
TEST STATUS
TM
JARET
DISK AREA FULL
BO
BM
JAOPEN
SAVE AREA INITIALIZED
* PERFORM LABEL PROCESSING AND INITIALIZE SAVE AREA
0(JADTFLNG,R1 ),JADTF MOVE DTF TO PARTITION
MVC
OPENR
(R1)
OPEN FILE (see Note)
MVC
JACCB,0(R1)
MOVE CCB TO SAVE AREA
JASEEK, 58( R 1 )
EXTENT LOWER LIMIT
MVC
MVI
JAR, X '01 '
FIRST RECORD
JAHIGH,JADTF+S4
HIGH EXTENT LIMIT
MVC
* RELOCATE CCWS
MVC
JASKCCW(32),JAMODCCW PUT MOD CCWS IN SVE AREA
LA
R10,JASEEK
SEEK ADDRESS
STCM
R10,7,JASKCCW+1
PUT ADDRESS IN CCW
LA
R10,JASRCH
SEARCH ADDRESS
STCM
R10,7,jASRCCW+1
PUT ADDRESS IN CCW
LA
R10,JASRCCW
SEARCH CCW ADDRESS
STCM
R10,7,JATIC+1
PUT ADDRESS IN CCW
LA
Rl0,JASKCCW
CHANNEL PROGRAM ADDR
STCM
R10,7,JACCB+9
PUT ADDRESS IN CCB
MVI
JASTATSW,X'80'
IND SAVE AREA INIT
* WRITE JOB ACCOUNTING TABLE TO DISK
JAOPEN
STCM
R9,7,JADATA+1
PUT ADDR OF TBL IN CCW
MVC
O( 16,R1 ),JACCB
MOVE CCB TO PARTITION
EXCP
(1)
WRITE DATA
WAIT
(1)
WAIT FOR COMPLETION
* UPDATE SEEK ADDRESS
TR
JAR, JARECTAB
RECORD
JAR,X'01'
NEW TRACK
CLI
BNE
JARET
NO
JAHEAD+1(1 ),JAHDTAB
TR
HEAD
JAHEAD+1,X'00'
CLI
NEW CYLINDER
BNE
JAHTST
NO
R10,JACYL
CYLINDER ADDRESS
LH
R10,1(R10)
INCREMENT BY ONE
LA
10,JACYL
REPLACE IN SEEK ADDR
STH
JAHTST
BEYOND UPPER LIMIT
JAHIGH,JASRCH
CLC
BH
NO
JARET
O( 16,R 1 ) ,JACCBL
MOVE CONSOLE CCB TO PARTITION
MVC
R2,JAMSG1
ERROR MESSAGE
LA
R2, 7 , 9( R 1 )
STCM
PUT ADDRESS IN CCB
(1)
INFORM OPERATOR
EXCP
(1)
WAIT FOR COMPLETION
WAIT
JASTATSW,X'40'
INDICATE DISK FULL
01
JARET
FREEVIS LENGTH=(O)
FREE PARTITION SPACE
RESET EXIT LINKAGE
AB
STXIT
R14
BR
RETURN
JARET1
Note:As this example is self relocating, the self-relocating form of the OPEN macro (OPENR) is used; for a routine that will be linked
relocatable, OPEN may be used instead.

FJgUre 4-5.

Job Accounting Routine Example (Part 1 of 2)

Chapter 4: Using the Facilities and Options vf DOS/VSE

4.11

JABROUT

LA

MVC
LA

STCM
EXCP
WAIT
EOJ
JAMODCCW CCW
CCW
CCW
CCW
JACCBL
CCB
JABSAVE DS
JADTF
DTFPH
JADTFLNG EQU
ORG
DC
ORG
JAMSG1
CCW
JAMSG2
CCW
JAERR1
DC
JAERR2
DC
JARECTAB DC
JAHDTAB DC
JASAVE
DSECT
JASEEK
DS
JABB
DS
JASRCH
DS
JACYL
DS
JAHEAD
DS
JAR
DS
JASTATSW DS
JACCB
DS
JAHIGH
DS
DS
JASKCCW CCW
JASRCCW CCW
JATIC
CCW
JADATA
CCW
*
RO
EQU
R1
EQU
R2
EQU
R9
EQU
R10
EQU
R11
EQU
R12
EQU
R13
EQU
R14
EQU
R15
EQU
END

R1,L'JABSAVE(R1 )
o( 16 , R1 ), J ACCBL
R2,JAMSG2
R2, 7 , 9( R1 )
(1)
(1)
X' 07' , * , X' 60' ,6
X'31',*,X'60',5
X; 08; , * , X; 00; , 1
X'05' ,*,X'20',246
SYSLOG,*
OCL72
TYPEFLE=INPUT,
DEVICE=2314,
MOUNTED=SINGLE
*-JADTF
JADTF
X'OOOOOBOO'

RESTORE ADDR IN GETVIS AREA
MOVE CONSOLE CCB TO PARTITION
ERROR MESSAGE
PUT ADDRESS IN CCB
INFORM OPERATOR
WAIT FOR COMPLETION

MEANS CHECK LABELS

SET CCB OPTION BITS

X'09' ,JAERR1,X'20',L'JAERR1
X'09' ,JAERR2,X'20',L'JAERR2
C'JOB ACCOUNTING DISK FULL'
C'JOB ACCOUNTING ROUTINE CANCELED'
X'0002030405060708090AOBOCODOEOF101112131401'
X'0102030405060708090AOBOCODOEOF1011121300'
OXL6
XL2
OXL5
XL2
XL2
X
X
XL16
XL4
XL4
X'07' ,JASEEK,X'60',6
X'31' ,JASRCH,X'60',5
X'08' ,JASRCCW,X'00',1
X'05',*,X'20',246

SEEK ADDRESS BBCCHH
BB
SEARCH ADDRESS CCHHR
CC
HH
R
COMMAND CONTROL BLOCK
HIGH EXTENT LIMIT
SEEK CCW
SEARCH CCW
TIC CCW
WRITE DATA ASSUMING 29
SIO DEVICES TRACED

0
1
2
9
10
11
12
13
14
15

Note: The DSECT labeled JASAVE through JADATA defines the layout of the job accounting user-saye area, which resides within the
supenisor. The address of this area is passed, in register 13, to your job accounting phase. When generating your supenisor you must
specify the desired length of this saYe area by substituting a yalue for s, the first operand of the JAUOCS parameter 0/ the FOPT
macro. If the operand is omitted or if JAUOCS=NO is specified the length of the user saye area is set to 16 bytes by default.

Figure 4-S.

Job AccountiDg Routine Example (part 2 of 2)

4.12 DOS/VSE System Management Guide

Checkpointing Facility
The progress of a program that performs considerable processing in one job
step should be protected against destruction in case the program is
canceled. DOS/VSE provides support for taking up to 32,767 checkpoint
records in a job. Through this facility, information can be preserved at
regular intervals and in sufficient quantity to allow restarting a program at
an intermediate point.
The CHKPT macro (or the corresponding high-level language
statement) causes DOS/VSE to store the checkpoint record on a magnetic
tape or disk. For more details about taking checkpoints, refer to
.
DOS/VSE Macro Reference if you use assembler language or to the
appropriate high-level language manual.
The RSTRT job control statement restarts the program from the last or
any specified checkpoint taken before cancelation.
When a checkpointed program is to be restarted, the partition must
start at the same location as when the program was checkpointed and its
end address must not be lower than at that time unless a lower end address
was specified in the CHKPT macro instruction. Unless the user
reestablishes all linkages to SVA phases himself, the contents and location
of the modules in the SVA when restarting must also be the same as when
the program was checkpointed. The SDL must be identical if the restarted
program uses a local directory list (for example, one that was generated by
the assembler language macro GENL).

H any pages of a virtual mode program were fixed when the checkpoint
record was taken, then, in 370 mode, the real address area allocation for
the partition must also start at the same or a lower location and its end
address must be at least as high as at that time. The pages that were fixed
are refixed by the supervisor when the program is restarted.

Restarting a Program from a Checkpoint
To restart a program from a checkpoint the RSTRT job control statement is
used. The sequence of job control statements that must be submitted to
restart a program is as follows:
1. A JOB statement specifying the jobname used when the checkpoints
were taken.
2. ASSGN statements, if necessary, to establish the 110 assignments for
the program that is to be restarted.
3. A RSTRT statement specifying
a) the symbolic name of the tape or disk device on which the
checkpoint records are stored.
b) the sequence number of the checkpoint record to be used for
restart.
c) for checkpoint records on disk the filename (DTF name) of the
checkpoint file.
4. An end-of-job (I &) statement.

Chapter 4: Using the Facilities and Options of DOS/VSE

4.13

Figure 4-6 shows the sequence of job control statements needed to restart a
checkpointed program that ended abnormally due to, for example, a power
failure. Following are the characteristics of the checkpointed program that
must be considered for restart:
•

The job name specified in the.JOB statement was CHECKP; the same
name must be used for restart.

•

The checkpoint records were written on magnetic tape; therefore, no
filename need be specified in the RSTRT statement.

•

The symbolic device name SYSOO6 is used for the checkpoint file.

•

The sequence number of the last checkpoint record written was 0013;
this or any previous checkpoint record can be used for restart (the
sequence numbers are printed by DOS/VSE on the SYSLOG device).

In reconstructing the job stream note that the / / RSTRT statement
physically and functionally replaces the / / EXEC statement originally used.

Another important consideration is the repositioning of files on
magnetic tape or disk. Assembler language users may consult DOS/VSE
Macro Reference, which discusses the topic in context with using the
CHKPT macro. High-level language users should consider printing a file
processing status record for each checkpoint that is taken during the
execution of a program. This record should indicate the nafoe of the file(s)
read or written on magnetic tape or disk when DOS/VSE takes the
checkpoint.

II
II
II
II
II

JOB CHECKP
ASSGN SYS006,380
ASSGN
ASSGN
RSTRT SYS006,0013

CHKPT TAPE

1&

Figure 4-6.

Example of a RESTART Job

DASD Switching under DOS/VSE
The standard I/O interface between an I/O device and the CPU is a
channel and a control unit.
Normally, this interface provides one, and only one, path by which a
CPU communicates with an I/O device. However, it may be desirable to
access a device, especially a DASD device, by more than one path. For
example, a second CPU may be required to back-up the host CPU such
that should the host CPU become inoperable, the attached DASD devices
may be switched immediately to (made accessible to) the back-up CPU.
Multiple CPUs may also need to access the same data base.
A single CPU may require back-up channels and control units,
providing alternate paths to the same DASD devices.

4.14 DOS/VSE System Management Guide

In order to do this device sharing, the hardware provides a two-level
switching mechanism that allows you to connect one or mote DASDs either
dynamically or manually to different I/O paths. This mechanism is known
as channel switching and string switching.
Channel Switching. Channel switching provides the switching mechanism at
the control unit level. The channel switch allows you to connect the control
unit to up to four channels, which may belong to the same or different
CPUs thus providing up to four distinct I/O paths. A maximum of two
channels may connect to one CPU. The connection of any channel can be
manually enabled or disabled. When enabled, the switch is dynamically
controlled by the hardware.
String Switching. In the case of string switching, the switching mechanism is

at the DASD string level. String switching allows you to connect a string of
DASDs to two distinct control units, or integrated disk attachments. The
two I/O paths may be connected to a single or two different CPUs.
Using DASD Switching. In both types of this hardware-supported switching,
a desired I/O path may be selected in one of two ways. In the first case,
connection is made dynamically when an I/O command is issued for a
device. Provided that the control unit (in channel switching) and the DASD
string (in string switching) are free for connection, the target DASD device
can be accessed by the requesting CPU. Once a connection is established
by one CPU, the other CPU receives device busy status if attempting to
access a device on the string.
In the second case, the operator may manually switch the sharable
devices to the desired CPU (via the Enable/Disable toggle switches). It
should be noted that in this case an entire string of DASD is disconnected
from the other CPU.

H, at your installation, a DASD switching feature is being used, it is
your responsibility to resolve conflicting CPU references to shared devices
(or files) and thus ensure data integrity. Following are two ways of
preventing potential conflicts.

First, through scheduling of CPU file referencing, ensure that only one
CPU that is updating the file is connected to the shared DASD. The
operator needs only to switch the manual control to the updating CPU for
that period of time.
Secondly, through scheduling and the use of the operator commands
DVCUP and DVCDN (as described below), devices may be reserved for
use by one CPU for a particular period of time.
An individual device can be excluded from use by a particular CPU by
entering a DVCDN command for that device via the operator console. The
other system then has exclusive access to that device. The device can be
made available again by issuing a DVCUP command for the device.
However, the other system should then issue a DVCDN command for that
device. To avoid conflicts, both system operators have to inform each other
about the status of the reserved devices. It is therefore recommended that a
job, which requires exclusive access to a file or device, notifies the operator
when the device has to be reserved, and when it may be released.

Chapter 4: Using the Facilities and Options of DOS/VSE

4.15

Note that the DVCUP/DVCDN commands reserve the DASD at the
device level, although the programmer may be interested in reserving only
one file on that particular device. It is recommended that DVCUP and
DVCDN commands be entered only via the console.
Further hardware details on chpnnel or string switching may be found
in the appropriate DASD hardware manuals, and also in the hardware
manuals for the mM 370/115, 370/125.
\\'hen using DASD Switching, in order to iacilitate the diagnosis oi
hardware failures, the inclusion of Recovery Management Support (RMS) is
required. For System/370 Models 115 or 125, RMS may be included
during DOS/VSE system generation by specifying RMS= YES in the
SUPVR macro.

Designing Programs for Virtual Mode Execution
This section describes programming techniques that may improve the

efficiency of programs that execute in virtual mode. Consider these
techniques for new programs to be written and old programs to be revised.
The section also contains information on the use of certain macros that are
provided especially for virtual storage. Programming conventions for the
shared virtual area are also discussed.

Programming Hints lor Reducing Page Faults
It is definitely worthwhile to spend some extra programming effort for

tuning virtual-mode programs that are used frequently or that require long
periods of processing time so that they will cause fewer page faults during
execution. Page faults generally occur when the size of the virtual-mode
program exceeds the number of page frames available to it during
execution. Efforts to reduce the number of page faults occurring in a
program generally involve techniques for reducing the size of the working
set of the program. The term working set is one that recurs often in
discussions of virtual storage systems.
The working set of a program is comprised of those program pages that
contain the most frequently used sequences of instructions for a given
period of time. The working set of a program is not a fixed number of
pages or instructions of that program; this set changes as the execution of
the program proceeds. For example, a program doing an internal sort and
writing a formatted table based on the results of this sort would have two
completely different basic working sets; one for the sort function and one
for the write functions.
What does execute efficiently mean? Essentially, this means that a
program will not execute appreciably slower than if the entire program were
in processor storage during its entire execution.
Although the following section does not tell you how to determine the
size of the working set, it does provide techniques for reducing its size.

4.16 DOS/VSE System Management Guide

General Hints for Reducing the Working Set

There are three general rules to keep in mind when working toward a
reduction of a program's working set. The first is locality of reference, that
is, instructions and data used together should be in storage near each other.
Second is minimum processor storage. In other words, the amount of
processor storage necessary for a program to do something should be kept
as low as possible. Third is validity of reference, that is, references should
be made only to data which will actually be used.
The chief means of achieving locality of reference is to make execution
sequential whenever possible by avoiding excessive branching.
A program that executes sequentially normally requires a partition
larger than the same program when it does not execute sequentially. For
example, the functions of a section of code repeat themselves several times
throughout the logic of your program. You are tempted to write this code
once and branch to it whenever necessary, but branching violates the
principle of locality of reference. Branching may cause more page faults
than would coding the routine in line each time it is used. Also, it is easier
for someone else to follow the logic of a program which is written to
execute sequentially.
Locality of reference can be achieved only to a limited extent by
programs written in a high-level language.
Elements in arrays in FORTRAN or PL/I can be referred to in the
order in which they appear in storage. In FORTRAN, for example, arrays
are ordered by columns. The elements of the array DIMENSION (2,2,2)
are arranged as follows in contiguous virtual storage locations:
(1,1,1)
(1,2,1)
(1,1,2)
(1,2,2)

(2,1,1)
(2,2,1)
(2,1,2)
(2,2,2)

For array structures of other compilers, refer to the appropriate
programming language reference manuals.
A routine which processes all the elements of such an array should
refer to them in this order. H only certain elements of an array are
processed, the elements should be arranged in the order in- which they are
to be processed. H arranging an array in a certain manner causes it to be
processed advantageously one time, but disadvantageously another time,
you should consider writing two arrays, even at the cost of additional
virtual storage.
In an assembler language program, you should keep frequently used
data and constants near each other in storage, and near the instructions
which use them. This contrasts with the traditional practice of having one
area at the end of the program reserved for all the data areas and
constants. By the same token, seldom used data should be separated from
the frequently used data and placed with the routines which use it.

Avoid, if possible, using chains which must be searched each time a
data item is required. H chains are unavoidable they should be kept in a

Chapter 4: Using the Facilities and Options of DOS/VSE

4.17

compact area of storage. This may result in some wasted (virtual) storage
but will be better than searches of large areas of storage.
Another good practice to help reduce paging is to initialize variables
just before they are to be used. For example in PL/I instead of the
following:
DCL A FIXED INIT (10);
DO B=1 TO 100;
A=A+B;
END;

use:
DCL A FIXED;
A=10;
DO B=1 TO 100;
A=A+B;
END;

In the first method of cod.i:ilg, PL/I initializes the automatic variable at the
beginning of execution. The second method of coding does not require the
page containing A to be in processor storage until just before A is used.

An important help in reducing the amount of processor storage needed
for execution is to keep codiitg used for errors or other unusual occurrences
in a separate routine. H, for example, the main routine contains code for
conditions that occur only 5 % of the time, by moving this error code to a
separate section of your program, you can reduce the amount of needed
processor storage for 95 % of the processing.
Frequently-used subroutines should be loaded near each other. Because
of their frequent use, these routines tend to be in processor storage almost
continuously. H they are scattered over several pages, each of these pages
will need to be in processor storage most of the time, thus increasing the
size of the working set. By loading these routines near each other, you
reduce the number of pages required in processor storage at anyone time.
Subroutines should be designed to do as much processing as possible
whenever they are called. It is better to duplicate some code from the
calling routine in the called routine in order to avoid switching back and
forth between routines. One technique for accomplishing this is to have the
calling program pass several parameters to the subroutine and make one
call, rather than passing one parameter at a time and make several calls.
You should try to keep code that can be modified and code that cannot
be modified in separate sections of a large program. This will reduce page
traffic by reducing the number of pages that are changed. Also, try to
prevent I/O buffets from crossing page boundaries unnecessarily. Check
the assembler listing and the linkage editor map to determine where 2K
boundaries occur in your programs.

4.18 DOS/VSE System Management Guide

Using YirlJUll Storage Macros
The macros designed for use by virtual-mode programs, which are discussed
below, perform the following services:
•

fix. pages in processor storage (PFIX macro) and later free the same
pages for normal paging (PFREE macro).

•

indicate the mode of execution of a program (RUNMODE macro).

•

influence the paging mechanism in order to reduce the number of page
faults, to minimize the page I/O activity, and to control the page traffic
within a specific partition.

In order to use these macros you must be programming in assembler

language or, if your program is written in a high-level language, you must
write an assembler subroutine to make use of them. Refer to DOS/VSE
Macro Reference for a detailed description of these macros.

Fixing Pages in Processor Storage

In DOS/VSE, parts of virtual-mode programs must be 1n processor storage

only at certain times. These parts include not only the instructions and data
being processed at anyone moment, but also data areas for use by channel
programs. Instructions and data are always in processor storage when being
used. Because of the nature of I/O operations, the data areas for these
operations could be paged out during the I/O operation if something were
not done to keep them in processor storage during the entire operation.
DOS/VSE therefore fixes I/O areas in processor storage for the duration
of the I/O operation.
There are other parts of a program, however, which cannot tolerate
paging, and these parts are not necessarily kept in storage by DOS/VSE.
For instance, programs that control time-dependent I/O operations cannot
tolerate paging. A familiar example is a MICR (Magnetic Ink Character
Reader) stacker select routine. H a page fault were to occur during the
execution of one of these programs, the results would be unpredictable. A
page fault in one of these programs can be avoided by fixing the affected
pages in processor storage, using the PFIX macro.
The pages that you fix by the PFIX macro are fixed in the processor
storage allocated to the partition in which the PFIX request is issued. Only
as many pages may be fixed by a program at anyone time as there are
page frames allocated to the partition. This is done to prevent a loop in one
program from fixing all the pages in the system, and to enable other
programs to issue a PFIX macro concU-rrently.
The PFIX macro fixes the pages in processor storage, regardless of
whether these pages are stored in contiguous page frames or not. The
supervisor keeps a count of the number of times a page has been fixed
without being freed. A page that is fixed more than once without having
been freed (via the PFREE macro) is not brought in a second time and
given another page frame. Instead, the counter for that page is just
increased by one and the page remains in the same page frame.

Chapter 4: Using the Facilities and Options of DOS/VSE

4.19

The PFREE macro does not directly free a page for paging out, but
each time it is issued, the counter of fixes is reduced by one. As soon as
the counter for a page reaches zero, the page can be paged out. At the end
of a job step, all pages that have been fixed during the job step are freed.
The PFREE macro should be used as soon as possible to make a
maximum possible number of page frames available to all programs running
in virtual mode.
Figure 4-7 is a skeleton example using the PFIX and PFREE macros.
After the execution of a PFIX macro, a return code is given in register 15.
The meanings of the return codes are:

o-

The pages were fixed successfully.

4-

You requested more page frames than the number of PFIXable
page frames available to the partition.

8-

Insufficient free page frames were available.

12 -

You specified invalid addresses in your macros.

Note in the example how the return code can be used to establish a branch
to parts of the program that handle these specific conditions.

FIXER

PFIX
B
B
B
B
B

ARTN,ARTNEND+2 FIX ARTN IN STORAGE
*+4(15) BRANCH ACCORDING TO RETURN CODE
HERE
CONTINUE IF OK
NOPAGES GO TO CANCEL IF PART TOO SMALL
WAIT
GO TO WAIT UNTIL PAGES FREED
CANCL
GO TO CANCEL IF ADDR INVALID
14,ARTN GO TO ARTN
ARTN,ARTNEND+2 FREE ROUTINE AFTER EXECUTION

HERE

BAL
PFREE

ARTN

(time dependent processing which cannot be
paged out during execution)

ARTNEND

BR

NOPAGES

LA
R1,OPCCB
EXCP
(1)
WRITE MESSAGE TO OPERATOR
WAIT
(1)
WAIT FOR COMPLETION
CANCEL ALL

CANCL
WAIT
END
OPCCB
OPCCW
MSG

Figure 4-7.

4.20 DOS/VSE System Management Guide

R14

RETURN

(routine to free other pages)
EOJ

CCB
CCW
DC
DC

SYSLOG,OPCCW
X'09',MSG,X'20' ,61
CL32'AM CANCELING PLEASE ENLARGE REAL'
CL29'ADDR AREA AND RESTART THE JOB'

PFIX and PFREE Example

Indicating the Execution Mode of a Program

You may have a program that must do different processing depending upon
its execution mode. It may be impractical to have two separate programs
cataloged in the core image library (one program for real mode and another
program for virtual molle). The RlJNMODE macro can be issued during the
execution of thff program to inquire which mode of execution is being used. A
return code is issued to the program in register 1.

Influencing the Paging Mechanism

Releasing Pages. With the RELPAG macro, you inform the page
management routines that the contents of one or more pages is no longer
required and need not be saved on the page data set. Thus, page frames
occupied by these released pages can be claimed for use by other pages,
and page 110 activity is reduced.
Forcing Page-out. The FCEPGOUT macro is used to inform the page
management routines that one or more pages will not be needed until a
later stage of processing. The pages are given the highest page-out priority,
with the result that other pages, which may be needed immediately, are
kept in storage. Except when the RELPAG macro is in operation, the
contents of any pages written out are saved.
Page-in in Advance. The P AGEIN macro allows you to request that one or
more pages be read into processor storage in advance, in order to avoid
page faults when the specified pages are needed in processor storage. If the
specified pages are already in processor storage when the macro is issued,
they are given the lowest priority for page-out.

Balancing Telecommunication Activity

The use of telecommunication and production processing at the same time
may, occasionally, result in long or erratic telecommunication response
times. This may be especially true if you have overcommitted processor
storage, thus causing excessive paging. The telecommunication application
may have to compete so strongly for page frames (because of high
processing activity in the other partitions) that response time increases
substantially.
Telecommunication balancing improves response time by trading off
telecommunication response time against produ~tion partition throughput.
TP balancing tends to reduce response times, or at least to stabilize them.
After IPL, TP balancing can be activated by the operator issuing the
TPBAL command, which specifies the number of partitions that can
tolerate delayed processing. These will be the lowest priority partitions. The
TPBAL command is also used to change or display the current setting (for
more information, see the DOS/VSE Operating Procedures). Once
activated, the TP balancing function can be invoked by using
TPIN/TPOUT macros.

Ch@ter 4: Using the Facilities and Options of DOS/VSE 4.21

The TPIN macro signals to DOS/VSE that an immediate demand for
system resources is being made by the telecommunication application, for
instance, when a message has arrived. After processing is completed,
TPOUT informs DOS/VSE that the telecommunication application has no
further processing to do for the time being, and that the system resources
that were exclusively used for telecommunication should be released. Failure
to issue the TPOUT macro can cause serious performance degradation in
production partition throughput.
The TPIN and TPOUT macros have been made available primarily for
use in mM licensed telecommunication support (for example, ACF /VTAM
and CICS/VS). There is no need for these macros to be used in
user-written application programs that run under control of mM supplied
telecommunication support.

Coding lor the Shared Yi11lUl1 Area
Besides accommodating the system directory list (SDL), and perhaps the
VSE/VSAM phases with their associated GETVIS work area, the shared
virtual area (SVA) contains phases that can be used concurrently by more
than one partition. The SVA phases must be reenterable and reldtatable;
code that modifies itself will cause a protection check when executed from
the SVA. This section presents some advice on coding phases to use SVA
facilities and suggests some standards for base-register usage.
The basic assumptions for coding an SVA phase are:
•

The reenterable code must not modify any storage within its own
storage area. Therefore, the code must not contain DTFs, CCBs, or
other control blocks that are modified during execution.

•

The phase can modify registers only if it saves and restores them for
each user.

•

A user-specified work area (within the calling partition) must be
provided for storing registers and for any storage modifications.

Suggested register conventions:
•

Use register 12 as the base register in both the main routine and the
reenterable code.

•

Use register 13 as base for the working storage area. It is the
responsibility of the main routine to provide addressability to the work
area by loading register 13; the reenterable routine must not modify
register 13. The easiest way to address the working storage area in the
reenterable code is by a DSECT that defines the fields of the work area
and a USING dsectname,13. In this way symbolic addressing can be
used.

•

Use CALL, SAVE, and RETURN macros. Since register 13 is the base
register, SAVE (14,12) and RETURN (14,12) result. Use register
notation for CALL, for example, CALL (15) .... Before issuing the
CALL, load register 15 with the transfer address. Register 14 will
always contain the return address. The standard is thus established of
register 15 for calling and register 14 for returning.

4.22 DOS/VSE System Management Guide

•

Switches, and other areas that may be modified, can be placed in the
working storage area using base register 13.

Figure 4-8 illustrates the suggested conventions: MASTER is the main
routine, SLAVB is the SVA phase.
MASTER

CSECT
BALR
USING
LA
LOAD

12,0
*,12
13,SAVE
SLAVE, WORKAREA

LR
CALL

15,1
(15),(SWITCH,TECB,FIELDA,FIELDB,WORKAREA)

EOJ
DS
DS

9D
200D

*
*

SAVE
WORKAREA
*
SWITCH
TECB
FIELDA
FIELDB
SLAVE

DC
DS
DS
DS
END
CSECT
SAVE
BALR
USING
USING
LM

MVC
MVC
CLI
BE
SETlME
WAIT
EXIT

XI
RETURN
DATA 1
DC
DATA2
DC
LTORG
WORKAREA DSECT
FIELDC
DS
FIELDD
DS
END

Figure 4-8.

CANCELS IF SLAVE NOT IN CIL
LOADS SLAVE INTO WORKAREA
IF SLAVE IS NOT IN SVA

SLAVE IS LOADED HERE
IF NOT IN SVA

XL1 '00'
CL4
CL15
CL11
MUST BE SEPARATE ASSEMBLY
(14,12)
12,0
*,12
WORKAREA,6
2,6,0( 1 )
O( 15,4),DATA1
O( 11 ,5 ) , DATA2
O( 2 ),X' FF'
EXIT
SETlME ALTERS THE TECB

3, ( 3 )
(3 )

O( 2 ), X' FF'

(14,12)
CL15'THIS IS FIELDA'
CL11'THIS IS FIELDB'
3D
3D

Example of Conventions for SVA Coding

Chapter 4: Using the Facilities and Options of DOS/VSE 4.23

Appendix A: System Layout on Disk

Figures A-I and A-2 illustrate how the system residence (SYSRES) file is
organized. The volume containing the system residence file can be any mM
DASD device supported by DOS/VSE except a 2311 disk.

IPL Records
This area contains the initial program load (IPL) bootstrap records, which
cause the IPL retrieval program to be read from SYSRES and loaded into
processor storage. For CKD devices the IPL retrieval program is at cylinder
0, track 1, record 5. For FBA devices it is contained within blocks 3
through 9.

System Yolllme Label
The volume label (VOL1 label) contains the address of the volume table of
contents (VTOC) established when the pack was initialized. (The
DOS/VSE system utility program Initialize Disk is"provided for this
purpose). The VTOC must be located outside of the SYSRES extent.

User Yolllme Label
The user volume label area is provided for any additional standard volume
labels (VOL2-VOL8 labels). This area can extend from record 4 through
the end of track 0 on CKD devices or from the end of the system volume
label to the end of block 1 on FBA devices.

System Directory
The SYSRES file starts with the system directory. This directory contains
the starting addresses of the 4 library directories and the address of the
label information area.

Library Directories and Libraries
The purpose of these areas of the SYSRES file is discussed in Chapter 3 of
.
this manual.

Labell"formatio" A.rea
The SYSRES file ends with the, label information area. The purpose of this
area is described in Chapter 2 of this manual.

Appendix A: System Layout on Disk

A.1

Starting Disk Address
Component

IPL Record

CC

HH

R

00

00

1

00

00

2

Number
of Tracks
(Alloc.)

R = Required
0= Optional

R

(Phase $$A$I PL1 )
IPL Record

R

1
System Volume Label

00

00

3

R

User Volume Label

00

00

4

0

Record 1

00

01

1

R

Record 2

00

01

2

R

Record 3

00

01

3

Record 4

00

01

4

R

00

01

5

R

00

02

X

Y+1

Z+l

System Directory

IPL Records (Phase $$A$PLBK)

1

R

Cata loged Phases
Core I mage Directory

*

R

1

*

R

00

1

*

0

X

Y+1

1

*

0

Z+1

00

1

*

0

X

Y+1

1

*

0

Z+1

00

1

*

0

X

Y+1

1

*

0

Z+1

00

1

Device
dependent

R

Linked Phase
Core I mage Library Members
Relocatable Directory
Relocatable Library Members
Source Statement Directory
Source Statement Library Members
Procedure Directory
Procedure Library Members
Label I nformation Area

* Allocation Dependent on User Requirements
X = Ending CC of the Preceding Directory
Y = Ending HH of the Preceding Directory
Z = Ending CC of the Preceding Library

Note: Track 0 of cylinder 0 is not part of the SYSRES file.

Figure A-t.

System Residence Organization on

A.2 DOS/VSE System Management Guide

em Devices

Starting Disk Address
Block Number

Number of
Blocks

R=Required
O=Optional

IPL Records
(Phase $$A$I PLO)

0

1

R

System Volume Labell

1

1

R

System Directory

2

1

R

IPL Retrieval Program
(Phase $$A$PLB F)

3

7

R

Core I mage Directory

Component

10

*

R

Core I mage Library
Members

X+1

*

R

Relocatable Directory

Y+1

*

D

Relocatable Library
Members

X+1

It-

D

Source Statement Directory

Y+1

It-

0

Source Statement pbrary
Members
Procedure Directory

X+1

*

Y+1

It-

Procedure Library Members

X+1

It-

Label I nformation Area

*

X=
Y=

Y+1

200

0
0
D
2

R

Allocation dependent on user requirements
Last block of preceding directory
Last block of preceding library

1

Optional user volume labels if written will be in the same block following the
system volume label.

2

Using the Restore program you may allocate a label information area different
than the default size of 200 blocks.

Note: Blocks 0 and 1 are nat part afthe SYSRES file.
Figure A-2.

System Residence Organization on FDA devices

Appendix A: System Layout on Disk

A.3

Glossary

This glossary defines the terms proper to this manual. If you do not find the term you
are looking for, refer to the IBM Data Processing Glossary, GC20-1699.
This glossary includes definitions developed by the American National Standards
Institute (ANSI) and the International Organization for Standardization (ISO). This
material is reproduced from the American National Dictionary for Information
Processing, copyright 1977 by the Computer and Business Equipment Manufacturers
Association, copies of which may be purchased from the American National Standards
Institute, 1430 Broadway, New York, New York 10018. American National Standard
Definitions are marked with an asterisk (*).

access method: A technique for moving data between virtual storage and
input/output devices.
access method services: A multifunction service program that defines
VSAM files and allocates space for them, converts indexed-seqllential files
to key-sequenced ftIes with indexes, modifies file attributes in the catalog,
reorganizes ftIes, facilitates data portability between operating systems,
creates backup copies of files and indexes, helps make inaccessible files
accessible, and lists the records of the files and catalogs.
address: (1) An identification, as represented by a name, label, or number,
for a register, location in storage, or any other data source or destination
such as the location of a station in a communication network. (2) Loosely,
any part of an instruction that specifies the location of an operand for the
instruction.
address translation: The process of changing the address of an item of
data or an instruction from its virtual address to its real storage address.
See also dynamic address translation.
alternate track: One of a number of tracks set aside on a disk pack for use
as alternatives to any defective tracks found elsewhere on the disk pack.
application program: A program written by a user that applies to his own
work.
assembler language: A source language that includes symbolic machine
language statements in which there is a one-to-one correspondence with the
instruction formats and data formats of the computer.

attach: (1) To create a task and present it to the supervisor. (2) A macro
instruction that causes the control program to create a new task and
indicates the entry point in the program to be given control when the new
task becomes active.
auxiliary storage: Data storage other than real storage; for example,
storage on magnetic tape or disk. Synonymous with external storage,
secondary storage.
blocking: Combining two or more logical records into one block.
blocking factor: The number of logical records combined into one

Glossary 5.1

physical record or block.
book: A group of source statements written in any of the languages
supported by DOS/VSE and stored in a source statement library.
buffer: An area of storage that is temporarily reserved for use in
pedorming an input/output operation, into which data is read or from
which data is written. Synonymous with I/O area.
byte: A sequence of eight adjacent binary digits that are operated upon as
a unit and that constitute the smallest addressable unit of the system.
card punch: A device to record information in cards by punching holes in
the cards to represent letters, digits, and special characters.
card reader: A device which senses and translates into machine code the
holes in punched cards.
cardless system: A System/370 Model 115/125 configured without a
card reader or card punch, but with an mM 3540 Diskette Input/Output
Unit.
catalog: To enter a phase, module, book, or procedure into one of the
system or private libraries.

*

central processing unit: A unit of a computer that includes the circuits
controlling the interpretation and execution of instructions. Abbreviated
CPU.
channel: (1) • A path along which signals can be sent, for example, data
channel, output channel. (2) A hardware device that connects the CPU and
real storage with the I/O control units.
channel program translation: In a copy of a channel program,
replacement, by software, of virtual addresses with real addresses.
compile: To prepare a machine language program from a computer
program written in a high-level language by making use of the overall logic
structure of the program, or generating more than one machine instruction
for each symbolic statement, or both, as well as pedorming the function of
an assembler.
compiler: A program that translates high-level language statements into
machine language instructions.
configuration: The group of machines, devices, etc., which make up a data
processing system.
control area: A group of control intervals used as a unit for formatting a
file before adding records to it. Also, in a key-sequenced file, the set of
control intervals covered by an index record; used by VSAM for
distributing free space and for placing a low-level index adjacent to its data.
control interval: (1) A fixed-length area of auxiliary storage space in
which VSAM stores records and distributes free space, also, in a
key-sequenced file, the set of records pointed to by an entry in the index
record. It is the unit of information transmitted to or from auxiliary storage
by VSAM, independent of blocksize. (2) For an FBA device, the unit of
data transfer between processor storage and the device. It has the same
format as a VSAM control interval. In recording data, IOCS maps each
control interval over an integral number of FBA blocks.

5.2 DOS/VSE System Management Guide

control program: A program that is designed to schedule and supervise
the performance of data processing work by a computing system.
control registers: A set of registers used for operating system control of
relocation, priority interruption, program event recording, error recovery,
and masking operations.
control section: That part of a program specified by the programmer to
be a relocatable unit.
control unit: A device that controls the reading, writing, or display of data
at one or more input/output devices.
core image library: A library of phases that have been produced as
output from link-editing. The phases in the core image library are in a
format that is executable either directly or after processing by the relocating
loader in the supervisor.
count-key-data (CKD) device: A disk storage device storing data in the
format: count field normally followed by a key field followed by the actual
data of a record. The count field contains, among others, the address of the
record in the format CCHHR. (CC = cylinder number, IllI = head or
track number, R = record number) and the length of the data; the key area
contains the record's key (search argument). See also fixed block
architecture (FBA) device.
CPU busy time: The amount of time devoted by the central processing
unit to the execution of instructions.
data file: A collection of related data records organized in a specific
manner. For example, a payroll file (one record for each employee,
showing his rate of pay, deductions, etc., or an inventory item, showing the
cost, selling price, number in stock, etc.). See also file.
data integrity: See integrity.
data management: A major function of DOS/VSE that involves
organizing, storing, locating, retrieving, and maintaining data.
deblocking: The action of making the first and each subsequent logical
record of a block available for processing one record at a time.
default value: The choice among exclusive alternatives made by the
system when no explicit choice is specified by the user.
deletion of an I/O Device: Removal of the I/O unit from the supervisor
configuration tables.
diagnostic routine: A program that facilitates computer maintenance by
detection and isolation of malfunctions or mistakes.
dial-up terminal: A terminal on a switched teleprocessing line.
direct access: (1) Retrieval or storage of data by a reference to its
location on a volume, other than relative to the previously retrieved or
stored data. (2) * Pertaining to the process of obtaining data from, or
placing data into, storage where the time required for such access is
independent of the location of the data most recently obtained or placed in
storage. (3) * Pertaining to a storage device in which the access time is
effectively independent of the location of the data. Synonymous with
random access.

Glossary 5.3

direct organization: Direct file organization implies that for purposes of
storage and retrieval there is a direct relationship between the contents of
the records and their addresses on disk storage.
directory: An index that is used by the system control and service
programs to locate one or more sequential blocks of program information
that are stored on direct access storage.
diskette: A flexible magnetic-oxide coated disk suitable for data storage
and retrieval. Data may be stored and retrieved via such devices as the
mM 3740 Data Entry Unit and the mM 3540 Diskette Input/Output Unit.
Diskettes are also used to contain microprograms for some central
processing units.
disk pack: A direct access storage vol~e containing magnetic disks on
which data is stored. Disk packs are mounted on a disk storage drive, such
as the mM 3330 Disk Storage Drive.
distributed free space: Space reserved within the control intervals of a
key-sequenced file for inserting new records into the file in key sequence;
also, whole control intervals reserved in a control area for the same
purpose.
dump: (1) To copy the contents of all or part of virtual storage. (2) The
data resulting from the process as in (1).
dynamic address translation (OAT): (1) The change of a virtual storage
address to an address in real storage during execution of an instruction. (2)
A hardware function that performs the translation.

entry sequence: 'Qle order in which data records are physically arranged
in auxiliary storage, without respect to their contents (contrast with key
sequence).
entry-sequenced file: A VSAM file whose records are loaded without
respect to their contents, and whose relative byte addresses cannot change.
Records are retrieved and stored by addressed access, and new records are
added to the end of the file.
error message: The communication that an error has been detected.
error recovery procedures: Procedures designed to help isolate, and,
when possible, to recover from errors in equipment. The procedures are
often used in conjunction with programs that record the statistics of
machine maHunctions.
extent: A continuous space on a direct access storage device, occupied by
or reserved for a particular file.

*

file: A collection of related records treated as a unit. For example, one line
of an invoice may form an item, a complete invoice may form a record, the
complete set of such records may form a file, the collection of inventory
control files may form a library, and the libraries used by an organization
are known as its data bank.

5.4 DOS/VSE System Management Guide

FBA: See fixed block architecture (FBA) device.
FBA block: A unit of data of fixed length on which the FBA architecture
is based.
fixed block architecture (FBA) device: A disk storage device storing
data in blocks of fixed size; these blocks are addressed by block number
relative to the beginning of the file.
fixed page: A page in processor storage that is not to be paged out.
hard copy: A printed copy of machine output in a visually readable form,
for example, printed reports, listings, documents, and summaries.
hard wait state: In general, a wait state is the condition of a CPU when
all operations are suspended. System recovery from a hard wait state
requires that the user performs a new IPL (initial program load) procedure.

•

hardware: Physical equipment, as opposed to the computer program or
method of use, for example, mechanical, magnetic, electrical, or electronic
devices. Contrast with software.

•

idle time: That part of available time during which the hardware is not
being used.
index: (1) • An ordered reference list of the contents of a file or
document, together with keys or reference notations for identification or
location of those contents. (2) A table used to locate the records of an
indexed sequential file.
indexed-sequential organization: The records of an indexed sequential
file are arranged in logical sequence by key. Indexes to these keys permit
direct access to individual records. All or part of the file can be processed
sequentially.
Initial Program Load (lPL): The intialization procedure that causes
DOS/VSE to commence operation.
integrity: Preservation of data or programs for their intended purpose.

•

interface: A shared boundary. An interface might be a hardware
component to link two devices or it might be a portion of storage or
registers accessed by two or more computer programs.

•

I/O: An abbreviation for input/output.
ISAM interface program: A set of routines that allow a processing
program coded to use ISAM to gain access to a VSAM key-sequenced file
with an index.
job: (1) • A specified group of tasks prescribed as a unit of work for a
computer. By extension, a job usually includes all necessary computer
programs, linkages, files, and instructions to the operating system. (2) A
collection of related probiem programs, identified in the input stream by a
JOB statement followed by one or more EXEC statements.
job accounting interface: A function that accumulates, for each job step,
accounting information that can be used for charging usage of the system,
planning new applications, and supervising system operation more efficiently.

Glossary 5.5

job control: A program that is called into a partition to prepare each job or
job step to be run. Some of its functions are to assign 110 devices to certain
symbolic names, set switches for program use, log (or print) job control
statements, and fetch the first program phase of each job step.
job (JOB) statement: The job control statement that identifies the
beginning of a job. It contains the name of the job.
job step: The execution of a single processing program.

K: 1024.

•

key: One or more characters associated within an item of data that are
used to identify it or control its use.
key sequence: The collating sequence of data records, determined by the
value of the key field in each of the data records. May be the same as, or
different from, the entry sequence of the records.
key-sequenced file: A file whose records are loaded in key sequence and
controlled by an index. Records are retrieved and stored by keyed access or
by addressed access, and new records are inserted in the file in key
sequence by means of distributed free space. Relative byte addresses of
records can change.
label: identification record for a tape, diskette, or disk file.
label information area: Under DOS/VSE, the last portion of the system
residence file that stores label information read from job control statements
or commands.
language translator: A general term for any assembler, compiler, or other

routine that accepts statements in one language and procedures equivalent
statements in another language.
leased facility: A circuit of the public telephone network made available
for the exclusive use of one subscriber.
librarian: The set of programs that maintains, services, and organizes the
system and private libraries.
library: A collection of files or programs, each element of which has a
unique name, that are related by some common characteristics. For
example, all phases in the core image library have been processed by the
linkage editor.
linkage editor: A processing program that prepares the output of language
translators for execution. It combines separately produced object modules;
resolves symbolic cross references among them, and generates overlay
structure on request; and ptoduces executable code (a phase) that is ready
to be fetched or loaded into virtual storage.
load: (1) • In programming, to enter instructions or data into storage or
working registers. (2) In DOS/VSE, to bring a program phase from a core
image library into virtual storage for execution.
main page pool: The set of all page frames in processor storage not

assigned to the supervisor or one of the partitions.
message: See error message, operator message.

5.6 DOS/VSE System Management Guide

microprogramming: A method of working of the CPU in which each
complete instruction starts the execution of a sequence of instructions,
called microinstructions, which are generally at a more elementary level.
multiprogramming system: A system that controls more than one
program simultaneously by interleaving their execution.
multitasking: The concurrent execution of one main task and one or more
subtasks in the same partition.
object code: Output from a compiler or assembler which is suitable for
processing by the linkage editor to produce executable machine code.

*

object module: A module that is the output of an assembler or compiler
and is input to a linkage editor.
object program: A fully compiled or assembled program. Contrast with
source program.

*

online: (1) Pertaining to equipment or devices under control of the central
proeesSirig Uriit. (2)"Pertairiiiig to a user's a6i1ity to interact with a computer.
operand: (1) * That which is operated upon. An operand is usually
identified by an address part of an instruction. (2) Information entered with
a command name to define the data on which a command processor
operates and to control the execution of the command processor.
operator command: A statement to the control program, issued via a
console device, which causes the control program to provide requested
information, alter normal operations, initiate new operations, or terminate
existing operations.
operator message: A message from the operating system or a problem
program directing the operator to perform a specific function, such as
mounting a tape reel, or informing him of specific conditions within the
system, such as an error condition.

*

overflow: (1) That portion of the result of an operation that exceeds the
capacity of the intended unit of storage. (2) Pertaining to the generation of
overflow as in (1).
overlay: n. (1) One of the segments, which consists of one or more
phases, of a program that is so structured that not all of the segments need
be in virtual storage at anyone time. v. (2) The process of replacing a
previously retrieved program segment in virtual storage by another segment.
page: (1) In DOS/VSE, a 2K block of instructions, data or both. (2) To
transfer instructions, data, or both between processor storage and the page
data set.
page data set: An extent in auxiliary storage, in which pages are stored.
page fault: A program check interruption that occurs when a page that is
marked not in processor storage is referred to by an active page.
Synonymous with page translation exception.
page fixing: Marking a page as nonpageable so that it remains in
processor storage.
page frame: A 2K block of processor storage that can contain a page.

Glossary 5.7

page in: The process of transferring a page from the page data set to
processor storage.
page out: The process of transferring a page from processor storage to the
page data set.
page pool: The set of all page frames that may contain pages of programs
in virtual mode.
paging: The process of transferring pages between processor storage and
the page data set.

•

parameter: A variable that is given a constant value for a specific purpose
or process.
partition: In DOS/VSE, a contiguous area of virtual storage available for
the execution of programs.

peripheral equipment: A term used to refer to card devices, magnetic
tape and disk devices, diskettes, printers, and other eqUipment bearing a
similar relation to the CPU.
phase: The smallest complete unit that can be referred to in'the core
image library.
POWER: A unit record spooling support available as the IBM licensed program
VSE/pOWER

printer: A device that expresses coded characters as hard copy.
priority: A rank assigned to a partition that determines its precedence in
receiving CPU time.
private library: A user-owned library that is separate and distinct from the
system library.
private second level directory: The private second level directory is a
table located in the supervisor containing the highest phase names found on
the corresponding directory tracks of the private core image library.
problem determination aid: A program that traces a specified event
when it occurs during the operation of a program. Abbreviated PDAID.
problem program: Any program that is executed when the central
processing unit is in the problem state; that is, any program that does not
contain privileged instructions. This includes mM-distributed programs, such
as language translators and service programs, as well as programs written by
a user.
processing program: (1) A general term for any program that is not a
control program. (2) Synonymous with problem program.
processor storage: The general purpose storage of a computer. Processor
storage can be accessed directly by the operating registers. Synonymous
with real storage.
queue: (1) A waiting line or list formed by items in a system waiting for
service; for example, tasks to be performed or messages to be transmitted
in message switching system. (2) To arrange in, or form, a queue.

5.8 DOS/VSE System Management Guide

random processing: The treatment of data without respect to its location
in auxiliary storage, and in an arbitrary sequence governed by the input
against which it is to be processed.
real address: The address of a location in real storage.
real address area: In DOS/VSE, the area of vl_rtual storage where virtual
addresses are equal to real addresses.
real mode: In DOS/VSE, the mode of a program that cannot be paged.
real storage: The storage of a computing system from which the central
processing unit can directly obtain instructions and data, and to which it
can directly return results. Synonymous with processor storage.
reenterable: The attribute of a load module that allows the same copy of
the load module to be used concurrently by two or more tasks.
relocatable: The attribute of a set of code whose address constants can be
modified to compensate for a change in origin.
relocatable library: A library of relocatable object modules and IOCS
modules required by various compilers. It allows the user to keep frequently
used modules available for combination with other modules without
recompilation.
restore: To return a data file created previously by a copy operation from
cards, disk or magnetic tape to disk storage.
rotational position sensing (RPS): A standard or optional feature of
most mM disk storage devices. It permits these devices to disconnect from
a block multiplexer channel (or its equivalent on Model 3115/3125 CPUs)
during rotational positioning operations, thereby allowing the channel to
service other devices .

•

routine: An ordered set of instructions that may have some general or
frequent use.
secondary storage: Same as auxiliary storage.
second level directory: A table located in the supervisor containing the
highest phase names found on the corresponding directory tracks of the
system core image library.
security: Prevention of access to or use of data or programs without
authorization.
sequential organization: Records of a sequential file are arranged in the
order in which they will be processed.
service program: A program that assists in the use of a computing
system, without contributing directly to the control of the system or the
production of results.
shared virtual area: An area located in the highest addresses of virtual
storage. It can contain a system directory list of highly used phases, resident
programs that can be shared between partitions, and an area for system
GETVIS support.
software: A set of programs, concerned with the operation of the
hardware in a data processing system.

Glossary 5.9

source: The statements written by the programmer in any programming
language with the exception of actual machine language.

*

source program: A computer program written in a source language.
Contrast with object program.
source statement library: ~ collection of books (such as macro
definitions) cataloged in the system by the librarian program.
spanned records: Records of varying length that may be longer than the
clLrrently used blocksize, and which may therefore be written in one or
more continuous blocks. A spanned record may occupy more than 1 track
of a disk device.
stand-alone dump: A program that displays the contents of the registers
and part of the real address area and that runs independently and is not
controlled by DOS/VSE.
standard label: A fixed-format identification record for a tape, diskette, or
disk file. Standard labels can be written and processed by DOS/VSE.
storage protection: An arrangement for preventing access to storage.
supervisor: A coltlponent of the control program. It consists of routines to
control the functions of program loading, machine interruptions, external
interruptions, operator communications and physical IOCS requests and
interruptions. The supervisor alone operates in the privileged (supervisor)
state. It coexists in real storage with problem programs.
switched line: A communication line in which the connection between the
computer and a remote station is established by dialing. Synonymous with
dial line.
system directory list: A list containing directory entries of highly used
phases and of all phases resident in the shared virtual area. This list is
contained in the shared virtual area.
system residence device: The direct access device on which the system
residence file is located.
system residence volume: The volume on which the basic system and
all related supervisor code is located.
task: A unit of work for the central processing unit from the standpoint of
the control program.
teleprocessing: The processing of data that is received from or sent to
remote locations by way of telecommunication lines.
terminal: (1) * A point in a system or communication network at which
data can either enter or leave. (2) Any device capabl~ of sending and
receiving information over a communication channel.
throughput: The total volume of work performed by a computing system
over a given period of time.
track: The portion of a moving storage medium, such as a tape,
diskette, or disk, that is accessible to a given reading head position.
transient area: An area of processor storage used for temporary storage
of transient routines.

5.10 DOS/VSE System Management Guide

UCS: Universal character set.
unit record: A card containing one complete record; a punched card.
universal character set: A printer feature that permits the use of a
variety of character arrays. Abbreviated UCS.
unrecoverable error: A hardware error which cannot be recovered from
by the normal retry procedures.
user label: An identification record for a tape or disk file; the format and
contents are defined by the user, who must also write the necessary
processing routines.
utility program: A problem program designed to perform a routine task,
such as transcribing data from one storage device to another.
virtual address: An address that refers to virtual storage and must,
therefore, be translated into a real storage address when it is used.
virtual address 8rea-: In DOS/VSE, the area of virtual storage whose
addresses are greater than the highest address of the real address area.
virtual mode: In DOS/VSE, the mode of execution of a program which
may be paged.
virtual storage: Addressable space that appears to the user as real storage,
from which instructions and data are mapped into real storage locations.
The size of virtual storage is limited by the addressing scheme of the
computing system and by the capacity of the page data set, rather than by
the actual number of real storage locations.
virtual storage access method (VSAM): An access method (available as
the licensed program product VSEjVSAM) for direct or sequential processing of
fIxed and variable length records on direct access devices; designed for use in a
virtual storage environment.

virtual telecommunications access method (VTAM): A set of IBM
programs (available as the licensed program product ACF/VTAM) that control
communications between terminals and application programs.
volume: (1) That portion of a single unit of storage media which is
accessible to a single read/write mechanism, for example, a
diskette, a disk pack, or part of a disk storage module. (2) A recording
medium that is mounted and dismounted as a unit, for example, a reel of
magnetic tape, a disk pack, or a diskette.
volume table of contents: A table on a direct access volume or diskette
that describes each file on the volume. Abbreviated VTOC.
VSAM access method services: A multifunction utility program that
defines VSAM files and allocates space for them, converts indexed
sequential files to key-sequenced files with indexes, facilitates data
portability between operating systems, creates backup copies of files and
indexes, helps to make inaccessible files accessible, and lists file and catalog
entries.

Glossary 5.11

VSAM catalog: A key-sequenced file, with an index, containing extensive
file and volume information that VSAM requires to locate files, to allocate
and deallocate storage space, to verify the authorization of a program or
operator to gain access to a file, and to accumulate usage statistics for files.

VTOC: See volume table of contents.
work file: A file on an auxiliary storage medium reserved for intermediate
results during execution of the program.
working set: Tne set oi pages oi a user's virtuai-mode program that must
be in processor storage in order to avoid excessive paging.

5.12 DOS/VSE System Management Guide

Index
$$A$CDLO 3.3, 3.8
$$A$IPLO A.2
$$A$IPL 1 A.I
$$A$PLBF A.2
$$A$PLBK A.1
$$A$SUP1 3.2
$ASIPROC 3.19
$JOBACCT 2.18,4.7
$JOBEXIT 4.3
$phase 2.11, 3.11, 3.136
$SYSOPEN 3.14,4.2
/ + statement 3.112
/ & statement 3.27

A
abnormal termination exit 2.32
access authorization checking 2.26, 3.25
access control 2.27
ACF/VTAM support 2.26
ACTION statement 3.90,3.94
CANCEL operand 3.95
CLEAR operand 3.94
MAP operand 3.94
NOMAP operand 3.94
ADD command 2.45
address space 1.6
allocating to the partitions 3.15
division of 1.14
minimum per partition 3.15
partitions within 1.14
real 1.18, 2.18
shared virtual area (SVA) within 1.15
virtual 1.18,2.18
ALLOC (librarian) statement 3.118, 3.125
ALLOC command
initiating foreground partitions 3.15, 3.17
ALLOCR command 1.21,3.16
alternate dump file(s) 2.14
ASCn (SUPVR macro) parameter 2.28
ASCn support 2.28
ASI (see automated system initialization)
ASI master procedure 3.18
ASI IPL procedure 3.20
ASI JCL procedure 3.21
example 3.23
naming conventions 3.18
ASI stop facility 3.19
assemble, link-edit, and execute 3.53, 3.84
assembler copy sublibrary 3.110, 3.131
assembler macro sublibrary 3.111, 3.131

ASSGN job control command/
statement 3.34, 3.38
assignment; shari-.ng 3.35
asynchronous operator communication 2.30
ASYNOC (FOPT macro) operand 2.30
ATTACH macro 1.26
AUTO
specification in SIZE operand 3.60, 3.63
AUTOLINK feature 3.92
example 3.102
suppressing the 3.93
automated system initialization
(ASI) 2.45, 3.2, 3.6, 3.17
contents of IPL procedures 3.20
oont-ents of J-CL proredmes 3-.21
default procedure names 3.18
implementation reqUirements 3.18
master procedure 3.18
procedure library 2.7, 3.18
stop facility 3.19

B
background partition 1.2
initial size 3.15
balanced partitions 2.22
BATCH command 1.2, 3.17
BKEND statement 3.111
book 2.4
updating in the source statement library 3.122
BTAM-ES support 2.26
BTMOD 2.26
buffers, CCW translation 2.40
BUFSIZE (VSTAB macro) operand 2.39

c
CANCEL (linkage editor option) 3.85,3.95
CANCEL command
effects of 3.27
CANCEL macro 2.32
CATAL option 3.79
catalog control statements 3.109
cataloged procedures 2.5, 3.70
modifying multistep procedures 3.75
partition-related 3.77
retrieval 3.70
several job steps in 3.74
SYSIPT data in 3.74, 3.76, 3.112
temporarily modifying 3.71
use by operator 3.78

Index 6.1

cataloged programs
invoking 3.57
cataloging 3.83
a supervisor 3.83
assigning change levels 3.113
members into libraries 3.109
to the private core image library 3.100
to the procedure library 3.112
to the relocatable library 3.109
to the source statement library 3.110
to the system core image library 3.98
CATALP statement 3.112
DATA parameter in 3.112
CATALR statement 3.109
CATALS statement 3.110,3.114
CBF (FOPT macro) operand 2.30
CCW translation 2.40
CDL (communication device list) 3.8
central processing unit (CPU)
control of 1.1
specifying the model 2.43
change level verification 3.114
change levels 3.113
channel queue (CHANQ) 2.38
channel queue table 2.39
channel switching 4.15
CHANQ (IOTAB macro) operand 2.38
checkpoint 4.13
CHKPT macro 4.13
CLEAR
operand in ACTION statement 3.94
CLOSE job control command 3.66, 3.68
COBOL sublibrary 3.110
COMMON
in FORTRAN programs 3.98
communication region
modification at end-of-job 3.27
compile and execute, example 3.103
compile, link-edit and execute 3.53, 3.84
compiler LIOCS modules 2.4
compiling in more than one partition 2.16
condense limit
specifying the 3.117
condensing the libraries 3.115, 3.117
restrictions 3.118
CONOL statement 3.117
CONOS statement 3.115
CONFG generation macro
MODEL operand 2.43
console buffering 2.30
context editing 2.26
control section (CSECT) 3.81
in an overlay structure 3.95
including for link-edit 3.91

6.2 DOS/VSE System Management Guide

controlling jobs 3.25
controlling magnetic tape 3.51
controlling printed output 3.51
copy blocks 2.40
COPY control statement 3.124, 3.126
NEW operand 3.127
COPYSERV librarian program 3.127
core image library 2.3
naming conventions for 3.121
search sequence 2.11
CORGZ librarian program 2.6
automatic copying 3.125
merging libraries 3.126
cross-partition event control 1.26
CSECT 3.81
CSERV program 3.130

D
DASD file protection 2.34
DASD labels 3.44
DASD switching 4.14
channel switching 4.15
string switching 4.15
DASDFP (FOPT macro) operand 2.34
de-editing assembler macros 3.131
DECK option 3.58
DEF command 2.14, 3.4
default procedure names under ASI 3.18
DEL command 3.3
DELETC statement 3.114
deleting 110 devices 3.4
DELETP statement 3.114
DELETR statement 3.114,3.120
DELETS statement 3.114,3.120
device assignment
in a multiprogramming system 3.35
permanent 3.34
restrictions 3.34
temporary 3.34
device class
in ASSGN 3.30
device type for new system residence 3.124
device types for private libraries 3.132
device types for MERGE librarian
function 3.126
direct access devices
label information 3.44
directory
library A.I, 3.105, 3.129
system A.1, 3.105
disk information block (Dm) 3.66

disk options 2.33
DASD file protection 2.34
rotational position sensing (RPS) 2.35
system files on disk or diskette 2.33
track hold 2.34
diskette files
label information 3.43
display operator console (DOC) 2.43
distribution medium 2.1
distribution supervisors 2.3
DLA command 2.15, 3.5
DLBL statement 3.42
DOC (FOPT macro) operand 2.44
DOS/VSE
defining the system configuration 2.43
distribution medium 2.1
memorandum to users 2.12
overview 1.1
planning 2.1
system control program (SCP) 2.3
using the facilities and options of 4.1
DOSVSDMP program 2.14
DPD command 2.23, 2.43, 3.5
use under ASI 3.20
DPDEXT (IOTAB macro) operand 2.23, 3.5
DSERV librarian program 3.129
displaying change levels 3.114
executing after SET SDL 3.11
listing of book names 3.111
DSF (DPD command) parameter 2.43
DSPCH statement 3.130
DSPLY statement 3.129
DSPLYS statement 3.129,3.130
DTFDI 3.64
DTFPH macro 2.34
DTFSD SYSFIL support 3.66
DTSECTAB macro 2.27
DUMP macro 2.32
4ump file, alternate 2.14
DVCDN command 3.39, 4.15
DVCUP command 3.39, 4.15
dynamic allocation of storage 3.61
dynamic storage areas 1.24

E
ECPS:VSE mode 1.1, 1.14
defining the page data set 2.23
determining virtual storage size 1.18, 2.18
initial size of BG partition 3.15
use of supervisor buffers 2.40
edited macros
de-editing 3.131
preparing for update 3.131

editing under VSE/ICCF 2.26
emulator 2.45
END record
of an object module 3.81
END statement
for ~TNT program 3.122
end-of-procedure (/+) statement 3.112
end-of-job (I &) statement 3.27
ENTRY statement 3.83
EOJ macro 2.32
EREP program 3.4, 3.11
for listing of SYSREC 2.41, 3.13, 3.15
error queue 2.41
error volume analysis 2.43
ERRQ (FOPT macro) operand 2.41
ERRS option 3.58
ESERV librarian program 3.131
EU (SUPVR macro) operand 2.45
EVA (FOPT) operand 2.43
EXEC statement 3.26
REAL operand 1.22, 3.59
SIZE operand 1.22, 3.60
executing a program 3.53
in real mode 1.18, 3.59
in virtual mode 1.18
EXIT macro 2.30
EXTENT job control statement 3.43
for DASD files 3.45

F
fast function 2.40
fast translate 2.40
fast B/C-transient fetch 3.11
FASTFTCH SET SDL procedure 3.11
FASTTR (FOPT macro) operand 2.40
FBA device
size of label information area 3.119
space available for SYSRES 3.119
FCB (forms control buffer) 3.51
FCEPGOUT macro 2.24, 4.21
FETCH macro
use of 3.97
file id
in DLBL/TLBL statement 3.42
file labels 3.39
file name
for system files on disk 3.65
in problem program 3.42
in DLBL/TLBL statement 3.42
files
relating to a program 3.29
fixing pages in processor storage 1.24, 4.19
fixlist 2.40

Index 6.3

FOPT generation macro
ASYNOC operand 2.30
ERRQ operand 2.41
RPS operand 2.35
CBF operand 2.30
DASDFP operand 2.34
DOC operand 2.44
EVA operand 2.43
F ASTIR operand 2.40
JA operand 2.28
JALIOCS operand 2.28
PRTY operand 2.22
PSLD operand 2.25
RPS operand 2.36
SEC operand 2.26
SLD operand 2.25
SYSFIL operand 2.24, 2.33, 3.65
TEBVoperand 2.42
TRKHLD operand 2.34
TIIME operand 2.30, 2.32, 4.1
ZONE operand 2.29
foreground partition
allocating address space to 3.15
initiating 1.2, 3.17
minimum allocation 3.17
number of 1.2
forms control buffer (FCB) 3.51
FREEVIS macro 3.61
during real mode execution 3.61

G
GENEND (librarian) statement 3.131
GETCATALS (librarian) statement 3.131
GETIME macro 2.29
GETVIS (SVA command) parameter 2.21
GETVIS area
partition 1.24, 3.61
system 1.24, 2.21
GETVIS requests, real mode execution 3.60
GO parameter of EXEC statement 3.54,3.84

H
hard copy file
creating 2.13, 2.14
history file 2.1, 2.13
update procedures 2.5

6.4 DOS/VSE System Management Guide

I
I/O options 2.38
channel queue 2.38
error queue 2.41
supervisor buffers 2.39
ICCF 2.26
ICCF (SUPVR macro) operand 2.26
ID job control statement 3.25
iFCEREPl program 3.11
DIPL file 3.3
INCLUDE statement 3.83, 3.91
initial microprogram load
(IML) 1.18, 2.18, 2.23
initial program load (IPL) 3.2
automatic 2.45, 3.2, 3.6
automatic functions of 3.7
interactive 3.2, 3.17
user-defined processing after 3.14
interactive computing and control (ICCF) 2.26
interactive IPL 3.2, 3.17
interval timer 2.29, 4.1
invoking cataloged programs 3.57
10DEV (lOTAB macro) operand 2.45
IORB macro 2.40
10TAB generation macro 2.44, 3.4
CHANQ operand 2.38
DPDEXT operand 2.23, 3.5
10DEV operand 2.45
IPL commands 3.3
ADD 3.4
DEF 2.14, 3.4
DEL 3.4
DLA 2.15, 3.5
DPD 2.23, 2.43, 3.5
SET 3.4
IPL communication device list (CDL) 3.7
IPL communication device, establishing 3.3
IPL list option 3.2, 3.20
IPL procedure under ASI 3.20
IPL records A.l
IPL user exit routine 4.1
example 4.3
register usage 4.2

J
JA (FOPT macro) operand 2.28
JALIOCS (FOPT macro) operand
JCL procedure under ASI 3.21
JDUMP macro 2.32
JOB statement 3.26
job 3.25·

2.28

job accounting 2.28
example 4.11
programming considerations 4.9
register usage 4.9
table 4.8
user interface routine 4.7
job control 3.25
job control user exit routine 4.3
example 4.5
register usage 4.4
vector table 4.4
job name 3.26
job step 3.26
job stream 3.28
job-to-job communication 3.29
JOBCOM macro 3.29

L
label information
for direct access files 3.44
for diskette files 3.43
for magnetic tape files 3.47
PARSTD 2.18, 3.48
STDLABEL 2.16, 3.49
storing 3.48
USRLABEL 3.48
label information area A.1, 2.15, 3.42
outside of SYSRES file 2.15, 3.5, 3.125
sequence of search 2.16, 3.49
label options 3.48
label save area 3.93
label subarea 3.48
clearing of 3.49
labels 3.39
language translator 3.80
LBLTYP job controi statement 3.44, 3.48, 3.93
example 3.99, 3.102
LFCB command 3.52
LFCB macro 3.52
librarian programs 3.106
cataloging 3.109
CORGZ and COPYSERV 3.122
CSERV 3.130
ESERV 3.131
maintenance functions 3.108
PSERV 3.130
real mode storage requirements 3.107
restrictions 3.107
RSERV 3.130
service programs 3.128
SSERV 3.130

libraries
cataloging into 3.109
changing the size of system libraries 3.119
condensing 3.115, 3.117
deleting members from 3.114
determining the location of 2.7
directories 3.105
displaying the contents of 3.129
displaying the directories 3.129
eliminating 3.120
examples of deleting and condensing 3.116
examples of organization 2.9
maintaining 3.108
online maintenance 2.26
operational 2.11
organizing 3.122
planning the 2.2
planning the size and contents of 2.11
private 2.5, 3.132
punching the contents of 3.129
purpose and contents of 2.3
reallocating the sizes of 3.118
renaming members 3.121
service programs 3.128
sublibrary 2.4, 3.110
transferring members between 3.125
using system libraries as private libraries 3.136
using the 3.105
library directories 3.105
library status report 3.129, 3.137
link edit and execute 3.83
example 3.101
LINK option 3.55, 3.79, 3.83, 3.84
suppression of 3.104
linkage editor 3.79
automatic invocation 3.54, 3.84
examples 3.97
input to 3.87
obtaining a storage map 3.94
processing requirements 3.86
storage requirements 3.91
symbolic units required 3.86
linkage editor control statements
ACTION 3.90, 3.94
ENTRY 3.83
examples 3.98
INCLUDE 3.83, 3.91
PHASE 3.82, 3.87
linking programs 3.79
LIST linkage editor option 3.58
LISTIO statement/command 3.39
LISTX linkage editor option 3.58

Index 6.5

load address 3.89
LOAD macro 3.97
load lists 3.9
LOG 3.58
LOG IPL option 3.2
logging and reporting for access control
logical transients 3.11
logical I/O unit 3.30
programmer 3.32, 3.34
system 3.32, 3.33
LSERV program 3.50
LUCB command 3.52

multiprogramming 1.1
device considerations under
multitasking 1.25
types of . 1.26
2.27

M
MACRO statement 3.111
magnetic tape, positioning 3.51
magnetic tape files, label information 3.47
main task 1.26
MAINT librarian program 3.108
catalog function 3.109
condense function 3.115
delete function 3.114
reallocate function 3.117
rename function 3.121
update function 3.122
used to catalog ASI procedures 3.18
maintaining libraries 3.108
assignment of private libraries 3.108
MAP
command 3.17, 3.27
operand in ACTION statement 3.94
master procedure under ASI 3.18
memorandum to users 2.12, 2.16
MEND statement 3.111
MERGE statement 3.126
merging of libraries 3.126
MICR stacker selection routines 3.60
mode of execution 1.17
inquiring via the RUNMODE macro 4.21
real 1.18, 3.59
virtual 1.18
MODEL (CONFG macro) operand 2.43
MSG command 2.32
MSHP (Maintain System History
Program) 2.2, 2.13
history file update procedures 2.5
use of 3.115
MTC statement/command 3.51
multiphase program names 3.87
multiple extent page data
set 2.23, 2.43, 3.5, 3.20

6.6 DOS/VSE System Management Guide

1.3

N
naming conventions
cataloging partition-related procedures 3.78
phases 3.121
relocatable library 3.110, 3.121
source statement library 3.110
never ending program, under ASI 3.21
new SYSRES, device type 3.124
NEWVOL (librarian) statement 3.132
NOAUTO
operand in PHASE statement 3.93
NOFASTfR option 2.41
NOLOG IPL option 3.2
NOMAP
operand in ACTION statement 3.94
nonpageable
program 1.18
supervisor routine 1.17
nonrelocatable phase 3.82
NPARTS (SUPVR macro) parameter 2.21

o
object module 3.81
including an 3.91
OLTEP program 3.60
online library maintenance 2.26
operator communication exit 2.32
operator communication, asynchronous 2.30
OPTION job control statement 3.48
CATAL option 3.48
LINK option 3.55, 3.79
NOFASTfR option 2.41
options for program execution 3.58
organizing the libraries 3.122
OV parameter in EXEC statement 3.72
OVEND statement 3.72
overlay structure 3.95
relating control sections to phases 3.95
use of FETCH and LOAD macros 3.97

p
page 1.6
fixing 1.24
releasing 2.24, 4.21

page data set 1.6, 2.12
data secured 2.23
defining attributes 3.5
defining extents during ASI 3.20
defining the 2.23
formatting of 3.5
location of 3.5
multiple extents 2.23, 2.43, 3.5
size of 2.23
page fault 1.13
handling overlap exit 2.33
reducing occurrence of 4.16
page frame 1.6
page out 1.10
forcing 2.24, 4.21
page pool 1.6,1.13, 1.17,3.16
effect of large I/O areas in channel
J)r-egr-a-IB5 1.24
minimum size 3.16
page-in in advance 2.24, 4.21
pageable
program 1.18
supervisor routine 1.17
PAGEIN (SUPVR macro) operand 2.24
P AGEIN macro 2.24, 4.21
paging option 3.2, 3.20
PARSTD 2.16, 3.48
PARSTD option, used under ASI 3.21
P ARTDUMP option 3.58
partition 1.2
allocating address space to 3.15
allocating processor storage to 3.16
allocation 1.20
balancing 2.22
defining the number of 2.21
displaying current allocation 3.17
inactive 3.118
priorities 1.3, 2.22
selecting one for a particular job 3.28
partition balancing 2.22
partition GETVIS area 1.24, 3.61
changing the size 3.62
for real mode execution 3.60, 3.107
Dl1D..11llum size 3.15, 3.61
use by RPS 2.35
PAUSE command 3.69
PAUSE statement 3.29
permanent (storing of) label information 3.48
permanent device assignment 3.34
PFIX macro 1.24, 3.16, 2.40, 4.19
PFREE macro 1.24, 3.16, 4.19

phase 3.82
load-address 3.89
name of 3.87
naming conventions 3.121
non-relocatable 3.82
reenterable 3.90
relocatable 3.82, 3.89
self-relocating 3.82, 3.91
SVA eligible 3.82, 3.83, 3.90
PHASE statement 3.82, 3.87
NOAUTO operand 3.93
SVA operand 3.90
phases in the SVA 2.21
automatic loading at IPL 3.7
reserving space 3.6
PIOCS generation macro 2.44
PL/I sublibrary 3.111
peftabilit-y of a g@R@fatoo syst-em 2.43
POWER 3.64
job accounting 4.7
priority
of a partition 1.3
private core image library
accessibility 3.136
assignment 3.135
creation of 3.134
dedicated to a partition 3.136
example of cataloging to 3.100
filenames 3.135
organization of 3.134
using the 3.135
private libraries 2.5·
creating and working with 3.132
device types 2.9, 3.132
filenames for accessing 3.135
filenames for creating 3.133
label information for 3.135
multiple 3.135
number of 2.6
restrictions 2.6
search sequence 3.136
symbolic unit names for accessing 3.135
symbolic unit names for creating 3.133
using system libraries as 3.136
private second level directory (PSLD) 2.25
PROC parameter in EXEC 3.70
procedure library 2.5, 2.7
cataloging to 3.112
caution when updating 3.70
extended support for 2.24
renaming procedures in 3.121
required by ASI 2.7
restrictions when cataloging to 3.113

Index 6.7

retrieving procedures from 3.70
used for automated system
initialization 3.6, 3.18
used for automated IPL 3.6
processor storage 1.6, 1.17
allocating 3.16
allocating for real mode execution 1.21
fixing pages in 1.24
program check exit 2.31
program development, stages 3.80
program execution 3.53
mode of 1.17
real mode 1.18, 3.59
virtual mode 1.18
program exit routines 4.1
programmer logical units 3.34
programming techniques
for reducing page faults 4.16
PRTY (FOPT macro) operand 2.22
PRTY command 1.3, 2.22
PSERV program 3.130
PSIZE (SVA command) parameter 2.21
PSLD (FOPT macro) operand 2.25
PUNCH statement 3.130

R
RAS 2.41
real address 1.9
real address space 1.18, 2.18
size of 2.18
real mode execution 1.18, 3.59
processor storage allocation for 1.21
programs requiring 3.60
REAL operand
in EXCP macro 2.40
in EXEC statement 1.22, 3.59
REALAD macro 2.40
record on demand (ROD) command 3.13,3.14
recorder file 2.13
creating 3.11
label information for 3.12
minimum size 3.12
recovery management support (RMS) 2.41
with DASD switching 4.16
reenterable phase 3.90
reliability data extractor (RDE) 3.14
reliability/ availability / serviceability (RAS) 2.41
relocatable library 2.4
cataloging to 3.109
naming conventions for modules 3.110, 3.121
renaming modules in 3.121
relocatable phase 3.82, 3.89
RELPAG macro 2.24, 4.21

6.8 DOS/VSE System Management Guide

RENAMe statement 3.121
renaming members in libraries 3.121
RENAMP statement 3.121
RENAMR statement 3.121
RENAMS statement 3.121
REP record 3.81
RESET job control statement/
command 3.34, 3.39
resource profile 2.27
restarting a program from a checkpoint 4.13
RLD record 3.81
RMS 2.42
RMS (SUPVR macro) operand 2.42
RMSR 2.42
ROD command 3.13,3.14
rotational position sensing (RPS) 2.35
RPG IT sublibrary 3.111
RPS 2.35
RPS (FOPT macro) operand 2.35,2.36
RSERV program 3.130
RSTRT job control statement 4.13
RUNMODE macro 4.21

s
SDL (see system directory list)
SDL (SVA command) parameter 2.21
SDL procedure 3.9
SEC (FOPT macro) operand 2.26
second level directory (SLD) 2.25
self-relocating phase 3.82, 3.91
SEREP program 2.41
SET command 3.4
example 3.13
to create system files 2.13
used during ASI 3.20
SET SDL command 3.10
SET SDL procedure 3.10,3.11
SETDF operator command 3.53
SETIME macro 2.31
SETPFA macro 2.33
SETPRT job control statement/command
SETPRT macro 3.53
SETT macro 2.30, 2.32
SHARE OPTION 4 2.35
shared devices 3.35
shared virtual area" (SVA) 1.15
coding for 4.22
layout of 2.18
loading phases into 3.9
phases 2.21
replacing phases in 3.11
size of 2.18, 2.21
user options 3.9
SIO (start I/O) accounting 4.7

3.52

SIZE command 3.62
used under ASI 3.21
SIZE operand 1.22, 3.60
SLD (FOPT macro) operand 2.25
source module 3.80
source statement library 2.4
cataloging to 3.110
naming conventions 3.110
updating books in 3.122
SSERV librarian program 3.130
use of 3.111
stages of program development 3.80
standard label procedures 2.16
standard labels for system files on tape 3.64
START command 1.2,3.17
used under ASI 3.21
status report (see library status report)
SID-LABEL 2.16, 3.49
STDLABEL option, used under ASI 3.21
STDOPT command 3.27, 3.59
used under ASI 3.21
STOP command, used under ASI 3.21
stop facility under ASI 3.19
storage allocation 1.18
storage management 1.8
storage protection 1.3
string switching 4.15
STXIT macro 2.30, 4.1
sublibrary 3.110
assembler macro (E) 3.131
copy (A) 3.131
naming conventions 2.4
subtask 1.26
supervisor generation macros 2.2
CONFG 2.43
FOPT 2.30
10TAB 2.23, 2.38, 3.4
SUPVR 2.21, 2.24
VSTAB 2.18
supervisor
buffers for I/O processing 2.39
default 3.2
name, specifying the 3.2
nonpageable 1.17, 3.2
pageable 1.17, 3.2
routines 1.17
tailoring the 2.17
SUPVR generation macro 2.21
ASCn parameter 2.28
EU parameter 2.45
ICCF operand 2.26
NPARTS parameter 2.21
PAGEIN operand 2.24
RMS operand 2.42
TP parameter 2.25

SVA (see shared virtual area)
SVA command 3.6
GETVIS operand 2.21
position within IPL commands 3.3
PSIZE operand 2.21
SDL operand 2.21
SVA operand
in PHASE statement 3.90
in SET SDL 3.10
SXREF option 3.58
SYM option 3.58
symbolic I/O assignment 3.30
SYSCAT 1.3, 3.33, 3.39
assignment of 3.4
SYSCLB 3.33
SYSCTL 3.33
SYSDMP 1.3, 2.14, 3.33
assignment of 3.4
SYSFIL (FOPT macro) operand 2.24
SYSFIL (FOPT macro) operand 2.33
SYSFIL option 2.5, 2.24, 2.34, 3.65, 3.112
SYSIN 3.33, 3.38, 3.64, 3.65, 3.68
SYSIN job streams on disk, diskette or
tape 3.63
interrupting 3.69
SYSIPT 2.33, 3.33, 3.38
input to language translators 3.54
SYSIPT data in cataloged
procedures 3.74, 3.76, 3.112
SYSLNK 3.33, 3.38
SYSLOG 1.3, 3.33, 3.38
assignment of 3.2
used under ASI 3.20
SYSLST 3.33, 3.38
SYSOUT 3.33, 3.38, 3.64, 3.65, 3.68
SYSPCH 3.33, 3.38
SYSRDR 3.25, 3.33, 3.38
SYSREC (see also recorder
file) 1.3, 2.13, 3.33, 3.39
assignment of 3.4
SYSRES (see also system residence
file) 1.3, 3.33, 3.39
SYSRLB 3.33
SYSSLB 3.33
system core image library
example of cataloging to 3.98
system date 3.4
system directory A.1, 3.105
system directory list (SDL) 2.19
building (entries) 3.9
reserving space 3.6
system files
system files on disk 2.33, 3.65
filenames 3.65
on FBA devices 3.66

Index 6.9

system files on diskette 2.33, 3.68
filenames 3.68
system files on tape 3.64
hard copy file 2.13, 3.14
history file 2.2, 2.13
page data set 1.6, 2.12
record formats 3.70
recorder file 2.13, 3.11
system residence (SYSRES) file 2.2, 2.7
system generation procedure 2.1
system history file 2.2, 2.13
update procedures 2.5
system installation aids 2.5
system libraries
relative location on SYSRES pack 2.8
using as private libraries 3.136
system logical units 3.33
SYSCAT 1.3, 3.33, 3.39
SYSCLB 3.33
SYSCTL 3.33
SYSDMP 1.3, 2.14, 3.33
SYSIN 3.33, 3.38, 3.64, 3.65, 3.68
SYSIPT 2.33, 3.33, 3.38
SYSLNK 3.33,3.38
SYSLOG 1.3,3.33,3.38
SYSLST 3.33,3.38
SYSOUT 3.33, 3.38, 3.64, 3.65, 3.68
SYSPCH 3.33,3.38
SYSRDR 3.25,3.33,3.38
SYSREC 1.3, 2.13, 3.33, 3.39
SYSRES 1.3, 3.33, 3.39
SYSRLB 3.33
SYSSLB 3.33
system portability 2.43
system residence (SYSRES) file 2.2, 2.7
copying the 3.123
creating a new 3.123
disk space available 3.119
layout of A.1
system ~ecurity table 2.27
system time zone
setting 3.4
system volume label A.1
system GETVIS area 1.24, 2.21
reserving space for 3.6
SYSUFLD program 3.52
SYSOO6, used to access an alternate
dump file 2.14

T
tape error statistics
task 1.26
main 1.26
subtask 1.26

2.42

6.10 DOS/VSE System Management Guide

task selection 1.1
task timer 2.29
exit 2.32
TEBV (FOPT macro) operand 2.42
telecommunication balancing 2.25, 4.21
telecommunication facilities 2.25
ACF/VTAM 2.25
BTAM-ES 2.25
temporary device assignment 3.34
temporary label information 3.48
TESIT macro 2.30, 2.33
text editing 2.26
time zone
setting 3.4
time-of-day clock 2.29
setting 3.4
timer services 2.28
interval timer 2.29
task timer 2.29
time-of-day (TOD) clock 2.29
timeshared computing 2.26
TLBL statement 3.42, 3.47
TP (SUPVR macro) operand 2.25
TPBAL command 4.21
TPIN macro 4.21
TPOUT macro 4.21
track hold option 2.34
TRKHOLD (FOPT macro) operand 2.34
TTIME (FOPT macro) operand 2.30
TTIME (FOPT macro) operand 4.1
TTIMER macro 2.31
TXT record 3.81

u
UCB (universal character set buffer) 3.51
UCS command 3.52
universal character set buffer (UCB) 3.51
UPDATE librarian statement 3.122
UPSI job control statement 3.59
user exit routines 2.31
abnormal termination 2.32
interval timer 2.31
IPL 4.1
job accounting 4.7
job control 4.3
operator communication 2.32
page fault handling overlap 2.33
program check 2.31
task timer 2.32

user profile 2.27
user program switch indicator (UPSI) 3.59
user-defined processing after IPL 3.14
USRLABEL 3.48
utilities, number of copy blocks for 2.40

v
VIRTAD macro 2.40
virtual address space 1.18
virtual mode execution 1.18
virtual storage 1.4, 1.16
macros 4.19
maximum size 1.5
relating to locations in processor storage 1.9
size 2.18
virtual storage macros 4.19
FCEPGOUT 2.24, 4.21
PAGEIN 2.24, 4.21
PFIX 1.24, 2.40, 3.16, 4.19
PFREE 1.24, 3.16, 4.19
RELPAG 2.24,4.21
RUNMODE 4.21
volume label
system A.I
user A.1
VSAM master catalog, assignment of 3.5
VSE/ Advanced Functions, installing 2.2
VSIZE (VSTAB macro)
operand 2.18, 2.23, 3.15
VSTAB generation macro 2.18
BUFSIZE operand 2.39
VSIZE operand 2.18, 23
VTAM 2.26

w
weak external reference 3.93
work blocks 2.40
workfiles 2.14
symbolic device requirements 2.15
working set 4.16
techniques for reducing 4.17

x
XREF option

z
ZONE (FOPT macro) operand

2.29

23xx emulator 2.35
3031 processor 1.1, 3.4, 3.11
space on recorder file 3.12
3330-11/3350
DASD file, support for 2.36
3540 diskette
as IPL device 3.3
SYSIPT assigned to 3.68
370 mode 1.1, 1.14
defining virtual address space 1.18, 2.1'8
defining the page data set 2.23
partition allocation 3.15
use of supervisor buffers 2.40
3800 Printing Subsystem 3.52
4300 processor, modes of execution 1.1, 1.14
5424 MFCU 3.54
7443 service record file 3.4

Index 6.11

READER'S
COMMENT
FORM

DOS/VSE System Management Guide

GC33-5371-7

This sheet is for comments and suggestions about this manual. We would appreciate your
views, favorable or unfavorable, in order to aid us in improving this publication. This form
will be sent directly to the author's department. Please include your name and add ress if
you wish a reply. Contact your IBM branch office for answers to technical questions about
the system or when requesting additional publications. Thank you.
Name

How did you use this manual?

Address

As a reference source
As a classroom text
As a self-study text

What is your occupation?

Your comments* and suggestions:

* We would especially appreciate your comments on any of the following topics:
Clarity of the text
Organization of the text

Accuracy
Cross-references

Index
Tables

Illustrations
Examples

Appcaran\.:l'
PnrJtlllg

Paper
RlIlding

GC33-5371-7

YOUR COMMENTS, PLEASE ...
This manual is part of a library that serves as a reference source for system analysts,
programmers and operators of IBM systems. Your answers to the questions on the back of this
form, together with your comments, will help us produce better publications for your use. Each
reply will be carefully reviewed by the persons responsible for writing and publishing this
material. IBM may use or distribute any of the information you supply in any way it believes
appropriate without incurring any obligation whatever. You may, of course, continue to use
the information you supply.

n
c

~

l>

r

o
Z

C)

--I

I

Vi
C
Z

m

Please note: Requests for copies of publications and for assistance in utilizing your IBM system
should be directed to your IBM representative or to the IBM sales office serving your locality.

Fold

Fold
••••••••••••••••••••••••••••••••••••••••

$

•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

NO POSTAGE
NECESSARY
IF MAILED
IN THE
UNITED STATES

BUSINESS REPLY MAIL
PERMIT NO. 40

FIRST CLASS

ARMONK, N.Y.

POSTAGE WILL BE PAID BY ADDRESSEE:

IBM Corporation
11 33 Westchester Aven ue
White Plains, N.Y. 10604

A ttent ion: Department 813 BP

Fold

IBM
International Business Machines Corporation
Data Processing Division
1133 Westchester Avenue, White Plains, N. V. 10604
IBM World Trade Americas/Far East Corporation
Town of Mount Pleasant, Route 9, North Tarrytown, N. V., U.S.A. 10591
IBM World Trade Europe/Middle East/Africa Corporation
360 Hamilton Avenue, White Plains, N. V., U.S.A. 10601

Fold

:

GC33-5371- 7

I==;l(
International Business Machines Corporation
Data Processing Division
1133 Westchester Avenue, White Plains, N. V. 10604
IBM World Trade Americas/Far East Corporation
Town of Mount Pleasant, Route 9, North Tarrytown, N. V., U.S.A. 10591
IBM World Trade Europe/Middle East/Africa Corporation
360 Hamilton Avenue, White Plains, N. V., U.S.A. 10601



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37
Create Date                     : 2004:02:16 18:11:34-08:00
Modify Date                     : 2009:09:10 13:17:01-07:00
Metadata Date                   : 2009:09:10 13:17:01-07:00
Producer                        : Adobe Acrobat 9.13 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:ad8221dd-d5fa-4b0b-abdf-0baed0918b8a
Instance ID                     : uuid:a5b04607-e264-414f-a807-e36566fa925e
Page Layout                     : SinglePage
Page Mode                       : UseOutlines
Page Count                      : 273
EXIF Metadata provided by EXIF.tools

Navigation menu