Page 16 - DCAP403_Operating System
P. 16
Unit 1: Introduction to Operating System
in the form of spooling operating systems, such as the HASP (Houston Automatic Spooling) Notes
system that accompanied the IBM OS/360 system. These systems worked by introducing two
new systems programs, a system reader to move input jobs from cards to disk, and a system
writer to move job output from disk to printer, tape, or cards. Operation of spooling system was,
as before, transparent to the computer user who perceived input as coming directly from the
cards and output going directly to the printer.
The idea of taking fuller advantage of the computer’s data channel I/O capabilities continued to
develop. That is, designers recognised that I/O needed only to be initiated by a CPU instruction –
the actual I/O data transmission could take place under control of separate and asynchronously
operating channel program. Thus, by switching control of the CPU between the currently
executing user program, the system reader program, and the system writer program, it was
possible to keep the slower mechanical I/O device running and minimizes the amount of time
the CPU spent waiting for I/O completion. The net result was an increase in system throughput
and resource utilisation, to the benefit of both user and providers of computer services.
This concurrent operation of three programs (more properly, apparent concurrent operation,
since systems had only one CPU, and could, therefore execute just one instruction at a time)
required that additional features and complexity be added to the operating system. First, the fact
that the input queue was now on disk, a direct access device, freed the system scheduler from the
fi rst-come-first-served policy so that it could select the “best” next job to enter the system (looking
for either the shortest job or the highest priority job in the queue). Second, since the CPU was to be
shared by the user program, the system reader, and the system writer, some processor allocation
rule or policy was needed. Since the goal of spooling was to increase resource utilisation by
enabling the slower I/O devices to run asynchronously with user program processing, and since
I/O processing required the CPU only for short periods to initiate data channel instructions,
the CPU was dispatched to the reader, the writer, and the program in that order. Moreover, if
the writer or the user program was executing when something became available to read, the
reader program would preempt the currently executing program to regain control of the CPU
for its initiation instruction, and the writer program would preempt the user program for the
same purpose. This rule, called the static priority rule with preemption, was implemented in the
operating system as a system dispatcher program.
The spooling operating system in fact had multiprogramming since more than one program
was resident in main storage at the same time. Later this basic idea of multiprogramming was
extended to include more than one active user program in memory at time. To accommodate
this extension, both the scheduler and the dispatcher were enhanced. The scheduler became able
to manage the diverse resource needs of the several concurrently active used programs, and
the dispatcher included policies for allocating processor resources among the competing user
programs. In addition, memory management became more sophisticated in order to assure that
the program code for each job or at least that part of the code being executed, was resident in
main storage.
The advent of large-scale multiprogramming was made possible by several important hardware
innovations such as:
1. The widespread availability of large capacity, high-speed disk units to accommodate the
spooled input streams and the memory overflow together with the maintenance of several
concurrently active program in execution.
2. Relocation hardware which facilitated the moving of blocks of code within memory without
any undue overhead penalty.
3. The availability of storage protection hardware to ensure that user jobs are protected from
one another and that the operating system itself is protected from user programs.
4. Some of these hardware innovations involved extensions to the interrupt system in order
to handle a variety of external conditions such as program malfunctions, storage protection
LOVELY PROFESSIONAL UNIVERSITY 9