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
   11   12   13   14   15   16   17   18   19   20   21