Systems Reference Library: OS Release 21
Systems Reference Library: OS Release 21
S360-20
Order No. GC28-6534-3 OS
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
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
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
4f4f4f4f~
Mt Mt Mt Mt 4JI
Bookkeeping System - Pencil and Paper
~~~~81
~~~~w Accounting with Key"Driven Machines
~~~~~
Scientific Problem Solving with Desk Calculator
Introduction 11
Hardware Resources
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.
Introduction 13
Performanc:e AVAILABILITY
[ _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
~====illl
Data Proc!KIure
Formulation
__
~
~.
_ _ Machine
L,","...
II . . . ;;;
...
Results
Pro,"""". ~.
~====illl
Data • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
Mathematician Programmers Computing System
Field Artillery
Trajectory or
mystems Analyst)
.. -..
Machine
Language
Program
~~~ ..
Results
, It Data
Mathematician
•
Source
Program
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
Subroutine Sharing.
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
Time Saved
25%
66-2/3% Idle Time I
--=-3-1/3% Running Time _ --± _
50% Running Time
Time Time
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
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.
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
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.
$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
IBJOB
Subsystem
Monitor
Restart ]
Program
Installation
Programs
~ ~
[~ ORTRANIV
ompiler
COBOL
Compiler
Macro
Assembly
Program
~
Relocatable
IBJOB Subroutines
~
" Loader Including
IOCS
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.
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.
·30
PART 2: THE IBM SYSTEM/360
OPERATING SYSTEM
---- ---- --
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
_':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
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.
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
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)
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.
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.
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
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
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,
46
Page of GC28-6534-3, Revised January 15, 1972, By TNL: GN28-2512
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.
48
Figure 34. IBM 2260 Display stati.on, With and Wit.ho\iit Alphameric Keyboard
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)
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.
, 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
Figure 39. Concurrent Processing, by an MVT Control Program, of Job Steps, Job Support
Tasks, and Tasks Within Job steps
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
Resource Sharing
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
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.
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
'-------'
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.
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
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.
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
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
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~~ .... ::"<::: ___ _
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
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
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.
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.
~r===ll
modules: source modules, object, modules,
and load modules. Each of these! represents
a different stage in the development of a
program.
~
Problem
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 ..
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:
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 •.
Central Central
Processing Processing
Unit Unit
Task 1
Two Channel
Channels Switch Channels
Task 2
Task 3
Task 4
Up to Eight Volumes
---------... Time
CPU - A Performing Task •
Multiprocessing 83
Teleprocessing
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.
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
Figure 61. Simplified Diagram of Message Control Using the Queued TelecOmlmlnication
Access Method
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.
Teleprocessing 89
Figure 62. IBM 2780 Data Transmission rferminal
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.
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).
::::::ADDITIONAL INFORMATION WILL BE REQUESTED FOR OTHER THAN:::::: • Repeat previously completed operations
CATALOGED STATUS (RECALL).
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.
Teleprocessing 95
Page of GC28-6534-3, Revised January 15, 1972, By TNL: GN28-2512
PART 3: BIBLI(x;RAPHY
Part 3: Bibliography 97
Page of GC28·-6534-3, Revised January 15, 1972, By TNL: GN28-2512
98
Page of GC28-6534-3, Revised January 15, 1972, By TNL: GN28-2512
Index
Index 99
Page of GC28:-6534-' 3, Revised .January 15, 1972, By TNL: GN28-2512
1.00
Page of GC28-6534-3, Revised January 15, 1972, By TNL: GN28-2512
Index 101
Page of GC28-6534-3, Revised ~January 15, 1972, By TNL: GN28-2512
102
Page of GC28-6534-3, Revised January 15, 1972, By TNL: GN28-2512
Index 103
Page of GC28-6534-3, Revised January 15,. 1972, By 'INL: GN28-2512
104
Page of GC28-6534-3, Revised January 15. 1972, By TNL: GN28-2512
Index 105
Technical Newsletter File No. S360-20
Cover-3
5-6
43-50
53,54
61,62
97-126 (Part 3 deleted>
Summary of Amendments
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
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.
• Thank you for your comments. No postage necessary if mai led in the U. S.A.
o
0;
GC28-6534-3
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 •
=
IBM Corporation
=
P.O. Box 390 =
Poughkeepsie, N.Y. 12602
~
Attention: Programming Systems Publications oa...
c
Departmen1t DS8
&.
o
::J
Fold Fold