An operating system is a collection of programs which provide a platform where users can execute their task in efficient & convenient manner. This is done by managing hardware resources and providing common services to other programs.


Why do we need operating systems?

  • Provides a high level abstraction of physical resources and standard facilities like: file system, standard libraries, management (memory, device, processor, file, performance), security, error detecting aids..
  • Enable the construction of more and more complex software systems.
  • Share limited and expensive physical resources wisely.
  • Enable portable code which makes MS-DOS v.1.0 boot even on latest high Ghz processors.
  • They are every where: Single functioned devices (Gaming consoles) or Multi function/application devices (Servers and workstations)

Timeline of O.S. development:


Phase 1 (1955-1970) : Hardware is expensive, humans are cheap

  • Single user systems : Make efficient  use of system by moving the person away.
  • O.S.  becomes batching systems : Loads users job, runs it & move to next.
  • If program failed, record the contents of memory and saves it somewhere and also allowed overlap of I/O and computation.
  • Were written in assembly language so no structured programming and difficult to debug.

Phase 2 (1970-1980) : Hardware and humans are expensive

  • Interactive time sharing : Users have shared server and cheap terminals.
  • Attempted to provide reasonable response time by avoiding thrashing.
  • CTSS (Compatible Time-Sharing System) and MULTICS (Multiplexed Information and Computing Service) came into scene by MIT and Bell Labs.
  • Development of Unix (By programmers for programmers).

Phase 3 (1980-1990) : Hardware is cheap and humans are expensive

  • Personal computing : One system per user, CP/M (Control Program for Microcomputers) being first 8-bit O.S.
  • OS becomes a subroutine library and command executive.
  • Distributed computing: Lots of systems per user.
  • Business applications like databases, spreadsheets came into scene.

Phase 4 (1990-20__) : Networked Systems

  •  Ubiquitous computing/Cloud computing : Users want to share data and not hardware
  • Protection and multi programming less important for personal machines but more for server machines.
  • Overall, connectivity is paramount.

 “I think there is a world market for maybe five computers” – Tomas
J. Watson, 1943 (president of IBM)

Now, taking a brief look on types of operating systems described in above timeline :

Batch operating system

  • No direct interaction of users with computers. They prepare job lists on offline devices (like punch cards) and submit it to computer operator.
  • CPU is often idle, because the speeds of the mechanical I/O devices is slower than electronic devices.
  • No priority for job execution can be easily provided.

Multiprogrammed systems

  • Increases CPU utilization by organizing jobs so that the CPU always has one to execute.
  • It is the first instance where O.S. make decisions for users and thus it is quite complex.
  • CPU scheduling and job scheduling.

Time-sharing operating systems

  • It is a logical extension of multiprogramming.
  • Main objective is to minimize response time of different jobs.
  • Avoids duplication of softwares.
  • Problem in reliability, data communication and security.

Multiprocessor Systems (Parallel Systems)

  • Increases throughput : More work done in less time.
  • Economical : Can share hardwares like of storage & power supplies if several programs uses same data. Also, more reliable as failure of one processor will not halt  but only slows down the system.
  • It is the broadly classified in two categories SMP (Symmetrical Multiprocessing) in which each processor runs identical copy of O.S. and AMP(Asymmetrical Multiprocessing ) in which each processor is assigned a specific task and there is master-slave relationship.

Distributed operating Systems

  • Resource sharing facility : User from one place can utilize resource at other place.
  • Reduction of delays in data processing and load on host system.
  • It depends on networking for their functionality.
  • Broadly divided into two categories : Client-Server and Peer-to-Peer Systems.

Real Time operating System

  • Time interval required to process and respond to jobs is so small that it controls the environment.
  • It has well defined time quanta and time constraints which keeps the system running  .
  • It is of two types : Hard Real Time System which guarantee the task is completed on time & it has no secondary or virtual memory. Soft Real Time Systems less restrictive and limited utility.

Leave a Reply