Mvs
Mvs
1. Introduction ............................................................................................................................ 5
1
Address Space ........................................................................................................................ 28
MVS ....................................................................................................................................... 29
Paging..................................................................................................................................... 29
Demand Paging ...................................................................................................................... 30
Swapping ................................................................................................................................ 30
Page Stealing ......................................................................................................................... 31
RSM (Real Storage Manager) ................................................................................................ 31
ASM (Auxiliary Storage Manager)....................................................................................... 31
VSM (Virtual Storage Manager)............................................................................................ 31
Virtual Storage Layout ........................................................................................................... 32
10. MVS Functions ..................................................................................................................... 34
Data Management Overview.................................................................................................. 34
Types of Data ......................................................................................................................... 34
Dataset Organization .............................................................................................................. 34
Non-VSAM datasets organization ......................................................................................... 35
Dataset Organization .............................................................................................................. 35
VSAM datasets organization ................................................................................................. 36
Data Organization - Salient Points ......................................................................................... 36
Data Set Naming Rules .......................................................................................................... 36
MVS Datasets ........................................................................................................................ 37
11. MVS Concepts ...................................................................................................................... 40
How datasets are Accessed .................................................................................................... 40
12. Job Management Overview ................................................................................................. 41
What is a Job? ........................................................................................................................ 41
Job Management .................................................................................................................... 42
Definitions .............................................................................................................................. 42
Job Scheduling ....................................................................................................................... 42
13. Dataset Allocation And Job Step Execution ...................................................................... 45
2
Library Utility ........................................................................................................................ 63
Dataset Utility ........................................................................................................................ 64
New dataset allocation ........................................................................................................... 64
Renaming Dataset .................................................................................................................. 65
Dataset information ................................................................................................................ 65
Allocate datasets managed by SMS ....................................................................................... 66
Move / Copy........................................................................................................................... 67
Move / Copy- 2 ...................................................................................................................... 68
DSLIST Utility ....................................................................................................................... 69
DSLIST Dataset Selection ..................................................................................................... 69
DSLIST Commands ............................................................................................................... 70
Primary Commands................................................................................................................ 70
Reset ....................................................................................................................................... 71
16. Appendix – A ( Assignment ) ............................................................................................ 72
3
Day-Wise Schedule
Day 1
Day 2
MVS Functions
Data Management Overview
Job Management Overview
MVS Tools Overview
Lab Session
Assignments ISPF editor & TSO
4
1. Introduction
Before you begin to work on the “Mainframe environment”, which by default means
“IBM Mainframe”, you need to have a basic idea of the IBM mainframe operating system. Today,
it is know as MVS, which expands to Multiple Virtual Storage.
The MVS operating system has evolved over many years and has adapted to the changing
technology and modern day requirements. Since the user base of MVS is very large, a change is
not easy to Implement. The costs of the Mainframes are very high and the customer base is mostly
made up of long-term customers with huge application and large databases to support. Most of
these applications are also ‘Mission Critical’ applications. It is therefore imperative that any
change to MVS also be backward compatible.
MVS is designed to work with many hundreds of users working together, located in the
same locality or across continents. The MVS operating System was created by IBM and is said to
‘propriety’ OS. It has the capacity to supports a large number of peripherals like disks, tapes,
printers, Network devices etc. The applications on these “Legacy systems” are typically where
there is a huge amount of data and a large user base. Examples are Banking sector, Insurance
Sector, Newspapers, Material & Inventory, Airlines, Credit Card System, Billing, Accounting,
Shipping and others. Company’s that own these mainframes are typically those that are very big
inherently or have to deal with vast amounts of data, which has to be processed fast.
5
2. Computing Environment
Key Concepts and Terminology
Command Processing
Data Processing
How Business applications are executed
On-line
End User performs business functions
Application programs work interactively with End User
Execution is in foreground mode
Database is immediately updated to reflect the changes
Typically used for transaction processing, queries, master updates functions
Batch
Application programs are executed in background mode
Periodic business functions are executed automatically
“As and when” business functions are triggered by End User
Operations department is responsible for monitoring the execution
A command file is created to execute these functions
One command file may consist of multiple programs / system utilities
Typically used for bulk transaction processing, report printing, periodic processing (e.g. invoice
generation, payroll calculation)
6
Time Sharing
1. Resource Sharing
2. Multiple Users compete for computer resources at the same time
3. At any given point in time only one user can have control of the resources
4. What should be the basis of sharing?
First come first served?
Priority based?
Who so ever can grab it - Law of Jungle?
Equal - Democratically?
Need based?
Usually combination of 2 and 4 is used i.e. all are equal but some are more equal!!!
Time Slice
Each user is given control of resources for a pre-defined period - time slice
The control is passed on to next in queue user at the end of time slice (even if first
user’s work is incomplete)
If the user requires I/O before the time slice is over, the control is handed over to the
next user (since CPU cannot do anything until I/O is complete)
Priority
Multi-programming
Why Multi-programming ?
7
On completion of I/O the program again becomes “ready” for execution
This results in an illusion that multiple programs are being executed simultaneously, hence
multiprogramming.
Multi-programming Overheads
Program Queue Management
Program Status Management
Context Switching during Changeover
Multiple programs must be in main memory
Management of Common Resource Sharing (e.g. Printer)
Relevance of Multi-programming
Multi-programming is applicable even for single user system
Multi-programming is a must for multi-user system
Multi-processing
Spooling
Why Spooling?
How it is Implemented?
8
Virtual Storage
Why Virtual Storage ?
Required to enable execution of programs with are larger than the main memory size
Address mapping
Keeping track of what is in memory and what is not
Data/Instructions need to be “brought in” main memory as an when required
“Remove” from main memory what is not currently required (to make room for
instructions of other program)
Memory Management
9
3. Typical IBM Main Frame Site
Business Environment
Processing Environment
On-line during prime time (might mean 24 hours for global operations)
Batch during non-prime time (wrt local time) of 12 - 15 hours
Software Environment
Hardware Environment
Support Environment
Huge IT Departments
Application Programming Staff
Development
Maintenance / Support
DBAs
Operations Multiple Data Centers to Manage Batch Processing
System Programmers for;
- O/S
- Database Packages
- OLTP Packages
Network Support Staff
10
4. IBM Operating Systems
IBM Families of Operating Systems
11
MVS Evolution
1988 MVS/ESA 16 B
12
Operating Systems for
System/360
13
Migrating from Dos to OS was a major change
VM is not very popular
Today most of the sites use MVS
Major Handicaps
Limited and inefficient spooling
No Virtual Storage
System 370
14
1974 OS MVS/SP1 Multiple Virtual Storage
/VS2 System/370
24 bit addressability
Greater reliability /
integrity / performance
Virtual storage limitation
of 16MB - A serious
handicap for CICS
MVS/
1983 XA
Processors :
ES/3090 E and S Models and later
Virtual storage of 16 Terra
4381 Models 90E, 92E, 93E and later
Bytes
15
The Von Neumann Computing Model
Instruction 1
Instruction 2
Instruction 3
Instruction 4 Register
16
5. Operating System Considerations
a) Process Management
Problem :- According to Jon Von Neumann model only one instruction gets executed at a time.
What will happen if that instruction is waiting for I/O. In this case CPU time is wasted.
Solution :-
P2
File
3) Now this
will get
P3 Auxiliary Device
executed
Main Memory
17
b) Memory Management
Problem :- Any thing that is to be executed, must be in memory. (memory limitation)
Solution :- 1. Place task in real memory
2. Place task in virtual memory
P3 Real Memory
(Only part of program that requires
main memory will be in the main
Virtual Memory memory)
OS
Advantage : code and data size independent of the real memory
18
c) Input-Output Management
Problem :- Application should not worry about device characteristics. I/O device speed is 100 times slower
than CPU.
2) I/O operation
swapped out
P1 P1
P2
P2 I/O
swapped in
Subsystem File
P3
How is to be done is decided by
I/O subsystem
Virtual Memory
OS Tells What to do
Real Memory Auxiliary Device
19
System 370 I/O Architecture
Channel 0
Channel 1
Channel 2
Channel 3
CP Main
U Storage Channel 4
Channel 5
Channel 6
Channel 7
20
STORAGE
CP CP
Channels
Devices
Channels
Provide paths between the processor & I/O devices
3090 processors can have a maximum of128 channels
A channel itself is a computer & executes I/O instructions called channel commands
I/O devices are connected to channels through an intermediate device called “Control
Unit”.
Each channel can have up to 8 control units.
Control Unit
These are DASD units, can be connected to common control unit, called “String
Controller”.
String Controller can be connected to a channel directly or indirectly
A control unit called “Storage Control” connects string controllers to a channel.
channel
connection string controller
1 32
(1 - 128) storage control
(1 - 8)
string controller
1
32
DASD unit
21
6. IBM Hardware
How do today’s PC and medium sized IBM MF compare?
Processor-speed 16-31 MB 32 MB
22
7. Key Terminology
Cache Memory
High speed memory buffer (faster than main memory)
Operates between CPU and main memory
Used to store frequently accessed storage locations (instructions)
Usually available on all processors
Expanded Memory
Supplements main memory
Not directly available to application program
Not directly accessible by CPU
Implemented using high speed disk
Usually available with higher-end machines
Channels
Device Management Concept - Unique to IBM
Provides access path between CPU and I/O devices (DMA)
Up to eight control units can be connected to one channel
Up to eight I/O devices can be connected to one control unit
A channel is a small computer in itself with a set of instructions (Channel commands)
Channel controls the I/O device operations independent of CPU
Cannel processing can overlap CPU processing - improved performance
23
I/O Devices
Magnetic Tape
High volume storage
Sequential processing
Normally used as back-up device
Also used for physical transfer of data
4 to 8 tape drives are connected to one control unit
24
channel
Modems and telecommunication lines (telephone line, Satellite Link)
- Remote terminals / printers are connected to terminal controller (at local site)
- Terminal controller is connected to modem
- Modem is connected to telecommunications line
- At the receiving end telecommunications line is connected to modem
- Modem is connected to communication controller
25
8. Data Communication Equipment
Data Communication equipment lets an installation create a data communication network that lets
users at local terminals & remote terminals to access computer system
communication controller
modem modem
Telecommunication
Lines
modem modem
printer printer
terminal terminal
26
At the center of the network is the host system, a system/370 processor
The control unit that attaches to the host system’s channels is called a communication
controller
it manages the communication function
necessary to connect remote terminal system
via modems and telecommunication lines
A modem is a device that translates digital signals from the computer equipment at the
sending end into audio signal that are transmitted over a telecommunication line, which can be
telephone line, a satellite link or some other type of connection
At the receiving end of the line, another modem converts those audio signals back into digital
signal
27
9. Characteristics Features Of MVS
1) VS : The use of virtual storage increases the number of storage locations available to hold
programs and data
4) BATCH PROCESSING : When batch processing is used, work is processed in units called
“Jobs”. A job may cause one or more programs to be executed in sequence. Batch jobs get
collectively processed by the system
5) TIMESHARING : In this system, each user has access to the system through a terminal
device. Instead of submitting jobs that are scheduled for later execution, the user enters
commands that are processed immediately.
Time sharing is also called as Online Processing because it lets users interact directly with the
computer.
MVS Terminology
Address Space
An address space is simply the complete range of addresses and as a result, the number of
storage locations; that can be accessed by the computer.
An address space is a group of digits that identify a physical location in main storage
MVS allows each programmer to use all 16MB address space, even though real storage
includes only, for example 4MB physical locations.
In MVS, references in the program address space are not associated with a particular real
storage location. They remain reference to a particular piece of information called Virtual
Addresses. They become real only when assigned to a physical location.
When the program is ready to execute the system, using a system/370 hardware feature
called Dynamic Address Translation(DAT), maps the virtual addresses in the program to the
real storage addresses.
By doing this, MVS can make the program address space larger than the number of physical
location available in real storage.
28
MVS
It uses real storage to simulate several address spaces, each of which is independent of the
others
Real
Storage
Auxiliary
Storage
0 0 0
Auxiliary storage and real storage are used in combination to simulate several virtual storage
address space
Each batch job or TSO user is given its own address space
Various factors such as the speed of the processor and the amount of real storage installed
effectively limit the number of address spaces than can be simulated.
To provide for the larger virtual storage, MVS treats DASD as an extension of real storage
Paging
To enable the movement of the parts of a program executing in virtual storage between real
storage and auxiliary storage, the MVS system breaks real storage, virtual storage & Auxiliary
storage into blocks.
A page, a frame and a slot are all the same size each is a 4K byte
An active virtual storage page resides in a real storage frame, an inactive virtual storage page
resides in an auxiliary storage slot
29
Moving pages between real storage frames and auxiliary storage slots is called PAGING
Virtual Storage
Page
Frame Slot
PAGING
Demand Paging
Assume that DAT encounters an invalid page table entry during address translation,
indicating that a page is required that is not in a real storage frame. To resolve this Page Fault,
the system must locate an available real storage frame to map the required page(page-in). If
there is no available frame, an assigned frame must be freed. To free a frame, the system
moves its contents to a auxiliary storage. This movement is called a Page-Out.
System performs page-out only when the contents of the frame have changed since the page
was brought into real storage.
Once a frame is located for the required page, the contents of the page are moved from
auxiliary storage to real storage. This movement is called as Page-In.
The process of bringing a page from auxiliary storage to real storage in response to a Page
Fault is called DEMAND PAGING
MVS tries to avoid the time consuming process of demand paging by keeping an adequate
supply of available real storage frames constantly on hand. Swapping is one means of
ensuring this adequate supply. Page stealing is another.
Swapping
Swapping is the movement of an entire address space between Virtual storage & Auxiliary
storage.
30
It is one of the several methods MVS employs to balance system workload, as well as to
ensure that an adequate supply of available real storage frames is maintained.
Address space that are swapped in are active, having pages in real storage frames & pages in
auxiliary storage slots.
Address spaces that are swapped out are inactive; the address space resides on auxiliary
storage and cannot execute until it is swapped in.
Page Stealing
If there are not enough 4K frames available then frames which are not referenced for long
time will get thrown out and written to the auxiliary storage. So now those 4K frames are
free. This is known as Page Stealing.
The paging process is managed by several components of MVS. The 3 major one are :
Real Storage Manager (RSM)
Auxiliary Storage Manager(ASM)
Virtual Storage Manager (VSM)
31
Virtual Storage Layout
User Region
System
Nucleus
Area System Region
Each Virtual Storage Address Space consists of a System Area, a Private Area and a Common
Area.
System Area
It contains the nucleus load module, page frame table entries. Data blocks for system libraries
and so many other things
Nucleus and other contents of the System Area make up the resident part of the MVS system
control program
Its contents are mapped one for one into real storage frames at initialization time.
The size of System Area does not change once it is initialized
Common Area
It contains parts of the system control program, control blocks, tables and data areas
The basic parts of the Common Area are:
System Queue Area (SQA)
Pageable Link Pack Area (PLPA)
Common Service Area (CSA)
32
System Queue Area
contains tables and queues relating to the entire system
the contents of SQA depends on an installation’s configuration & job requirement.
It is allocated from the top of the virtual storage in 64K segments, a minimum of 3
segments
are allocated during system initialization.
Allocated SQA space is both non-swappable and non-pageable
Private Area
The user region is the space within Private Area that is available for running the user’s program
SWA contain control blocks that exist from task initiation to task termination
The information in SWA is created when a job is interpreted and used during job initiation
and execution
It is pageable and swappable
33
10. MVS Functions
Data Management Overview
Anything that needs to be stored and accessed on user request is a Data for MVS
Types of Data
Business Data
Database
Indexed Files
Flat Files
Application Components
Source Programs
Executable Programs
Screen Definitions
Record Layout Definitions
Command File Scripts
MVS (System) Data
O/S program
User Information (ID, Password, Profile)
Access Permissions
Temporary Data
O/S Built Data (e.g. task queues, segment table, page table)
Spooled Output
Work Files for Sort
Dataset Organization
Dataset organization fall into two categories under MVS : VSAM and NON-VSAM
Non-VSAM provides four basic ways of organizing data stored in datasets
Physical Sequential
Indexed Sequential
Direct
Partitioned
34
Non-VSAM datasets organization
Physical Sequential
Records are stored one after another in consecutive sequence
Can reside on just any type of I/O devices
Appropriate when file’s records don’t have to be retrieved at random
Indexed Sequential
Includes an index, which relates key field values to the location of their corresponding data
records
Direct
Permits random access of records
It doesn’t use an index
To access record, the disk location address (By hashing) of that record to be specified
Partitioned
Consists of one or more members
Each of these members can be processed, as if it were a separate physical sequential file.
Names of members in a Partitioned dataset(PDS) is stored in a directory
Dataset Organization
Partitioned Data Set - Salient Features
Commonly referred as PDS
Also known as Library
Used to store application components
PDS is divided into one or many members
Member name can be up to 8 characters long
There is no extension for member
Each member can be processed as an individual unit
Entire PDS can be processed as one unit
Each PDS contains a directory
Directory has an entry for each member in a PDS
- PDS Examples:
PAYROLL.TEST.SOURCE, PAYROLL.PROD.SOURCE,
INV.TEST.LOADLIB
Normally consists of 3 qualifiers called as
- PROJECT
- GROUP
- TYPE
– Personal PDS start with high level qualifier as User ID
– E.g. DA00T23.NEW.SOURCE
– Member Name Examples
– PAB0017, PAB0105, PAC0021 etc.
Usually, the application component type cannot be identified from the member name. For
35
that naming conventions are used for PDS.
36
Has three qualifiers
High-level qualifier is PAYROLL
Total length is 18
Dataset Tracking
Label
Data Set Label
First record of each data set is a label record called as;
File label or Data Set Control Block (DSCB)
There are several formats for DSCB
DSCB describes data set’s name, it’s DASD location and other details
DASD Label
Each DASD is labeled; called Volume Label (VOL1 label)
DASD label is stored on a disk at third record of track 0 in cylinder 0
DASD label contains Volume Serial Number and address of the VTOC file
VTOC
VTOC - Volume Table Of Contents is a special file for each DASD
VTOC contains the file labels for all data sets on the volume
MVS Datasets
Label Processing
When a dataset is stored on disk or tape, MVS identifies it with special records called ‘labels’.
There are 2 types of DASD labels : Volume, File Label
All DASD volumes must contain a volume label, often called a VOL1 label. This label is
always in the same place on a disk volume : the 3rd record of track zero in cylinder zero.
Volume label has 2 important functions
It identifies the volume by providing a volume serial no. : Vol-ser. Every DASD volume
must have a unique six-characters vol-ser.
It contains the disk address of the VTOC.
The VTOC (Volume Table of Contents) is a special file that contains the file labels for the
datasets on the volume.
These labels are called Data Set Control Block (DSCB) have several formats called Format-1,
Format-2 and so on.
37
VOL 1 Label
Vtoc
Format-4 Format-1 Format-I Format-I Format-3 Format-5
VTOC FileA File-B File-C File-B Free Extents
Free Extents
File-A
File-B
File-C
Free Extent
File-B
Free Extent
Catalog
Obviates the need of specifying Vol Ser for the data set
Catalog Types
Master Catalog
User Catalog
Catalog Features
Each MVS has only one Master Catalog
Master Catalog is used by MVS for system data sets
User Catalog is used for user data sets
There can be multiple User Catalogs
Master Catalog contains one entry of each User Catalog
- VSAM data sets must be Cataloged
38
- Non-VSAM Data Sets may or may not be cataloged
- An Alias can be created for a Catalog
Usually, the high-level qualifier of a data set is same as the catalog name or catalog alias name
Multiple data sets can be cataloged in single user catalog
Alias helps to catalog data sets with different high-level qualifiers to be cataloged in a single
user catalog
Data Management
39
11. MVS Concepts
How datasets are Accessed
Generally dataset goes through three phases when handled through program :
Allocation
Processing
Deallocation
Allocation
The process of locating an existing dataset or space for a new dataset and preparing the system
control block needed to use the dataset is called “Allocation”
Allocation occurs at 3 levels
Unit is selected and allocated e.g. SYSALLDA-DASD, TAPE
Volume is allocated
Dataset on that volume is allocated
Processing
Processing involves 3 steps
Opening datasets
Processing I/O
Closing datasets
Deallocation
Each file is automatically deallocated when job is finished with it
While deallocating, disposition of dataset can be decided, whether you want to retain the file
or should be deleted
40
12. Job Management Overview
What is a Job?
Simply put, job is execution of one or more related programs in sequence
E.g. 1
A job of creating an executable module (load module) from a source program consists of
executing Compiler program and executing Linker program.
E.g. 2
A job of printing invoices may consist of execution of three programs;
Stages of Job
1. Job Preparation
User keys-in commands using Editor
Save as a member in PDS
2. Job Scheduling
Initiated using TSO SUBMIT command
Not necessarily on FIFO basis
Prioritization is implemented using concept of class and priority code
3. Job Execution
41
Incorrect commands (command syntax errors)
Required resources (Data Sets, Program Library, Program Load Module) not available
Violation of access permissions for data sets, program load module etc.
Mismatch in data set status; as required by job and as it actually exists e.g. a create is issued
for a data set while data set which already exists
Program errors
Mismatch for Data set - Between program definition
and actual characteristics
Infinite loop
Data Type mismatch - numeric variable contains non-numeric data
Any abnormal termination of program is called as “Abend”
Job Management
Definitions
JOB - Is the execution of one or more related programs in sequence
JOB STEP - Each program to be executed by a Job is called a job step
JCL (Job Control Language) - Is a set of control statements that provide the specifications
necessary to process a job
JES (Job Entry Subsystem) :
Meant for job entry into system, also for job returning after completion
Shares the load on the operating system
Takes care of all inputs and outputs
Do simple basic syntax checking
Resource Initialization
Creation of address space
It is also known as Job Scheduler
Classified into
- JES2-design for uniprocessor environment
- JES3-design for multiprocessing environment (Decided at the time of system
initialization)
Jobs are sent to MVS depending on the class priority schemes
When you submit the job, JES reads the job stream(sequence of JCL commands) from a
DASD file and copy it to a job queue, which is a part of a special DASD file called JES
SPOOL.
Job Scheduling
How Job Is Scheduled For Execution
MVS does not necessarily process jobs in the order in which they are submitted. Instead, JES
examines the jobs in the job queue and selects the most important jobs for execution. That
way JES can prioritize its work, giving preference to more important jobs.
JES uses 2 characteristics to classify a job’s importance, both of which can be specified in the
job’s JCL : Job Class and Job Priority
If two or more jobs are waiting to execute, the JES scheduler selects the one with higher
42
priority
Each job class is represented by a single character, either a letter (A-Z) or a digit (0-9). Job
classes are assigned based on the processing characteristics of the job.
INITIATOR :- An initiator is a program that runs in the system region of an address space.
Each initiator can handle one job at a time. It examines the JES spool, selects an appropriate
job for execution, executes the job in its address space and returns to the JES spool for another
job.
The number of active initiator on a system and as a result the number of address spaces
eligible for batch job processing determines the number of batch jobs that can be multi
programmed at once.
Each initiator has one or more job classes associated with it. It executes jobs only from those
classes.
Within a job class, initiator selects jobs for execution based on their priorities, which can
range from 0 to 15
If two or more jobs have same class & priority, they are executed in the order in which they
are submitted.
Once an initiator has selected job for execution, it invokes a program called the interpreter
The interpreter's job is to examine the job information passed to it by JES and create a series
of control blocks in the SWA, a part of the address space’s private area
Among other things, these control blocks describes all of the datasets the job needs
Now initiator goes through 3 phases for each step of job
Allocation (required resources are allocated)
Processing (region is created & program is loaded and executed)
Deallocation (resources are released)
43
Job
JES SPOOL INITIATOR
JCL SYSIN
Like Jobs, SYSOUT data is assigned an output class that determines how the output will be
handled
Common O/P classes are;
A - Printer
B - Card Punch O/P
X - Held O/P
[Held O/P stays on the sysout queue indefinitely; Usually, O/P is held so that it can be
examined from a TSO terminal]
After the job’s output has been processed, the job is purged from the system, i.e. JES spool
space, the job used, is freed so it can be used by other jobs and any JES control blocks
associated with the job are deleted
Once a job has been purged, JES no longer knows of its existence
44
13. Dataset Allocation And Job Step
Execution
SWA
After initiator selects a job for
control block
execution, it invokes the
interpreter, which builds the
required control blocks in the
System Region
address space’s SWA.
Interpreter
Initiator
SWA
For each job step, the initiator
control block
invokes allocation routines to
allocate the units, volumes and
datasets required by the job
System Region step
Allocation
Initiator
SWA
After resource allocation, the
control block
initiator creates a user region,
loads the user program into it
User Program
and transfers control to user
System Region
program
Initiator
45
SWA CONTROL BLOCK
SYSTEM REGION
UNALLOCATION
INITIATER
When the user program completes, the initiator invokes Unallocation routine to Deallocate the
resources used by the job step
46
14. MVS Tools Overview
Tools are a set of sub-systems and facilities that;
Implement MVS functions
Are directly used by MVS user
Why JCL?
Since the job is executed in background, without user interaction, all information required
for the execution must be supplied in advance
47
JCL is used to specify this information
The most common information supplied through JCL is;
- To whom the job belongs (which user id)?
- What is the program / utility that is to be executed?
- Where (in which library / PDS) to find the load module of the program or utility?
- Where (which DASD volume / catalog, what data set name) to find the input data files
for the program / utility?
- Where should (which DASD volume, what data set name) the output files be created?
- The printer output should be directed to which printer?
What is JCL?
Stands for Job Control Language
Connotation is; set for job commands stored as a MEMBER in a PDS e.g. JCL to execute
a batch program, JCL to compile and link a COBOL program, JCL to allocate a VSAM
data set, JCL to SORT and MERGE two Physical Sequential Data Sets
Thus, JCL is nothing but a set of commands
- User keys-in commands using a editor
- Saves as PDS Member e.g. PAYROLL.TEST.JCL(PROG1JCL)
However, JCL can be understood and mastered with logical approach and open mind
Introduction
Two versions of JES; JES2/JES3
- JES2 is primarily for single processor systems
- JES3 is for multiple processor systems
Each MVS system uses either JES2 or JES3
JES3 has additional scheduler functions than JES2 (e.g. schedule job at specific time of
the day, interdependent job scheduling )
48
By starting a cataloged JCL procedure (e.g. when user logs in, a predefined set of
commands are executed as a batch job. These commands are stored as cataloged JCL
procedure)
By interactive users ‘thru’ SUBMIT command. Users can create a PDS member in which
commands are specified. On issuing SUBMIT command these are executed as a job.
Input
On SUBMIT, internal reader reads the JCL and creates an input stream
JES2 reads the input stream, assigns a Job Number and places input stream in SPOOL data
set (a message is sent to TSO user about the job number)
Job is put in the conversion queue
Conversion
Converter program analyzes JCL statements
Converts into converter / interpreter text
Checks for Syntax errors
- If any error, Job is queued for output processing
- If no error, Job is queued for processing
Processing
Selection based on job class and priority
Selected job is passed to Initiator
Initiator invokes Interpreter
Interpreter builds control blocks from converter / interpreter text in a Scheduler Work
Area (SWA)
- SWA is part of address space’s private area
- Control blacks describe the data sets required by the job
Initiator allocates resources required by the Job
- Initiator starts the program to be executed
- Builds the user region
- Loads the program in the user region
- Transfers control to the program
On completion of the program execution, initiator de-allocates the resources
The process of allocation / execution and de-allocation is repeated for each job step
Initiator Characteristics
Each initiator can handle one job at a time
There can be multiple initiators
Each initiator has a job class associated with it
System Operators can control the number of initiators and the class/es associated with
each initiator
Input Data
Input data to the user’s program can be specified in the job
Called as in-stream data or SYSIN data
SYSIN data is read and stored in JES spool
SYSIN data is treated like a data coming from card reader
49
Output
Management of System Messages, User Data Sets that need to be Printed / Punched
Organized by output class and device set-up requirements
User ‘s program can produce output data that is stored in a JES spool; called as SYSOUT
data
Each SYSOUT data is assigned an output class
Output class indicates the printer selection
“Held” Output
- Special class (usually Z) is assigned to “hold” the output
- “Held” output remains in the SYSOUT indefinitely
- Usually used to verify before printing
- User can change the class and thus release the “held” output
Hard-Copy
Local or remote processing
Device Selection
Queue the output for print /punch
Purge
Release SPOOL and Job Queue space
Intimate TSO user about job completion
Job Output
Output is produced at each stage job processing
Includes output produced by;
- JES
- MVS
- User’s program where SYSOUT is allocated as output device
Job output is available to user (you can see it dynamically)
It can be viewed using ISPF
Inserted by JES
Helps operator the segregate the job outputs when directed to printer
Spool usage
50
Execution time
Component 5 - SYSOUT
Separate sub-component for each SYSOUT allocation
Each SYSOUT can have different characteristics e.g. class, record length etc.
51
RACF is a set of routines
Invoked as and when required
Utilities
Set of general purpose programs
Executed like a user program through JCL
Common Utilities are :
IEBGENER
IEFBR14
SORT
IDCAMS
52
An Introduction to TSO
Time Sharing
Resource sharing
MVS handles each TSO user as it handles batch jobs
The user specific batch job that starts up handles
what datasets are available
What terminal monitor program is to be used
what procedure to auto execute at logon
TSO Commands
Create program.
Edit program.
Compile program.
Linkedit a program.
View output.
Route output to a printer
Submit Jobs
Monitor job
View output
Route output
53
Help
Help on TSO commands can be obtained by typing “HELP” at the “READY” prompt.
54
15. Interactive System Productivity Facility
(ISPF)
Access to ISPF is gained by Keying ISPF at the READY prompt
This is done as default in the auto executed clist at startup.
When this is entered you get the Primary Options Menu.
55
PA/PF Key Map
PF1 ===> HELP Enter the Tutorial
PF2 ===> SPLIT Enter Split Screen Mode
PF3 ===> END Terminate the current operation
PF4 ===> RETURN Return to primary options menu
PF5 ===> RFIND Repeat find
PF6 ===> RCHANGE Repeat Change
PF7 ===> UP Move screen window up
PF8 ===> DOWN Move screen window down
PF9 ===> SWAP Activate the other logical screen in split screen mode
PF10 ===> LEFT Scroll screen left
PF11 ===> RIGHT Scroll screen right
PF12 ===> RETRIEVE Retrieve last command
PA1 ===> ATTENTION Interrupt Current operation
PA2 ==> RESHOW Redisplay the current screen
PF1 - PF12 Keys may be duplicated from PF13 to PF24 in 24 key mode.
Some ISPF commands generate outputs. Printed output like this is collected and stored in a
special dataset call list dataset.
Whether the list dataset is to be retained, printed and/or deleted can be specified as a default in
the setup panels.
The ISPF operations done are recorded in a Log dataset. The disposition can be specified in
the defaults panel.
User Profile
Exiting ISPF
Termination Panel
56
------------------- SPECIFY DISPOSITION OF LOG DATA SET ---------------------
COMMAND ===>
LOG DATA SET DISPOSITION LIST DATA SET OPTIONS NOT AVAILABLE
------------------------- -----------------------------------
Process option ===>
SYSOUT class ===>
Local printer ID ===>
Key Mapping
Option 0.3
57
Browsing Datasets (Option 1)
ISPF LIBRARY:
PROJECT ===> DA0034T
GROUP ===> TRG ===> ===> ===>
TYPE ===> JCL
MEMBER ===> (Blank or pattern for member selection list)
Browse Commands
58
Editing Datasets (Option 2)
The Primary Editor entry is similar to that for Browse as regards concatenating datasets and
dataset selection.
Labels can be defined as in browse but may be entered as line commands.
Error messages may be removed by typing RESET on the command line.
To create a new member specify non-existent member name in the current PDS.
You can quit the editor without saving changes by the CANCEL command.
You can update the dataset with the save command
You can exit with implicit save with the END command or PF3 key.
59
Edit Profiles
Edit profiles control editing options
Normally editing a new dataset uses the default profile - the dataset type
To display the edit profile type PROFILE on the command line in the editor
To remove it from the screen type RESET.
This gives you a display as follows..
Profile Settings
60
Edit Modes
Where:
61
Shifting text source
<--------------Data shift----------> <---------- Column shift ----------->
< <n << ( (n ((n left shifts
> >n >> ) )n ))n right shifts
Data shifts
Utilities Menu
Option 3
62
Library Utility
Option 3.1
63
Dataset Utility
Option 3.2
ISPF LIBRARY:
PROJECT ===> DA0034T
GROUP ===> TRG
TYPE ===> JCL
OTHER PARTITIONED OR SEQUENTIAL DATA SET:
DATA SET NAME ===>
VOLUME SERIAL ===> (If not cataloged, required for option "C")
DATA SET PASSWORD ===> (If password protected)
64
Renaming Dataset
Option 3.2.R
ISPF LIBRARY:
PROJECT ===> DA0034T
GROUP ===> TRG
TYPE ===> JCL
Dataset information
Option 3.2.s
65
Allocate datasets managed by SMS
66
Move / Copy
Option 3.3
67
Move / Copy- 2
TO ISPF LIBRARY:
PROJECT ===> DA0034T
GROUP ===> TRG
TYPE ===> JCL
68
DSLIST Utility
Option 3.4
* The following line commands will be available when the list is displayed:
69
DSLIST Commands
M - Member list
C - Catalog a dataset
D - Delete a dataset
E - Edit a dataset
F - Free unused dataspace in a dataset
I - Display information for a dataset
M - Display a memberlist
P - Print a dataset
R - Rename a dataset
S - Display a shortened version of dataset information
U - Uncatalog a dataset
X - Print a dataset indexed listing
Z - Compress a dataset
= - Repeat the last command
Primary Commands
LOCATE To locate a dataset
TSO SUBMIT To execute Clists from the command line
SHOWCMD ON/OFF To show the expanded form of the command
CONFIRM ON/OFF Same as Confirm delete request Yes/NO on the delete panel
SORT Sorts the dataset list based on the fields shown on the next transparency
FIND Finds occurrence of a string with the list of datasets
SAVE dataset-name Saves the current dataset list into the datasetname specified
SELECT pattern [linecommand] To make a selection of datasets to be acted upon determined
by the line command
70
Reset
Option 3.5
ISPF LIBRARY:
PROJECT ===> DA0034T
GROUP ===> TRG
TYPE ===> JCL
MEMBER ===> (Blank or pattern for member selection
list, '*' for all members)
71
16. Appendix – A ( Assignment )
1. Create 2 PDSs with high level qualifier as your own MF login-id.
The one PDS should have RECFM = U. (After creation of this PDS, it should be
untouched. We will be using that in JCL practical.)
10. Write a sample COBOL program to display the hard coded values.
12. FIND a particular string in your program & REPLACE it with other value.
14. SPLIT up the sessions & work in 2nd session’s ISPF to work with JCL.
15. DELETE the least important member from your PDS. Delete the member less PDS.
72
17. Appendix – B (Bibliography/References)
1. MVS JCL BY DOUG LOWE
2. OS/VS2 MVS OVERVIEW BY IBM
3. THE MVS PRIMER BY DAVID SHELBY KIRK
4. EXPERT MVS/XA JCL BY CARANTHSIS MANI
5. MVS JCL,2/ED. BY DOUG LOWE
73