0% found this document useful (0 votes)
65 views108 pages

Systems Reference Library: OS Release 21

ghk

Uploaded by

Ioana Ioana
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views108 pages

Systems Reference Library: OS Release 21

ghk

Uploaded by

Ioana Ioana
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 108

File No.

S360-20
Order No. GC28-6534-3 OS

Systems Reference Library

IBM System/360 Operating System


Introduction
OS Release 21

This publication describes operating systems in


general and introduces the IBM System/360
operating System. The publication is intended for
anyone interested in the System/360 operating
System, whether or not he is familiar with other
operating systems. It describes the purpose,
design objectives, organization, function, and
application of the system/360 Operating System,
and how it was influenced by previous systems; it
also describes System/360 compatibility with
System/370.

The operating system consists of programming


aids and a control program that schedules and
supervises the processing of data. The system is
designed for a broad range of applications,
including teleprocessing and mUltiprocessing. It
helps a system/360 data processing installation
increase productivity by using its resources more
effect ively.
Page of GC28-6534-3, Revised Ja.nuary 15. 1972. By TNL: GN28-2512

Fourth Edition (June, 1971)

This revision obsolet~es GC28-6534-2, Technical Newsletters


GN28-2450 and GN28-2458, and replaces IBM System/360
Operati~System: Concepts and Fa~ilities, GC28-6535. It
describes only the MET and MVT configurations of the control
program. Changes to the text and small changes to
illustrations are indicated by a vertical line to the left of
the change. This publication contains a means of referencing
other publications by the use of superscript notation.
superscripts refer to the numbered publications listed in
Part 3, Bibliography.
This edition, with Technical Newsletter GN28-2512,
corresponds to Release 21" of IBM System/360 Operating
system, and to all subsequent release until other,,?,ise
indicated in new edit:ions or Technical Newsletters. Changes
are continually made to the specifications herein; before
using this publication in connection with the operation of
IBM systems, consult the latest IBM System/360 and
IBM System/370 SRL NElwsletter, Order No. GN20-0360,
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 Corporation, Programming Systems
Publications, DepartD~nt D58, PO Box 390, Poughkeepsie, N. Y.
12602. Comments become the property of IBM.

© Copyright International Business Machines Corporation 1964,1966,1969,1971


Page of GC28-6534-3, Revised January 15, 1972, By TNL: GN28-2512

Preface

This publication introduces you to the IBM • The major functions of the operating
system/360 Operating system, whether or not system: task management, job
you are familiar with other operating management, and information management.
systems. • Program development and management
aids.
• Advanced types of data processing
Part 1 gives background information to (multiprocessing and teleprocessing)
help the newcomer understand operating and the facilities that the operating
systems in general. The first section system provides for them.
describes the purpose of an operating
system and the resources it requires. The Part 3 contains a numbered bibliography.
second section describes the evolution of Superscripted items in text refer to these
operating systems and why they evolved as numbered publications. Further information
they did. about those superscripted items may be
found in the corresponding publications.

Part 2 describes the System/360 For definition of terms used, see the
Operating System. It discusses: IBM Data Processing Glossary, GC20-1699.

• The design objectives of the operating For more information on the System/360
system and how they were achieved. Operating system, refer to the publications
• The organization and function of the described in the IBM System/360:
operating system. Bibliography, GA22-6822. The IBM
• The two configurations of the control System/360 Operating system: Master Index,
program. GC28-6644, contains a reading plan for
System Reference Library publications.

Preface 3
Contents

PART 1: OPERATING SYSTEMS • 9 Tailoring the System to Individual and


Daily Needs • • • • • • • . • • • . 34
INTRODUCTION • • • • •
11 Selecting Default Options • • • • • • • 35
Hardware Resources • •
12 Selecting Options When the Control
Information Resources • •
13 Program is Initialized 35
Human Resources • •
13 Sharing Data Sets • • • • · 35
The Effective Use of Resources. • •
13 Cataloging Procedures • • • • • • • 35
Performance • •
14 Controlling System Operation • 35
Throughput • • 14 Controlling the Use of the System 36
Response Time • • 14
Availability • • 14 GROWTH WITHOUT DISRUPTION • • • • 37
Facility • • • • • • 14 Growth in the Past • • • • • • 37
Evolutionary Growth at an Installation • 37
THE EVOLUTION OF OPERATING SYSTEMS • • • 15 Evolutionary Growth in Improving the
The First Stage: Component Development 15 System • • • • • • • • 37
programming Aids • • • • • • • 15 Growth In Performance 38
Translator Programs • • • • • • 15 Growth in Application • • • • 38
Input/Output Control Systems •• 17 Technological Growth 38
Other Programming Aids • • 18 Other Growth Factors • 39
Program and Data sharing • • 18 Compatibility 39
Subroutine Sharing • • • • 18 Device Independence 39
Sharing of Generalized Programs • • 18 Multiple Task Management 39
Formal Sharing • • • • • • 18 standards • • • • • • 39
Growth in Applications • • • 19
The Second Stage: Integration and THE GENERAL ORGANIZATION AND FUNCTION
Automatic Operation • • • • • • • 19 OF OPERATING SYSTEM/360 41
The Miscast Role of the Operator • • • 19 Supervisor state Programs . • 41
System Integration of First-stage Service Requests • • • • • 41
Components • • • • • • • • • · • 21 Automatic Interruptions • • • • . • 41
A Typical Operating System • • • 21 The Effect of an Interruption • • • • • 41
A New Control Language For the Privileged Instructions 42
Programmer and Operator • • 22 The Basis of Control • • • • • • • 42
Batched Job Processing • • • • • 22 Problem State Programs . • • • 42
A Common Job Input Device • • 22 The master and Job Schedulers 43
Common Utility I/O Devices • • • 23 IBM-Supplied Processing Programs • 43
A Common Job Output Device • • • 23 Language Translators 43
Additional I/O Devices • • 23 Assemblers • • • • 44
Automatic step-to-Step Transition • 24 FORTRAN Compilers . • . • 45
The System Library • • • • • • • • • 24 COBOL Compilers . 46
Operating System Subsystems • • 24 ALGOL Compiler •• 47
The Control Program • • • • • • • • 25 PL/I Compiler • • • • 47
An Example: The IBM 7090/7094 Report Program Generator • 47
(IBSYS) System • • • • • • • • • 25 Service Programs. • ••• 47
Benefits for Long-Running Jobs • • • • 26 Linkage Editors • • •. • 47
Operating System Applications 27 Loader. • • • • • • • • • 47
Online Direct Access Systems • • • • 27 Sort/Merge Program 47
Airline Reservation Systems • • 28 Utili ty Programs • • • • • 48
The Problem of Coping With the Emulator Programs •••• 48
Work Load • • • • • • • • • • 28 Graphic Programming Services • • 48
The solution: The Concurrent Progr am Products • • • • • 48
Processing of Transactions • • • • • 29 Control Program Configurations 50
Concurrent Work Techniques And Other MFT Control Program • • • •• 51
Applications • • • • • • • • • • • • • 29 MVT Control Program 53
The Third Stage: A Union Of Techniques 29 Major Functions • • • • • 54
PART 2: THE IBM SYSTEM/360 OPERATING TASK MANAGEMENT • • 55
SYSTEM • 31 Resource Sharing • • • • • • 55
Program Sharing • 55
A GENERAL PURPOSE SYSTEM • • • 33 Data Sharing • • • • 56
Investing Resources • • 33 Resource Management 57
Modular Construction • • • • • 34 Advantages of Multiple-Task Management • 58
Defining and Generating the System • 34

Contents 5
Page of GC28-6534-3, Revised January 15, 1972, By TNL: GN28-2512

Concurrent Tasks Within Job st.eps (MVT More Efficient Use of Resources ••• 81
and MFT With Subtasking) • • • 58 Data Sharing • • • • • • 81
Operating System support of
JOB MANAGEMENT • • • • • • • • 61 Multiprocessing • • • • • • • • 82
Non-Stop Job Processing 61 Multiprocessing With Shared Direct
Multiple-Job Processing • • 62 Access Storage Devices • • • • • • • • 82
Concurrent Job Support Tasks • • • 63 MVT With Model 65 Multiprocessing 82
The MFT and MVT Job and Master Operating Modes • • • • • • • • • • 92
Schedulers • • 64
Job Priorities • • • • • • 65 TELEPROCESSING • • • • • 85
General Types of Applications • • • 85
INFORMATION MANAGEMENT • • • • 67 Data Collection • • • • • 85
The Centralization and Growth o:f Message switching • • 85
Information • • • • • • • • • • • • 67 Remote Job Processing 85
Problem of Growth and Centralization • • 67 Time Sharing • • • • • • • • • • 85
Opportunities of Growth and Online Problem Solving • • m • • • • • 86
Centralization • • • • • • • • • • • 67 Inquiry and Transaction Processing • • 86
Requirements for a Unified Information Message Control and Message Processing
Management System • • 67 Programs • • • • • • • • • • 0 • • • • • 87
Data Organization • • • • • e • • • • • 68 Message Control Programs • • • • • 87
Library Ref€~rence System • • • • • • • • 69 Queued Telecommunications Access
Methods of Storin9 and Retrieving Data • 72 Method • • • • • • • • • 0 • • • • • 87
Defining Dat:a, Access Methods, and Telecommunications Access Method 88
Devices . . . . . . . . . . . . . . . • • 73 Basic Telecommunications Access
Method • • • • • • • • • .. • • • • • 89
PROGRAM DEVELOPMENT AND MANAGEMENT • 75 Message Processing Programs •• 89
A Unified Program Development System • • 75 Specific Teleprocessing Applications
Modular Construction • • • . • • • 75 Provi ded by IBM • • • • • • .. • • 89
Organized Progra.m Libraries • • 77 Remote Job Entry • • • • • .. • • 90
Dynamic Program Loading . • 78 Conversational Remote Job Entry • • • 91
Checkpoint./Restart Facility •• 78 Time Sharing Option • • 91
A Means of FtecoveI:y • • 79 Working at the Terminal • • • 92
System Control • • • • • .. • 92
MULTIPROCESSING • • 81 Graphic Job Processing • • .. 93
CPU-to-CPU Communication • • • 81 System/360-1130 Data Transmission for
Advantages of Mult~iprocessing • • 81 FORTRAN • • • • • • • • • 95
Increased Availability • • • • • • 81
Increased Production Capacity • • 81 PART 3: BIBLIOGRAPHY 97

INDEX • • 99

6
Figure 19. The Running Time of a Figure 40. General Organization of
Computing System When Processing a Few Main Storage From the MVT Control
Long Jobs • • • • • • • • • • • 27 Program Configuration • .. • • • • 53
Figure 20. Sequential, Offline Figure 41. A Single Task System • • • 55
Application • • .. • • • • • • 27 Figure 42. A Multiple-Task system • • 56
Figure 21. Online Direct Access Figure 43. Unshared Information
Applications •.••••••.•• 28 Resources • • • • • • • • • • • • • • • 56
Figure 22. Comparison Between the Figure 44. Program Sharing • 56
Processing of Transactions Singly and Figure 45. Data Sharing • 56
Concurrently .............. 29 Figure 46. Job Definitions •••• 61
Figure 23. Investing Resources to Figure 47.. Sequential and Concurrent
Increase Productivity • • • • • • • • • 33 Job Processing •••••••• • 62
Figure 24. Constructing Your Operating Figure 48. Offline Peripheral
system ................. 34 Opera tions ••••••••• • • 63
Figure 25. Disruptive Growth 37 Figure 49. The MFT and MVT Job Master
Figure 26. Evolutionary Growth by Schedulers • • • • • • • • • 65
Incremental steps • • •• • 37 Figure 50. Data Organization • • 68
Figure 27. Optimizing Specific Figure 51. Data Record Formats • • 68
Characteristics: size vs. Speed • 38 Figure 52. Spanned Variable-Length
Figure 28.. Raising the Initial Records • • • • • • • • • • • • • • • • 69
Productive Capacity of the System Figure 53. Simplified Diagram of
Through Design Improvements • 38 Catalog System for Locating a Volume • 71
Figure 29. Extending the Production Figure 54. Simplified Diagram of
capacity and Application of the System 38 Catalog System For Locating Data Sets
Figure 30. Operating system/360 Within a Direct Access Volume 72
supervisor and Problem State Programs • 41 Figure 55. Program Design ....... 76
Figure 31. Language Translators Figure 56. Program Module Libraries • 77
Provided by IBM • • • • • • • • 44 Figure 57.. Relocatability •• 78
Figure 32. Macro Instruction Figure 58. Multiprocessing With Shared
Expansion • • • • • • • • • • 45 Direct Access Storage Devices • • • • • 83
Figure 33. IBM 2250 Display Unit Figure 59. A Symmetrical
Model 3 • • • • • • • • . • • • • • • 46 Configuration of the Model 65
Figure 34. IBM 2260 Display Station, Multiprocessing System • • • • • 83
With and Without Alphameric Keyboard • 49 Figure 60. Two CPUs in Multisystem
Figure 35. Systern/360 Software Mode, Balancing the Execution of Four
Systems For Various Systern/360 and Tasks • • .. • • • • • • • • • • • • 83
System/370 Configurations • • • • 50 Figure 61. Simplified Diagram of
Figure 36. Compatibility of MFT and Message Control Using the Queued
MVT Control Program Configurations •• 51 Telecommunication Access Method • 88
Figure 37. Concurrent Processing of Figure 62. IBM 2780 Data Transmission
Job steps and Job Support Tasks by an Terminal • • • • • • • • .. • • • • • • • 90
MFT Control Program • • .• • • • • • 52 Figure 63. A DESCRIBE DATA Display
Figure 38. General Organization of For the Graphic Job Processor 93
Main Storage For the MFT Control Figure 64. Using a Graphic Display
Program Configuration • • • • • • 52 Program on a 2250 • • .. • • • • • • • • 94
Figure 39. Concurrent Processing, by Figure 65. A Typical Optical Design
an MVT Control Program, of Job Steps, Application Display . . . . . . . . • • 95
Job Support Tasks, and Tasks Within
Job steps • • • • • • • • • • • • • • • 53

Contents/Illustrations 7
IBM system/360 Model 65

8
PART 1: OPERATING SYSTEMS

This part gives background information on


operating systems in general, describing
their purpose and how they evolved. If you
are already familiar with operating
systems, go to Part 2: The IBM System/360
Operating System.

Part 1: Operating Systems 9


Introduction

When computers were introduced several systems, process control systems, medical
years ago, they were usually put to work on diagnosis systems, com~uter-assisted
jobs that had required a g:.,,:e~t deal of instruction <CAl) systems, and information
routine human activity. Basic accounting, retrieval systems are a few recent examples
record keeping, and problem solving were a (Figure 2).
few of these early applications (Figure 1).
By and large, the automatic processing of
such jobs proved the speed, economy, and Today, as a result of this rapid
reliability of electronic data processing. progress, most data processing
installations are facing an increase in the
number of conventional applications as well
Later, computers entered a more as an increase in the scope and complexity
challenging phase of development in which of large-scale system applications. To
the industry began to devise system cope with these problems, a data processing
applications -- applications that go far system must efficiently apply all of its
beyond the mere mechanization of manual resources: hardware resources, information
operations. Management information resources, and human resources (Figure 3).

Before After

-1r -1r -1r -1r

4f4f4f4f~
Mt Mt Mt Mt 4JI
Bookkeeping System - Pencil and Paper

~~~~81
~~~~w Accounting with Key"Driven Machines

~~~~~
Scientific Problem Solving with Desk Calculator

~~~~cP Punched Card Accounting

Figure 1. Mechanizing Routine Human Activities

Introduction 11
Hardware Resources

To process data efficiently, the physical,


or "hardware, components of a computing
II

system must be available when they are


needed. The hardware resources at a data
processing installation are:
• Time on the central processing unit.
• Main storage space.
• Input/output devices.
• Input/output channel time.
• Direct access storage space.
The major hardware resource is the time
available for doing work on the central
processing unit (the CPU). The work the
CPU performs is to operate on, or process,
data. These operations usually consist of
the basic arithmetic operations (addition,
subtraction, multiplication, and division),
transferring data from one storage location
Information to another, converting data from one form
Medical
Diagnosis Retrieval to another, and performing simple tests or
comparisons to choose between alternative
operating sequences.

Individually, these basic operations do


C,:>mputer-Assisted not seem very impressive, but the CPU
Instruction
performs them with great speed and
reliability, and i·t can be programmed to
perform long, complex sequences of
Figure 2. System Applications operations without human intervention.

To perform long sequences of operations


without human intervention, the CPU must
Major Resources have a resource for storing information in
a readily accessible form. Therefore, the
Main Storage CPU has a main storage from which it can
CPU Time Space
quickly obtain information and return
results.
l?im~~ I/OTime
Channel
Also, there mus·t be some way to quickly
enter information into main storage. And,
because the capacity of main storage is
Programs limited, there must be a way to record
either for later processing or for use
outside the system -- the results that the
CPU places in main storage. Therefore, two
additional resources are required to
process data automatically: one or more
Data input/output devices for reading and
Processing recording information and time on one or
Work
more channels for transmitting the
information to and from main s1:orage.
Human I/O Devices
Devices that feed inf ormation into main
storage (via a channel) or record
information taken out of main storage (via
a channel) are referred to collectively as
input/output devices. However 6 they are
also storage devices because they store
Work Results information, whether i t be in the form of
printed characters on paper, holes in
punched cards, or magnetized spots on tape,
Figure 3. Resources Required toO Process drums, and disks. Direct access devices,
Data Automatically such as magnetic drum or disk units, are

12
usually called storage devices because they the kind of work it is best suited for.
are mainly used for storing information. Hardware and information resources must be
Other devices such as magnetic tape units, readily available so the CPU can be kept
card readers, and printers are called busy with the tedious work of processing
input/output devices, because they are used data. Human resources must be relieved or
primarily for entering information into the tasks that the computing system can
system and for recording output from the perform, and dedicated to more creative
system. Therefore, I/O devices and direct work: planning new applications,
access storage space are considered formulating solutions to problems, reacting
separate and distinct resources because to changing conditions and unexpected
their primary roles differ. events, and managing the installation.

The productivity of a data processing


installation depends on how well its
Information Resources hardware, information, and human resources
are selected and employed to do the work at
There are two kinds of information hand. A modern computing system can
resources at an installation: the data perform billions of basic operations in a
that the CPU processes and the sequences of few minutes, and with far greater
instructions, called programs, that direct reliability than a human being. But man
the CPU to perform operations in a must plan all of the work the computing
particular sequence. system performs and in doing so must
account for every contingency that might
arise. In short, a computing system only
follows orders. Lacking a program, the
Human Resources system is useless.

Even more important than hardware and


information resources are the human But, with a program, a computing system
resources at an installation. These can do much more than process input data to
consist of the time and talent of the produce output data. By using the few
individuals who staff the installa.tion and instructions of a computing system in
use the system. Although job different combinations and sequences, a
responsibilities vary among installations, programmer can create a program that will
there are usually three groups of people direct it to do many things that were once
under the direction of the installation done only by human beings. These include
manager: translating languages, managing resources,
retrieving information, scheduling and
• system programmers who plan, generate, supervising work and operating and
maintain, extend, and control the controlling mechanical devices.
system with the aim of improving the
productivity of the installation.
A program, or set of programs, that
• Applications programmers -- the main directs a computing system to perform such
users of the computing system -- who operations is called an operating system.
plan new jobs (applications) for the An operating system is really an advanced
system and develop the procedures and system application of a computing system in
programs needed to perform them. the form of organized collections of
programs and data. Like other system
• Operations personnel, who receive jobs applications it is designed to handle
from the programmers, schedule the complex activities, but it differs in the
order in which jobs are presented to kind of activity it supports. Most system
the system, and direct the operation of applications support specialized activities
the system. outside of the data processing
installation, such as banking, process
To a great extent, the success of a data control, or missile design. An operating
processing installation depends upon how system is designed to support the
well these human resources are applied. activities of the data processing
installation itself. In short, an
operating system is an application of a
computing system, in the form of program
The Effective Use of Resources and data resources, that is specifically
designed for use in creating and
The resources of a data processing controlling the performance of other
installation represent a considerable applications. Its prime objective is to
investment; it is important, therefore, to improve the performance of a data
use them efficiently,. To do this, i t is processing system and increase facility --
necessary to keep each resource busy doing the ease with which the system can be used.

Introduction 13
Performanc:e AVAILABILITY

Availability is the degree to which a


The overall performance of a data system is ready when needed to process
processing system is determined by a data. The availability of a system is
combination of three factors. They are especially important at an installation
!JlrQ.:gghput, .response time, and .5lvailabili"!y where a prolonged period during which the
(Figure 4). system is not available might result in a
complete shutdown of the total enterprise.

[ _Prod::'
.. £-
:] A high level of availability can often
be achieved by including additional
hardware resources, such as multiple
t---- ---L input/output channels and devices, as well
as multiple central processing units. Then

~
if one unit fails it can be in~ediately
replaced by another, thus helping to ensure
continued operation of the system as a
whole. A system using multiple units of
hardware resources, including two central
processing units, is described later in the
section titled "Multiprocessing."

Facility
Figure 4. Productivity Factors
Facility is a measure of how easy it is for
people to use a data processing system.
Facility is achieved in a system mainly by
THROUGHPUT providing the users at an installation with
a combination of programming aids,
Throughput is the total volume of work services, and precoded routines that can be
performed by the system over a given period employed using appropriate language
of time. This is an important factor at statements. The general idea is to
any installation; however, i t is especially simplify and speed the job of defining,
important at a high-volume production programming, and scheduling work for the
installation in which large batches of work system, thereby making more efficient use
are performed in accordance with a flexible of the human resources at an installation.
time table. This type of operation is
typical of many accounting and record Facility can also be increased by
keeping applications. improving the response time of the system
and the degree of interaction between the
system and the people who use it. An
example of this is a computer assisted
RESPONSE TIME instruction (CAl) application in which a
dialogue or conv2rsation takes place
Response time (sometimes called turnaround between a student and the system. In such
time) is the interval between the time a an application, the student learns from his
user (or a process-controlling device) mistakes as he makes them, thereby speeding
submits an item of work to the system for up the learning process. A similar
processing and the time he receives approach can be used to improve and speed
results. Response time is especially up problem solving and programming
important where many different people share processes as well~
the use of the system and the overall
progress of their work depends on their Although operating systems differ in the
receiving prompt results from the system. way they achieve their objectives, they
E'er example, response time is important in have many commOL characteristics. In fact,
a design activity in which a series of modern operating systems use many concepts
calculations is required to complete each and techniques developed in the past.
design and the designers cannot continue Therefore, the next section traces the
their work until they receive the re sul ts evolution of operating systems. This will
of previous calculations. For such prepare you for "Part 2: The IBM
activities a decrease in response time system/360 operating System" and help you
increases the pace of the activity and to understand how and why the system came
improves human productiVity, since less to be what it is and how it differs from
time is spent in idly waiting for results. earlier operating systems.

14
The Evolution of Operating Systems

Modern operating systems, as typified by Therefore, during the second step, it


the System/360 Operating System, evolved in was up to the programmers to translate the
three stages. The first stage began during procedure into the detailed numerical
the early days of electronic data language of the computing system.
processing, when the major components of an Depending on the complexity of the pronlem,
operating system were developed. During the translation step could take days,
the second stage, these components were weeks, or even months to complete and check
integrated to form systems and the name out.
"operating system" came into use. The
third stage was a union of known techniques The third step consisted of executing
with new ideas, aimed at the development of the program on the computing system to
a general purpose system that could improve process the data and produce results.
the productivity of a data processing After all of the time and effort devoted to
installation. translation, the execution step was often
completed in a few minutes. The same
general three-step process was followed in
The First Stage: Component developing a business application -- again,
Development far too much time and effort was expended
in translating procedures into a form
The first stage began mainly because of acceptable to the computing system.
language differences between computers and
the people who used them. The computer Largely as a result of this language
could not understand human languages, and problem, two important, interrelated
programmers found the precise, restrictive, movements began in the data processing
numerical language of a computer hard to industry. One was the development of a set
read and write. Futhermore, i t was of programming aids that could be used to
difficult to change a complex program assist programmers in doing their work.
written in "machine language" and each The other was the sharing of program and
change often triggered a chain of errors. data resources among the people who used
computing systems. These two movements
helped correct the imbalance of preparation
The language problem was a serious time and execution time.
obstacle to the efficient use of human
resources. For a time i t threatened to
limit the growth of electronic data
processing. Although a computer could PROGRAMMING AIDS
process data rapidly, i t had to be fed vast
amounts of instructions and data, all in The development of programming aids was
its detailed, cumbersome, numerical begun by system programmers who saw that
language. This required a large staff of too much time was being spent catering to
programmers who spent their time, not in the needs of the computing system. Since
creative work, but in the tedious many routine operations were involved in
translation of applications and problem preparing programs and data for the
solutions into machine language. computing system, why not, they reasoned,
use some of the speed and resources of the
computing system to do the work?
For example, if a mathematician had a Therefore, the programming aids they
problem to solve -- such as computing a set developed took the form of programs that
of trajectories for an artillery shell -- could be executed on the computing system.
he would usually do it in three steps (top The most important of these were translator
of Figure 5). First, he would analyze the programs and input/output control systems.
problem and formulate a procedure to solve
it. The mathe~atician had neither the time
nor inclinati~n to code his procedure in Translator Programs
machine language. Accordingly, he would
turn over his procedure and data to Translator programs were designed to
programmers. The procedure might be in the translate programs written in a language
form of a flowchart, a mathematical that human beings could understand into the
formula, or a series of general numerical language of the computing system
instructions; in any event, the procedure (a, Figure 6). A number of "machine
was not in a form that was understandable oriented" assembler languages were the
to the computing system. first to appear (b, Figure 6). These were

The Evolution of Operating Systems 15


soon followed by such "human-o.riented II into a machine language object program and
languages as FORTR.AN (c, Figur i;! 6) and executed by the computing system.
COBOL (d, F i9ure 6). Programml:rs could now
write their instructions to the computing Thus programmers were no longer slaves
wy.tem in language that were akin to to the needs of the computing system. They
mathematics (FORTRAN) or the language of could devote more of their time and effort
business (COBOL). With the development of to creative work. The translators not only
FORTRAN, the mathematician (bo1:tom of speeded up the programming process but
Figure 5) now had a reasonable choice. He reduced programming errors, made it much
could define his procedure in mathematical easier to correct errors, produced better
notation (for example, A= Y(~}3') and let a documentation of programs, reduced training
professional programmer conver1: it into a time, and made life easier for anyone who
FORTRAN language source prograr~. Or, he wanted to use a computing sysbem. The
could define the procedure directly in translation process was shortened, the
FORTRAN (A=X/ (Y*Z**3» with li1:tle or no burden of translation was shif·ted from the
help from thE! programmer. The source programmer to the computing system, and a
program could then be quickly translated balance between the two was achieved.

Before Language Translators

Problem Analysis Translation E.Kecution


and and

~====illl
Data Proc!KIure
Formulation

__

~
~.
_ _ Machine

L,","...

II . . . ;;;
...
Results

Pro,"""". ~.
~====illl
Data • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
Mathematician Programmers Computing System
Field Artillery
Trajectory or
mystems Analyst)

After Language Translators

Problem Analysis Translation Execution


and and
Data Procedure Language
Formulation Translator

.. -..
Machine
Language
Program

~~~ ..
Results

, It Data
Mathematician

Source
Program

Computing System Computing System


Rocket
Trajectory

Figure 5. Problem Solving Befo:['e and After the Development of Language Translator
Programs

16
CPU might attempt to process input data
a. Machine Language before it arrived in main storage or
destroy output data before it was
00035 4754 00 2 00000 transferred to an output device.
00036 4734 00 1 00000
00037 0560 00 2 00000 Therefore, input/output control systems
00040 0500 00 1 00000 were developed to automatically synchronize
00041 0040 00 0 01002 I/O operations with data processing.
00042 0131 00 0 00000 ~
00043 0601 00 1 00000 2 3
00044 2 00001 1 00040
00045 4600 00 2 00000
-- \ Input

b. Assembler Language
CPU
LOADX1 PXD 0,2 Processing
PDX 0,1
LOADQ LDQ 0,2
LOADAC CLA 0,1
*+2 Output
TLQ
XCA
STOREA STO 0,1
TIX LOADAC,l,l
STOREQ STQ 0,2
Figure 7. sequential Input, Processing,
c. FORTRAN Language and Output
16 READ(5,20)A,B,C 2 3 4 5 6 7
20 FORMAT(3E10.3)
IF(A)30,40,30 Input
30 D"B*B-4.*A*C
IF(D)50,60,70
50 XR1=-B/(2.*A) CPU
XR2--B/(2.*A) Processing
XIl=(SQRT(-D))/(2.*A) (

d. COBOL Output

:IF DE,M,A,ND IS GREATER THAN STOCK-ON-HAND,


-,---,-,1 , , , ,A,~~,D,EMA,N,D, ,T,O, ,BAC,K.-O,RD,ER,S", , , ' , , , , , " ''-_L'--L-LL_'-_LLL(

: MOV,E, ,BAC,K,-,O,R,D,E,R,E,D ,TO ACT,I,O,N -C,ODE;, "


Figure 8. Concurrent Input, Processing,
, , , ;O,T.f!E,R~.IS,E", , , , , , , , , , , , , , ' , , , , , , ,, ,,,,,,,,
and Output
SUBTRACT DEMA,ND F,R,OM STOC,I\-ON -HAND 'LLLL'--'-'--'-'--'-'-'---'--'--LJ
MOVE O,R,DER-FILLED TO ACTION-CODE. An input/output control system consisted
-- of an interrelated group of programs that
was loaded into main storage along with the
Figure 6. Programming Languages processing programs. using such a system,
a programmer merely had to issue a "READ"
Input/Output Control systems instruction to obtain the next block of
data from an input device or a "WRITE"
In addition to the language translators, instruction to send a block of data to an
other important programming aids, called output device. The input/output control
input/output control systems, were system-picked up and interpreted the
developed. These systems were designed to instruction and then initiated and
improve the way computing systems performed controlled the necessary transfer of data
I/O operations. In the early computing to or from main storage. In the meantime,
systems, the relatively slow I/O operations the CPU could continue processing data.
and the much faster data processing
operations of the CPU could not be If each block of input data contained
performed at the same time (Figure 7). more than one record the programmer merely
Therefore, the CPU was idle much of the issued a "GET" instruction to get the next
time waiting for the completion of data record in sequence. The input/output
transfers between I/O devices and main control system automatically controlled the
storage. To reduce this idle time, transfer and storage of data blocks and
computing systems were soon developed that parcelled out records one at a time fram
could perform input, output and data the blocks as they were requested by the
processing operations all at the same time processing program (Figure 9). Similarly,
(Figure 8). This represented a significant to transfer an output record, the
improvement in the performance of computing programmer merely issued a "PUT"
systems. However, to take advantage of the instruction. The input/output control
improvement the programmer had to make sure system then picked up and consolidated
that the I/O operations were synchronized records into a block before transferring
with the processing of data; otherwise, the the block to an output device.

The Evolution of Operating Systems 17


Main Storage with the realization that a great many of
--------------------- the program and data resources at an
Processing Program
installation could be shared by different
users of the computing system, thereby
avoiding a great deal of programming and
data-gathering duplication. A program used
in one job could often be used with little
PUT change in another job. Also, the same set
of data that was processed during one job
could often be processed in a different way
during another job. Program and data
sharing began as an informal cooperative
venture among users within an installation
but it soon involved a great many users at
different installations. In fact, users of
medium and large scale IBM computing
systems formed an organization,
appropriately called SHARE, to promote the
sharing of program and data resources.

Subroutine Sharing.

Program sharing took many different forms.


One was the sharing of subroutines --
relatively short sequences of instructions
that could be incorporated into a program
to perform specific functions, such as
finding the square root of a number. This
type of sharing was often used in
conjunction with language translators.
Input Buffers Output Buffers Some translators had access to a magnetic
tape library of subroutines and
Input/Output Control System
'---"-------------"--
incorporated them into a program when
instructed to do so by the programmer.
Figure 9. Data Retreival and Recording
Using an Input/Output Control ~harinq of Generalized Programs
System
Another form of sharing was the use of
Input/output control systems assisted generalized programs for performing common
programmers in other significant: ways. For data processing tasks. Typical of these
example, if an error was detected during an were the generalized sort/merge programs.
input/output operation, the system At many business installations it was found
automaticall:i retried the operation and that a large percentage of computing system
attempted to recover from the "error time was spent in sorting and merging data
condition. It also checked labels at the records into a prescribed sequence.
beginning of magnetic tape reels to ensure,
among other things, that the correct reel Rather than design a new program each
was mounted on the right tape unit. time a different set of records had to be
Input/output control systems, as a whole, sorted or merged, many installations
represented an important step in the reduced the programming effort by using a
evolution of operaiting systems. single general purpose sort/merge program
that could be easily modified to process
Other Programming Aids different types of records in different
\.," formats and sequences.
In addition 1to language translators and
input/output control systems, a variety of Among other shared generalized programs
other programming aids began to evolve. were utility programs, used to perform
These includ4ed programs for generating everyday tasks such as transcribing data
reports" loading other programs into main from one storage or I/O device to arlother.
storage, com~ining several programs into a
single program, and recording the contents Formal Sharing
of main storage in a readable fc)rm.
As time went by, program and data sharing
techniques matured and the sharing became
PROGRAM AND lDATA SHARING more formalized. For example, many of the
generalized programs were refined and
The other rna jor movement that IE~d to the improved so that they automatically
development of operating systems started modified themselves in accordance with

18
specifications supplied by the programmer. large part of its time idly waiting while
These specifications often developed into an operator peformed routine tasks or
formal language statements that a momentarily pondered what to do next. The
programmer could use to communicate problem lay in the sim~le fact that the
precisely his special data processing needs operator was too much involved in the
to the generalized program. At most mechanics of data processing. In this
installations the operations staff role, he could not match the data
maintained# on magnetic tape or in the form processing speed and reliability of a
of punched cards, a central library of computing system no matter how swiftly and
programs and programming aids that could be surely he did his work. An operator often
shared among the members of the spent more time preparing (setting up) a
installation. computing system for a job than the system
spent in performing i t (Figure 10). Some
computing systems, in fact, spent more than
GROWTH IN APPLICATIONS half of the work day idly waiting for the
operator to do such things as mount
Largely because of the development of magnetic tape reels, place punched cards in
programming aids and the formal sharing of a card reader, or mani~ulate manual
program and data resources, the number of controls. Wasted time, due to operator
data processing applications grew at a intervention, was especially severe at
surprising rate throughout the industry. installations where many small jobs were
The language barrier between the performed (FigurellA). The steadily
programmers and the computing system, increasing speed of computing systems could
although not eliminated, had at least been not compensate for such wasted time because
breached. Many installations that had as jobs were processed faster, operator
specialized in long-running or often-run "set-up" time between jobs remained the
jobs could now afford to program small same. Therefore, an even larger percentage
one-shot jobs. Many of the jobs were of computing system time was wasted waiting
developed by engineers and others who were for the operator (Figure llB).
not professional programmers. Using the
mathematical language of FOR'I'RAN they could
Operator Time Computing System Time
now do their data processing work with
little or no help from a professional
programmer. The professional programmer
could devote much more of his time and Read Instructions
Mount Tape Reels
ingenuity in devising new applications and Set Console Switches
posing new problems for solution. Load First Program and Start

As a result, the number of data


processing jobs at many installations
increased faster than the computing system
and its operator could handle them.

Second Stage: Integration and


Automatic Operation Normal Stop?
Remove Tape Reels
What Job Next?
The second stage, like the first, began as Setup Job
a result of basic differences between human Load and Start
and hardware resources. In the first
stage, they were language differences
between computing systems and the people
who programmed them. In the second stage,
they were differences in speed,
reliability, and reaction time between
computing systems and the people who
operated them.

THE MISCAST ROLE OF THE OPERATOR

As the volume of data processing jobs


increased throughout the industry, the
Time
differences between the operator and the
computing system became more and more
apparent and significant. Because of these Figure 10. Idle Computing System Time
differences# a computing system spent a Betwee n Jobs

The Evolution of Operating Systems 19


A Many Small Jobs B Many Small Jobs
Operator Time ComplJting System Time Operator Time Computing System Time

Time Saved
25%
66-2/3% Idle Time I
--=-3-1/3% Running Time _ --± _
50% Running Time
Time Time

Figure 11. Idle Time When Processing Many Small Jobs

20
It isn't surprising then, that the systems. Therefore, it might be helpful at
emphasis during the second stage in the this point to briefly describe a typical
evolution of operating systems was on operating system, concentrating on those
applying the fast hardware resources of the characteristics that were first introduced
computing system to reduce the data during the second stage and are now more or
processing activities of the operator. The less common to all systems. This
ultimate oojective was the non-stop description can then serve as background
processing of jobs (Figure 12). for understanding the third stage of
development, as typified by the System/360
Operator Time Start Computing System Time
Operating System.
Initial Setup
o

Figure 13. System Integration of First


Stage Components

A TYPICAL OPERATING SYSTEM


Figure 12. The Ultimate Objective:
Non-stop processing of Jobs When operating systems were first
introduced, their major, and sometimes
only, purpose was to control the
SYSTEM INTEGRATION OF FIRST-STAGE performance of a continuous series of
COMPONENTS independent jobs with as little operator
intervention as possible. This was largely
During the second stage many of the accomplished by designing a control program
programming tools and generalized programs that assumed many of the functions
that were developed during the first stage previously performed by the operator. By
were brought together and placed under the reducing the degree of human participation
direction of a central control program to in the mechanics of job processing, the
form a single integrated system (Figure control program helped "to ensure that jobs
13). The original reason for doing this were processed faster and more efficiently,
was to improve and, to a large extent, and were less subject to human error. It
mechanize the operation of the computing also provided the operator with more time
system. Hence the name, "operating to plan and direct the overall operation of
system. II the system.

The operating systems that were In various operating systems, the


developed during the second stage had a lot control program was called the system
of common characteristics. Many of their monitor, the executive program, the master
features have survived the test of time program, or some such name. Whatever the
and, with refinements, improvements, and name, each had the same basic goal, that
extensions, still exist in present day is, the non-stop processing of jobs.

The Evolution of Operating Systems 21


A New Contl:"ol Language For the Programmer operation. These usually included several
and Operator statem~nts that the operator could use to
alert the control program to any changes he
To reach it:s goal, the control program had wished to make in the status or assignment
to relieve the operator of his miscast role of I/O devices. Thus, the operator was
as a middleman between the programmer and provided with a formal language, in the
the computE~r system. Therefore, a control form of control statements. With it, he
language was established which a progranuner could exercise general control over the
could use t:o bypass the operator and system, without necessarily intervening in
communicatE~ directly to the control program its automatic operation.
a precise definit:ion of the lNork (jobs and
job steps) he wanted perform<=d. Thi s
language c{)nsistE~d of several formal iQQ Batched Job Process~
control statement:s that could be recorded
on punched cards and later r(=ad, In order to reduce computing system idle
interpreted, and acted upon by the control time, the control program automatically
program. One statement, usually called the controlled the transition from one job or
JOB statememt, was used to identify and job step to another. To do this, it had to
mark the beginning of a job. Another have a backlog of jobs available and
statement, usually called the EXECUTE awaiting processing. Therefore, as job
statement, was used to mark 1:he beginning definitions, in the form of punched cards,
of a job st~ep (or n job segment" as i t was were received from the programmers, they
sometimes called) and identify by name a were placed one behind another to form a
specific program that was to be executed to batch, or "stack, n of job definitions
perform thE~ job step. In most systems each (Figure 15). The job oatch was then placed
job could consist~ of one or more such steps on a computing system input device
(Figure 14). specifically assigned for that purpose.
Because the job definitions were arranged
in a continuous series on a common job
Step 3 ( EXECUTE OBJECT input device, as soon as one job or jon
step was completed, the control program
could read and initiate the next job. Thus
Stop 2 L E C U T E LOAD -----, a continuous stream of jobs could be read
and processed with a minimum of operator
intervention. This technique is referred
to as either batched job or ~)tacked job
processing.

Figure 14. JOB and EXECUTE Control


statements

Although the JOB and EXECt~E statements


JOB 1
(or their equivalents) were by far the most
important and often-used control
statements, most control programs were
designed to read, interpret, and react to a
number of other statements. A few of these
were provided for use by the plrogrammer. Figure 15. A Batch of Job DE~finitions
Although the exact number and. type differed
depending on the specific control program,
they were generally used in an auxiliary A Common Job Input Device
capacity for such things as instructing the
control program to relay a me·ssage to the At some installations., the unit assigned to
operator. read the job input stream was a card
reader. However, at many installations,
especially large ones, each new batch of
However" most of the control statements job definitions was transcribed onto
were designed for use by the operator in magnetic tape before being read and
communicating information to the control processed by the control program (a, Figure
program and direc·ting its overall 16). The transcription was usually done on

22
a small auxiliary computing system, such as A Common Job Output Device
an IBM 1401 Data Processing System. The
reason for transcribing job batches in this Just as an input device was assigned and
way was to avoid continually tieing up the used as a common job input file, most
larger and more expensive main computing systems used one or two output devices as
system while relatively slow card reading common job output files for recording
operations were being performed. output data.

In some systems, a printer or card punch


was used for this purpose. However, in
most large-system installations each batch
of output data from a series of jobs was
recorded on magnetic tape in order to avoid
the relatively slow printing and card
punching operations. The output data was
then transcribed into printed or punched
card form by a small auxiliary computing
system (c, Figure 16). This was usually
the same auxiliary system that was used to
Online transcribe the input job batches from card
Control Program to tape. In some installations, a single
Translator Subsystems
Other Subsystems magnetic tape unit was used to record job
output data that was to be printed as well
as data to be punched on cards. The
auxiliary computing system separated and
Central directed the two types of data to the
Data Processor proper device during the output operation.
(CPU and Main Storage)
Usually the punched card output consisted
Additional of object programs produced by language
I/O Units
translators. The printed output usually
consisted of messages from the operating
system, sour~c program listings, storage
dumps, and other types of data from
specific applications.

Although the offline handling of job


input and output increased the rate at
which a batch of jobs could be processed,
it had its drawbacks. Because a batch of
jobs had to be scheduled three times in
succession in the overall process of
handling jobs, the programmers at many
installations found they had to wait a
considerable period of time after
submitting a job before they received any
results. Nevertheless, sharing a common
output unit for a series of jObS made it
unnecessary for the operator to remove an
Figure 16. Job Processing at a Typical output tape reel or a deck of cards at the
Operating system Installation conclusion of each job or job step.

Common Utility I/O Devices Additional I/O Devices

With some systems, advantages were gained By assigning I/O units to perform specfic
by assigning other I/O units to perform functions and by sharing their use for a
specific roles for a series of job steps. series of jobs, many relatively small jobs
For example, several units were often could be performed without any operator
assigned as utility units that could be intervention at all. However, operator
used for the temporary storage of setup time was not eliminated entirely.
intermediate data during the course of a Many large job steps required additional
job step (b, Figure 16). Since the data I/O units. These had to be set up by the
they contained at the end of a job step was operator before processing of a job step
no longer required, the same units could be could begin. However, most control
used by the next job step without the programs kept up-to-date records of the
operator having to change tape reels. exact status of all I/O units. Whenever an

The Evolution of Operating Systems 23


additional tape unit or other device was maintained a record of the name location of
required to perform a job step, it was each program stored in the system library.
assigned f.I:om a pool of available units and Some of the programs in the system library,
the operator was given instructions as ·to such as the language translators, were in
which tape reel t~o mount on which unit. He effect subsystems of the operating system
no longer had to ponder what to do next. because they contained a control program
(or monitor) of their own which could read,
interpret and react to one or more control
Automatic step-to-step Transition language statements. The programmer used
these statements to define more precisely
Whenever the cont.rol program encountered an the job he wanted performed by the
EXECUTE statement. while procE~ssing a series SUbsystem. Such statements were placed
of jobs, it. loaded into main storage the behind the EXECUTE statement containing the
program named in the statement. The name of the subsystem (Figure 17). After
control program then relinquished cont.:ol the main control program loaded a subsystem
of the CPU to the program. l~fter the into main storage and relinquished CPU
program was executed to complete the job control, the subsystem could read its
step, control of the CPU was returned to control statements from the common job
the control program. A program that was input device, interpret them, and then
thus loaded and executed to perform a job perform the job step in accordance with
step, could be anyone of seve.ral specifications.
frequently-used processing pl:ograms that
were includ.ed as an integral part of the
operating system. These pr09r.ams were The specifications differed depending on
stored and maintained in auxiliary storage; the subsystem. For a generalized sort/
(storage other than main stol~age) usually merge program, for example, they included
on one or more magnetic tape devices. As a such things as a description of the records
group, they were usually refer:red to as the to be sorted. For a language translator
system library (Fligure 16). subsystem, they included such things as
whether or not the programmer wanted a
The System Library printed listing of his source program or
whether or not he wanted his program loaded
The programs contained in thE! system into main storage and executE~d after being
library included the control program translated. For an Input/Output Control
itself, as well as a number of programming System, they included a description of the
aids and generalized programs -- much like input/output data and the way it should be
those developed during the first stage in processed.
the evolution of operating s}'stems. Many,
in fact, were versions of these same
programs, modified to execute under the
direction of a control program,. AI though DATA
the number and variety of programs (Source Program)
contained in the system library varied from
one system to another, they usually FORTRAN Translator
included at least one language translator Control Cards
program, an input/output cont.rol program Execute FORTRAN
(or system), and a program th.at could be
used in loading other programs into main Job FORTRAN No, 5
storage. Many systems contain«:d a much
wider selection of general purpose programs
that could be used by a progr·ammer in
performing one job step or a series of :job
steps. These included generalized
sort/merge programs, utility programs,
report program generators, and several
different types of language translators. Figure 17. A Single-Step Job Containing
Many of these were designed, furnished, and Subsystem Control Cards and
maintained by the manufacturer of the Data
computing system. However, some users
often designed frequently-used programs of
their own and incorporated them into the In some operating systems, a programmer
system libr.ary as a permanent part of their could place input data that was to be
operating system. processed by a subsystem at the end of a
job step definition (following the
Operating System .subsystem~ subsystem control statements, as shown in
Figure 17). This data could then be read
In order to locate a program specified on and processed by the subsystem as it was
an EXECUTE card, ·the control program required. The data could be any of several

24
types depending on which subsystem was to well. However, other parts of the
process it. For example, i t could be in input/output control system were loaded
the form of source language statements to into main storage only when they were
be translated by a language translatQr needed in performing a specific job step.
subsystem, or machine language instructions
to be loaded into main storage by a loader THE TRANSITIONAL MONITOR: The other major
subsystem and then executed, or data part of the control program was sometimes
records to be sorted by a sort/merge called the transitional program or monitor.
program. Unlike the nuc leus, i t occupied main
storage only during the interval between
Two important advantages were gained by one job or job step and another. Its main
placing data to be processed by a subsystem function was to read, interpret, and react
in the job input stream. First, it to control statements (JOB and EXECUTE
eliminated the need for an additional I/O statements) from the programmer and the
device to read the data. Second, it operator. In doing so, it automatically
reduced, or eliminated job step setup time controlled the transition from one job step
by making it unnecessary for the operator to another (by loading and transferring CPU
to mount a separate tape reel or load a control to the subsystem or program named
separate card deck containing the data. on an EXECUTE card). Once the transition
to a new step was completed, the main
storage space occupied by the transitional
The Control Program part of the control program was available
for use in performing the job step. After
The control program of most early operating the job step was completed, the
systems consisted of two parts: the transitional monitor was loaded into main
nucleus or basic monitor, and the storage again to perform its function of
transitional monitor. init~ating the next job step.

An Example: The IBM 7090/7094 (IBSYS)


THE NUCLEUS: The nucleus was so called system
because it always remained in main storage
while a series of jobs were processed. It The operating system designed for the IBM
provided common facilities for 7090/7094 Data Processing system was one of
intercommunication and control among the the most widely and heavily used of the
operator, the control program, and each of early operating systems (Figure 18). It
the subsystems operating under the control was typical of other operating systems of
program. It contained information such as the time in that i t employed components
the exact status of each I/O device and the that were largely developed during the
time of day. It also contained a number of first stage in the evolution of operating
frequently-used service or utility routines systems. For example, i t used the FORTRAN
that were required by the control program, II Processor (a language translator) which
but could also be shared and used by was developed by IBM customers before the
subsystems. Typically, these consisted of operating system came into existence.
small routines for loading programs from
the system library into main storage, The IBM 7090/7094 Operating System was
converting data from one form to another, unusual, however, in that is contained what
writing messages to the operator, or amounted to an operating system within an
initiating a main storage dump. operating system. This was the IBJOB
Processor subsystem, shown in Figure 18,
More importantly however, the nucleus that contained its own control program, or
contained supervisory routines that were "monitor" as it was then called. The IBJOB
needed to coordinate and control I/O Processor subsystem could be used to
operations. In some systems a complete compile, assemble, load, and execute
input/output control system was included in programs written in FORTRAN IV and COBOL
the nucleus. It remained there for language. It could also be used to
immediate use by any program that needed assemble, load, and execute programs
it. written in an assembler language, or to
load and execute previously assembled
In other systems, to conserve main object programs. It also provided
storage space, only parts of the I/O facilities for combining program segments
control system were included in the written in different languages with
nucleus. These were key parts that were previously assembled segments to form a
needed to ensure centralized control of all single executable object program. Many of
I/O transfers and to prevent interference the innovations and techniques that were
among the control program and its first used in the IBM 7090/7094 Operating
subsystems. In some systems, standard System were later used in designing other
error recovery routines were included as operating systems.

The Evolution of Operating Systems 25


System
[~m-am
Translator
Geneilalized
Sorting
Monitor
<Control Program)
FORTRAN~ Input/Output
Control
Processor System Processor ~ System

$EXECUTE CT
t
$EXECUTE SORT
+
$EXECUTE FORTRAN $EXECtTE IOCS

I
$EXECUTE 9PAC
I
$EXECUTE DK90UT I
.
or $EXECY,TE IBSFAP

$EXECUTE RESTART
I
$EXECUTE?
$EXECUTE IBJOB

[~G IBJOB Processor

IBJOB
Subsystem

Monitor
Restart ]
Program
Installation
Programs

~ ~

[~ ORTRANIV
ompiler
COBOL
Compiler

Macro
Assembly
Program

~
Relocatable
IBJOB Subroutines
~
" Loader Including
IOCS

Figure 18. IBM 7090/7094 IBSYS Operating System

BENEFITS FOR LONG-RUNNING JOBS single program. In some sys1tems, different


parts of the same program could be written
in different languages. Accordingly, the
The second stage extended the application process of translating, testing and
of medium and large scale data processing maintaining large programs in pieces often
systems by makin9 it more profitable to use required the initiation and performance of
them in designinq and executing series of a relatively large number of small jobs and
small progl~ams. job steps, like those shown earlier in
Figure 11. Thus, the benefits to be
derived from the automatic t:cansition
When large long-running programs (Figure between jobs and job steps were not
19) were executecL under the direction of necessarily limited to the design and
the operating system, the benefits were execution of small programs.
less. simply because there were fewer
transitions and t~herefore fewer operator
interventions to be eliminated. However, In any event, the running time of a
·these largE! programs often required a great typical medium or large scale computing
many man hours to design, test, and system was improved by using an operating
maintain,. Therefore, to speed up the system. Moreover, the productivity of many
development. process, the work of designing, programmers was improved because they were
testing, and maintaining them was often provided with a variety of centralized
divided among several programmers. The programming aids and precoded routines that
language t:ranslat.ors and program loaders in they could employ singly or in combination
some systems had special provisions that without a great deal of difficulty. As a
allowed different. parts of the same program result, the amount of work that could be
to be designed, t.ested, and maintained performed at many installations was
independently and later combined to form a significantly increased.

26
• :Large. long-runni ng jobs, perf ormed
periodically for commercial purposes.
Few Long Jobs such as payroll accounting and record
Operator Time Computing System Time keeping.

Although some of the more recent systems


used direct access storage devices for the
system library and for temporary
intermediate storage, few took advantage of
the ability of these devices to store and
access data quickly. Master data (data
such as inventory records, personnel
records, and payroll information, which
represented the current business status of
the organization) was maintained in a
prescribed sequential order. Transaction
data (such as debits. credits, and changes
in personnel and payroll information, which
represented the activities of the
organization since the last update of the
master file) was batched and presorted in
the same prescribed order before it was
processed. Therefore, the second stage
operating systems were limited to
applications in which it was not necessary
to respond immediately to requests for
processing and continuously update the
master file.

In the meantime, however, a number of


online, direct access systems were being
developed independently of operating
systems. In these applications, immediate
response to requests for processing was of
10% Idle Time extreme importance.
Time 90% Running Time

Figure 19. The Running Time of a Computing Batches of


Transaction
System When Processing a Few Records Input Batches of Output
Long Jobs Units Data Items

OPERATING SYSTEM APPLICATIONS

The operating systems that were developed


during the second stage were primarily
designed for problem solvers -- engineers,
scientists, and mathematicians. Most of
these early operating systems were
sequential. offline applications (Figure
20) '. They controlled the performance of Figure 20. sequential, Offline Application
work in a sequential order. one job or job
step at a time, and with rare exceptions
had no direct communication with the source
or destination of the data that was Online Direct Access Systems
processed. They were usually tape-oriented
systems, relying on magnetic tape for
auxiliary storage and fast I/O. Typically, During the 1950's and early 1960's, a
they ha.ndled two kinds of jobs: number of online direct access systems were
developed independently of the second stage
systems that caroe to be known as operating
• Relatively small jobs. performed only systems. Whereas operating systems were
once to solve a problem or to process a originally developed for problem solvers --
program being developed, tested. or the scientific and engineering community of
maintained. users -- online systems were developed for

The Evolution of Operating Systems 27


specializE~d commercial acti vi ties that AIRLINE RESERVATION SYSTEMS
demandedimmediette response to transactions
(Figure 21). Online direct access system applications
were typified by the early airline
Bank Teller Reservations Clerk Salesman
reservation systems, in which master files,
containing seat inventory records for
hundreds of aircraft flights, were stored
in direct access storage. By entering
pertinent data into the system, ticket
agents at widely separated locations could
check the availability of space on a
particular flight, sell and cancel
reservations, and handle similar
transactions, all within a few seconds.

However, there were some difficult


problems in developing a system for this
kind of application. The system had to
respond quickly to each transaction and
complete it within seconds. It was not
possible to accumulate transaction data,
sort it into batches, and then process each
batch to interrogate or update the master
file. Furthermore, the system had to keep
the master file continuously up-to-date. A
ticket agent and his customer would not
tolerate long delays in awaiting
Data
Processor confirmation on the availability of space
on a particular flight. Moreover, if the
master file was not kept up--to-date the
agent might sell space already sold by
another agent at a different location.

Master ]- Solving these problems was a formidable


Data
Files undertaking, primarily because of the
dynamic nature of an online application.
----
Figure 21.. onli.ne Direct Access The Problem of Coping With the Work Loaq
Applications
A transaction usually required several
In an online, direct access application, references to the master file. In
the system communicates d.irE~ctly with the addition, different types of transactions
source and destination of the data i t (inquiries, sales, cancellations, etc.)
processes.. The data can be sent to or required different programs to process
received from local I/O devices or devices them. All of these programs could not be
at remote locations (by way of in main storage at the same time.
telecommunication lines).. ']~herefore, Therefore many of the programs had to be
transaction data can be processed as it is stored in direct access storage and brought
received. Also, the master files can be into main storage each time they were
interrogated to produce up-t:o-date output needed to process a transaction. All of
information (reports, statistics, invoices, this took time. Much time was spent, not
etc.) as :requir€!d. in processing transactions, but in locating
and gaining access to data and programs in
The records of the master files mayor direct access s·torage. Meanwhile, dozens
may not be arranged in a prE~scribed of other requests to process transactions
sequence. If they are arranged in a might have been received.
prescribed sequence, they may occasionally
be processed sequentially (to prepare a
summary re~port, for example), but usually To add to the problem, transactions
they are interrogated in a random occurred unpredictably. There were peak
(non-sequential) order as they are received periods of activity, such as on weekends or
at the installation.. Therefore, direct during morning and evening rush hours, when
access storage devices are c~l:most always hundreds or thousands of transactions would
used to st.ore the master files in an have to be processed within minutes. Even
online, direct access application .. a sudden change in the weather could effect

28
a sharp increase or decrease in the it is not unusual for 20 or more

-
frequency of the transactions. If the transactions to be processed concurrently.
transactions were processed one at a time
in the order they were received, it would
be impossible to keep up with all of them,
especially during periods of peak activity.
To do so would require communication lines -----------t~ .. Time
and computing systems that were much faster Transaction A Processed Alone
then those available at the time.
Therefore, some means had to be found to Transaction A
CPU Time __~! CPU
Control Flow ~\ ~
) , "\ I ,,\
handle transactions more quickly. This File Access Time , I
could only be done by using the hardware Transaction B I I I , I
and information resources of the CPU Time :"""'JT1....,.j:: '::"'~,:·"'::':','.:/~
~I I\~ ~

. ., +"'c::::::::l
(" .! ('L-I
installation more effectively. File Access Time ~ ~',
Accordingly, a special purpose control Transaction C I \ I ) I \
program was designed for the application. CPU Time ~J ~ '-[-=:y
File Access Time
----------~. Tin,e
The Solution: The Concurrent Processing of Transaction A Processed Concurrently
with Transactions Band C
Transactions
Figure 22. Comparison Between the
The special purpose control program treated Processing of Transactions
each transaction as a separate and distinct Singly and Concurrently
work unit and when necessary handled more
than one transaction at a time. To do
this, the control program had to keep track CONCURRENT WORK TECHNIQUES AND OTHER
of hardware and information resources and APPLICATIONS
allocate them as they were required to
process each transaction. If the The technique of performing transactions
processing of one transaction was concurrently made the differences between
temporarily held up to gain access to a success and failure in online system
program or data in direct access storage, applications. It increased the
then resources were allocated to start productivity of a commercial installatron
processing a new transaction or to continue by making more effective use of its
processing a transaction that had been hardware and information resources in
started earlier. Thus, several processing transactions. The processing pf
transactions could be processed a transaction really re:presented a data'
concurrently to keep pace with new processing task, that is, a definite unit
transactions and respond to them within a of work performed by the CPU. If
reasonable period of time. techniques could be developed for
processing more than one transaction for
online direct access a:p:plications, why
Each independent transaction required could not similar techniques be used to
only a fraction of the available resources perform transaction tasks, on other kinds
of the system. Therefore, by processing of tasks, for other applications such as
more than one transaction at a time, by operating systems? If so, the productivity
keeping account of their status, and by of many installations could be further
allocating resources dynamically (as they increased. This possibility led to the
were required) the control program could third stage in the evolution of operating
keep up with a heavy, fluctuating work systems.
load.
The Third Stage: A Union of
This increased the rate at which the Techniques
computing system could process transactions
without extending response time beyond a The third and current stage in the
reasonable limit. This is shown in Figure evolu-tion of operating systems began with
22, which compares the serial processing of the realization that many of the techniques
transactions with the concurrent processing developed in the second stage could be
of the same transactions. Note that it improved and incorporated into a general
takes more time (a fraction of a second or purpose operating system. These techniques
so) to process transaction A concurrently included the methods of designing programs,
with Band C then to process A alone. managing jobs, and managing data that had
However, when A, Band C are processed been developed for the early operating
concurrently, the time required to respond systems, and facilities for the concurrent
to Band C is greatly reduced and the three performance of data processing tasks that
transactions are completed in less time. had been developed for online direct access
In many online direct access applications systems.

'Ihe Evolution of Operating Systems 29


As a result of this union of techniques, tasks. But two other objectives were of
the range of application and t:he overall equal importance:
productivit.y of operating systems was
substantially increased. Opel:ating systems • To design a general purpose system that
could now be designed to serve a variety of would satisfy the needs of a variety of
advanced s:{stem applications as well as users.
traditional accounting, record keeping and
problem solving applications. • To provide each user with a system
tailored to his needs and capable of
growth in performance, facility, and
application without disruption.
One of ic.he most important objectives in
designing such an operating system was the These objectives led to the development of
concurrent perfo:rmance of data processing the IBM System/360 Operating System.

·30
PART 2: THE IBM SYSTEM/360
OPERATING SYSTEM

This part describes the IBM System/360


Operating System: its design objectives,
organization and function, control program
configurations, task management, information
management, program development and
management, multiprocessing, and
teleprocessing.

Part 2: The IBM System/360 operating System 31


A General Purpose System

One of the most challenging objectives in Investing Resources


designing the System/360 Operating System
was to produce a general purpose system
that could satisfy the data processing The performance and facility, and
needs of the majority of users at medium therefore, the productivity of a total
and large scale System/360 installations. system depends on the hardware, software,
In the. past, discrete systems had been and human resources invested in the system.
designed to meet the needs of the "Typical In general, the greater the investment in
User." But experience had shown that there resources the greater is the performance
was no such thing as a typical user. Data and facility of the system (Figure 23).
processing needs differed greatly from one However, performance involves other
installation to another, and between interrelated factors: throughput, response
individual users within an installation. time (called turnaround time in batch job
processing), and availability. For a given
investment of resources, one factor can be
Any attempt to satisfy such diverse improved only at the expense of others. At
needs with a single system would have been some installations, response time and
wasteful of resources. Many installations availability are of prime importance; at
would end up paying a penalty, in storage others, throughput is of greater
space and other resources, for facilities importance.
they did not need, while other
installations would suffer from a lack of
needed facilities. Therefore, the main objective in
planning and selecting a system should be
to invest resources in a way that properly
Therefore, instead of designing one or balances these factors and gives the kind
more discrete systems, IBM decided to allow of performance and facility that the
each customer to generate the kind of installation requires.
operating system he required.
Resource
Investments Productivity Gain
The first step in generating a system
that satisfies the data processing needs of Human
an installation is to determine exactly Resources
I .
what those needs are. To do this a study
is usually conducted to answer such
Hardware Software
Resources Resources ---
questions as: What is the total volume of
tt t __ --------
p
r
data processing work that must be done? o
d
What types of work must be perfoImed? What 1------1--- - u

---- ---- --
is the relative priority of the different Fifth c

-- --
t
types of work? What kind of assistance Investment
-- - i
does each member of the installation need
to do his job?
Fourth
Investment -
-- -
v
i
t
Y

After determining needs, the next step


Third
Investment
Second
-- --
is to select the computing system
(hardware) combination and operating system
Investment
--
(software) combination that will best
satisfy those needs. In selecting the Initial
Investment
appropriate hardware/software combination
the main objective is to improve the
productivity of the total installation.
Throughput I I
Productivity depends on the performance
and facility (ease of use and operation) of
Turnaround i~iF!Li~:1;,i;iUi: :>i";Ei;:1
Availability
the total hardware/software system. These Facility
factors, combined with the skill of its
members, determine whether an installation
has the capability to do the work that must Figure 23. Investing Resources to Increase
be done. Productivity

A General Purpose System 33


Modular Construction The operating system is not assembled
before delivery,. Instead, IBl-'l makes
available to its customers all of the
In order to allow each installation to required, optional, and alternative modules
select the resources it requires, the it produces. From them, each customer
operating system was designed using a selects and constructs the kind of
method called modular construction. The operating system he requires. To meet the
total system consists of a large number of needs of a great many installations, IBM
parts, or modules, in the form of organized has made available many more facilities
collections of instructions and data than anyone installation would require.
(Figure 24). These modules can be An installation should select only those
assembled and linked together in many facilities it really needs; the selection
combinations to form unique operating of unnecessary facilities can result in a
systems and can be replaced independently costly waste of storage space, CPU time and
of one another. The really distinguishing other resources.
characteristic of a module is the fact that
it can be replaced independently of other
modules. Some of the modules are required
in every operating system; others are Defining and Generating ,the System
either optional or alternative. (An
installation must select a module from a Once a hardware/software combination has
group of alternative modules but need not been selected, the next step is to define
select a module from a group of optional the combination so that it can be generated
modules.) automatically. The customer does this with
an IBM-supplied system generation language
with which he defines the optional and
Replaceable Parts Produced by IBM
alternative components to be included in
his system. 12 Using this def:inition and a
Alternative Required Optional
program library of modules supplied by IBM,
another IBM system/360 Operating system can
6] [I~~~[] ._ automatically retrieve, assemble and link
together all of the parts required for the
or or or
specified system. If the installation does
rl D~~~]=]
~ D~~~j]
••• not already have an operating system, IBM
supplies a pregenerated syst:em. Although

_._ IBM tries to anticipate the needs of its


customers, inevitably there are some parts
of an operating system that a customer,
or ~' because of his special needs, may wish to

D ~ design and supply himself. These may be in

_':r-
the form of either replacements or
additions to the system. Such replacements
and additions can be integrated into the
system when the system is generated. Some
""'tem/lGO - f+_
......
can even be incorporated into the system

~------..-----..--
after it is generated. In some cases IBM
has anticipated the need for specialized
additions and e.xtensions to the operating
system by supplying programming aids such
Your Operating System as system utility programs, which the
~ system programming staff can use for this
purpose. 15

cc·
11-
_II-
II • •
I Tailoring the System to Individual
and Daily Needs
selecting and generating an operating
system for an installation is just the
I first phase of a continual process of

r=~ __J. tailoring the system to changing needs.


Such tailoring is made possible because of
the flexibility inherent in the design of
the system. However, this flexibility is
not provided to allow every user complete
Figure 24. Constructing Your Operating freedom to use the system as he chooses.
Syst~em The installation staff must narrow the

34
choices that can be made by individual Sharing Data Sets
users so that the system does not seem
overwhelming to those who use it. A system programmer can define and create
Flexibility is provided to allow the data sets that can be used, without further
systems programming and operations staff to definition, by several programmers. This
react to changing needs and to exercise not only saves storage space but saves time
control over the use and operation of the in updating duplicate data, and avoids
system. By so doing they can help to duplication of effort on the part of the
ensure that the hardware and software programmers.
resources of the system are used
efficiently, promote the sharing of data
and program resources, avoid duplication of
effort and help to simplify the use of the Cataloging Procedures
operating system. The system programming
and operations staff can do this by: When similar jobs are to be performed by
several programmers, the system programmer
• selecting default options when the can catalog and store in direct access
system is generated. storage a standard job definition that can
later be retrieved and used by each
• selecting options at the beginning of a programmer without completely redefining
work period (at initialization). the job. This not only reduces duplication
of effort but also helps to standardize the
• Sharing data. use of the system.

• Storing standard procedures and


cataloging them for fast retrieval. Controlling System Operation
• Controlling the system during Once the control program is initialized and
operation. the system is in operation, the operator
can dynamically alter and adjust its .
operation, based on the flow and type of
work and the availability of resources.
Selecting Default Options For example, with certain configurations ot
the control program he can control the
Each processing program provides a number number and type of jobs that are performed
of optional services or features that a concurrently, cancel jobs, and change the
programmer can choose prior to using the priority of jobs. In short, the operations
program. However, when the operating staff has a great deal of high-level
system is generated, the installation staff control over the operating characteristics
can specify which options are to be used by of the system. This control can be used to
default if the programmer does not make a achieve a high degree of productivity.
positive choice. For example, at the However, to take full advantage of it
option of the programmer a language requires an operations planning activity
translator mayor may not provide a source that analyzes and monitors work
program listing. At system generation, the requirements and:
installation staff can decide whether or
not the listing will be supplied when no • Determines which operations-related
choice is made by the programmer. By options are to be selected when the
specifying default options that will best system is generated.
serve the needs of the installation, the
systems programming and operations staff • Plans which options are to be selected
can control and standardize the use of each time the control program is
processing programs and limit the number of initialized.
choices that have to be made.
• Plans the order in which the work is to
be entered into the system.
Selecting Options When the Control
Program is Initialized • Plans the overall operation of the
system.
When the operator initializes the control
program at the beginning of a work period, • Establishes standard procedures to be
he can elect that certain routines, followed by the operator when
including parts of the control program particular contingencies arise.
itself, remain in main storage throughout
the work period. By making such choices, • Monitors and reviews the operation of
based on the type of work that will be the system to ensure that the resources
performed during the work period., he can of the system are being used most
increase the performance of the system. effectively.

A General Purpose System 35


Controllinlg' the Use of the 8ystern • Price the use of resources in a way
that promotes maximum sharing of
If a system is to achieve the production it resources.
is capable of, rE~asonable control must also
be exercisE~d over its use. ~~his is
important t.o the success of any • Establish rules and regulations on the
high-production installation.. It is doubly use of the system" for example, rules
important a.t inst~allations where for assigning priority to jobs or jobs
information and hardware resources can be to specific classes.
concurrently shared by more 1:han one user,
and where t.he operations sta j:f has a great
deal of flexibility in adjus1:ing the • Establish standard ways of using the
operation of the system to the workload. system, appropriate to the types of
At such installations, one user, in the applications at the installation.
course of pursuing his own interests, can
adversely affect the interes1:s of other
users. For example, one user may assign • Check job control statements to ensure
priority to a job that does not require it, that installation rules and conventions
and unduly delay the completion of jobs are followed.
that do. Another user may request more
storage spalce than his job requires, and Effective control over the use and
perhaps prE~vent other jobs from being operation of the system/360 Operating
performed concurrently with his job. To System is particularly important because it
prevent individual users from unnecessarily provides an opportunity to greatly improve
diminishinq overall productivity, an performance through efficient sharing of
installation can: resources.

36
Growth Without Disruption

From its very beginning, the electronic central processing units, storage devices,
data processing industry has been marked by and I/O units. By selecting an appropriate
extraordinary growth. One aspect of this combination of operating system and
growth has been an ever increasing number computing system options, a user can arrive
of possible data processing applications. at a software/hardware system whose
The number and scope of possible performance matches the workload (number
applications have grown so rapidly that and scope of applications) at his
indiviBual data processing installations particular installation. As the workload
have been unable to keep pace in increases, performance and facility
implementing them. Growth at a data (productive capacity) can also be increased
processing installation has often been an by adding or replacing computing system
expensive and painful experience. resources, selecting other operating system
Therefore, the second major objective in options, and using the operating system in
designing the Systern/360 Operating System different ways. This can be done in small
was to provide easy installation with the incremental steps in order to keep pace
ability to grow without disruption. with a steady increase in workload (Figure
26). Thus, periods of extreme underloading
or overloading of a system can be avoided.
Growth in the Past
To date, growth at many data processing
installations has been disruptive. If a Productive - ...... r'7'""""7'""""7'""""~~7'""""7'""""7'"""""7":':'7""-­
significant advance in technology or an Capacity
increase in the number and scope of data
processing jobs forced a user to expand the
production capacity of his installation, he
often had but one choice. That was to
replace his old system, or a large part of
it, with a new one. Usually, this required
that he re-program and modify many of his
r Over Capacity
Under Capacity •
D
applications. Sometimes i t even required
that he reformat all or most of his data.
In addition, it required some retraining of -------...,.,~ Time
the programming and operations staff.
Considering the great investment in Figure 25. Disruptive Growth
program, data, and human resources at a
typical installation, this kind of
disruptive growth proved to be far too
expensive. In fact, it sometimes took
years for an installation to fully recover.
To reduce the number of such painful
experiences, many installations either
delayed expansion or expanded to a capacity

1
that was far beyond their immediate needs.
As a result their growth pattern was
somewhat like that shown in Figure 25:
either far too much capacity or not enough. Reserve Capacity D
Evolutionary Growth at an
-------~.~ Time
Installation
To avoid disruptive growth patterns, the Figure 26. ~volutionary 'Growth by
operating system was designed using modular Incremental steps
construction (described in the previous
section). Modular construction allows a Evolutionary Growth in Improving
customer to generate a system from a
combination of required, optional, and the System
alternative modules and to replace or add Modular construction not only makes it
modules when necessary. It is basically possible for an operating system to grow in
the same method that is used to construct a small evolutionary steps, it also makes it
systern/360 Computing ~stem or system/370 possible for IBM to continue to improve the
Computing System from a wide selection of performance and extend the growth of the

Growth Without Disruption 37


system and pass on the benefit:s to succession of refinements and improvements
individual installations. IBM can do this that have significantly improved its
by replacing' one module of the system with performance and made i t easier to use.
a new module that performs the same This has had the general effect of raising
function more effi.ciently" or by adding new the initial productive capacity of the
optional modules that an installation can system (Figure 28).
select in order to advance to new
applications or to increase overall
Upgraded
productivit~y. Another way is to provide Productive
new modules that perform the same basic Capacity
function but~ have different performance
characte.rist~ics. An example of this would
be two alteI:nativE! modules (Figure 27) that

I ----
perform the same basic function but differ
in that one (A) is small but slow and the Original
",.,...... .....,.....- Productive
other (B) is fast but large. Another Capacity
example would be t:wo program translators, .-_ - .,..",."....-""'-" Applications
..
one of which translates programs quickly (Number and Scope) Additional Capacity iii
while the ot:her produces highly efficien·t
object progl:ams. The former could be used
for compiling short-running one-shot - - - - - - - -... Time
programs, while the latter could be used
for long-running or frequently run Figure 28. Raising the Initial Productive
programs. One or the other or both might Capacity of the System Through
be used at a particular installation. In Design Improvements
such ways, t:he modular construction of the
operating system E~nables IBM to make
evolutionary improvements in th.e design of GROWTH IN APPLICATION
the system. This has a number of important
advantages. Modular construction has also made it
possible for IBM to extend the productive
capacity of the system (as shown in Figure
29), thereby, increasing the number and
scope of possible new applica·tions. In
fact, the system has already been extended
to encompass new system applications that
use such techniques as multiprogramming and
multiprocessing.
r--+-
-.r.r- .....",..
I- r -
-'~..---
Future ._-'_._...1 _---
Productive ___ .-I ~~-
Capacity _~-r-- _---

_----~ Possible
Future Applications
(Number and Scope)

Yesterday Today Tomorrow

' - - - - - - -...... Time


Figure 27. Optimizing Specific
Characteristics: Size Figure 29. Extending the Production
vs. speed Capacity and Application of the
system

GROWTH IN PERFORMANCE
TECHNOLOGICAL GROWTH
Modular construction makes it. possible to
continually upgrade the overall performance Because of their modular construction, both
and facility of the system as a whole. In the operating system and the computing
fact, since the operating system was first system can benefit from future developments
introduced, it has gone through a and improvements in data processing

38
technology. By taking advantage of new them. Also, IBM can extend or modify the
data processing techniques and equipment. operating system to handle new types of
IBM" through evoluti onary change, can devices and make them available for
improve the performance and application of immediate use with existing programs.
the operating system. Over a period of (
time it can even change the basic design
characteristics of the system, often in
ways not even contemplated by the original MULTIPLE TASK MANAGEMENT
designers.
Another factor that promotes growth without
I disruptionis the ability of the control
Other Growth Factors program to control the performance of more
than one data processing task at a time.
Growth without disruption is not achieved
through modular construction alone,. A task is simply work to be
however '. There are a number of other accomplished. In system/360, the work to
factors in the design of the operating be accomplished is the processing of data
system that make it possible for an by the CPU. To perform a data processing
installation to avoid the growth problems task. the CPU carries out (executes) a
that have plagued the data processing series of instructions that is variously
industry in the past. called a program, subprogram, routine or
subroutine. In short, a data processing
task is the work performed by the CPU while
COMPATIBILITY executing a program or part of a program.
It is an independent unit of work that can
To ensure a smooth transition from one compete for the resources of the system.
configuration to another., the operating
system was designed with compatibility as a Because of this ability, the hardware
primary goal. Operating system processing resources of the computing system can be
programs (such as language translators and expanded and used efficiently without
utility programs etc.) that are provided reprogramming simply by increasing the
by IBM can be used with any operating number of tasks that are performed
system configuration. Also, jobs and concurrently. For example, if more main
programs designed to run under control of storage space is added to a system, it can
one configuration can run under control of be readily used by increasing the number of
a larger configuration. jobs that are performed concurrently. In
such multiple-task configurations, the
For example, System/360 is program basic mechanism for allocating and managing
compatible with System/370 except for the concurrent use of resources already
Models 20, 44, and 67. Programs used for exists. Therefore, the system need not be
System/360 can fUnction on system/370, redesigned or modified each time additional
except those programs which: resources are added.

• Use System/360 model dependent


features. STANDARDS
• Use PSW bit 12 -- the ASCII bit.
• Use machine-dependent data. Another, perhaps not so obvious, way in
• Use low-address main storage for which the design of the operating system
special purposes. helps to ensure growth without disruption
• Depend on devices or facilities not is by establishing standards that can be
available in System/370. passed on to and used by customers. These
• Deliberately cause program exceptions. standards ensure coordinated operation of
• Are time dependent. the system. They include:

• Standard data formats.


DEVICE INDEPENDENCE • Standard data labels.
• Standard ways of linking programs.
Using the operating system, programs can be • Standard ways of communicating from one
written in such a way that they are not program or routine to another.
directly tied to a particular I/O unit.
This is an important factor in achieving By adopting such standards a customer
growth without disruption. By keeping the can help to ensure that his data. programs,
programs independent of the devices, i t is and methods are compatible with one another
possible to add new I/O equipment without and with those of present and future
affecting existing programs that might use versions of the operating system.

Growth Without Disruption 39


The General Organization and Function of Operating
System/360

The system/360 Operating System consists of that requires action by the supervisor
an organized collection of programs that occurs, the current program is interrupted
communicate with one another in standard and CPU control is passed to the
ways. The system is formed of two basic supervisor.. The interruption network that
classes of programs: programs that are is built into the computing system relieves
executed when the CPU is in the supervisor the problem state program or the supervisor
state (when I/O and other certain key from continually checking to determine if a
instructions can be executed) and programs significant event has occurred or from
that are executed when the CPU is in the wasting time in idly waiting for an event
problem state. to occur.

Supervisor State Programs


Operator
The supervisor state programs are called, Job Output
as a group, the system supervisor or
supervisor. The supervisor is the service
and control center of the operating system
(Figure 30). Its primary function is to
perform a variety of services requested by
the problem state programs, such as
allocating storage space, performing I/O
operations, loading programs into main
storage" and initiating the execution of
programs. To perform its function, the
supervisor always receives control of the
CPU following an interruption of a problem
state program. An interruption may result
from a specific service request from a
problem state program or i t may be an
automatic interruption initiated by the
computing system.

Service Requests
A service is requested by a problem state
program through the execution of a Problem
supervisor call (SVC) instruction. This State
results in an interruption of the Computing
System
requesting program and a transfer of Resources
control to the supervisor. Usually the
request is accompanied by information that Figure 30. Operating system/360 supervisor
the supervisor requires to perform the and Problem state Programs
service. For example, a request to load a
program into main storage would be
accompanied by the name of the program to
be loaded. The Effect of an Interruption
An interruption to a problem state program
Automatic Interruptions has the effect of placing the CPU in the
supervisor state, transferring control of
An automatic interruption does not the CPU to the supervisor, and passing on
represent a specific request by a problem to the supervisor information (in the form
state program. Rather, it is initiated by of a program status word) indicating the
the computing system. An automatic cause of the interruption and the status of
interruption results when a significant or the program when it was interrupted. Once
unusual event occurs within the computing the supervisor receives control, it can
system, such as the completion of an I/O perform tests to determine exactly what
operation or the detection of an error. event caused the interruption and then take
The computing system continuously monitors appropriate action. When the supervisor
its own operation so that when an event has completed its action, it can return

The General Organization and Function of Operating System/360 41


control to ,a previously inter~lpted over the activities of the system and
program, using the program's status word. prevent one program from interfering with
another. By maintaining up-to-date records
An interruption of a problem state of everything that happens, t.he supervisor
program may be caused by an event that is can coordinate its supervision of the
entirely unrelated to the program. For system even though i t receivE~s control of
example, an interruption may result from the CPU intermittently. The interruption
the completion of an I/O ope:ration for network ensures that the supervisor
another program. In basic versions of the receives control when necessary and the use
operating system., the supervis(:>r always of the privileged instructions enables it
returns control of the CPU to the same to prevent interprogram intel~ference.
problem state program that was being
executed when the interruption occurred. Key parts of the supervisor always
In versions of the operating system that reside in protected main storage
are designed to control the perfo.rmance of
more than one data processing task at a
I (optionally protected for MF'r). 8 Some of
these, such as the supervisor routines that
time., the supervisor may return control to ini~~ate and control I/O operations, reside
the same or to a different problem state permanently in mai n storage primarily to
program. 8 ensure continuous and coordinated control
over the operation of the system. Other
parts of the supervisor, such as the
Privileged Instructions supervisor routines that control the
allocation of main storage space, reside
When the supervisor receives control of the permanently in wain storage because they
CPU as a result of an interruption, i t can are used frequently. supervisor routines
have the CPU execute certain key that are less frequently used, and whose
instructions, such as I/O and :storage immediate presence in main storage is not
protection instructions. ThE!se can be vital to the eff:icient operation of the
executed only whe·n the supervisor is in system, are usually brought into main
control, and are, therefore, called storage from a direct access storage device
privileged instructions. If p:rivileged only when they are required to perform
instructions were executed as part of a specific functions.
problem state program, they could interfere
with the executiclD of anothel~ problem state The supervisor plays a central and
program or with the execution of the indispensable role as part of the operating
supervisor itself. For this r,eason, these system. Therefore, i t is more fully
instructions cause an error condition when described in the sections "Task Management"
an attempt is made to executE~ them in a and "Information Management."
problem state program.

Problem State Programs


The Basis of Control
The problem state programs that are
The interruption network and the privileged serviced by the supervisor can be
instructions constitute the basic mechanism classified as either IBM programs or user
that enable!s the supervi sor to service (application) programs. Opejrationally, the
requests by the problem state programs and IBM and user programs bear the same
maintain dl'namic control ove]::- the relationship to one another and to the
performance~ of work by the computing supervisor. They adhere to established
system. In the course of executing problem linkage conventions and data formats, and
state programs, control of the CPU is communicate with the supervisor in the same
continuall}' passed back and forth between way. All of the services provided by the
the programs and the supervisor as the supervisor are equally available to them.
supervisor answers requests for services As a group, the only real difference
and responds to E~vents detected by the between the IBM-designed problem state
computing system •. programs and the user-designed programs is
that the IBM programs are no:rmally designed
During t~he int:ervals when it is in for general use (in preparing other
control of the CPU, the supervisor programs), while the user programs usually
maintains complet:e control over the are not. In general, the IBM programs are
allocation and use of the resources of the designed to assist:
hardware/softwarE~ system. To do this, the
supervisor keeps a running account of all • Applications programmmers in devising
the programs, dat:a and computing system and programn:i ng new applications.
resources in the system, and their exact
status. It: also keeps a running account of • system programmers in generating and
its oWn continually changing status. It maintaining the system and in extending
can thereby maint:ain continuous control and controlling its use.

42
Page of GC28-6534-3, Revised January 15, 1972, By TNL: GN28-2512

• The operations staff in scheduling work (job) definitions into the computing
and operating the system. system, schedules, and then initiates the
performance of work under control of the
User-designed programs are usually supervisor. In operation, the two differ
intended for specific applications, such as slightly from other problem state programs
a payroll application, and are normally in that they can read data from and write
prepared and scheduled for execution using data into storage areas that are assigned
the IBM-supplied programs. for use by the supervisor. Because they
use the same storage area, the job and
The IBM-supplied problem state programs master schedulers can quickly pass
provide the means by which programmers can information to the supervisor concerning
use the supervisor's services. 9 In the work it is to supervise. In
addition, they assist the programmers by conjunction with the supervisor, the job
performing anyone of a combination of and master schedulers perform a vital role
three main functions: translating in scheduling and supervising the
language, supplying preceded instruction performance of work by the computing
sequences, and performing specific system. Therefore, they are more fully
services. They perform these functions in described in the section "Job Management."
response to sequences of coded language
statements that are written by the
programmer. Each program responds to its IBM-Supplied Processing Programs
own combination of statements which
together form a language. Using these The problem state programs that are
statements in various combinations and provided with the operating system (other
forms, a programmer can communicate his than the master and job schedulers> are
data processing requirements, including generally called processing programs to
requests for services performed by the distinguish them from the more special
supervisor. purpose programs provided by the users of
the system. Any of the processing programs
IBM-supplied programs differ from one can be selected and used with any operating
another in the type of assistance each system configuration.
provides. Some programs assist the user
chiefly by performing specific services. A wide selection of IBM-supplied
For example, the linkage editor program is processing programs is available for
used chiefly to integrate indIvidually inclusion in the operating system. These
translated parts or sections of a program. may be supplemented in the future by others
Most of the programs, however, assist the supplied by users of the system or by IBM.
programmer through a combination of The processing programs are designed to
translating, providing precoded routines, reduce the time, training, expense, and
and performing specific services. A major manpower required to design and code
function of a FORTRAN compiler, for efficient problem-state programs. A
example, is to translate from a notation programmer, or group of programmers, may
that is similar to mathematical notation to use them singly or in combination to
a form of machine language notation. process a particular job. They are
However, it also provides precoded generally classified as either language
mathematical subroutines and performs translators or service programs although
specific services, such as converting data some may both translate and perform
from one form to another. Two of the specific services, and often supply
problem state programs supplied by IBM -- precoded routines as well.
the master scheduler and the job scheduler
-- are, like the supervisor, required parts The language translators and service
of the system. The others, except for a programs described below are designed for
few system utility programs, are optional. use in combination with one another and
However, the linkage editor and one or more with other parts of the operating system.
other IBM-supplied programs would normally Therefore, the role of each as part of the
be included in any system. overall system is described in other
sections of the book. In particular, the
role of the language translators and the
The Master and Job Schedulers linkage editor is more fully described in
the section "Program Development and
The master and job schedulers, together Management."
with the supervisor, make up the control
program, which to a large extent determines
the basic nature of each operating system LANGUAGE TRANSLATORS
configuration. The master scheduler
controls the overall operation of the The language translators enable a
computing system-operating system programmer to define a problem solution or
combination. The job scheduler enters work an application in a language that can te

The General Organization and Function of Operating System/360 43


Page of GC2:B-6534-3, Revised ,January 15, 1972, By TNL: GN28-2512

more readily learned and more E!asily used provided by the supervisor. However, the
than the machine language of -the computing full range of services is not available
system. Th4ey relieve the programmer from with every language. For example, when
much of detailed work and drud<Jery involved using the assembler language, a programmer
in programming, and thereby reduce the time can program the concurrent performance of
required to produce an error-free program. multiple data processing tasks; but the
IBM provides translators for si.x languages. same ability is not available when using
These may b4e used to define a problem FORTRAN. '!his is due in part to the fact
solution or application: that the FORTRAN language evolved before
the operating system came into being.
• In a form of mathematical notation
(FORTRAN and ALGOL). The language translators (and the
service programs) are basically no
• In a concise form of the English different from other problem state
languag4~ (COBOL). programs. Therefore, the full range of
supervisor services are available for their
• In a ne~il7 programming language (PL/I) use in translating (or servicing) other
having features of both FORTRAN and programs. Each of the language translators
COBOL as well as new features. produces object programs (or object
modules) in a standard format. With
• In a flE~xible and versati le! symbolic certain exceptions and restrictions, this
languag~~ (assembler language). enables the linkage editor to combine
portions of a program written in one
• In a tabular form (Report Program language with portions written in another
Generator) • language to form a single program that is
ready to be loaded into main storage and
• In a combination of any of the above executed. Some of the language translators
forms. have program testing facilities that can be
used to dynamically test a program, or part
For the assembler, FORTRAN and COBOL of a program, in accordance with
languages more than one translator is specifications expressed in the source
provided (Figure 31). The letters E, F, G, language. The general characteristic s of
or H in the figure indicate the minimum each language translator are briefly
amount of main storage space that must be described below. A complete description
available in order to use a translator can be found in the manuals that are
under opera 1:ing system control. For provided for each language. (Refer to the
example, the assembler language! translator IBM System/360 Bibliography, GA22-6822.)
F requires a computing system 1Iirith 65,536
or more bytE~s of main storage,. If more Assemblers
than the minimum main storage space is
available, a translator can generally use Either an E or F assembler, or both, can be
the additional space to advantage. included in an operating syst,em for
Trans lators of a qiven type may differ in assembling object programs from source
performance characteristics, in. the programs written in the assembler language.
facilities i:hey offer the prcq:rammer, or The major difference between -the E and F
both. assemblers is in performance. The F
assembler is faster, but requires more main
storage space than the E version. The
assembler language is an extremely
Yes = 1111 Translaton versatile language that can be us ed to
program any type of application. All of
No= 0 the services provided by the control
E = 32,768 bytes
programs are available when usinq it.
Assembler
F = 65,536 bytes"
FORTRAN Of the several languages available with
G = 131,072 bytes
H = 262,144 bytes
the operating system, the assembler
COBOL language is the one closest to the machine
PL/I language of the computing system. Each
assembler language statement represents
R.P.G. either a single machine instruction or a
request to the assembler to perform a
ALGOL specific service.

Figure 31. Language Translators Provided The assembler language can be extended
by IB"~ by using the assembler to define for a
particular service both a sequence of
Using a particular language, a assembler language statements and a
programmer can aVCilil himself of services corresponding language statement called a

44
macro instruction (Figure 32). Once example, a special-purpose language could
defined, the macro instruction alone can be be designed for use by civil engineers. 1
used to request the service; the macro
instruction calls for the execution of the FORTRAN Compilers
sequence to perform the specific function.
This represents an important feature of the Any combination of three compilers (E, G,
assembler that is used extensively. and H) can be included in the operating
system for compiling object programs from
source programs written in the FORTRAN
Language. The FORTRAN language is a widely
Object
used language, developed and refined over a
Language period of years through the combined
Statements efforts of IBM, its customers, and the
American Standards Association. It closely
resembles the language of mathematics, and
Source
enables engineers and scientists to define
Language problem solutions in a familiar easy-to-use
Statements notation.
Assembler The language of the FORTRAN G and H
compilers is an extended version of the
FORTRAN language as defined by the American
Standards Association. The language of the
E compiler is an extended version of the

M.~o
Basic FORTRAN Language, also defined by the
American Standards Association.
(
Instruction Fetch
A library of often-used subprograms is
provided with each compiler. A program
user can specify these subprograms, thereby
causing them to be incorporated as part of
the program. If both a G and H compiler
are included. in the system, the two can
share a single library of subprograms. The
E compiler uses a separate, somewhat
Figure 32. Macro Instruction Expansion smaller library of subprograms. The
libraries contain subprograms for
If a macro instruction is to be used perforroing common mathematical
frequently, then the instruction sequence calculations.
it calls can be stored in a macro library
associated with the assembler. As an optional feature, the libraries
can also contain subprograms that can be
The assembler language has been extended used to transmit data to and receive data
by IBM to enable programmers to more easily from an IBM 1130 computing system at a
communicate service requests to the remote location. This is described more
supervisor and to communicate with fully in the section "Teleprocessing."
input/output access method routines.
comprehensive sets of macro instructions The FORTRAN libraries can also (as an
are provided for use in the management of optional feature) contain a number of
data and the sequential or concurrent graphic display subprograms. Using them, a
performance of tasks. The assembler FORTRAN programmer can create programs that
language has also been extended to include display graphic information on one or more
macro instructions that, in combination, IBM 2250 Display Units (Figure 33), an I/O
represent a highly specialized language. device containing a TV-like display screen
sets of macro instructions are p~ovided for and a keyboard. The displays consist of
designing teleprocessing control programs, charts, graphs, drawings, and other figures
for designing programs that display that can be formed from a combination of
information on a graphic display device, dots, lines and characters. By using the
and for generating the operating system display subprograms, two-way communication
itself. Users of the operating system can can be established between a
employ the assembler to create new macro FORTRAN-compiled program and an operator at
instructions and add them to the complement the 2250 Display Unit.
provided by IBM. In addition, they can,
like IBM, use the assembler to create The G Compiler is faster than either the
special-purpose languages. These can be E or H compiler. On the other hand, the H
designed to meet the specific needs of compiler normally produces more efficient
specialists or professionals within a object code. Therefore, the G compiler may
business or scientific activity. For be more useful for compiling short,

The General Organization and Function of Operating System/360 45


Page of GC28-653 LI-3, Revised January 15, 1972, By TNL: GN28-2512

Figure 33. IBM 2250 Display Thlit Model 3

inf.requently run programs. AI-though the E American National Standard COBOL,


compiler is slower and produceB less X3.23-1968, as approved by the ~erican
efficient obj ect code than the other s, it National Standards Institute. American
requires less main storage space. National Standard COBOL is a compatible
subset of CODASYL COBOL, which is the
COBOL Compilers complete definition of the language, as
approved by CODASYL (the Conference on Data
A COBOL E compiler and an American National Systems Language).
Standard COBOL compiler (formerly USAS
COBOL) can be included in the operating
system for compiling object programs from An IBM American National Standard COBOL
source programs written in the COBOL compiler -- which is compatible with the
Language. highest level of the USA standard, and
which contains a number of IBM extensions
COBOL is a language based on a to that standard -- can be included in the
well-defined restricted form of English. operating system for compiling object
It provides a convenient method of programs from source programs written in
des igning programs for commercial data the COBOL language. IBM American National
processing applications. COBOL was Standard COBOL contains many new features
developed as a cooperative effort by a not found in previous implementations of
number of computer manufacture:J:-s and user s. COBOL. The COBOL E compiler also can b~
The USA standard of the language is I included in the operating system.

46
Page of GC28-6534-3, Revised January 15, 1972, By TNL: GN28-2512

A library of subprograms is provided

I
SERVICE PROGRAMS
with each COBOL compiler. The library for
IBM American National Standard COBOL can Service programs assist a programmer by
contain graphic display subprograms like providing routines for performing
those provided for the FORTRAN compilers. frequently used operaticns such as editing,
linking, and otherwise manipulating
programs and data. The service programs
ALGOL Compiler consist of linkage editors, a loader, a
sort/merge program, a set of utility
An ALGOL F compiler can be included in the programs, emulator programs, and a set of
operating system for compiling object graphic programming services.
programs from source programs written in
the ALGOL language. The ALGOL language is Linkage Editors
an international algorithmic language used
mainly in programming the solution to An E and an F linkage editor are provided
scientific and technical problems. It is for combining program segments that were
more widely used in Europe than in the individually compiled or assembled. The
United states, and is not as widely used as linkage editor forms a single program that
either FORTRAN or COBOL. is ready to be loaded (by program fetch)
into rrain storage and executed. The
linkage editor enables changes to be made
PL/I Compiler in a program without recompiling (or
reassembling) the complete program; only
A PL/I F compiler can be included in the those sections that are changed need to be
operating system for compiling object recompiled. It also permits division of a
programs from source programs written in program that is too large for the space
Prograroming Language I (PL/I). This available in main storage, so that executed
language incorporates some of the best segments of the program can be overlaid by
features of other high level languages as segments yet to be executed.
well as a great many new features.
The F linkage editcr requires more
PL/I takes advantage of recent storage space but is faster than the E
developments in computing system and linkage editor. It can also handle a more
programming technology. It provides the complex overlay structure of program
programmer with an "application-oriented" segments. Otherwise, the two are much the
language for efficiently programming either same.
scientific or commercial applications. It
is particularly useful for the increasing
number of applications that can best be
programmed using a combination of The loader combines the basic editing
scientific and commercial techniques. functions of the linkage editor and the
These include many of the new systems loading function of program fetch in one
applications, such as management job step. It loads object modules produced
information systems and command and control by language translators and load modules
systems. The modern features of PL/I produced by linkage editor into main
enable i t to be used for many programming storage for execution. It is designed for
applications for which other compiler high performance loading of modules that do
languages either cannot be used or can be not require the special facilities of the
used only with difficulty. linkage editor and program fetch. The
loader does not produce load modules for
A library of subprograms is provided program libraries.
with the PL/I compiler. The library can
contain graphic display subprograms like Sort/Merge Program
those provided for the FORTRAN compilers.
The sort/merge program is a generalized
Report Program Generator program that can be used to sort or merge
fixed- or variable-length records in
The Report Program Generator (RPG) provides ascending or descending order. The sorting
the programmer with an efficient, and merging can be performed using magnetic
easy-to-use facility for generating object tape and direct access storage devices for
programs that are used to produce reports input, output, and intermediate storage.
from existing sets of data. The reports The program takes full advantage of the I/O
may range from a simple listing of resources that are allocated to i t by the
information from a punched card deck to a control program. The sort/merge program
precisely arranged and edited tabulation of can be used independently of other
calculated data from several input sources. programs, or it may be used directly by
Several reports can be created concurrently programs compiled by the American National
from a single set of data. I Standard COBOL and PL/I compilers.

The General organization and Function of Operating System/360 47


Page of GC28-6534-3, Revised January 15, 1972, By TNL: GN28-2512

Utility Programs Refer to the IBM System/360


Bibliography, GC28-6822, for the order
'rhe utility programs provided with the number of the publication describing your
opera ting system,. are divided into three integrated emulator.
subsets:

• Data SE~t utility programs. Graphic Programming services


• system utilit~y programs.
• Independent utility programs. A number of services are provided with the
operating system for designing and
Data Set Ut.ility Programs: These programs executing programs that communicate with a
are used chiefly by the prog rammer and user at an IBM 2250 Display Unit (Figure
operator to: 33), or an IBM 2260 Display Station
(Figure 34). With these services a program
• copy, or merge sets of data
TransfE~r, can retrieve information from storage,
from one storage medium or I/O device display the information on the face of a
onto another (sometimes in the process, TV-like screen, check the information for
editing the data or changing its accuracy, modify it at the display screen,
format). and return it to storage.
• Edit, rearrange, and update programs
and dat;a. The· graphic programming services
• ComparE~, print, or punch data. include:
• Create an input stream.
• An extensive set of graphic design
System Utility Programs: ThE~ system macro instructions.
utility programs are used chiefly by the • Processing routines.
system programmel~ to: • Data manipulation aids.
• I/O interruption analysis and control
• Change or ext:end the indexing struc ture routines.
of the system library catalog. • Error recovery and diagnostic routines.
• Print an inventory of the data and
programs that: are cataloged in the These services can be used to simplify the
system ll.brary. JOD of designing advanced applications in
the fields of science, engineering, and
Independent; Utility Programs: The business.
independent; utility programs are used with
the operating system, but are not an Program Products
integral part of the system. They are used
chiefly by the system programmer to prepare IBM Program Products provide the user with
direct aCCE~SS storage devices for use under specialized task-oriented functions.
operating system control. Program Products are designed to operate
with other IBM programs.

Emulator Programl:~ Some typical IBM Program Products would


include:
An integrat;ed emulator program, used in
conjunction with a compatibility feature, • Language processors
allows object programs written for one • Sorts
system to be executed on another system • Conversion aid programs
with littlE! or no reprogramming. The • General purpose utilities
compatibility feature consists of hardware • Industry application programs
and microprogranuned routines that aid • General application programs
emulation. The E~mulator program is
executed as a problem program under the Program Products are available from IBM for
operating system control program. a license fee.

48
Figure 34. IBM 2260 Display stati.on, With and Wit.ho\iit Alphameric Keyboard

The General Organization and Function of Operating System/360 49


Page of GC28-653L~-3, Revised January 15, 1972, By TNL: GN28-2512

CONTROL PROGRAM CONFIGURATIONS • The multiprogramming with a fixed


number of tasks (MFT) configuration •
• The multiprograreming with a variatle
An IBM Syst.em/360 Operating System consists number of tasks (MVT) configuration.
of a control proqram (a supervisor, master
scheduler, and job scheduler) together with
a number of optional processing programs Each configuration is designed to be used
such as thE! language translators, utility with a particular range of computing system
programs, aLnd sort/merge programs described models and main storage sizes. Figure 35
in the previous section. The processing shows the control program configurations
programs are designed to help the user that can be used with various CPU models
program solutions to problems and design and main storage sizes. For comparison,
new applications., They do this by giving the figure includes the othe:r Systern/360
the progr~lmer a combination of programming software systems: Basic Programming
aids II services, and precoded routines that Support (BPS), Basic Operating System
he can use with appropriate language (BOS), Tape Operating system (TOS), and
statements., Al though the control program Disk operatin9 system (DOS). The storage
also assists the user, its primary sizes do not 1nclude IBM 2361 Core Storage,
functions are to efficiently schedule, which can add up to 8,192K bytes to the
initiate, and supervise the work performed main storage capacity of a Model 50, 65, or
by the computing system. 75 in blocks of l,024K or 2,048K.

There are two configurations of the


control program:

Storage
Size Model
25 30 40 44 50 67 75 135 145
K (2048K)
256K and above supporU MVT,
MFT, DOS, TOS, and BOS
I J (1024K)

I (512K)

H (256K)
128K and above supporU
MFT, BOS, TOS, and DOS
H-D (240K)

G (128K)
64K and above supports
BPS, BOS, TOS, and DOS
FED (112K)

F+E (96K)

F (64K)

System/360 System/370
ED (48K)
16K and above supports
BPS, BOS, TOS, and DOS
E (32K)

1. BPS does not support Mod 65 and above.


D (16K) 2. MFT & MVT control programs only.
8Kand above supports
BPS and BOS 3. MVT control program only.
(8K) 4. Storage for System/370 Mod 195 is JI.

Figure 35. SystE~rn/360 Software Systems For Various System/360 and Systern/370
Configurations

50
All of the IBM-supplied processing
IMFT CONTROL PROGRAM
programs described in the previous section
can be executed under the direction and The MFT control program configuration can
control of any of the two operating system control the performance of more than one
control program configurations. In task at a time. As its name implies,
addition, any problem state program however, it can control a fixed number of
produced using the processing programs are tasks concurrently. An MFT control program
compatible with any of the two can read a continuous stream of job or job
configurations. Furthermore, any jobs or steps in sequential order. However, it can
data that can be processed by one read jobs from up to three such streams
configuration can be processed by another, concurrently. Moreover, it can dynamically
provided the required hardware and software schedule and initiate the performance of
resources are available (Figure 36). each job based on an assigned priority and
Although many of their elements are class. (To balance the operation of the
identical and their general organizations computing system, jobs can be classed
and functions are the same, the significant according to the resources they use; for
differences between one operating system example, whether they are primarily
control program configuration and another dependent on I/O or CPU time.) Once
has to do with the way each operates initiated by the control program, up to 15
internally. The main difference is the job steps, representing the steps of 15
number and types of data processing tasks different jobs, can be performed
they can perform at one time. The MVT concurre ntly.
configuration can control the concurrent
performance of a greater number and variety
of tasks. It can thereby keep more of the The control program can also
total software/hardware system in concurrently record up to 36 streams of job
productive operation more of the time and output data. The reading of job
significantly increase the volume of work definitions from three input streams, the
performed by the system over a given period performance of 15 steps of different jobs,
of time. and the recording of 36 job output data
streams can all be performed concurrently
IBM or User
Job Processsing
(Figure 37), provided the total does not
Definitions Programs Data exceed 52, and enough computing system
resources are available. Although there is
a limit to the number of concurrent data
processing tasks an MFT control program can
handle, from a practical viewpoint, the
real limitation would more than likely be
the availability of resources to perform
the tasks. Moreover, there is an optional
feature of the MFT control program that
permits each job step to create an
unlimited number of additional tasks. This
feature is called "MFT with subtasking."
Tasks created by a job step are called
MFT MVT subtasks and are performed concurrently
Control Control with each other and with other tasks in the
Program Program
Configuration Configuration system. Subtasks are dependent on the job
step task and must be completed before the
end of the job step.

M FT Results MVT Results

Figure 36. Compatibility of MFT and MVT


Control Program Configurations

The General Organization and Function of Operating System/360 51


The MFT Control Program
Reads and Interprets and Performs from and
Jobs from 1 to 3 Concurrently 1 to 15 Jobs Concurrently Records Job Output
Input Streams on 1 to 36 Devices

, JOB
Output
Stream 1

~-~~
~~~

Figure 37. Concurrent processing of Job Steps and Job Support Tasks by an MFT Control
Program

In an MF~r configuration, a:ceas of main period, the operator can include additional
storage are rese~7ed for the control input/output access method routines by
program, and optionally, for the loader and loading a secondary nucleus containing
user-written routines that can be used those routines. If included, these
concurrently by the control program and by routines can be USE!d in performing a single
any tasks that are being performed. The job step, or more t:han one job step
remainder 0:1: main storage is divided into concurrently. In an MFT cont:rol program
partitions I(FigurE~ 38). The size of each configuration, pr~rram resources (in the
partition is set by the operator, and its form of access method routines) and data
priority is determined by its position resources, as well as the hardware
relative to other partitions. Thus, resources of the computing system, can be
partition PO is reserved for the highest shared among concurrent jobs.
priority jobs., and Pn the lowest. Once
defined" a main st:orage partition may be
assigned by the operator for use in

~~~~_p_art_it_io_n_n~~]I~~p_a_rt_it_io_n_2~ ~_p_ar_ti_ti_on_o ~
performing from one to three classes of
jobs out of a maximum of 15 iob classes. MFT
__
pa_rt_i"t_io_n_1__ __
When a job is init:iated., i t is dynamically
allocated a particular parti tioD of main Low Storage Address High Storage Address
storage space depending onth(~ class
assigned to the partition and the specific Basic Fixed Area tim
class Cand priority within the class) of
the job. Ot:her partitions may be assigned
Dynamic Area D
by the operator f()r use in reading and
interpretin~J input: streams of job Figure 38. Genera 1 Organization of Main
definitions and f()r recording streams of Storage For the MFT Control
job output (lata. When the control program Program Configuration
is initiali~~ed at the beginning of a work

52
The MVT Control Program

Reads and Interprets and Performs from 1 to 15 Jobs and Records Job Output
Jobs from any Number Concurrently and any Number of Tasks Concurrently on any Number of Devices
of Input Streams Within a Job Step

Note: n = any Number

Figure 39. Concurrent Processing, by an MVT Control Program, of Job Steps, Job Support
Tasks, and Tasks Within Job steps

MVT CONTRCL PROGRAM area) is reserved for program routines that


can be used concurrently by the control
The MVT control program configuration reads program and by any jobs that are being
one or more continuous streams of jobs, and performed (Figure 40). These include
schedules the jobs in order of priority. access method routines as well as other
With this configuration, up to 15 routines designed by IBM or by a user of
independent jobs can be performed the system. The remaining storage serves
concurrently. The job steps within a as a pool of storage from which the
single job are necessarily performed in control program assigns a subpool (or region
sequential order because one step may as it is usually called) to each job step
depend on the completion of another. as it is initiated. Once a job step, or a
However, within a job step, any number and task within a job step, is initiated, it
type of data processing tasks can be can draw upon and release storage space
initiated (Figure 39). These tasks are within its assigned region. Upon
performed concurrently with one another, completion of a job step, the region is
with tasks initiated by other jobs, and returned to the pool where it is available
with tasks initiated by the control program for assignment to other job steps.
and by the operator. Operator initiated
tasks include job-support tasks for reading
any number of job input streams and for 'Master Link
recording any number of streams of job MVT SCheduler Pa(:k
output data. The number of concurrent data ,~e9ion' Area
processing tasks an MVT configuration can
Low Storage Address High Storage Address
handle is limited solely by the
availability of the resources that would be
required to perform them.
Basic Fixed Area D
Dynamic Area D
In an MVT configuration in addition
to areas of main storage reserved for the Figure 40. General Organization of Main
exclusive use of the control program -- an Storage From the MVT Control
area of main storage (called the link pack Program Configuration

The General Organization and Function of Operating system/360 53


Page of GC28'-6534-3, Revised January 15, 1972, By TNL: GN28-2512

In this configuration, program and data performed, and the major objectives it
resources, as well as the hardware helps to achieve. Unless otherwise noted,
resources of the computing systE~m, can be the discussion applies to both control
shared among concurrently performed jobs, program confi9urat~ions. The major
tasks within a job step, and control functions are discussed in the following
program tasks. 7 topics:

• Task management.
• Job management:.
The remainde:c of this book discusses the • Information management.
major functions that can be performed using • Program development and management.
the operatinq- system, briefly describing • Multiprocessing.
the purpose of each functi on, how it is • Teleprocessing.

54
Task Management

The characteristic of the System/360 Input/Output and Input/Output and


Operating System that sets i t apart from Direct Access Storage Main Storage Direct Access Storage
previous general purpose operating systems
is its ability to schedule and supervise
the performance of more than one data
processing task at a time. It does this
through efficient management of system
o o
resources.

Resource Sharing

A program is only one of several resources


that are needed to perform a data
processing task. I/O devices or direct
access storage space is required for
entering or storing input data and for
recording or storing output data. Time is
required on I/O channels for transmitting
information to and from main storage and
o
for starting and controlling I/O
operations. Main storage space is required
for storing a series of instructions and
the data processed when the instructions
are executed. Finally, CPU time is
(
Central Processing Unit
o
Productive = fillI
required to execute the instructions and Idle = 0
thereby do the work of processing the data.

Figure 41. A Single Task System


At most data processing installations,
data processing tasks are performed one at
a time; that is, a new task is not begun Program Sharing
until the current task is completed. The
average data processing task requires, at At most data processing installations, only
any given moment, only a fraction of the one program at a time is executed to
total available resources of the system perform one task and produce one set of
(Figure 41). Therefore, many parts of the results, as shown in Figure 43. At such an
system are often idle for significant installation there is always a one-for-one
periods of time. For example, many tasks, correspondence between a program (a series
such as data conversion tasks, require only of instructions) and a task (the execution
a fraction of the storage space and I/O of these instructions by the CPU), and no
devices available in the system, and only distinction between them is necessary.
intermittent use of the CPU for short
periods of time.
At MFT and MVT installations, however,
such a distinction is necessary because a
single program can be executed to perform
However" at MFT and MVT installations, several tasks concurrently and produce
the available resources of the system are several independent sets of results (Figure
dynamically allocated and shared among 46). For example, the CPU can begin to
several tasks being performed concurrently. execute a program to process one set of
As a result, more of the total computing data, and then following an interruption.,
system is kept in productive operation more execute the same program to process another
of the time (Figure 42). The sharing is set of data. Thus, several data processing
not limited to the hardware of the tasks can be performed concurrently using a
computing system. It includes the sharing single program. Such a program must be
of program and data resources as well. reenterable; that is, the program must be

Task Management 55
designed so. that it is not changed in any concurrently by all tasks that belong to
way when the CPU executes it. In other the job step, but not by tasks that belong
words, the execution of one i.nstruction in to other job steps. The con~~rrent use of
the program must not change any other a reenterable program saves main storage,
ins'truction in the program. because each task does not rE~quire its own
copy of the program. Once loaded, a
reenterable program is available for use by
Input/Output and Input/Output and
Direct Access Storage Main Storage Direct Access Storage concurrent tasks for as long as it remains
intact within the job step's region or
partition.

Data

Task 1

CPU J=
and other
Resources

'-----
~~~~I!S
Task 2
Results
Task 2

Data

Figure 44. Program Sharing

Central Processing Unit


o
Productive = Data Sharing
Idle MFT and MVT control programs permit the
concurrent sharing of data, as well as
Figure 42. A Multiple-Task System programs, when performing mul,tiple tasks.
Several programs using a common set of
input data can be executed to perform
different tasks and produce several
independent sets of results, as illustrated

Single
Task
CPU
-}-
and other
Resources_
Task
Results
in Figure 45. For example, two different
programs can be executed concurrently to
produce two different summary reports
derived from the same basic s,et of data.
To do this, the data set must not be
subject to change in any way when the tasks
ar e performed.

Figure 43. Unshared Information Resources


Program

Task 1
With an M~FT or MVT control p.rogram Task 1
configuratio1n, any reenterable program can CPU Results
and other
be loaded into mai.n storage when the Resources
operating sy'stem is initialized at the 1---'- ~:~~I~
beginning of a work period, and can remain Task 2
'-------'

there indefinitely. This avoids continual


reloading of frequently used programs.
other reenterable programs can be brought Program
into main storage when required by a
specific job step.. These programs are
loaded into the job step's partition or
region of main storage; each can be used Figure 45. Data Sharing

56
Resource Management CPU time (a time slice) to a task within
the group whenever i t is assigned control
of the CPU. If the task is still active
Although the master and job schedulers when the interval ends, then the supervisor
initiate the performance of tasks, the assigns control to another task.
tasks are actually performed under control
land direction of the supervisor. The At an MVT installation, all of the tasks
supervisor of an MFT or MVT control program having a predetermined priority are
manages the concurrent performance of tasks allocated time intervals when CPU control
by keeping a running account of all the is assigned. At an MFT installation, all
tasks that are initiated and by scheduling of the tasks to be performed using anyone
the order in which they are to be of a predetermined group of consecutive
performed, based on their relative main storage partitions are allocated a
priorities. It also keeps a running time interval. (If the MFT control program
account of all the available resources of includes the subtasking option, time
the system and allocates the resources as intervals are allocated to tasks whose
they are required to perform specific priorities fall within a certain range; the
tasks. range corresponds to a predetermined group
of consecutive main storage partitions, but
Some resources, such as reenterable the priority of any task can vary and thus
programs in main storage, are always be independent of the partition where the
available for immediate allocation to a task is performed.) The time slicing
task. Other resources of the system, such feature is especially useful for graphic
as the CPU, can be allocated to only one display and teleprocessing applications.
task at a time. If a particular resource It can help to ensure a uniform time
required for a task is not immediately response to a number of users who are
available, the task is temporarily located at local or remote terminals and
suspended. The task is then, in effect, are sharing the hardware and information
placed on a waiting list or queue. At any resources of an installation.
time, several tasks may be waiting in a
queue for such a resource. Usually, tasks The SMF feature provides data collection
in a resource queue are arranged in a routines and exit linkages for the user.
priority sequence. However, other Through SMF data collection routines, this
sequences are sometimes used to ensure more option can be used as a system resource
efficient use of particular resources (I/O distribution and evaluation tool. By
channel time, for example). The resource providing your own exit routines at the
queues, in effect, serve as work reservoirs appropriate locations, this option can be
that absorb fluctuations in demands for used in a monitoring capacity. Since the
resources. They thereby help to ensure data collection and exit facilities are
that a ready backlog of work is at hand to independent of one another once SMF is
keep the resources as busy as possible. included in the system at system generation
Whenever practical, the allocation of a time, they may be used in combination or
resource is deferred until i t is actually separately.
needed to perform a task, and the resource
is released for reallocation as soon as the SMF data collection routines gather job
need has been satisfied. In other words, and direct access and volume information;
the resources are usually allocated this information is used to make a variety
dynamically, and are not tied up unless of analyses. Output created by the SMF
they are being used. Thus, within a routines can also be used to create and
relatively short period of time, a maintain inventories on direct access and
particular resource may be used over and tape devices; establishing a data base
over again in performing many different (recorded data in a permanent format)
tasks. against which to make an analysis. SMF
routines can be used to determine each job
More precise means of manag~ng resources step's use of the CPU, I/O devices, and
in an MFT or an MVT control program storage. They can be used to determine
environment exist for the user. Both the data set activity for each problem program
Time Slicing feature and the System and also to acquire volume usage
Management Facilities <SMF) feature allow information for direct access devices.
system resources to be shared more equally
among tasks. SMF is not, however, confined to
after-the-fact analysis. This option also
The Time Slicing feature can be used to allows the user to write exit routines;
prevent any task in a group from these routines can monitor a job or job
monopolizing the CPU and thereby delaying step at various points during its
the assignment of CPU control to other processing cycle, that is, from control
tasks in the group. The supervisor does statement analysis to termination of the
this by allocating a uniform interval of job. (All linkages for these exits are

Task Management 57
supplied when the option is included in the Previous control programs, other than
system at system <generation time.) the MFT and MVT control prograrrs of the
Therefore" by adding installation routines operating system, have provided means for
at the appropriate exits, standards of concurrently performing data processing
efficient r49source management _.- tasks. But these were special purpose
identif ication., priority, resource control programs, such as the! airline
allocation" and m3.ximum execution time reservation system application discussed
can be enfo:r:ced in the system. earlier. In these applications, many of
the advantages offered by a multiple task
system, such as fast handling- of the
workload, were essential to the
Advantages of Multiple-Task application. Therefore, they justified the
Manageme!nt high cost of a special purpose control
program.
The ability of MFr and MVT supervisors to
dynamically allocate resources and manage
the performance of several tasks has a An MVT configuration of the operating
numbe:r of advantaqes over more conventional system, or the MFT-with-subtasking
methods of data processing: configuration, is a true general-purpose
task management system. It is not
• It incrE:!ases the efficiency of the restricted to performing specific types of
system. Resources that might otherwise tasks, a group of related tasks, or a fixed
be idle when one task is performed can number of concurrent tasks, but can, in
be used to perform other tasks. fact, be used to perform concurrently any
number or types of related or unrelated
• It enables thE~ system to g:r'ow without tasks within the limits of available system
disruptions. The addition of more resources and the user's ingenuity.
storage space and other resources can
be readily accommodated and used
efficiently without reprogramming The same multiple task management
merely by increasing the number of facilities that are used by the control
jobs, 0]: other tasks, to be performed. program can also be used by a customer in
designing processing programs that can be
• It improves the flexibility of the executed to concurrently perform tasks
system. The system can readily adj ust within a job step. Therefore, the
to varying demands for resources and advantage of a multiple task system,
changes in thE~ workload. This is heretofore limited to a few specialized
particuJ.arly significant for applications, can be realized in a wide
teleprocessing applications, such as range of applications. The general purpose
the airline reservation application, task management facilities of the control
where the workload varies dynamicall:y program can, in fact, be used in
in unpre!dictable ways. innumerable ways by both IBM and its
customers to increase the productivity and
• It improves the rate at which the utility of system/360 and to broaden or
system can respond to work requests. extend its application.
Several tasks can progress in parallel
instead of being performed in
consecut.ive ol:der. 'Ibis too is At an installation of either MVT or MFT
important in teleprocessing with subtasking, once a job step is
applicat.ions, where a system normally initiated by the control prog:cam, it may,
must respond t~o each work request in turn, initiate the performance of other
within a. short~ period of time. tasks, which compete for and share the
resources of the system with one another
and with the steps of other jobs. In fact,
a complete and complex hierarchy of tasks
can be dynamically initiated and terminated
Concurrent Tasks Within Job Steps in the process of performing a single job
(MVT and MFT With Subtaesking) step.

The programmer is provided with a


At an MVT installation, the same task complete set of general purpose task
management facilities that initiate and management language statements. With these
control the concurrent performance of jobs he can program dynamic control over the
and job support tasks are direc·tly concurrent performance of the tasks of a
available for use by a customer. The job step. He can, for example, initiate
facilities are also available a:t an MFT the performance of new tasks as the
installation when the subtasking option is workload increases and terminate the tasks
selected at systerrl generation. I as the work is completed freeing those

58
resources. He can also synchronize the partition or region of main storage that is
performance of one task with that of assigned to the job step when it is
another or with I/O operation; for example, initiated. However, an optional feature of
he can indicate that further performance of the MVT supervisor allows the temporary
one task should await the completion of one assignment of an additional region (or
or more other tasks or other occurrences regions) of main storage to a job step that
such as the end of the time interval. has outgrown its previously assigned
region. When additional space is requested
The programmer can also establish a during a job step, the supervisor attempts
system of relative priorities among the to satisfy the request from an unassigned
tasks of a job step. If necessary, he can portion of the dynamic area of main
specify changes in priority based on events storage. If space is not available, then
that occur as the tasks are being the contents of a region assigned to
performed. For example, he may raise the another job step are transferred to direct
priority of a task if i t still is not access storage (rolled out), and the
completed after a specific period of time. vacated region is assigned to the step that
requires additional space. When the region
is no longer needed, its original contents
The programmer can also establish new are restored (rolled in) and the delayed
resources and, with the help of the control step is allowed to continue.
program, control their use in performing
concurrent tasks. A new resource may be a
self-initializing program that can be used
serially:, but not concurrently, in The user indicates which steps can be
performing different tasks, or i t may be a rolled out and which cannot. However, the
table of data that can be used either relative priority of the steps determines
serially, or concurrently, depending upon the order in which they are rolled out and
whether or not the table can be modified whether or not a particular step will be
while i t is being used to perform a task. rolled out.
The programmer is given the means to ensure
that a resource is used serially if i t is
subject to change and concurrently if i t is
not. The multiple-task management facilities
described in this section provide the basic
Main storage may be shared or passed tools required for many applications that
Qetween tasks in an MVT environment by are beyond the capability of a single-task
using a subpool -- a 2K block of main system. These include many
storage allocated for a task under the telecommunication applications that would
label called a sub pool number. Subpools otherwise be impractical without a
can be shared by other tasks, or they can specially designed control program. The
be passed from the task that created them same facilities can also be used for more
to another task. 8 conventional applications. They enable the
programmer to design highly efficient
production programs that, when executed,
Normally" main storage space requested result in a high degree of resource sharing
by a job step program is allocated from a among concurrent tasks.

Task Management 59
Job Management

At a System/360 Operating System IBM 2361 Core Storage, if included in a


installation, the actual work of processing system, is allocated to a job step in the
data is performed by the computing system same way as processor main storage. A
under control and direction of the programmer can request that either
supervisor. However, before any work can processor storage or 2361 storage, or both,
be performed by the system, it must be be allocated for a specific job step.
scheduled and initiated by either the
master scheduler or the job scheduler. The Individual job definitions can be placed
master scheduler is used by the operator to one behind another to form a continuous
schedule and initiate the work performed by series or stream of job definitions. These
the job scheduler. The job scheduler, is can then be read by the job scheduler and
used to read, interpret, schedule, processed without stopping the computing
initiate, record output for, and terminate system between jobs or job steps. If
the steps of a series of jobs that are operator actions are required for one job,
defined and submitted for processing by the such as mounting tape reels, these can be
programming staff. performed while the resources of the system
are being used to process other jobs.
In all configurations of the operating
system, the job scheduler is designed to
process a continuous series of jobs without
unnecessary delays between one job or job
step and another. In the MFT and MVT
configurations of the operating system, the
supervisor is capable of directing and
controlling the performance of more than
one data processing task at a time. The
master and job schedulers for these
configurations are designed to take
advantage of this capability, and by so
doing increase the performance of the
system as a whole. This is accomplished in
two major ways: by scheduling and
initiating the performance of more than one
job at a time, and by performing job
support tasks concurrently with the jobs.

Non-Stop Job Processing


A job is the major unit of work performed
by the operating system. Each job is
defined by a series of job control language
sta tements coded by a prog rammer (see Figure 46. Job Definitions
Figure 46). The job definition is provided
by a JOB statement containing information Any set of data that is processed during
concerning the job, such as it~ name and a job step must be identified and defined
priority." within the definition of the job step using
a DD (data definition) statement. 3 A
Each job consists of one or more steps. programmer may place input data to be
These are defined by the programmer and processed during a job step within the job
arranged in the order in which they are to step definition and define the data as
be performed. A job step is defined by an being part of the common input stream.
EXEC statement containing information such Similiarly, output data produced during a
as the name of a program to be executed to job step can be defined as being part of a
perform the job step and (for MVT) the common job output stream. It can then be
amount of main storage space required to printed or recorded on a commonly shared
execute the program. The specified program output device. As a result of defining
may be a problem state program supplied by data sets in this way, no operator setup
IBM, such as a language translator, or it delays are incurred within a job step.
may be a problem state program created by Also, any I/O devices that would otherwise
the user of the system, such as a payroll have been required for the job step are
program. available for other purposes.

Job Management 61
Page of GC28-6534-3, Revised January 15, 1972, By TNL: GN28-2512

If a series of job step definitions are jobs and job steps are performed one at a
to be used repeatedly with little or no time in a fixed sequential order as shown
change, a programmer can store and catalog in part A of Figure 47. No ma.tter how
them in a gocedure library maintained in small the job or how large the system all
direct access storage by the control of the resources of the system are tied up
program. Thereafter, using sinqle job and until the step is completed.
job step statements in an input stream, he
can direct the job scheduler to pick up the With an MFT or MVT control program,
job step definitions from the procedure these same jobs can be r;erformed either
library. If necessary, the same job sequentially (as shown in part A of Figure
statement can override specifications in 47) or, if enough resources are available,
the job step definitions picked up from the concurrently as shown in part B of Figure
procedure library. Using this feature, a 47. In the latter instance, anyone job
system programmer can predefine standard rna y take lenger to perf orm becaus e it may
types of jobs that are commonly performed be temporarily delayed from ti.me to time
at an installation. 6 ,7 awaiting a resource currently being used to
perform other jobs. However, because the
By doing this, the system programmer can resources are shared among several jobs,
eliminate the need for applications the rate at which the jobs as a whole are
prograrr~ers to redefine standard jobs each performed is significantly increased,
time they are performed. He can also help resulting in a greater total t.hroughput.
to ensure that the system is used
efficiently and consistently. Each job step is actually a task that
can be performed concurrently with other
The ability to process a continuous tasks, including steps of other jobs, under
series of jobs and job steps with little or management of the control program. The
no operator intervention is an important control program (both MFT and MVT) can
characteristic of all configura1:ions of the initiate and supervise the concurrent
control program. By reducing the degree of perforrrance of up to 15 steps of different
human participation in the mechanics of jobs.
data processing, the operating system
ensures that jobs are processed faster and
are less subject to human error.. As a Job 1 Job 2 Job 3
r--_ _ _A .. ,.-----A-----.. ,-----" .. r - -
result, the total volume of work performed
by the system can be increased. Step 1 IStep 2! Step3ISteplIStftI)2<~·.~
- - - - - - - i..~ Time
A. Sequential Job Processing .
Multiple-doh Pro,cessing
Normally, the steps of a data processing Job 1 Job 5
. ,----"---
job are logically related to one another to
produce a specific end result. In most Step 1
"
Step 2 Step 3
I [ Step 1 Step 2
cases, the steps of a job must be performed
in a particular sequence since output Job 2 Job4
produced by .one sbep often serves as input
A
r-------------A-------
" I
to a succeeding step. For example, a [',:fj~~,t~:i·:b'~1 Step 1 Step 2 ! Step 3 Step 4 ~
typical job may consist of the following
three steps: Job 6
,.---A--
• Translating a source program into an
object program.
_ I Step 1 ~
- - - - - - - i..~ Time
• Linkage 'editing the object program to B. Concurrent Job Processing
produce a program suitable for loading
into main storage. Figure 47. sequential and Concurrent Job
Processing
• Loading and executing the p1:-ogram.
A set of data in direct access storage
Each of these steps is a necessary part can be shared concurrently among several
of the complete job. They cannot be jObs provided it is not changed in any way
performed in any o·ther sequence. Because by the jobs that are sharing it. When the
the steps wiithin a single job may be control program encounters a job that will
dependent upon one another, they are always change a data set, it prevents possible
performed in a sequential order. steps of conflicts in the use of data set by
different jobs are not dependent: upon one delaying initiation of the job until all
another, theJrefore, they can be performed previous jobs that use the data set are
concurrently. In most computi:n9 systems, completed. Similarly, if a jab that

62
changes a data set is being performed, any 5. The printed and punched card output is
succeeding jobs that use the data set are manually sorted into various classes
not initiated until the current job is and distributed to the individuals
completed. The control program can also that submitted the jobs.
delay the initiation and progress of low
priority jobs in favor of higher priority
jobs.. In all other respects, jobs are
performed independently of one another and
the control program recognizes no direct
relationship between one job and another.

Multiple-job processing is particularly


suited to data processing installations
with a high volume of work and a large
nUmber of resources. It enables a large
system to perform small jobs as well as
large jobs efficiently, and to run jobs Job
with complementary resource requirements Processing
concurrently" thereby increasing Waiting
Line
throughput. It also allows a gradual,
systematic expansion of hardware resources
without reprogramming. With multiple-job
processing, an installation can achieve a
high degree of productivity by optimizing
the system for particular classes of work
and controlling the mixture and load of
work.

Concurrent Job Support Tasks

Job definitions., and any input data that


accomparties them in an input stream, are
usually submitted for processing in the
form of punched cards. Also, much of the
job output data normally ends up in printed
or punched card form. In many
installations (particularly large ones),
the relatively slow printing and punched
card operations are performed by a small
offline computer that specializes in data
transcription. Although this can improve
job processing efficiency by not tying up Figure 48. Offline Peripheral Operations
the main computing system with low speed
I/O operations, it can significantly
increase job turnaround time. Typically, Each of these steps involves
at such an installation (Figure 48) the considerable human activity and attendant
following steps are performed when delays. To avoid confusion and
processing jobs: inefficiency, the total process requires
tight supervisory control and coordination.
1. The jobs, in punched card form, are In such a process, priority jobs can be
normally arranged in priority order. accommodated only with difficulty or loss
of efficiency. As a result, turnaround
2. After enough jobs have been time at such an installation is measured in
accumulated to form a batch, they are hours and days.
transcribed to magnetic tape.
To avoid such problems at MFT or MVT
3. The batch of jobs on the tape is installations, operations such as reading
manually scheduled and then processed job and data cards and printing job output
on the central computing system. data, are performed by the control program
as separate tasks, concurrently with other
4. After a batch of output data has been work. As a result, jobs can be processed
recorded on a tape by the central automatically, from beginning to end, on
computing system, i t is manually the central computing system. Thus, the
scheduled and then converted to delays and human activities involved in
printed or punched card form or a using offline systems are avoided and
combination of the two. turnaround time is reduced significantly.

Job Management 63
At MFT a.nd MVT installations the control The reader/interpreter, the
program can read job definitions and data initiator/terminator, and the output writer
from one o:r more job input streams and programs are all executed independently of
record job output data on one or more one another to perf orm separ'ate and
output dev:ices, while initiating and distinct tasks. Therefore, at anyone
controlling the performance of one or more time, anyone or all may be active and each
jobs. As job definitions are read and can be started or stopped independently of
interpreted, they are placed in an input the others.
work queue located in direct a.ccess
storage. .Also, as the jobs are being The master scheduler serves as a two-way
performed, output data from the jobs is communications link between the operator
placed in an output work queue. The input and the system by way of the operator's
and output work queues are roughly console. It is used to relay messages from
equivalent to the waiting lines for job the system to the operator, to execute
processing and output conversion shown in commands, and to respond to replies from
Figure 48. However, the input and output the operator. The operator is provided
work queues are automatically maintained in with a full set of commands which he can
direct access storage by the control use to start and stop job scheduling tasks,
program and are an integral part of the log operational information, monitor and
system. Thus, one job need not await the control the progess of work performed by
completion of a long series of preceding the system, and restart the system after a
jobs,. As soon as one job is placed in an shutdown.
input work queue, it can be initiated by
the control program. As soon as the job is Operation of the system can be planned
completed, any output data i t placed in the in advance and operator commands placed in
output work queue can be recorded. a job input stream. From there they are
Therefore, turnaround time can be reduced relayed to the master scheduler for
from days or hours to minutes .. execution as they are encountered by the
reader/interpreter. Since the operator can
also enter commands by way of the
The MFTI and MVT Job and Master operator's console, he can dynamically
control the operation of the system to
ScheduleJ~s react to conditions that develop while it
is opera ting •
The job and master schedulers control the
concurrent processing of job and job By issuing commands to the master
support tasks. The MFT and MVT job scheduler, the operator can start or stop
schedulers are divided into three major reader/interpreter tasks,
parts: the reader /i nterpret.er, initiator/terminator tasks, and output
initiator/terminator, and the output writer writer tasks, based on the type of work to
(Figure 49). However, each pa.rt can be be performed and the availability of
executed concurrently with and resources to perform it. At the beginning
independently of the othersa of a work period, an operator may start one
or more reader/interpreter tasks. Then,
after a number of job definitions have been
The reader/interpreter program reads placed in the input work queue, he can
jobs and job step definitions from an input start one or more initiator/terminator
stream, analyzes the defini t:ions, and tasks. At any point, he can stop any of
places them in t.he input work queue. the reader/interpreter tasks thereby
releasing their assigned I/O and main
The initiator'/terminator program selects storage resources for allocation to job
a job from the input work queue and step tasks. Then or later, the operator
initiates the job and each of its steps. may start one or more output writer tasks
Once a job step is initiated, it is to record the output data sets produced
performed as a separate task under the when the job steps are performed.
control and direction of the supervisor.
While each job step task is being Any reader/interpreter and output writer
performed, output data may be generated and tasks that are to be performed at an
placed in the output work queue in direct installation are defined in much the same
access storage. The initiator/terminator way as a single step job is defined. These
terminates the ~iob and each of its steps as definitions are cataloged in a procedure
they are complet.ed, and ini tiates a new job library where they are available for use in
step. initiating a reader/interpreter or output
writer by operator command. Any number of
The out. put writer program reads data task definitions can be cataloged. Each
from the output work queue and records it can define a reader/interpreter or output
on an output device such as a printer or writer task having a unique set of
card punch. characteristics. For example, the

64
Data Data

Master Messages
Scheduler Job Step
Task Task(s)

Card
Punch Units

\
\ and/or
\
\
\
t\
./
/
I \
, ......

Printers

Data Definitions

Work Queues Job Scheduler ~

Figure 49. The MFT and MVT Job Master Schedulers

reader/interpreter task definitions can Job Priorities


specify different devices and different
data set options., as well as different
default options to be used when So far as job management is concerned, the
interpreting job or job step definitions. main difference between an MFT and MVT
control program has to do with the way in
which priority is assigned and main storage
Many of these specifications can be space is allocated.
overridden and respecified when the
operator starts the task. Thus, the At an MFT or MVT installation, each job
installation staff is provided with a great that is submitted for processing can be
deal of flexibility in defining the assigned a specific priority relative to
characteristics of the reader/interpreter I other jobs. 4 It can also be assigned to any
and output writer task to be performed. one of several classes of jobs. When the
FOr example, special tasks that satisfy the job definitions are read by the
unique requirements of a particular reader/interpreter they are placed in the
department or a particular class of jobs input work queue in accordance with their
can be defined. assigned class and priority. A separate
input queue is maintained for each class
At MFT and MVT installations, up to 15 assigned to the jobs. Within each input
initiator/terminator tasks can be started queue, the job definitions are arranged in
to control the initiation and termination the order of their priority. Output data
of up to 15 concurrent jobs. At an MVT produced during a job step can be assigned
installation" any number of by the programmer to anyone of up to 36
reader/interpreter and output writer tasks different data output classes defined at
can be started provided enough resources the installation. When an output writer
are available. At an MFT installation, the task is started it can be assigned to
number of concurrent reader/interpreter process from one to eight different classes
tasks is limited to three, and the number of output. A particular output class may
of output writer tasks is limited to 36. represent such things as the priority of

Job Management 65
the da'ta. ~the type of device 1:.hat may be In an MVT installation, any main storage
used to record i"t, or the location or space not reserved for the control program
department to which it is to be sent. serves as a pool of storage from which a
region is dynamically allocated by the
control program to each job step or job
In an M:E'T ins"tallation, any main storage support task as it is initiated. The size
space not Jreserved for use by the control of the region to be allocated to each job
program is logically divided as specified step is specified by the programmer in the
by the ope:rator into partitions of various job or job step definition. The priority
sizes. Each partition is assigned by the of a job is also specified by the
operator for use in performin9 either a programmer. When an initiator/terminator
reader/interpreter or output writer task or task is started by the operator, it can be
a particular class of jobs. The priority assigned to initiate jobs from one through
of a job sitep task is determined by the eight input work queues. By classifying
partition ito which it is assi9ned. Each jobs and assigning initiator/terminators to
partition is assigned by the operator to initiate specific classes of jobs, it is
one, two, or three classes of jobs. possible to control the mixture of
Whenever a new job is i ni ti a tE~d it is concurrent jobs; thus, jobs with
directed to (or is allocated) a partition complementary resource requirements can be
that was assigned to its job class. The performed concurrently. For example, one
operator can change the job class or initiator/terminator can be assigned to a
classes to which a partition is assigned, class of jobs requiring a great deal of CPU
and thereby control the mixtw~e of jobs. time and little I/O while another
In addition" since each parti·tion is initiator/terminator is assigned to a class
assigned a specific priority, he can also requiring little CPU time and a great deal
control th4E! priority assigned to each class lofI/0.7
of jobs. 6

66
Information Management

Except for human resources, recorded maintain elaborate records on paper in


information is the single most valuable order to classify" catalog, and locate
resource of an installation. Information information, control its use and
serves as a rational basis for controlling disposition, 'and find and assign space for
the activities of an enterprise and for storing it. Such eff orts are subject to
making decisions upon which its success human errors, changes in personnel, and
depends.' In many enterprises, more money other problems that often arise in human
is spent in gathering and storing activities.
information than in processing it. Yet,
most are barely beginning to tap the
potential uses of the information resources Opportunities of Growth and
in which they have so heavily invested. Centralization
Although the growth and centralization of
The Centralization and Growth of information at data processing
installations creates management prob~~s,
Information it also creates opportunities. When data
is centralized, all of the important
Over the last few years, most of the basic records on which the day-to-day activities
accounting, record keeping, and problem of an enterprise depend can be combined .
solving activities of the typical large into a single mass of information. Using
enterprise have been computerized. As a mathematical and programming techniques it
result, much of the basic information of is possible to derive from this mass new
the enterprise has accumulated at one or forms of information such as reports and
more central data processing installations. statistics for management information
Along the way" a great deal of information systems. In other words, the same
that was once recorded on punched cards and information that is required for
paper was transcribed in a more condensed traditional accounting and problem solving
form on magnetic tapes, disks, and drums. activities can often be used as an
Although the space required to store information base for newer and more
existing information has been reduced, the imaginative ways of running a business or
amount of information continues to increase scientific enterprise.
at an explosive rate that threatens to
overwhelm those who strive to manage and
use it effectively.
Requirements for a Unified
Information Management System
Problem of Growth and
Centralization To solve the problems that result from the
growth and centralization of data at an
The lack of an effective system fo~ installation and take advantage of the
managing the mass of information at an opportunities it provides requires a
installation often causes a great deal of unified information management system.
duplication. It isn't unusual, for Because requirements differ widely from one
example, for several nearly identical sets installation to another or from one
of information to be independently created, application to another, IBM does not
stored, and maintained. This causes severe provide a single system that will solve the
problems in keeping the information information management problems of every
up-to-date and in controlling its use. installation. It does, however, make it
Without effective control over the use of possible for any installation to develop an
information" users tend to gather and organized and efficient information
maintain their own information and avoid management system to meet its own
consolidating and sharing i t in cooperative particular needs. It does this by
ventures. As new information accumulates, providing:
much of the obsolete information remains
and the operations staff finds it hard to • A consistent way of organizing data.
cope with the mass of information with
which they are entrusted. • A built-in library reference system for
use in locating data.
Because there is no visible evidence of
magnetically recorded information, the • A combination of methods for storing
operations staff is usually forced to and retrieving data.'

Information Management 67
Data Set
______________ -JA~ _____________

Block 2
, -_ _ _ _ _ _ _ _. - J ' -_ _ _ _ _ _ _.. _ _ _ _ ,,-_ _ _ _ _ _
Block
A_ n _ _ _ _ _....
A

Record 1 Record 2 Record n Record 1 Record 2 .-j Record n Record 1 Record 2 Record n
~ ,.--A---,. ~ ~,.--A---,. 4' ~ ~,......A-.. ~
,. '.
'.' I ,. •.>.:.:1- - - - [.·•. •·. • .\. • ··//.1--- -
~:<~·'~I~~ .... ::"<::: ___ _

Tape Reel Disk Pack Other


Volume Volume Volumes

Figure 50. Data Organization

Data Orgclnization The operating system can store and


retrieve records that are all the same
length or that differ in length (Figure
A basic requirement of a unified 51). If the records are of differing
information manaqement system is that the lengths, a field at the beginning of each
data be organized in a consi st.ent manner.
Otherwise, the data cannot be easily shared
by a community of users, nor can the
I record must indicate how long the record
is, and a field preceding the first record
of each block must indicate the length of
activities of processing programs be the complete block. These two fields,
coordinated with those of the control indicating the record and block lengths,
programs. In many respects -the control are used by access method routines in
program USE~S traditional methods of extracting records from a block. If the
organizing data. The smallest. division of lengths of the records of a block are not
information that is normally of concern to defined, the complete block can still be
the control program is a record (Figure stored or retrieved by the control program.
50). A record is formed of one or more However, any consolidation o:r extraction of
fields recorded in an unbroken series, and records must necessarily be done by the
usually represent.s an organi:~ed body of user program that processes the records.
related dat:a, such as all of the basic
accounting inforlMtion concerning a single
sales transaction. A field usually Fixed Length
represents a single item of information,
such as an account number, the name of a
person, or the ca.lculated interest on a
loan. In any eVE~nt, such data fields are Variable Length
not singled out or recognized by the
control program.

One record or several reco:r:ds grouped


together in an unbroken series form a
---------- ---,
Unspecified Length
block. A block of data in auxiliary
storage is separated from another block by _. __________ ---1I
a gap in the data, and is transferred to or
from main storagE~ as a unit. Records may
be grouped together to form a block because
they represent a logical entity.. Or they Figure 51. Data Recqrd Formats
may simply be grouped together to avoid
wasting auxiliary storage space or to In the case of variable-length records,
reduce the nurnbel: of se para te data a single record can be divided into
transfers between main and auxiliary segments, with each segment contained in a
storage. separate block (Figure 52). A record can

68
Record 1 Record 2 Record 3 Record 4
~,~ ________ ~A~ ________ ~,,~ ____________ ~A~ _ _ _ _ __
------..\~
Segment 2 Segment 1 Segment n
~~ ~

V '-----y---'
Block 1 Block 3 Block n+ 1

Figure 52. Spanned Variable-Length Records

thus be longer than a block, and may in is located by searching through a series of
fact span several blocks. As a resul t, indexes, in much the same way as a book in
block length can be defined in such a way a library is found. Also, each direct
as to optimize the use of auxiliary access volume contains a table of contents
storage, without regard to record length. defining sets of data contained in the
No special progra~ng is necessary to make volume and tells where they are located.
use of spanned records, but programs can be
written to process either complete records
or record segments. Each segment contains
a field that defines i t length and its Library Reference System
relative position within the record. The
field indicates whether the segment is the In a medium or large scale data processing
first segment, the last segment, or a organization, keeping track of data can be
middle segment, or whether the segment is a a formidable undertaking. This is true in
record complete in itself. organizations that attempt to take full
advantage of the benefits offered by direct
One or several related blocks of data access storage devices.
separated by gaps form a data set or, as i t
is often called~ a data file. Each set of At anyone time a great many data sets
data represents an organized body of or files may exist within the organization.
related information, such as all of the The bulk of these are usually stored on
information concerning a series or group of magnetic tape or in direct access storage.
sales transactions. Data sets are usually Usually each programmer must keep track of
independent of one another, both logically the tape and direct access storage volumes
and physically. They may, for example, be on which his data sets are stored. For
stored in different auxiliary storage direct access storage volumes, he must also
volumes. keep track of exactly where on a volume his
data sets are located.
A volume is a section or unit of
auxiliary storage space that is serviced by Furthermore, the operations staff at an
a single read/write mechanism whose installation must assign space for storing
operation is entirely independent of any data sets. They may assign removable tape
other read/write mechanism. In an and disk pack volumes to programmers and,
operating system installation, a volume may in the cas,e of direct access storage
be: volumes, they may also assign specific
areas of storage on particular volumes. In
• A reel of tape. any event, the operations staff must
• A disk pack.. maintain up-to-date records on the
• A data cell. assignment of space for storing data and
• A drum. must systematically control its use and
• A section of an IBM 2302 Disk Storage disposition.
(Model 3 or 4) serviced by a single
read/write mechanism. Over a period of time, as new data sets
are created and old data sets are
They are called volumes because, like abandoned, the problem of managing the data
collections of books, they store related mass becomes more severe. This happens not
sets of information (data sets). only because of an increased number of data
Sometimes, like books, they can be moved sets (both current and obsolete) but also
from place to place (disk pack and tape because human beings become too much
reel volumes, for example). Often the involved in the mechanics of managing data
volume containing a particular set of data and more subject to error. As a result,

Information Management 69
data sets may be destroyed at times because identify the serial number of the volume in
of mixups i.n space assignments, and which a data set is stored and, if
programmers may abandon installation necessary, instruct the operator to mou~t
procedure::;, maint.ain their own private the volume on an appropriate device.
library of removable volumes, .and avoid
sharing storage space and data with one Once the control program identifies the
another. volume in which a data set is stored, it
can locate the position of the data set
Another proble!m facing many within the volume. At the beginning of
installatiClns is the problem of using each direct access volume in the system is
direct acc€!ss storage efficiently. After a a volume label that directs the control
time, available space on shared direct program to a table of contents (Figure 53).
access storage volumes tends to become The table of contents contains the name,
fragmented, and a great deal of space is description, and location of each data set
wasted. Y€!t any attempt on the part of the stored within the volume. By reading and
operations staff to reorganize and searching through the table of contents,
consolidatE! the (lata sets on the vol urnes the control program can find the location
can be a difficult undertaking involving of a data set.
many individual users.
The table of contents of a volume also
Because of such problems, the operating contains a record of each unused area in
system cont:ains 2l built-in library the volume. The record contains the
reference system that is used to classify location of each area and its size.
and locate data sets and allocate space for Therefore, by searching through the table
storing thE~m. In many ways it resembles of contents, the control program can
library re1:erence systems that. are used to automatically find and allocate unused
locate information in book libraries. In space on the volume f or the 'temporary or
the operating system, the cont.rol program long term storage of data se'ts.
assumes the role of the librarian. Given
the name of a dat.a set, it can identify the A tape volume does not contain a table
volume cont,aining the data set. and then
locate its position within the volume
provided, of course, the data set has been
I of contents. However, each data set is
assigned a sequence number when it is
created. Using this sequence number, the
stored and cataloged within the library control program can locate a particular
reference system.. data set on the tape and advance the tape
to the beginning of that data set.
To do this, the control prClgram searches
through a ~::atalog conSisting of a hierarchy No distinction is made within the
of indexes maintained in direct access library reference system as to the type of
storage (Figure 53).:1.3 The cat:alog not only data contained in a volume. Data is stored
serves to direct the control program to the in the same way whether it is a set of job
volume containing the data set:, it also control statements, a source program, an
serves to classify the data SE!t. A·t any object program, or a set of data blocks to
given time there may be a great many data be processed by an object program. The
sets stored in auxiliary storage. only distinction among the different types
Therefore, the system must ensure that no of data is in the nature of the data itself
two data sets ha've the same name. This is and the way in which it is used.
accomplished by adopting a met:hod of
class ifying and cataloging data sets that Most of the data sets that make up the
is similar to the Dewey decimal operating system and that are used by the
class ifica'tion method used to classify and operating system in performing its work are
catalog books in a library. Instead of cataloged within the library reference
numbers, alphameric names of up to eight system. Once the operating system is
characters are used to identify a set of generated, a system programmer can extend
data. with this method, a data set name the catalog using system utility programs
may be ref·erred to as: specifically provided for that purpose.
For example, he can construct a catalog
DESIGN. ELECTRO. ROBERTS consisting of several levels of indexes,
and when more data sets are created, he can
where ROBERTS is the basic name of a data extend the catalog to reflect this growth.
set that is classified under the name The catalog structure for a particular
ELECTRO that, in turn, is classified under operating system may be represented in the
the name DESIGN. The major class name and form of a chart, as shown in Figures 53 and
each subclass name of a data set 54. The data sets that are cataloged can
corresponds to an index in the catalog. By be classified in many different ways -- for
searching through the corresponding major example, to reflect the organizational
class index and each corresponding subclass structure of an engineering department that
index, in turn, the control p:['ogram can uses the system.

70
To Other Indexes

~~
See Figure 56 Generation Data Groups

Figure 53. simplified Diagram of Catalog System for Locating a Volume

Information Management 71
Although the highest level index of the classified as one or the other depending on
catalog is always stored on the direct the way it stores or retrieves blocks of
access volume containing the operating data.
system control program, branches of the
Volume 5 of
catalog can be stored on other direct Previous Figure
access volumes, including removable
volumes. For example, the index named
DESIGN in Figure 53, as well as any
subclass indexes, could be stored on a
removable disk pack that is assigned for
exclusive use by 1:he design dl~partment.

In addition to cataloging single data


sets in the library reference system,
several successive generations (updates) of
a data set (called a generation data group)
V"'um' Tool. of Conte"" ~
can be cataloged. 3 This method can be used
to catalog a data set, such as a
year-to-date earnings data set, that is
updated weekly by a payroll program. Each
generation of the data set ma~i have the
same name and be identified rl~lative to the Data Set
current genE~ration of the data set. With
this method of cataloging,thl~ system can
automatically keep track of the generations
that have bE~en created., and delete obsolete Design. Electro. Roberts
generations as new ones are created. Data Set

A special type of direct access data


set, called a partitioned data set can also
be cataloged (Figure 54).3..0 This type of
data set is used primarily to store
programs, and is 1:herefore often referred
to as a proqram library. It has its own A Partitioned Data Set = tIIi
index, called a directory, which is used to
locate one or more sequential blocks of Figure 54. Simplified Diagram of Catalog
data (called members) that are stored in system For Locating Data sets
separate partitiOllli of the data set.. The Within a Direct Access Volume
major use of partitioned data sets is
descr ibed in the section ti tl(~d "Program Because a sequential access device, such
Development and Management. II as a magnetic tape unit, stores or
retr ieves a particular data block in a
The library reference system for series, it must scan through all
locating (and assigning space for) data intervening data blocks. This is both
sets makes it possible for programmers to time-consuming and wasteful of resources.
efficiently share the use of direct access Therefore, sequential access devices are
storage devices with a minimwn of seldom used when it is necessary to
interferencE~. To help ensure efficient retrieve or store particular blocks of data
sharing., thE~ system programmer is provided in a non-sequential order. However, they
with a comprehensive set of system utility can be used with a great deal of efficiency
programs wi1:.h which he can control the when storing or retrieving a succession of
classification of data and the use of data blocks in a fixed sequence.
direct access stOl::age. 'Ibese programs can
be used to create., rename, or delete A direct access device can retrieve a
indexes and data sets; to reorganize and particular block of a data set more
rearrange a library of data set.s; and to directly. Therefore, it can be used in
conduct sur,reys of the organization and applications where it is necessary to
contents of direct: access stoJcage. 3..5 retrieve or update particular data blocks
in a non-sequential order. A direct access
device can also store and retrieve a
continuous series of data blocks, often at
Methods of: Storing and Retrieving a faster rate than a sequential access
Data device. Therefore, a direct access device
is frequently used for both direct and
There are tvlO rna jor types of au.xiliary sequential processing of data blocks.
storage devices commonly used in computing
systems: sE~quential access devices and To help an installation use these
direct access devices. A device is devices effectively, the operating system

72
provides five basic methods for storing and • The Queued sequential Access Method
retrieving data: 1o (QSAM) '.
• The Queued Indexed Sequential Access
• The Basic Sequential Access Method Method (QISAM).
(BSAM), which stores or retrieves data • The Queued Telecommunications Access
blocks in a continuous sequence using Method (QTAM).
either a sequential or direct access • The Telecommunications Access Method
device. (TCAM) •

• The Basic Direct Access Method (BDAM), QTAM and TCAM are discussed in the section
which directly retrieves or updates "Teleprocessing. "
particular blocks of a data set on a
direct access device. When QSAM or QISAM is used, the system
takes advantage of the fact that they store
• The Basic Indexed sequential Access and retrieve blocks and records of a data
Method (BISAM), which directly set in a known sequential order. It does
retrieves or updates particular blocks this by forming in main storage a waiting
of a data set on a direct access line, or queue, of input data blocks that
device, using an index to automatically are awaiting processing. For output data,
locate the data set. The index is it forms a queue of data blocks that have
stored in direct access storage along been processed and are awaiting transfer to
with the data set. other forms of the auxiliary storage or an output device. The
BISAM method can be used to store or queues enable the CPU to process one data
retrieve blocks of the same data set in block while other blocks are being
a continuous sequence. This method is transferred in or out of main storage.
used only with direct access devices,
and takes advantage of both their
sequential and direct access Data records from a block in an input
characteristics. queue are parcelled out, one at a time, as
they are requested by the program that
• The Basic Partitioned Access Method processes the data. If an input queue is
(BPAM), which is usually used to store empty when a record is requested by a
or retrieve programs. It is described program, then the control program
in the next section "Program automatically holds up further execution of
Development and Management." the program until the next data block is
received.
• The Basic Telecommunications Access
Method (BTAM), which is used only in
teleprocessing applications. This When a request is made by a processing
access method is described in the program to store a record, the record is
section "Teleprocessing." consolidated in an output queue with the
other records of the block. If the output
The proper method to use in processing queue is full when the request is made, the
data depends on the nature and organization control program automatically holds up
of the data and the nature of the further processing of records until a block
application. For example, the indexed in the output queue has been transferred.
sequential method could be used effectively
with data that must be updated and Each basic or queued access method has a
interrogated quickly, and periodically number of optional or alternative
processed in a sequential order (to prepare variations, .such as different ways of
a summary report, for example). transmitting data records to or from a
processing program. The options and
More than one method can be used to alternatives differ with each method. g ·,1o
process the same data set, provided the
organization of the data meets the basic
requirements for each of the methods used. Defining Data, Access Methods, and
For example" the sequential access method Devices
could be used to transcribe a data set that
is usually processed using the direct or In order to use an access method to create
indexed sequential access method. a new data set, the control program must
have three types of information. First, it
In addition to the basic access methods, must have information about the data set,
the operating system provides extended such as the lengths of the records and
versions of the sequential access method, blocks that it will contain. It must also
the sequential form of the indexed have information on the access method that
sequential access method, and the will be used to create the data set,
telecommunications access method. These including a definition of all the selected
are: optional and alternative variations of the

Information Management 73
method, such as the size and organization When the programmer uses the assembler
of the output queue. Then i t must know the language to design a program, he mU3t
type or class of I/O or storage devices on include in the program any information that
which the data set will be recordedD is needed to apply an access method. When
he uses a high-level language, such as
FORTRAN, to design a program, the
translator provides information and places
When using the assembler language, the it in the program. However, the high-level
programmer can define this information language translator normally 11'1ithholds
within his program at the time he designs certain information in order to ensure a
it" or he can define it in a data degree of device independence and
definition (DD) statement of a job step flexibility in the use of the program. The
definition :just prior to submi t.ting his job withheld information is supplied in the
for processing. (As previously described, data definition statement of the job step
each job step definition must contain a and can be redefined by the programmer.
data definit.ion statement for each data set
that is used or created during the defined
job step.) There are a number of reasons
why the proqrammer may want to defer A data set and the access method
defining information until he submits his employed to create or use it can have a
job. great many variations. Defining and cuding
their characteristics can be a rather
First, by withholding information on the lengthy and painstaking process.
characteris1:.ics of the data set. and the Therefore, the control program contains
method to bE~ used to create it, he can facilities that can be used to avoid
change characteristics and access methods repetitive definitions and coding each time
each time the proqram is execut.ed. He can a data set is created or used.
do this merE~ly by changing specifications
on the data definition statement before
submitting 1:.he job f or processing, without
changing or reassembling the program.
Thus, a proqram that is used to create a One is a facility for cataloging job
data set can be independent of the method step and data definitions. If a series of
used to create it., and the acc€!ss method job step and data definitions are used
can be varied from time to time depending repeatedly by programmers, they can be
on circumstances. For example, the size of stored and cataloged in a procedure library
the output queue used to create a data set maintained in direct access s"torage by the
can be chanqed depending on how much main control program. Thereafter, a programmer
storage space is a.vailable when the program can, using a single job and job step
is executed .. statement in an input stream, direct the
job scheduler to pick up the job step and
Deferrinq the definition of the device data definitions from the procedure
on which a newly created data set is to be library. If necessary he can, in the same
stored or recorded offers a number of statement, temporarily override
important advantaqes. Each time the specifications in the job step and data
program is E~xecuted, the data set that is definitions picked up from the procedure
created can be stored or recorded on a library. Thus a programmer need only
different t~{pe or class of device. For define and code changes to a data
example, bejEore submitting his job the definition that are required for his
programmer can indicate on the DD statement particular job.
whether he ,~ants the data set printed on an
online prin1:.er or recorded on magnetic
tape, on a particular di rect access vol ume
or device, or anywhere in direct access To further reduce repetition in defining
storage. This ensures that the program is data sets, the control program stor~s a
independent of any particular t.ype of description of each data set contained
device. within the system. 11 When a new data set is
created, its description is stored on the
Thus, if a particular type of device is same volume that contains the data set. If
not available when needed, anot~her type may it is a magnetic tape volume, the
be selected.. Also, new types of devices description is stored in a da"ta set label
may be added to the system without that precedes the data set. If it is a
necessarily changing or reassembling the direct access volume, the description is
programs. pevice independencg makes it stored in the table of contents of the
possible to run the programs on different volume. In either case, once a data set is
computing systems having different created it can be used and processed by
complements of I/O and direct a.ccess different programs without being described
storage devices. again each time it is used.

74
Program Development and Management

Today, most data processing installations construct the operating system. second, it
have two outstanding problems.. The first provides means for storing programs and
concerns a shortage of programming talent parts of programs in organized libraries in
and a continual increase in the number and direct access storage where they are
scope of new data processing applications. immediately available for automatic
The second problem concerns the effect of retrieval, yet are still subject to
machine malfunctions on a system. Because modification. Third, i t provides means for
of the"se problems., many data processing dynamically loading programs and
installations find it difficult to cope subprograms into main storage as they are
efficiently with the work at hand. As a required to perform tasks. Fourth, the
result" the overall productivity of an Checkpoint/Restart facility provides the
installation often suffers, and the programmer with the means to prevent a
introduction of important new applications complete restart of a program in case of an
is sometimes postponed indefinately. error.
Consequently, various processing programs
and recovery routines have been developed
to cope with these problems.
MODULAR CONSTRUCTION
A Unified Program Development Although a programmer can write a program
System and have it translated and executed without
a hitch, this is an exception, rather than
To help combat such problems, the operating the rule. Most programs are tested,
system provides a variety of facilities in modified, and recompiled several times
the form of processing programs that are before they are put to use in performing
designed to reduce the time, expense, and useful work. It may take months to
manpower required to program new completely develop and check out a program.
applications.. For the most part" these Even then, it may go through an
facilities consist of the language evolutionary process of improvement,
translators and service programs, which extension, and updating that can, and often
were described briefly in a previous does, last until i t is nearly obsolete.
section. Although each of these is
important in its own right, they are really Therefore, the language translators and
designed to be used together. When the linkage editor are designed so that
combined with the facilities of the control they can be used in combination to
program, they serve as a unified system for construct programs and subprograms in the
developing and managing the use of form of modules that are logically
programs. The overall objective of such a interconnected but can be modified
system is to reduce the total time and separately. This makes it unnecessary for
effort required to program and maintain an a programmer to retranslate and test his
application from the time i t is conceived complete program each time a part of it is
until it becomes obsolete. modified.. Only those parts (or modules)
that are affected by a modification need be
A particular application may be a short retransla ted.
one-shot affair such as computing the
interest on a loan, or a large complex, This method of construction also allows
long-running application that requires most the work involved in developing a program
of the resources of an installation. to be divided up among several programmers
Therefore, the operating system is designed (Figure 55). Many programs are much too
to assist groups of programmers working large and complex for a single individual
cooperatively on a single project or to design alone in a reasonable period of
application., as well as individual time. This is especially true of the
programmers working independently on many large, complex programs that are usually
different applications. required for advanced system applications.

The operating system provides such A program module represents a complete


assistance in four ways. First, it program or part of a program that can be
provides a method for designing and modified or replaced without affecting
constructing programs and subprograms in other programs. It may range in size from
the form of replaceable parts, or modules. a single instruction to a large program
This method, called modular construction, that requires all of the available space in
is the same basic method that is used to main storage.

Program Development and Management 75


There are three types of program Lead Programmer

~r===ll
modules: source modules, object, modules,
and load modules. Each of these! represents
a different stage in the development of a
program.
~
Problem

A source module is the input to a


language translator for a particular
translation. It is actually a sequence of
language sta't:ements which the programmer
has decided t:o consider as a rf~placeable
entity.

An object modul~ is the output of a


language translator for a particular
translation. It contains a program or part
of a program in thE~ form of machine
language instructions.

A load module is produced by the linkage


editor. It can be produced from one or
more object modules or a combination of
object modulE!s and other load modules.

A source module can contain references


to instructions and data in other modules. Translation
It can also contain instructions and data and
Linkage
that are refE~rred t:o by other modules. Yet Editing
each source module can be translated
individually, and not combined with other
modules 'until somet:ime later. Therefore, Composite Load Module
as a part of the tI~anslati on pl:"ocess, each
translator prepares a record of all
references to or from other modules. This
record is represent:ed by the interlocking
arrows in Figrure 55. It is appended to the
object module~ produced by the t:ranslator Figure 55. Program Design
and is used later by the linkage editor to
consolidate t.he module with other modules .. There are several reasons why a
programmer may want to divide and subdivide
To produce~ a load module, the linkage a program into modular parts:
editor resolv'es all cross-references among
the input modules from which the load • He may, sooner or later want to replace
module is to be formed. It dOE!s this by one part with another part. This may
replacing each refe'rence with t:he address be done because the original part
of the item referred to. The linkage contained an error, or had to be
editor also produces and appends to the updated or improved.
load module a consolidated record of all
cross-references. These include • He may want to develop and test
cross-references that have already been different parts of his pr09ram at
resol ved as w'ell as unresolved references different times and gradually build a
to modules that have yet to be incorporated complete program.
into the load module. Because a load
module contains this record, the linkage • He may want to divide up the workload,
editor can be used to combine it with that is, assign responsibility for
Object modules or other load modules, and developing and maintaining different
to delete or replace previously parts of a program to different
I consolidated modules. 5 programmers.

After all cross-references have been • He may want to use different language
resolved, a load module can be loaded translators to design different parts
anywhere in main storage by the~ control of his program. For example, he may
program. The final assignment of storage want to use the FORTRAN language to
addresses is completed as part 0:E the design a part of his program that
loading process. requires the use of mathematical

76
techniques, and the assembler language advantages. Once a program module is
to design parts that require either a entered into the system, it can be stored,
great deal of flexibility or services translated, tested, modified, retranslated,
of the supervisor that are not and combined with other modules, without
available through the FORTRAN language. storing it on punched cards. Thus,
programmers need not maintain large, bulky
A programmer should evaluate these card files and can avoid relatively slow
considerations in deciding whether to card reading and punching operations ..
divide his program into modules. As a Another advantage is that programs can be
general rule he should divide his program loaded directly into main storage without
along functional lines into self-contained searching through a long series of programs
modules to reduce the number of on magnetic tapes.
cross-references between one module and
another.
In developing and maintaining programs,
three libraries are generally used: a
ORGANIZED PROGRAM LIBRARIES source module library, an object module
library, and a load module library (Figure
In the operating system, programs or parts 56). These can be used by individual
of programs are usually stored in program programmers or shared by several
libraries maintained in direct access programmers working on the same or
storage.. These libraries include programs different projects.
that make up the operating system, as well
as programs created by the user of the The source module library is used to
system .. store source modules while they are being
translated and tested.. There they are
A program library is actually a special available for updating or correction, if
type of data set called a partitioned data necessary, prior to retranslation.. IBM
set that is stored in direct access storage provides a comprehensive set of utility
and can be cataloged like any other data programs specifically designed for this
set. A partitioned data set, as its name purpose.
implies, is divided into independent
partitions.. Each partition contains a As each source module is translated, the
program, or part of a program, in the form resulting object module is stored in an
of one or more sequential data blocks. object module library where it is available
Each program library contains a built-in for processing, or consolidation with other
directory (or index) that the control modules, by the linkage editor. The load
program can use to locate by name a modules produced by the linkage editor are
particular program or part of a program placed in a load module library.. There
stored in the library. they are available for loading into main
storage and execution under direction of
The control program provides an access the control program, or for further editing
method, called the partitioned access and modification by the linkage editor ..
method" that the programmer can use to Once a load module is tested and fully
create program libraries for storing and perfected, a programmer can delete from the
retrieving programs. However, most library system any source and object
applications programmers use libraries that modules that were used in developing it ..
have already been created by a system The load module can be further modified,
programmer or by the control program .. extended, and updated, however, since a
composite record is maintained within the
Using direct access storage for programs module of all cross-references among the
libraries has a number of distinct modules from which i t is formed ..

Source Module Object Module Load Module


Library Library Library

Language Linkage Main


Translator Editor Storage

Figure 56.. Program Module Libraries

Program Development and Management 77


In other operating systems, large or • He may want to share parts of his
complex programs are often stored and program with other progranlmers.
maintained in auxiliary storage in two
forms. In one form, final main storage • He may anticipate that a particular
addresses within the programs have been part of his program will be deleted or
assigned. Therefore, the programs are replaced in the future.
ready to be loaded into main storage and
executed. By the sane token, the programs • He rna.y want to have major parts of his
cannot be modified, short of complete program executed as separate job steps,
retranslation, except by resorting to a in which case data generated during one
makeshift technique called "patching." step may be passed to a succeeding
Patching is generally avoided at well-run step.
installations because i t leaves no visible
record of a modification. Therefore, the • He may want to load a particular part
same programs are stored and maintained in of his program into main storage only
auxiliary storage in a different form. In when a certain event OCCUZ'S, such as
this form, final main storage addresses the expiration of a time period or, in
within the p:rogram are not yet resolved; a teleprocessing aFplication, the
the various parts of the program are still arrival of a message from a remote
subject to modification without resorting location.
to either pa~tching or complete
retranslation. In the systern/3E>O Operating • He may want to load different parts of
System, a single composi te load module is his program into main storage at
both subject to modification and ready to different tines in order to conserve
be loaded in1to rna.in storage and executed. storage space. In such an instance,
Therefore, oll1ly the load module form of a parts of a program that are yet to be
program need be stored and maintained in executed can be brought into main
auxiliary storage. storage to replace parts that have
already been executed.

DYNAMIC PROGHAM LOADING • If he is using an MVT operating system,


he may want to have different parts of
Once a load module is perfected and stored a program executed concurrently as
in a program libra:ry, it is ready to be separate and distinct tasks.
dynamically loaded anywhere in main storage
by the control pro:;Jram, and then executed. The job scheduler and the problem-state
This characb:!ristic::: of a load module is programs whose execution it initiates are
commonly refc:!rred to as reloca tabili ty separate and distinct programs. However,
( Figure 57).:L A load module may be a they and their subprograms must adhere to
complete proqram or a part of one or more standard linkage conventions so that
larger programs. 'rhis is true regardless control can be passed between them in a
of whether i1: was originally formed from a consistent manner. As a result, any
single objec1: module or a combination of programs and subprograms that are stored in
modules. the load module libraries can be shared and
used for different applications. These
Main Storage include programs and subprograms of the
operating system itself as well as those
Load Module
Library designed by a user.~

r--l The degree of program sharing depends


I I largely on the installation and how well
_---"'1 I the use of the system is controlled and
.... -
_--
_--- I
L __ J
I
coordinated. The sharing might be limited
to a few programmers or applications or it
might extend to all of the programmers at
r---, an installation.
------- __ ... I I
- -....~ I
IL __ .JI
CHECKPOINT/RESTART FACILITY

When an error is detected within the


computing system an interruption normally
Figure 57. nelocatability occurs, and CPU control is transferred to
an error recovery routine, which attempts
to repeat the operation that was being
There are a number of reasons why a performed when the error was detected. If
programmer may divide and store his program the error does not recur, it is assumed
as separate load modules: that the error is not permanent, and CPU

78
control is returned to the production A Means of Recovery
program at the point at which it was
interrupted. Thus, if i t is possible to A failure of the system, whether during the
recover from the error, no time is wasted development of new programs or while
in the middle of a production run in processing MFT or MVT jobs, can result in a
correcting the fault that caused the error. loss of productivity and diminish the
effectiveness of the system. To protect
against, or at least to diminish the
In some cases however, i t is not effects of, a failure, reliability,
possible to continue the production run at availability, and serviceability (RAS)
the point at which it is interrupted by an facilities interact with the control
error. The error may have been caused by a program. RAS facilities attempt to retry
permanent failure or it may have altered or or repair machine malfunctions that result
destroy~d data or instructions that are in system failure. One means available for
required to continue with the production RAS implementation is the Recovery
run. To avoid restarting the production Management support (RMS) for both
run from the very beginning when such System/360 and System/370. 6,7
situations arise, an optional
Checkpoint/Restart facility is provided
with the operating system. Using this Recovery management routines fall into
facility it is possible to design two distinct categories: Those that record
production programs, particularly long the environment at the time of the machine
ones, with convenient rerun points malfunction; and those that exist to bypass
(checkpoints). A programmer initiates a various I/O errors. Recovery management
checkpoint by requesting the supervisor, routines of the first class include:
via an SVC instruction, to record in
auxiliary storage a checkpoint data set • System Environment Recording (SER)
containing all of the information necessary routines provide the user with the
to restart the production program from the environment of the CPU and the channel
point at which the checkpoint is taken. at the time of the failure.
Then" no matter where processing is
interrupted during the production run, i t • Machine Check Handler (MCH) routines,
can be restarted at the last checkpoint according to the CPU model, analyze,
using the checkpoint data set to record, retry, and if possible isolate
reconstitute main storage, load registers, the machine malfunction.
position tapes, etc.
• Channel Check Handler (CCH) analyzes
channel errors for device-dependent
This technique can also save time when a error routines, and constructs a
program is interrupted by operator permanent record -- the channel inboard
intervention for another of higher priority error record -- for the I/O supervisor.
or for any other reason. At the option of
the operator, a restart can be either • Error Recovery Procedures (ERPs)
automatic or deferred. If automatic, the analyze intermittent and unrecoverable
production program is restarted immediately errors, detect I/O errors, and attempt
at the last checkpoint. If deferred, the their retry.
production program is resubmitted sometime
later for processing, and is restarted then Recovery management routines of the second
at the last checkpoint. class include:

Using the Checkpoint/Restart facility, • Alternate Path Retry (APR) allows an


it is also possible to restart I/O operation that has failed on one
predesignated job steps in the event a job channel to be retried on another
step is interrupted and cannot continue. alternate channel.
Like a checkpoint restart of a production
program" a step restart can be automatic or • Dynamic Device Reconfiguration (DDR)
deferred at the option of the operator. allows the operator to move a movable
The EXECUTE statement of the job step volume -- tape drive or disk -- at
definition indicates whether a job step is system or operator request, to another
I subject to restarting • .2 device.

Program Development and Management 79


Multiprocessing

Multiprocessing is a technique whereby the INCREASED AVAILABILITY


work of processing data is shared among two
or more interconnected central processing Multiprocessing can help to ensure a high
units (or computing systems). A level of availability for a system.
combination of a main computing system that Availability is the degree to which a
specializes in the processing of jobs, and sys·tem is ready when needed to fulfill its
a separate offline "satellite" computer role in an activity. An example of such an
that specializes in transcribing input and activity is a missile launching, where the
output data for the same jobs might be unavailability of a computing system for
considered a multiprocessing system since use in guiding the missile could delay
the combination contains two central launching or cause i t to fail. For such
processing units that indirectly applications, more than one CPU is employed
communicate with one another. However, in so that one can quickly replace another in
this kind of multiple CPU installation, the the event of a failure. Some other
communication between one CPU and another applications in which availability is of
is achieved wholly through operator prime importance are: airline reservation
intervention. In the case of the offline system applications, process control
satellite example, the communication applications, banking system applications,
consists of the operator removing a tape and air or ground traffic control system
reel from a tape unit connected to one applications.
computer and mounting i t on a tape unit
connected to the other computer. INCREASED PRODUCTION CAPACITY
Therefore, such a combination is not
usually considered a true multiprocessing Multiprocessing can also increase the
system. overall data processing capacity of a
system. This is especially important for
solving large scientific or engineering
problems in such fields as theoretical
physics or aircraft design. Problems such~
CPU-to-CPU Communication as these often require weeks or months of
computation before a solution is arrived
In a true multiprocessing installation, one at. The increased data processing capacity
CPU may communicate with another in a provided by multiple processing units can
combination of ways. At one extreme, drastically reduce the time required to
communication may be represented by a few solve such problems.
control signal lines that are used to
broadly synchronize the operation of one MORE EFFICIENT USE OF RESOURCES
CPU with that of another. Then again, the
communication may consist of sharing direct In systems that can perform multiple data
access storage devices or main storage processing tasks concurrently,
units among two or more CPUs. Another form multiprocessing can result in more
of communication can be achieved by using a efficient use of hardware resources. By
channel-to-channel adapter. This device pooling the resources of two computing
enables blocks of data to be transferred systems, it is so~times possible to
quickly from the main storage of one CPU to perform more work, such as job steps,
that of another. Communication can also concurrently than when two separate and
consist of transferring data over distinct systems are employed. With
telecommunication lines from one CPU to separate computing systems, a job or other
another at a remote location. unit of work that is ready to be initiated
on one system may be delayed for the lack
of a resource that is available, but idle,
on the other system.

Advantages of Multiprocessing DATA SHARING

There are a number of reasons why Multiprocessing can make i t possible for
multiprocessing might be employed at an two or more central processing units to
installation. Multiprocessing can increase share sets of data maintained in direct
availability, increase production capacity access storage. This can help to ensure
of a system, ensure more efficient use of more efficient and consistent processing of
resources, and allow two or more CPUs to the data. Moreover, by reducing or
share the same data. eliminating redundant data, it can conserve

Multiprocessing 81
direct access storage space and reduce the two-processor) switches on control units.
time and effort required to retrieve the The 2816 switching unit and the 2844
data and keE~p it up to date. Auxiliary Storage Control are also used to
achieve total device accessibility., in
Operating System Support of cl~rtain instances.
Multiprocessing
In other configurations of the Model 65
The IBM Operating system/360 supports two Multiprocessing System, in addition to the
general purpose multiprocessing 1052 Printer-Keywords, 1443, .2150, and 2501
applications. OnE~ employs two to four unit record equipment and devices supported
System/360 Computing systems that share for graphics and teleprocessing
direct access storage deviceso The other applications can be accessed by only one
employs two computing systems that share CPU.
all of main storaqe and most I/O devices.
Operating Modes
In additi.on to these two general purpose
applications, there are a number of special The model 65 Multiprocessing System can
purpose mult~iprocessing applications operate in three modes: multisystem (MS),
supported by the operating system. These partitioned (PTN), and 65 mode. MVT with
involve the use of central processing units Model 65 multiprocessing supports
a·t remote locations that communicate with mUltisystem and partitioned modes only.
one another by way of telecommunication
lines, and are therefore described in the Multisystem Mode: When the Model 65
next section "Tele~processing." Multiprocessing System operates in
multisystem mode, both CPUs share all of
MULTIPROCESSING WITH SHARED DIRECT ACCESS main storage as though it were a single
STORAGE DEVICES unit. They also share most I/O devices.
As an optional feature, the operating A single supervisor allocat:es resources
system supports a multiprocessing system and apportions work between the two CPUs.
containing t.wo System/360 Computing Systems Because two CPUs share the workload, two
(Figure 58) of the same or diff,erent models entirely different tasks (or two parts of
that share a control unit and up to eight the same task) can be processed
direct access storage devices. Access to a simultaneously. Figure 60 shows how four
particular d.evice is gained through a tasks can be handled by two CPUs in
two-channel switch that enables the shared multisystem mode.
control unit to be instantaneou:sly switched
between two channels. Each of ·the two The control program synchronizes the
channels is connected to a different operation of both CPUs through the Direct
computing system. The computi.ng systems Control Feature -- control lines over which
gain access to a particular device on a the CPUs can communicate -- and through us e

I
first come first served basis. Either of of a malfunction alert signal. Examples of
the major configurations of the control situations in which activity must be
program (MFT' or MVT) can be used with synchronized are:
either of the two computing systems.
• One CPU is processing a task and a
MVT WITH MODEL 65 MULTIPROCESSING higher-priority task is ready and
waiting to be processed.
The operating system supports the Model 65 • I/O activity cannot be ini.tiated by one
Multiprocessing System through ~ with CPU; therefore, a check must be made to
Model 65 multiprocessing, an extension of see if the other CPU can initiate the
MVT,. This system uses two identical Model activity.
65 Processing Units (CPUs), called Model 65 • An error condition exists in one cpu.
Multiprocessors. The two CPUs share all of
main storage" which may range from a One requirement f or programming support
minimum of 524,,288 bytes to a maximum of of the Model 65 Multiprocessing System is
2,091,152 bytes, and most I/O devices. 7 Recovery Management support (RMS). The RMS
routines help reduce delays, loss of data,
One configuration of the Mod~~l 65 and other effects caused by intermittent or
Multiprocessing System is shown in Figure persistent hardware failufe. If a machine
59. In this configuration, the system is error occurs, the RMS routines attempt to
physically symmetrical, excluding the 1052 recover from it by retrying the operation
Printer-Keyboards; that is, each CPU has that failed and attempt to repair any
access to any I/O device in the system, program damage resulting from the error.
except the 1052 at·tached to the other If the error is persistent, then the
multiprocessor. This total device recovery routi~es alert the operator and
accessibili ty is made possible i::hrough use provide information to help locate the
of program-c ontrolled, two-channel (or
4 faulty component.

82
In most single-CPU systems, when a
failure occurs in an I/O device, that M65 M65
device can be placed offline; that is, its Central Central
use as a system resource can be Processing Processing
Unit A Unit B
discontinued. The system can continue to
operate. In the Model 65 Multiprocessing
System, any noncritical malfunctioning CPU A CPU B
Channels Channels
component (one CPU, channels, areas of main
storage in multiples of 2048 bytes, and I/O Main Storage
(MVT with Model 65
devices) can be placed offline. Thus, the Multiprocessing
rest of the system can continue to Control Program)
function. This assures a high degree of
availability •.

Partitioned Mode: When a CPU is operating


in partitioned mode, it must have its own
main storage, with a minimum of 512K bytes;
auxiliary storage; control units; and I/O
devices. In this mode, the CPU operates as
a separate and distinct system under MVT
with Model 65 multiprocessing.

65 Mode: As with partitioned mode, a CPU


operating in 65 mode must have its own main
storage, with a minimum of 256K bytes;
auxiliary storage; control units; and I/O
devices. In this mode, the CPU operates as
a separate and distinct system under the
MFT or MVT configuration of the control
program (excluding MVT with Model 65
multiprocessing).

Central Central
Processing Processing
Unit Unit

Figure 59. A Symmetrical Configuration of


the Model 65 Multiprocessing
Main Storage Main Storage System
I MFTorMVT MFTor MVT
Control Program Control Program

Task 1
Two Channel
Channels Switch Channels

Task 2

Task 3

Task 4
Up to Eight Volumes
---------... Time
CPU - A Performing Task •

CPU - B Performing Task EJ


Task Inactive 0
Figure 60. Two CPUs in Multisystem Mode,
Balancing the Execution of Four
Figure 58. Multiprocessing With Shared Tasks
Direct Access Storage Devices

Multiprocessing 83
Teleprocessing

Teleprocessing refers to a large variety of convenient, during the second or third


data processing applications in which data shift, perhaps taking advantage of lower
is received from or sent to a central data data processing rates for the shift. This
processing system over communication lines, could be an application in which production
including ordinary telephone lines. workers, upon completion of their jobs,
Usually the source or destination of the transmit by means of special input devices
data is remote from the central processing such data as their ID numbers, the number
system, although it can be in the same of work units they completed, and other
building. In any event, the source or pertinent data. The central system, after
destination points of the data are often all the data for the day has been collected
called terminals or (for some applications) and stored, could then process it for
work stations. accounting and production control purposes.

A terminal, or work station, can have In other applications, data may be


one or a combination of I/O devices. A accumulated during the day and then placed
large variety of such devices are available on an input device, such as a punched card
for use at remote terminals. These include reader. The data could be collected by the
special keyboards, TV-like graphic display central computing system during off-peak
devices, printers, card read-punch units, hours in order to take advantage of lower
and telephones. In addition, a remote communication line rates.
terminal may be represented by another data
processing system, in which case the
application is not only a teleprocessing MESSAGE SWITCHING
application but a multiprocessing
application as well. Message switching is a type of
teleprocessing application in which a
Teleprocessing applications range from message received by the central computing
those in which data is received by a system from one remote terminal is sent to
central processing system and merely stored one or more other remote terminals.
for later processing, to large complex Message switching can be used in a
system applications in which the hardware nation-wide or world-wide telegraph system
and information resources of the central or it can be used by a geographically
system are shared among a great many users dispersed business or scientific enterprise
at remote locations. to provide instantaneous communication
within the enterprise.

General Types of Applications REMOTE JOB PROCESSING


Several general types of teleprocessing Remote job processing is a type of
applications that are possible with the application in which data processing jobs,
operating system are briefly described like those that are entered into the system
below. There are a number of variations locally, are received from one or more
and combinations of these general remote terminals and processed by the
applications. operating system.

I Two applications of remote job


DAT A COLLECTION processing are provided as optional
features of the MFT and MVT configurations
Data collection is a teleprocessing of the operating system control program.
application in which data is received by a These are described later in this section
central processing system from one or more under "Remote Job Entry" and
remote terminals and is stored for later "Conversational Remote Job Entry."
processing. Depending on the specific
application, the transfer of data may be

I
initiated either at the terminal or by the TIME SHARING
central processing system.
Time sharing is a teleprocessing
An example of a data collection application in which a number of users at
application would be one in which data is remote terminals can concurrently use a
received intermittently during the day (as central computing system. In this type of
it is generated) and is processed, when application each user at a terminal has the

Teleprocessing 85
impression that he is the sole user of the INQUIRY AND TRANSACTION PROCESSING
computing system. In reality, however, the
resources of the system are shared among Inquiry and transaction processing is a
several users. When the use of the teleprocessing application in which
computing system is momentarily not inquiries and records of transactions are
required by one user, it is available to received from a number of remote terminals
satisfy the needs of others. Because of and are used to interrogate or update one
its speed, the computing system can respond or more master files maintained by the
to the needs of all the users within a few central computing system. With this
seconds .. application, the system can directly
participate in and control various
commercial, scientific, and military
activities as they are being carried on.
Often, ilt1 this type of application, a
dialogue or conversation is carried on
between the user at a remote terminal and a
program within the central computing One of the earliest examples of this
system. Thl= program may be designed to type of application is the airline
interrogate the user and immediately reservation system apFlication described
respond to his replies or requests, or even previously.. A similar aFplication is one
his mistakes. in which the system is used to service a
geographically dispersed banking activity.
In such an application, master files
General purpose time sharing is provided containing account records for thousands of
as an optional feature of the MVT control depositors are stored in direct access
program. Ii: is described later in this storage. By entering Fertinent data into
section undE~r the title "Time Sharing the system, tellers at remote locations can
Option .. " use a special I/O device to check balances,
update passbook records, and handle similar
transactions within a matter of seconds.

ONLINE PROBl~EM SO]~ VING Other examples of this type of


teleprocessing application are information
retrieval systems, management information
systems, and inventory control systems.
Online pl~oblem solving is a. form of time
shar ing that: has a great many potenti al
applications in the fields of education, An intriguing variation of an inquiry
engineering. and research. BE~cause the and transaction processing application is
system can respond quickly to the needs of one in which a telephone is used as the
the user, it; can directly participate in, sole means of input and output at a
and speed up, the problem solving process terminal. Although the telephone is
as well as other similar procE~sses such as normally used to communicate with people,
program desi.gn and learning. Thus, if a it can also be used to communicate with a
user, in the! course of designing a program, central computing system. A simple example
makes a mist.ake, he may be imnediately of this would be one in which a salesman
alerted by a program in the central wished to check the delivery t:ime for a
computing system t.o take corrective action. particular product. He could do this, even
Therefore, he need not wait until the while in a customer's office, by first
complete program is compiled and tested dialing the central computing system, and
before the mistake is detected. Similarly, then entering (by dial or touch butt.ons) a
in a compute'r assisted instruction (CAl) transaction code and the stock number of
system - an import.ant variation of this the product. Af,ter interrogating the
type of application - a student is master file to determine the delivery time
immediately informed of, and learns from q for the product, the computing system could
his mistakes as he makes them. then, using an audio response device, such
as the IBM 7770 Audio Response Unit,
compose and return a verbal message to the
salesman informing him of the delivery time
A specific application of online problem for the item. The salesman could then
solving is provided as an optional feature discuss~this with the customer and transmit
of the MFT and MVT configurations of the the order to the central system or make
control program. This application also has other inquiries, again by way of the
certain features of a remote job processing telephone. Thus the services of a central
application,. It is described later in this computing system can be as close as the
section under the heading "Graphic Job nearest telephone ..
processing."

86
Message Control and Message message control program on the other hand,
Processing Programs are assembled by an assembler language
translator as a separate program when the
message control program is created, in much
A teleprocessing program for most the same way as the operating system
applications is normally divided along control program is generated.
functional lines into two parts: a message

I
control program and one or more application
programs (traditionally know as message
processing programs). Message is the Queued Telecommunications Access Method
-traditional name for a unit of information
-that is transferred to or from a remote The queued telecommunications access method
terminal by way of telecommunications (and the telecommunications access method,
lines. A message may consist of one or described following this explanation) can
more segments. A single-segment message is be used to create message control programs
usually composed of two parts: the message for a variety of teleprocessing
header followed by the message text. The applications ranging from message switching
~essage header contains control information or data collection to high volume inquiry
concerning the message, such as the source and transaction processing.
or destination code of the message, the
message priority, and the type of message. To design a message control program for
The message text consists of the actual such applications can be a very difficult
information that is routed to a user at a and time consuming undertaking requiring a
terminal or to a program in the central specialized knowledge of teleprocessing
computing system that is to process it. In equipment and techniques. Therefore, to
general, the information in the message simplify and speed the creation of a
header is used for control and routing message control program, IBM provides a
purposes by a message control program, and special message control language in the
-the information in the message text is form of assembler language macro
processed, if necessary, by an application instructions. These macro instructions can
program. be used to select specific modules from a
comprehensive set of message control and
editing modules. These modules can be
adjusted to meet specific needs and then
MESSAGE CONTROL PROGRAMS linked together to form a complete message
control program. The macro instructions
The main function of a message control relieve the programmer assigned to the
program is to control the transmission of teleprocessing application of the detailed,
information between an application program intricate, and specialized programming that
in the central computing system and I/O is usually required for such an
devices at remote terminals. 'In this application. They are specifically
respect it performs much the same function designed for easy use in describing the
as access method routines that are used to communication line procedures, line
control the transmission of information configurations, buffer lengths, polling
between an ordinary processing program and <terminal interrogation) procedures, and
local I/O devices. For this reason, types of message translation and editing
routines that are provided by IBM for use required for a particular application.
in creating a message control program are Using the message control macro
also called access method routines. There instructions a complete message control
are three sets of such routines: the program for a teleprocessing application
queued telecommunication access method can be described and assembled in days
(QTAM), the telecommunications access rather than months.
method (TCAM), and the basic
telecommunication access-ffiethod (BTAM).
Although they are called access method The message control program serves as an
routines, they differ from other access intermediary between the I/O devices at
methods routines in a number of respects, remote terminals and the application
especially in the way in which they are programs that process messages (Figure 61).
assembled to form a composite set of It enables the terminals to be referred to
routines for controlling the transmission indirectly, in much the same way as local
of I/O information. The access method I/O devices are referred to, using such
routines for an ordinary processing program standard macro instructions as GET, PUT,
are assembled and linked together by data OPEN, and CLOSE. It automatically performs
management routines in the operating system detailed functions, such as sending or
control program as they are requested receiving messages, allocating buff~rs,
through the use of an OPEN macro translating message codes, formatting
instruction. The routines that make up a messages, and checking for errors.

Teleprocessing 87
Message Control Message Processing

Incoming
Messages
from Remote
Locations

Outgoing
Messages
to Remote
Locations

Main Storage Ii11I


Direct Access Storage = D

Figure 61. Simplified Diagram of Message Control Using the Queued TelecOmlmlnication
Access Method

A messa<Je cont:rol program can be system with a teleprocessing job and


executed as a separate task independently thereby improve efficiency, especially
of any application program. As input during periods when message traffic is low.
messages are recEd ved, they are routed
(after translating, checking,. editing,
etc.) to one or more message queues in Telecommunications Access Method
main stora<.:re or direct access storage.
Application programs take them from there The telecommunications access method (TCAM)
as in ordinary processing. When a message is similar to QTAM, but offers a wider
is to be semt to a terminal by an range of device and program support. For
application program, i t is placed on an example, TCAM supports local terminals
output queue in direct access storage. connected directly to the computing system,
(The telecommunications access method as well as remote terminals connected
places messages on a destination queue in through communication lines. For remote
either direct access storage or main terminals, TCAM supports both the
storage.) The message is then sent by the start-stop and binary synchronous methods
message control program to its destination. of data transmission; binary synchronous
In the case! of message swi tclling and data support permits the use of faster terminals
collection applications, a special purpose than are available with QTAM~ In fact,
application program may not be required: with TCAM, a terminal may be an independent
the messagE! control program can route an computing system -- another system/360 or
inbound message directly to an appropriate an IBM 1130.
output queue. A telecommunications job can
be entered into t~he system in the same way The preceding discussion of QTAM applies
as any other job. The job scheduler of the generally to TCAM. However, a TCAM
operating system, therefore, can be used to application program can use either GET and
allocate any I/O device and direct access PUT" or READ and WRITE macro instructions
storage space required for mE~ssage logs and to receive and send messages.
message que~ues. and to prepare and schedule
the job for procE!ssing. A mE~ssage control To take advantage of TCAM facilities,
program, and any application program QTAM application programs can easily be
associated with i.t, can be entered into the converted to TCAM. TCAM facilities
system as separat.e jobs; or t:hey can be include:
combined and ente~red as a single job.
• Online testing of teleprocessing
With MF'I' and MVT operating system terminals and control units.
configurations, more than one job can be • Input/output error recording.
run concurrently. Therefore, other jobs • Program debugging aids.
can share the physical resources of the • Network reconfiguration facilities.

88
The facilities for network program requires access to data or routines
reconfiguration permit great flexibility in stored in local direct access storage. In
controlling the telecommunications network. such applications it is possible to process
The network can be modified by the systm several messages concurrently as separate
operator" by a user at a terminal, or by an tasks. As the processing of one message is
application program. delayed while access is being gained to
direct access storage, another message can
be processed. By processing several
Basic Telecommunications Access Method messages concurrently, the total message
throughput of the system can be
significantly increased. Since many of the
The basic telecommunications access method messages in such applications require
(BTAM) is designed for limited applications identical processing, a single reenterable
that do not require the extensive message program in main storage can be used to
control facilities or QTAM or TCAM, or for perform each of several concurrent tasks,
applications that require special and thereby save main storage space and
facilities not normally found in most program loading time. The general purpose
applications. task management facilities of the MVT
control program are particularly
appropriate to this type of application.
The BTAM facilities provide tools that They allow the system to be used for many
would be required to design and construct high-message-volume applications that would
almost any teleprocessing application. otherwise be impractical without a
These include facilities for creating specially designed control program.
terminal lists and performing the following
operations: Basically the same I/O macro
instructions (OPEN, CLOSE, GET, PUT, READ,
WRITE) are used in a message processing
• Polling terminals. I program (when using QTAM, TCAM or BTAM) as
are used in other application programs.
• Answering. Therefore, application programs can be
designed more or less independently of the
• Receiving messages. devices that are used to transmit data,
whether local or remote. The system can
• Allocating buffers dynamically. make a gradual transition from processing
work entered locally, to processing work
• Addressing terminals. received from remote locations, with a
minimum of disruption.
• Dialing.
• Creating buffer chains.

• Changing the status of terminal lists. Specific Teleprocessing Applications


Provided by IBM
When the basic telecommunications access
method is used, READ and WRITE macro IBM has designed a number of specific
instructions" rather than GET and PUT, are teleprocessing applications and has made
used by an application program to retrieve them available as optional features. These
and send input and output messages .• are applications that are of interest to a
significant number of customers. To date,
they include the following:

MESSAGE PROCESSING PROGRAMS • Remote job entry.


• Conversa tiona 1 remote job entry.
A message processing program is an
application program that processes or • Time sharing .•
otherwise responds to messages received
from remote terminals. In designing the • Graphic job processing.
progr am" all of the f aci li ti es of the
operating system are available including • IBM System/360 - 1130 data transmission
the language translators, service programs, for FORl'RAN.
and the data~ program, and task management
facilities of the system. The processing Except for time sharing, these are
of messages can be performed sequentially applications of the basic
as a series of single tasks or more than telecommunications access method (BTAM).
one message can be processed concurrently. Time sharing is an application of the
In many applications, a message processing telecommunications access method (TCAM).

Teleprocessing 89
Figure 62. IBM 2780 Data Transmission rferminal

REMOTE JOB ENTRY It can also be printed or otherwise


processed by the operating system, or
Remote job entry is an optional feature of cataloged and stored (for later retrieval)
an MFT or MVT operating system. It is a in the operating system library. Data that
type of teleprocessing applica"tion in which is processed by the job can either be
jobs (like those entered into "the system entered along with the job itself or can be
locally) are received from one or more retrieved from the system library. All of
remote locations. The jobs may be entered the operating system facilities that are
via such input de:vices as punched card available to the local programmer, such as
readers and magnetic tape units. These may the language processors, the service
be attached to any of the following work programs, and the data, job and task
stations: management facilities, are also available
to the programmer at the remote location.
• Another IBM System/360. Anything a programmer can specify locally
he can specify at the remote location
• An IBM 1130 Computing system. because the operating system is
specifically designed for use at remote
• An IBM 2770 Data Communica"tion System. locations as well as for local use. The
data cataloging and management facilities
• An IBM 2780 Data Transmission Terminal of the system, for exam~le, enable
(Figure 62). individual programmers to compile, store,
test,- update, recompile, load, and execute
programs within the confines of the
Immediately or on command, output from a operating system without resorting to the
job can either be directed to the terminal use of punched cards, or without specific
from which the job originated, or knowledge of the I/O configuration of the
transmitted to one or more ot;her terminal s. system.

90
Jobs that are received from remote In addition to facilities for job
locations are placed by the remote job preparation, job entry, retrieval of job
entry program into a job input queue in a output, and manipulation of programs and
format acceptable to the job scheduler. data, conversational remote job entry can
From there, the jobs are picked up and provide the terminal user with information
initiated by the initiator/terminator of about the status of his data sets and the
the job scheduler in the same manner as for status of jobs that he has submitted.
local jobs. The remote job entry program There is also a message facility for
is executed by the central computing system two-way communication between terminal
as a separate task, much like a combined users and the operator of the central
reader/interpreter and output writer. computing system.

TIME SHARING OPTION


CONVERSATIONAL REMOTE JOB ENTRY
Like remote job entry, conversational Time sharing is an optional feature of the
remote job entry is an optional feature of operating system with MVT. The Time
an MFT or MVT operating system. It enabl es Sharing Option (TSO> makes the facilities
remote users to enter jobs for batch of the operating system available to
processing, using terminals that resemble programmers at remote terminals to develop,
ordinary office typewriters. Users enter test" and execute programs conveniently,
jobs conversationally, by carrying on a without the job turnaround delays typical
dialog with the central computing system. of batch processing. It gives those who
may not be programmers the use of data
Remote job input consists of programs entry, editing, and retrieval facilities.
and data that the user creates at a It also allows the management of an
keyboard terminal. Typed lines of program installation to dynamically control the use
source statements" data, and job control of the system's resources from a
statements are collected within the system; termina 1 • 1. ..
there is thus no need for keypunching, and
there is no wait for operator handling or In general, a time-sharing system
card reading. Simple error correction differs from a batch processing system in
procedures enable the user to enter data three ways:
correctly and easily. Optional facilities
are available for checking the syntax of 1. A terminal user concurrently shares
FORTRAN and PL/ I statements as they are the resources of a computing system
entered" allowing errors to be corrected with other terminal users.
before the statements are compiled.
2. A terminal user can enter his problem
Because data is transmitted directly statements and other input into the
between the central processor and the system as he develops them, and he
terminal, job turnaround time is greatly receives results quickly.
reduced. To submit a job for execution,
the user just selects the program, data, 3. A terminal user is constantly aware of
and job control statements that are to be the progress of his job. He is
entered in the job stream. When the job is prompted for information the system
completed" the user can examine the output needs to execute his job, he quickly
at any terminal. receives responses to his requests for
action, and he is notified immediately
Remotely submitted jobs are initiated, of errors the system detects, so that
executed, and terminated in the same manner he can take corrective action at once.
as jobs that are submitted locally. A
remote user thus has available the same TSO is not necessarily intended to be
batch processing facilities that are used as a dedicated time-sharing system,
available to a local user. For example, a that is, a system on which only
remote user can enter data from a terminal time-sharing operations take place. Time
and have it stored at the central sharing, or foreground operations, can take
installation for use at a later date. place concurrently with batch or background
Stored data can be retrieved easily for operations.. If there are periods when TSO
online display and modification, and can be is not needed in the system, time sharing
used as job input to the operating system. operations can be stopped, and the system
A user can update stored data by inserting, will then process background jobs in the
replacing, deleting, or changing single usual way with MVT and TCAM.
typed lines or groups of lines. stored
data can be shared by many users, but is The Telecommunications Access Method, or
protected against unauthorized access or TCAM, handles all I/O between remote
mod if ication,. terminals and jobs in the system. TCAM

Teleprocessing 91
distinguishes between time sharing system Control
applications, with emphasis on quick
response lback to the calling terminal, and Once an installation has generated a system
other teleprocessing applications, where that includes TSO, time sharing operations
emphasis may be on routing and formatting can be started and stoFped at any time by
of messag4es between one remote terminal and the system console operator. The operator
others. Both types of applications can can specify how many regions of main
operate simultaneously in the same system. storage are to be assigned to time sharing
users ..
An important feature of TSO is the
dynamic allocation of data sets for time Each foreground main storage region
sharing U:3ers,. Dynamic allocation allows handles many active foreground jobs,
data sets to be created, deleted, although only one job is actually in the
concatenated, or separated without region at any moment in time. ,A foreground
allocation at the beginning of the job job is assigned to a main storage region
step. A llser can thus defer definition of and has access to the system's resources
his data sets until he requires them. for a short period of time called a time
slice. At the end of the job's time slice,
or if the job enters the wait state for
Working a1:. the 'rerminal terminal I/O, the main storage image of the
job (that is, programs, work areas, and
A remote terminal has a keyboard for associated control blocks> is stored on a
entering input and a typewriter-like direct access device and another job is
printer or a display screen for output. brought into the same region of main
Devices that can be used as t:erminals storage and given a time slice. The
include: process of copying job images back and
forth between main and auxiliary storage is
• IBM 2741 Communication TE~rminal. called swapping. Writing an image to
• IBM 1050 Data communicati.on System. axuiliary storage is a swap out; reading
• IBM 2260 Display Station. one into main storage is a swap in.
• IBM 2265 Display Station.
• AT&T ~reletypes Model 33 and 35 KSR. A time slice must be long enough to
perform a meaningful amount of processing,
During a typical session, the user but not so long that the time between
enters a series of commands t~o define and successive slices prevents quick response
perform his work. The commands provided to conversational users. A't the same time,
with the system handle data a.nd program time slices cannot be so short and frequent
entry, program invocation in either the that system overhead for swapping and task
foreground or the background, program switching becomes excessive. Balancing
testing, data management, and session and these factors depends on the number and
system control. IBM Program Products are type of jobs the system is processing. A
available to support problem solving, data solution for one job mix is not necessarily
manipulation, and text formatting, to suitable for another job mix. The TSO time
provide tE~rmina l-oriented language sharing algorithms -- the formulas used to
processors, and to make these processors calculate the division of time among jobs
more convE~nient to use from t~he terminal. -- are based on several variables, most of
which can be specified by the installation
Commands specifically tailored to an to tune the system for their particular
installation's needs can be written and workload.
added to t:he command language or used to
replace Il~-supplied commands. Any load The management of an ins·tallation can
module can be established as a command and shift most of the responsibility for
executed simply by keying in the program controlling the time sharing system from
name at the terminal. Load modules not the operator at the system console to users
defined as commands can be invoked in the at remote terminals, called control
foreground with the CALL command. terminals. A control terminal user can
alter the system configuration to meet
The terminal user can also submit jobs changing work loads. For instance, he can
to the background job stream. Commands assign an extra region of main storage to
similar to those used for the time sharing operations during peak
Conversational Remote Job Ent,ry facility periods, and then release i-t to be used for
are used t:o create job control language batch operations during slack periods.
describinCJ the :job, and to submit it to the Such changes require no shutdown of TSO and
batch job stream. The user can request are not noticed by the users of other
notification of job completion at his regions. Even the starting and stopping of
terminal, and can have job output directed TSO operations is accomplished without
either to his terminal or to a device at shutting down the system or affecting
the comput:er sit:e. background operations.

92
GRAPHIC JOB PROCESSING The graphic job processor enables the
user to:
Graphic job processing is an optional
feature of an MFT or MVT operating system.
The graphic job processor is a program that • Identify himse I f to the system (LOG
enables users at remote IBM 2250 Display ON).
Units (Figure 63) to quickly and
conveniently define and start jobs that are
processed by the operating system. The • Define a single job step (SPECIFY JOB
display unit may be used to communicate STEP).
directly with the System/360, or
communicate with the system/360 by way of
an IBM 1130 Computing System. • Identify data to be used in a job step
(DESCRIBE DATA).
A user of the graphic job processor need
not be familiar with the job control
language of the operating system. Instead • Start the processing of a job (BEGIN
of a user defining a job in the form of job JOB).
control statements, information about the
job is elicited from him by means of a
series of displays on the screen of the • Execute a cataloged procedure (BEGIN
TV-like 2250 graphic display tube. A PROCEDURE).
sample of such a display is shown in Figure
64,. The user responds to the displays by
entering requested information and • Communicate with the system operator
selecting options using an alphameric (WRITE MESSAGE).
keyboard, a light pen, or both. The
graphic job processor then converts the
information about the job into job control • Enter SO-character data records, actual
statements that are passed to the operating job control statements, and other
system to initiate the job. program control statements (ENTER
DATA) •

DESCRIBE DATA:
• Cancel a job currently being defined
DATA NAME I~L~E~N~S~SA~V~E~____________________ (CANCEL JOB).

DATA REFERENCE IwO~U~T~P~UT~-~______~ • Complete interaction with the 2250 and


INDICATE STATUS: CATALOGED OLD prepare the 2250 for the next user (LOG
OFF) •
MOD SHARE NEW

::::::ADDITIONAL INFORMATION WILL BE REQUESTED FOR OTHER THAN:::::: • Repeat previously completed operations
CATALOGED STATUS (RECALL).

OTHER • Name an 1130 program that is to be run


in conjunction with a program in the
PASS DELETE
IBM System/360 Computing System
CHOOSE DISPOSITION: KEEP
(SPECIFY 1130 PROGRAM).
CATLG PRINT PUNCH

The last operation applies only when an


1130 Computing System is used.

A system/360 installation allows up to


15 users at separate display units to
process jobs independently of one another.

Figure 63. A DESCRIBE DATA Display For the


Graphic Job Processor

Teleprocessing 93
Figure 64. Using a Graphic Display Program on a 2250

94
Communication and control between each user SYSTEM/360-1130 DATA TRANSMISSION FOR
and the operating system is established and FORTRAN
maintained by the graphic job processor.
The processor responds to a user by A set of optional subroutines, provided for
displaying messages on the 2250 screen. A FORTRAN IV programmers, can be used to
printed record of the job control transmit data between a program being
operations performed by a user at the executed under control of the System/360
display unit can be provided upon request. Operating System, and a program being
executed under control of the Disk Monitor
System of the IBM 1130 Computing System.
A job that is defined at a display unit The same subroutines can also be called
can be placed in a job input queue for using the assembler language.
batch processing (independently of the
graphic job processor) using main storage The data transmission subroutines make
space and other resources not assigned to it possible for an 1130 program to use the
the graphic job processor. This type of high speed computing ability and large
job is often called a background job.. storage capacity of the System/360. Thus,
Alternatively, a foreground job can be they can be used to increase the
defined and executed immediately using main flexibility and efficiency of an 1130
storage and other resources assigned to the application.
graphic job processor.
Separate sets of transmission
subroutines are available for the
A foreground job would normally result system/360 and the 1130. These routines
in the execution of a graphic display enable a programmer to transmit data from
program that would interact with the user one system to the other without a detailed
at the display console, as shown in Figure knowledge of telecommunications
64. Thus, the graphic job processor can programming.
enable engineers, designers, and other
non-programmers to execute and use graphic The data transmission subroutines enable
display programs for a variety of graphic a programmer using either system to:
display applications such as optical design
(Figure 65) auto design, and civil • Initialize the communication lines.
engineering applications.
• Transmit and receive data via the
lines.

• Test the status of a previously


requested transmit or receive
operation.

• Initiate routines in the other system.

• Terminate the communication link


between the System/360 and 1130 data
transmission programs.

In addition, System/360 transmission


subroutines enable the programmer to
terminate the execution of an 1130 mainline
program. Conversion subroutines are
included in each set to reconcile
differences in the FORTRAN data formats of
the system/360 and the 1130. These
subroutines can be called only by a
system/360 program. They perform the
following conversions:

• 1130 integer to System/360 integer, and


vice versa.

• 1130 standard-precision real numbers to


System/360 standard-length real
numbers, and vice versa.

• 1130 extended precision real number to


Figure 65,. A Typical Optical Design System/360 double-precision real
Application Display numbers and vice versa.

Teleprocessing 95
Page of GC28-6534-3, Revised January 15, 1972, By TNL: GN28-2512

PART 3: BIBLI(x;RAPHY

Part 3, the bibliography, contains the


titles of all the publications referenced
in this manual.

Part 3: Bibliography 97
Page of GC28·-6534-3, Revised January 15, 1972, By TNL: GN28-2512

I IBM System/360: 8. Principles of Operation, GA22-6821

1. AssemblE~r Lanquage, GC28-6514 9. Supervisor Services and Macro


Instructions, GC28-6646
IBM System/360 Operating SysteI!!:
10. Data Management Services, GC26-3746
2. Advanced Checkpoint/Restart Planning
Guide, GC28-6708 11. System Control Blocks, GC28-6628

3.} Job Control Language Reference, 12. system Generation, GC28-7554


4. GC28-6704
13. Data Management for System
5. Linkage EditOlC and Loader" GC28- 6538 Programmers, GC28-6550

6. MFT Guide, GC:28-6939 14. TSO Planning Guide, GC28-6698


7. MVT Guide, GC:28-6720 15. Utilities, GC28-6586

98
Page of GC28-6534-3, Revised January 15, 1972, By TNL: GN28-2512

Index

Indexes to systems reference library Basic Operating System (BOS) 50


manuals are consolidated in the publication Basic Partitioned Access Method (BPAM) 73
IBM System/360 Operating system: systems Basic Programming Support (BPS) 50
Reference Library Master Index, GC28-6644. Basic Sequential Access Method (BSAM) 73
For additional information about any Basic Telecommunications Access Method
subject listed below, refer to other (BTAM) 73,87,89
publications listed for the same subject in batched job processing
the Master Index. contrasted with tiroe sharing 91
description 22
BDAM (see Basic Direct Access Method)
access methods BISAM (see Basic Indexed Sequential Access
defining in a job 73-74 Method)
provided by IBM 72-73 block, data 68
using to create data sets 73 BOS (see Basic Operating System)
access method routines BPAM (see Basic Partitioned Access Method)
in tr.lFT 52 BPS (see Basic Programming Support)
in MVT 53 BSAM (see Basic Sequential Access Method)
airline reservation systems 28 BTAM (see Basic Telecommunications Access
ALGOL language 47 Method)
ALGOL compiler 47
allocation 42
Alternate Path Retry (APR) 79 CAl (see computer assisted instruction
alternative modules 34 system)
American National Standard COBOL 46-47,48 catalog' 69-70
applications cataloged procedures
growth in 19 defining 73-74
of operating systems 27 description 35
online direct access 27-29 library of 62
sequential, offline 27 overriding 62
systerr, 11 cataloging 35,73-74
application program central processing unit (CPU)
description 42 as a hardware resource 12
message processing 87 communication with another CPU 81
applications programmer 13 main storage configurations 50
APR (see Alternate Path Retry) CCH (see Channel Check Handler)
assembler 44 channel 12
assembler language 44 Channel Check Handler (CCH) 79
audio response device 86 channel inboard error record, used with
automatic interruption 41 CCH 79
automatic restart 79 channel-to-channel adapter 81
automatic transition checkpoint 78-79
benefits for long-running jobs 26 checkpoint restart 78-79
by the control program 24 checkpoint/restart facility 78-79
auxiliary computing system 23 class (see job class, output class)
auxiliary storage 24 COBOL compiler 46
availability COBOL language
as a performance factor 14 features of 46
in System/360 33 in IBM 7090/7094 Operating System 25
with multiprocessing 81 COBOL library 47
CODASYL 46
command language 92
background job communication line 85
in teleprocessing 95 compatibility
in time sharing 91 as a growth factor 39
Basic Direct Access Method (EDAM) 73 of MFT, MVT 50
basic fixed area computer assisted instruction (CAl)
in MFT 52 system 86
in IvlV'I' 53 concurrent I/O 17
basic monitor 25 concurrent processing
Basic FORTRAN Language 45 of I/O 17
Basic Indexed sequential Access Method of jobs 62
(BISAM) 73 of job steps 51-54

Index 99
Page of GC28:-6534-' 3, Revised .January 15, 1972, By TNL: GN28-2512

of job support tasks 51-54,61 among programmers 35


of tasks 5:1-54 among tasks 56
configurations between CPUs 81
control program 50 in early systems 18
CPU/main :storage 50 DD (data definition) statement 61
control prog:r-am DDR (see Dynamic Device Reconfiguration)
configura-tions 50 dedication 91
in early operating systems 21,25 default options 35
in system library 24 deferred restart 79
initialization 35,103 defining and generating the system 34
MFT configuration of 51-52 destination code 88
MVT configuration of 53-54 determining requirements 33
controlterminal 92 development of operating systems
control unit 82 first stage: component
controlling us e of the system 36 development 15-19
conversational remote job entry (CRJE) second stage: integration and automatic
compatibility with TSO 92 operation 19- 29
description 92 third stage: a union of
CPU (see central processing uni 1:) techniques 29,30
CPU time (see also time sharing; time device independence
slicing) 12 by deferring selection 74
CRJE (see conversational remote job entry) description 39
devices
defining in a job 73-74
data direct access 72
as an information resource J_3 job input 22
block 68,,99 job output 23
defining in a job 73-74 sequential access 72
master 27 utility 23
organization 6:8 direct access storage devices
record 6:3 in early operating systems 27
storing and retrieving 72-73 in online direct access applications 28
transaction data 27 shared 83
data collection direct access storage space
description 85 as a hardware resource 12
used by SMF rou·tines 57 direct control feature 83
data definition (DO) statement 61 directory 70,77
data file (see also data set) Disk Operating System (DOS) 50
common 23 DOS (see Disk Operating System)
description 69 Dynamic allocation
data management in MFT 55
(see information management) in MVT 55,66
data organiza.tion 68 dynamic area
data processing installation in MFT 53
job responsibilities within 13 in MVT 54
productivity factors in 13,1.4 dynamic data set definition 92
data processing resource Dynamic Device Reconfiguration (DOR) 79
effective use of 13,35
hardware 12
human 13
information 13 emulator, integrated 48
investing 33 Error Recovery Procedures (ERPs) 79
management. of '57 ERPs (see Error Recovery Procedures)
queue of 57 establishing priorities 36
sharing of 18,55,56 evolution of operating systems
supervisoJc control 42 first stage: component
data processing task (see task) development 15-19
data set (seE~ also data fil e) second stage: integration and automatic
catalog 69 operation 19-29
defined dynamica.lly 92 third stage: a union of
defining in a job 73-74 techniques 29,30
description 69 execute (EXEC) control statement
locating 72 in job definition 61
partitioned 72,,77 introduced 22
sharing 35,63 executive program (see control program)
data set utility programs 48 exit routines, used by SMF routines 58
data sharing external storage (see auxiliary storage)
among jobs 62

1.00
Page of GC28-6534-3, Revised January 15, 1972, By TNL: GN28-2512

facility 14,33 IBM 2361 Core Storage


fetch (see program fetch) description 50
file (see data file, data set) allocation of 61
foreground job IBM 2780 Data Transmission Terminal 9~
in teleprocessing 95 IBM 7090/7094 (IBSYS) System 25,26
in time sharing 91 IBM 7770 Audio Response Unit 86
FORTRAN IV language IBSYS (see IBM7090/7094 (IBSYS) Systew)
in IBM 7090/7094 Operating System 25 idle time
FORTRAN compiler 45 between jobs 19
FORTRAN language due to I/O operations 17
compilation of 45 reduction of 22
IBM system/360 - 1130 data transmission when processing many small jobs 18
for 95 independent utility programs 48
in early systems 16 information management 67-74
FORTRAN library 45 information resources 13
initialize (IPL) 35
initiation
general purpose system 33-36 of jobs 64
generalized programs of job steps (MFT,MVT) 52-53,64-66
sharing of 18 of tasks (MFT,MVT) 57,64-66
sort/merge 47 of tasks within a job step (MVT) 58
generalized sort/merge programs initiator/terminator
as a subsystem 24 in MFT, MVT 64-65
function of 47 in remote processing 91
in system library 24 input/output channel time 12
generation data group 72 input/output control system (IOCS)
graphic display program 93-95 development of 17-18
graphic job processing 93 included in nucleus 25
graphic programming services 48 in system library 24
subsystem 24
input/output devices 12
input stream (see job input stream)
hardware resources 12 input work queue 64
header (see message header) inquiry and transaction processing 86
nhuman-oriented n languages 16 instructi on 13
human resources 13 interruption 41
interruption network 41
integrated emulator program 48
I/O devices IOCS (see input/output control system)
common 23 IPL (see initialize)
defining 39,74
operator assignment of 22 jOb
pooling of 24 background 91,95
I/O operations 17 batched 22
IBJOB Processor Subsystem 25 class 53
IBM System/360 - 1130 data transmission for control statements 22
.r'ORTRAN 95 defining to the system 22,61
IBM System/360 Operating System foreground 91,95
applications 19,27 input device 22
compatioility 39 input stream 22,61
device independence 39 management of 61-66
generation of 34 non-stop processing of 21
growth in performance 38 output stream 51,61
initialization of 35 priority 51-52
main storage configurations 50 scheduler 43,52,57
modular construction 34,37 single-step 24
multiple-task management 39 stacked 22
objectives of 30-40 job batch
organization of 41-53 processing 22
standards 39 remote entry 85,91
support of multiprocessing 82-84 transcribing 23
, support of teleprocessing 85-95 job class
IBM 1401 Data Processing System 23 in MFT 50,52,65
IBM 2250 Display Unit in MVT 65-66
graphic job processing with 93-95 JOB control statement
graphic services 48 introduced 22
use with FOR~~AN 45 in job definition 61
IBM 2260 Display station 48,49 job control statements 22

Index 101
Page of GC28-6534-3, Revised ~January 15, 1972, By TNL: GN28-2512

job definit:ion (see also job) 61


job input device 22 machine malfunction, with recovery
job input stream support 79
in batch procE~ssing 22 "machine oriented" languages 15
in ~1F'T, MVT 64 macro instruction 45
in non-stop processing 6.1 macro linrary 45
job management 61-66 main storage
job mix, controlling 67 as a hardware resource 12
job output devicE:! 23 basic fixed area 51-53
job output stream 52,61 configuration of 50
job priorit:y dynamic area 51-53
in MFT 51- 52,65- 66 link pack area 53
in MVT 53,65--66 master scheduler region 53
specifying 59,61,65 organization,-with MFT 51
job processing organization, with MVT 53
concurrEmt 62 partitions 52
graphic 93-95 shared 82
multiplE~ 62-63 main storage partition 52
non-stop 21,61,62 main storage region
job queue I(see input work queue) description 53
job scheduler specifying size of 66
general function of 43,61 temporary assignment of 59
in ~WT 57 1,64-65 time sharing 92
in MVT 57,,64- 65 management
job segment: (see job step) of an installation 13,33'-36
job step of information 67-74
concurrE~nt processing of 52-54 of jobs 61-66
in J.vlFT 52 of programs 75-79
in MVT 53 of resources 58
initiation of 52- 53, 62 of tasks 55-60
introduc:ed 22 master data 27
transition 2LJ,25 master data file
job step rE!start (see step restart) in operating systems 27
job stream (see job input stream .. job in online, direct access systems 28
output stream) master file (see master data file)
job support~ tasks master program (see control program)
concurrent processing of 52-54,61,63-64 master scheduler
in MFT 52 function of 43,61
in MVT 53 in MFT 57,64-65
job turnaround (see turnarowld time) in MVT 57,64-65
master scheduler region (MVT) 54
MCR (see Machine Check Handler)
Language translators member 72
development of 15,16 message
in system library 24 header 87
subsystem 24 in teleprocessing 86,87
supplied by IBM 43-47 operator 25
terminal. oriented 92 text 89
large capac:ity st~orage (see IBM 2361 Core message control programs 87
Storage) message header 87
LCS (see IBM 2361. Core Storaqe) message text 87
Library message processing programs 87-89
FORTRAN 45 message queue 88
load module 77 message swiching 85
object module 77 MFT control program
procedure 62 compatability with MVT 50
program 72-70 CPU/main storage configurations 50
reference system 69-72 described 51-52
source modul e 77 organization of main storage 52
limit priority, defined 105 with RMS 79
link pack area 53 Model 65 Multiprocessing system 82-83
linkage editor 43,47,76 modular construction
load module 76 for flexibility and growth 37
loader 47 in program development "75-76
in "tailoring" a system 34
module
Ma.chine Check Handler (MCH) 79 alternative 34
machine language 15,16 general description 34

102
Page of GC28-6534-3, Revised January 15, 1972, By TNL: GN28-2512

load 76 communication with control program 22


object 44,76 control during operation 35
optional 34 initialization (IPL) 35
program 75 miscast role in early systerrs 19
required 34 operator message 25
source 76 optional modules 34
monitor (see control program) organization
multiple-job processing 62 of data 68
multiple-task management of IBM System/360 Operating
advantages of 58 System 41-54
introduced 39 of main storage, with MFT 52
multiple-task system 56 of main storage, with MVT 53
multiprocessing output class 64
CPU/main storage configurations 50 output stream (see job output stream)
detailed description 81-84 output work queue 64
mode 81-82 output writer 64-65
in MFT 52,53
in ~lV'I' 53, 54
with shared direct access devices 82 PAM (see partitioned access method)
with shared main storage 82-83 partition
multisystem mode 82-83 of a data set 72,79
MVT control program of main storage (MFT) 52
compatibility with MFT 50 partitioned access method (PAM) 77
CPU/main storage configurations 50 partitioned data set 72,77
described 53,54 pa~titioned data set member (see member)
organization of main storage 53 partitioned mode 83
time sharing option (TSO) 91 patching 78
with Model 65 Multiprocessing 82-83 PDS (see partitioned data set, program
with RMS 79 library)
performance
NIP (see nucleus initialization program) factors 14,33
non-stop job processing 21,61,62 improvement through modular
nucleus construction 38
in early systems 25 peripheral operations 63
secondary (MFT) 52 PL/l compiler 47
PL/1 language 47
PL/1 library 47
object module 44,76 priority
object program 16,44 establishing 36
offline 64 of jobs 52,53
online 27,28 of tasks (MFT, MVT) 57
online, direct access applications 27-29 specifying for jobs 59,61,66
online problem solving (see also time privileged instruction 42
sharing) 85 problem solving
operating system after language translators 16
applications 27 before language translators- 15
benefits for long-running jobs 26 problem state 41
controlling operation of 35 problem-state program 41,42
controlling use of 36 procedure library 62
evolution of 15-30 processing program 43
generation of 34 productivity 14
growth of 38 program
IBM 7090/7094 (IBSYS) 25,26 application 42,98
in the second stage 21 design of 76
in the third stage 29,30 development 75-79
initialization (IPL) of 35 dynamic loading of 78
introduced 13 library (PDS) 72,77
major functions of 51-95 management of 75-79
modular construction 34,37,75-76 message processing 89
orderly growth 37 module 75
SUbsystems 24,25 object 16,44
typical example of 21 problem state 41,42
operations staff processing 43
as a human resource 13 reenterable 56
in maintaining high productivity 35 sharing of 18,35,55,56
operator program fetch 47
action with DDR routine 79 program library 72-78,109
as a human resource 13 program loader 25

Index 103
Page of GC28-6534-3, Revised January 15,. 1972, By 'INL: GN28-2512

program products 48 report program generatcr (RPG)


prograrr; status word (PSW) 41 features of 47
programmer 13 in system library 24
programming aids required modules 34
development of 15-18 resource, data processing (see data
in system library 24 processing resource)
programming language 6 response time
programming language I (see PL/I) as a performance factor 1.4,33
Psw (see program status word) in online systems 29
restart
automatic 79
QISAM (see Queued Indexed sequential Access checkpoint 78,79
Ivlethod) deferred 79
QSAM (see Queued Sequential Access Method) step 81
QTAM (see >dueued Telecommunica1:ions Access RJE (see remote job entry)
Nethod) RMS (see recovery management support)
queue rollout/rollin 59
input 6'LJ RPG (see report program generator)
message 88
of input data 73
of tasks 57 "satellite" computer 81
of output data 73 secondary nucleus 53
output work 64 secondary storage (see auxiliary storage)
Queued Indexed sequential Access Bethod segment, record 68
(QISAfJl) 73 selecting options
Queued sequential Access Method (QSAM) 73 at initialization 35
Queued 'l'elecornrnunications Access Method at system generation 34,35
(QTAlvl) 73,,87- 88 sequential access application 27
sequential I/O 17
RAS (see Reliability, Availability, sequential processing
Serviceability) of I/O operations 17
reader/interpreter sequential, offline applications 27
in t-'1FT, :MVT 64 -6 5 SER (see System Environment Recording)
in remote processing 91 service programs 47,48
reenter able program 55 service request (see supervisor call (SVC)
record 68 instruction) 25
recovery management support (~1S) SHARE, formation of 18
description 79 sharing
routines used by ffi.iS of data 18,35,56
APR 79 of programs 18,35,55,56
CCH 79 of resources 55
DDR 79 single-task system 55
ERPs 79 S~~ (see System Management Facilities)
MCH 79 sort/merge program 47
SER 79 source module 75
used with ~...FT control program 79 source program 16
used with multiprocessing 82 stacked job processing (see batched JOD
used with MV'I control prog'ram 79 processing)
types of R¥~ routines 79 standards 39
reenterable code 55-56 step restart 81
region (see main storage region) storage protection - 42
Reliability, Availability, Serviceability storing and retrieving data 72-73
(RAS). subpool (also see main storage region)
description 79 creation 59
machine malfunction 79 passed to other tasks 59
support of RMS 79 shared by other tasks 59
routines used by RAS subprogram
DDR 79 in COBOL 47
ERPs 79 in FORTRAN 45
MCH 79 in PL/I 47
SER 79 subsystems
des'cription 57,92 SMF 57 introduced 24
relocatability 78 IBJOB Processor subsystem 25
remote job 4:=ntry (RJE) 91 supervisor
(see also conversational remote job function 41
entry) in MFT, MVT 57-59
remote job 1;>rocessing (see remote job supervisor call (SVC) instruction 41
entry)

104
Page of GC28-6534-3, Revised January 15. 1972, By TNL: GN28-2512

supervisor state 41 message 87-88


supervisor state programs 41 message switching 85
supervisory routines online problem solving 86
in nucleus 25 remote job processing 85
resident and non-resident 42 time shari ng 85
SVC (see. supervisor call instruction) temporary intermediate storage 27
swap 92 terminal (see also control terminal)
system application 11 TESTRAN 45
System Environment Recording (SER), used throughput 14,33
with RMS 79 time sharing 85-86,91
system generation 34 Time Sharing Option (TSO) 91-92
system generation language 34 time slicing
system initialization (see initialize) description 57,92
system library 24 used with SMF 57
System Management Facilities TOS (see Tape Operating system)
description 57 transaction data
data collection routines 57 in operating systems 27
exit routines 58 in online, direct access systems 28
used with time slicing 57 transactions
system monitor (see control program) concurrent processing of 29
system programmer 13 response to 29
system supervisor (see supervisor) transitional monitor 25
system utility programs 48 translator programs 15,16
TSO (see Time Sharing Option)
turnaround time 14,33,64
tailoring the system 34 two-channel switch 82
Tape Operating System (TOS) 49
tasks
concurrent processing of 51-54,58-59
definition 39 user-written programs 24
in online direct access systems 29 utility device 23
in MF'l' 51- 52 utility programs
in MVT 53-54 functions of 48
in the operating system 41 in system library 24
multiple-task system 55
queue 57
single-task system 56 volume
task management 55-59 defini tion 69
TCAM (see Telecommunications Access Method) label 70
Telecommunications Access Method (TCAM) table of contents (VTOC) 70
description 73,88-89 VTOC (see volume table of contents)
use in time sharing 89-91
teleprocessing
applications provided by IBM 89 I workqueue (see input work queue, output
data collection 85 work queue)
general applications 85,86 work station (see terminal)
inquiry and transaction processing 86 writer, output 64-65

Index 105
Technical Newsletter File No. S360-20

Base Publ. No. GC28-6534- 3

This Newsletter No. GN28-2512

Date: January 15, 1972

Previous Newsletter Nos. None

IBM System/360 Operating System:


Introduction
© IBM Corp. 1964,1966,1969,1971

This Technical Newsletter, a part of release 21 of IBM System/360


Operating System, provides replacement pages for the subject
publication. These replacement pages remain in effect for
subsequent releases unless specifically altered. Pages to be
inserted and/or removed are:

Cover-3
5-6
43-50
53,54
61,62
97-126 (Part 3 deleted>

A change to the text or a small change to an illustration is


indicated by a vertical line to the left of the. change.

Summary of Amendments

This Technical Newsletter deletes COBOL F from the list of COBOL


compilers, and adds the System/370 Model 195 CPU to the list of
configurations.

Note: Please file this cover letter at the back of the manual to
provide a record of changes.

IBM Corporation, Programming Systems Publications, P.O. Box 390, Poughkeepsie, N.Y. 12602

PR INTED IN U. S. A.
READER'S COMMENT FORM

IBM System/360 Operating System Order No. GC28-6534-3


I ntroducti on

Please use this form to express your opinion of this publication. We are interested in your
comments about its technical accuracy, organization, and completeness. All suggestions
and comments become the property of IBM.

Please do not use this form to request technical information or additional copies of publications.
All such requests should be directed to your IBM representative or to the IBM Branch Office
serving your locality.

• Please indicate your occupation:

• How did you use this publication?


D Frequently for reference in my worke
D As an introduction to the subject.
D As a textbook in a course.
D For specific information on one or two subjects.

• Comments {Please include page numbers and give examples.}:

• Thank you for your comments. No postage necessary if mai led in the U. S.A.
o

0;
GC28-6534-3

YOUR COMMENTS, PLEASE. " .


()
This manual is part of a library that serves as a reference source for systems analysts, s.
programmers and opera.tors of mM systems. Your answers to the questions on the back
of this form, tOI~ether 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. All comments and suggestions become the property of mM.

Note: Please direct any requests for copies of publications, or for assistance in using your
IBM system, to your mM representative or to the mM branch office serving your locality.

Fold Fold

FIRST C L A s s Q
PERMIT NO. 81
POUGHKEEPSIE, N. Y •

I BUSINESS REPLY MAIL


=

~_O_PO_S_T_A_G_E_S_T.AMP NECESSARY IF MAILED IN THE UNITED STATES


-
POSTAGE WILL BE PAID BY •••
--
=

=
IBM Corporation
=
P.O. Box 390 =
Poughkeepsie, N.Y. 12602

~
Attention: Programming Systems Publications oa...
c
Departmen1t DS8
&.
o
::J

Fold Fold

International Business Machines CorporBtilln


Data Processing Division
1133 Westchester Avenu'El, White Plains, New York 10604
[U.S.A. only]
~/;~

IBM World TraJ,e Corp'li~ation


821 UniteD. Nations Plaza., New York, New York 10017
[International]

You might also like