Home » Evolution of operating systems

Operating System

Chapter 1: Introduction to Operating System 

— Definition of Operating System.

— Evolution of operating systems – simple batch systems, multi-programmed batch systems, time sharing systems.

— Functions of an operating system

— Characteristics of Operating System

— Single user and multi-user operating systems

Open-source and closed-source operating systems.

Important Questions with their Answers of “Introduction to operating system”

— MCQs and Fill in Blanks

— Short term Questions

— Long Term Questions

Chapter 2: Process Overview

Definition of process, process states, process life cycle,

Process Control Block (PCB),

Process Scheduling – Scheduling queues,

Schedulers (short term, medium term and long term).


Context Switch.

Important Questions with their Answers of “Process Overview”

— MCQs and Fill in blanks

Short term Questions

Long Term Questions

Chapter 3: CPU Scheduling

  • CPU Scheduler,
  • Preemptive and non-preemptive scheduling.
  • Scheduling criteria – CPU utilization, Throughput, Turnaround time, Waiting time, Response time.
  • Scheduling Algorithms: First-Come-First-Serve, Shortest-Job-First, Priority Scheduling, Round-Robin.

Important Questions with their Answers of “CPU Scheduling”

  • MCQs and Fill in blanks
  • Short term Questions
  • Long Term Questions

Evolution of operating systems

Operating System have gone through a long history of evolution. The various evolution of operating system are given below:

  • System Batch System
  • Multi-programming Batch System
  • Time Sharing System
  • Personal System
  • Parallel System
  • Distributed System
  • Real Time System

System Batch System

The first computers used batch operating systems, in which the computer ran batches of jobs without stop. Programs were punched into cards that were usually copied to tape for processing. When the computer finished one job, it would immediately start the next one on the tape.

  • In this type of system, there is no direct communication between the user and the computer.
  • The user must present the job (written on card or tape) to the computer operator.
  • Then the computer operator holds a batch of multiple jobs on an input device.
  • Jobs are put together according to language and requirement.
  • Then a special program, monitor, manages the execution of each program in the batch.
  • Monitor is always in main memory and available for execution.

Disadvantages of Simple Batch System

  • Lack of interaction between the user and the job.
  • CPU is often idle, because the speed of the mechanical I/O devices is slower than the CPU.
  • Difficult to provide the desired priority.

Multi-programming Batch System

  • In Multi-programming Batch System, the operating system picks up and begins to execute one of the jobs from memory.
  • Once this job requires an I/O operation operating system switches to another job (CPU and OS always busy).
  • Jobs in the memory are always less than the number of jobs on disk.
  • If many jobs are ready to run at the same time, then the system chooses which one to run through the process of CPU Scheduling.
  • In Non-multiprogramming system, there are moments when CPU sits idle and does not do any work.
  • In Multiprogramming system, CPU will never be idle/inactive and keeps on processing.

Advantages of Multi-programming System

  • High and efficient CPU utilization.
  • User feels that many programs are allotted CPU almost simultaneously.

Disadvantages of Multi-programming System

  • CPU scheduling is required.
  • To accommodate many jobs in memory, memory management is required.

Time Sharing Systems

Time sharing Systems are very similar to Multi-programming batch systems. In fact time sharing systems are an extension of multi-programming systems.

The main difference between Multi-programmed Batch Systems and Time-Sharing Systems is that in case of Multi-programmed batch systems, the objective is to maximize processor use, whereas in Time-Sharing Systems, the objective is to minimize response time.

Advantages of Time Sharing systems:

  • Provides the advantage of quick response.
  • Avoids duplication of software.
  • Reduces CPU idle time.

Disadvantages of Time Sharing systems:

  • Problem of reliability.
  • Question of security and integrity of user programs and data.
  • Problem of data communication.

Personal Systems

Earlier, CPUs and PCs lacked the features needed to protect an operating system from user programs. PC operating systems therefore were neither multiuser nor multitasking. However, the goals of these operating systems have changed with time; instead of maximizing CPU and peripheral utilization, the systems opt for maximizing user convenience and responsiveness. These systems are called Desktop Systems and include PCs running Microsoft Windows and the Apple Macintosh.

Parallel Systems

Parallel operating systems are designed to make efficient use of computers with multiple processors, and many operating systems currently on the market can take full advantage of multiple processors if present, providing the application programs they are running have been written using a programming language that supports multi-threading.

The general idea is that different threads of the program can be executed simultaneously, speeding up the execution of the program as a whole. Programs written for single-processor computers can often run on a multi-processor system, but can only execute on one processor at a time.

Distributed System

A distributed system is one in which various user resources reside in separate computer systems connected by a network. The computer systems involved may have diverse hardware and software platforms, but the user is presented with a uniform computing environment thanks to a distributed system architecture that provides a standard communications interface. This intermediate layer of software hides the complexity created by the intercommunication of such diverse technologies.

Advantages Distributed System:

  • With resource sharing facility, a user at one site may be able to use the resources available at another.
  • Speedup the exchange of data with one another via electronic mail.
  • If one site fails in a distributed system, the remaining sites can potentially continue operating.
  • Better service to the customers.
  • Reduction of the load on the host computer.
  • Reduction of delays in data processing.

Types of Distributed Systems:

Following are the two types of distributed operating systems used:

  1. Client-Server Systems
  2. Peer-to-Peer Systems

Real Time System

A  real-time system is defined as a data processing system in which the time interval required to process and respond to inputs is so small that it controls the environment. The time taken by the system to respond to an input and display of required updated information is termed as the response time. So in this method, the response time is very less as compared to online processing.

Real-time systems are usually dedicated, embedded systems. An operating system does the following activities related to real-time system activity.

  • In such systems, Operating Systems typically read from and react to sensor data.
  • The Operating system must guarantee response to events within fixed periods of time to ensure correct performance.

Types of Real-Time Systems:

  1. Hard real-time systems
  2. Soft real-time systems

Leave a comment

Your email address will not be published. Required fields are marked *

‘Operating System’ Practical

  1. To install and configure MS Windows 7/8/10 on a computer
  3. To use wildcard characters for copying, moving, renaming, and deleting files and directories in a given hierarchical directory structure under Windows’s command prompt.
  4. To get familiar with windows control panel components.
  5. To use Windows backup and restore features.
  6. To get familiar with commonly used Windows PowerShell cmdlets like Get-ChildItem, GetContent, Get-Command, Get-Help, Clear-Host, Copy-Item, Move-Item, Remove-Item, Rename-Item, Get-Location, Set-Location, Write-Output, Get-Process, Stop-Process.
  7. To write scripts in Windows PowerShell to automate tasks.