Ads block

Banner 728x90px

The Evolution of Operating Systems

In attempting to understand the key requirements for an operating system and the significance of the major features of a contemporary operating system, it is useful to consider how operating systems have evolved over the years.

Serial Processing

In the late 1940s to mid-1950s, the programmer interacted directly with the computer hardware; there was no operating system. These machines were run from a console consisting of display lights, toggle switches, some from of input device, and a printer.

Programs in machine code were loaded with the input device (e.g., a card reader). If an error halted the program, the error condition was indicated by the lights. The Programmer looks at the main memory and register to verify the reason behind the error. After completion of program, the output appeared on the printer.

Drawbacks:

These early systems presented two main problems-

  • Scheduling: Scheduling means 'time table' or 'block of time' at which a particular task, event or process are intended to take place. Serial processing takes much time, and not able to finish current process and selection of another process to execute in the allotted time.
  • Setup time: The minimum amount of time that was spent just in setting up the program to run.

Simple Batch Systems

Early machines were very expensive and therefore it was important to maximize machine use. The wasted time caused by scheduling and setup time was unacceptable.

To improve use, the concept of a batch operating system was developed. The central idea behind the simple batch processing scheme was the use of a piece of software known as the monitor. The user no longer has direct access to the machine. The user submits the job on cards/tape to a computer operator, who batches the jobs together sequentially and places the entire batch on an input device for use by the monitor. Each program executes one by one. After completion of process, it begins loading the next program.

The monitor reads in jobs one at a time from the input device e.g, card reader. As it is read in, the current job is placed in the user program area, and control is passed to this job. When the job is completed, it returns control for the next job.

Drawbacks:

Even with the automatic job sequencing provided by a simple batch operating system, the processor is often idle. The problem is that I/O devices are slow compared to the processor.


Multiprogrammed Batch Systems

Multiprogramming is an extension to the batch processing where the CPU is kept always busy. The main objectives of multiprogramming is to sharing the processor and increasing the utilization of CPU.

In the multiprogramming OS, the set of multiple jobs can be reside in the memory. The operating system picks and begins to execute one of the jobs in the memory. Multiprogramming operating systems monitor the state of all active programs and system resources using memory management programs to ensures that the CPU is never idle, unless there are no jobs to process.


Time-Sharing Systems

The Time-sharing system is a logical extension of a multiprogramming system. Just as multiprogramming allows the processor to handle multiple batch jobs at a time, multiprogramming can be used to handle multiple interactive jobs. The central idea behind the time-sharing system is to sharing of processor among multiple users simultaneously. Thus, if there are n users actively requesting service at one time, each user will see on the average only 1/n of the effective computer speed, not counting operating system overhead. The main purpose of time-sharing system is to reduce response time.

The processor executes each job simultaneously according to the time slot. In this type of system, with the help of the CPU scheduler, the job is chosen from the ready queue and executed. And when the time slot of the job is expired, then CPU switch another job.