History and Evolution of
Operating System
Compiled by
Nishad Patel
S.S.V.P.S B. S. DEORE POLYTECHNIC, DHULE
Today’s Computer System
1. User
2. Set of Application Programs and
System Programs
3. Operating System
4. Hardware
Based on Von Neumann Architecture
Today’s Generation of Computer System
Users Multiple users, can perform multiple
tasks simultaneously
Well developed user interface User User User User
User Interface 1 2 3 n
Very easy to use
Application Huge in numbers and varieties.
Perform various activities on behalf of
Programs user
Application Programs and System
System Many but very caters specific services. Programs
Perform various activities on behalf of
Programs system Operating System
Operating Performs several functions for – user
and system also.
system Supports multiple processes, multiple
Hardware
processors multi task, and multi user
(level 0)
Hardware Very Large Scale Integration (VLSI),
Very small in size, but very powerful in
components terms of processing
History
• Zeroth Generation
• First Generation
• Second Generation
• Third Generation
• Fourth Generation
Timeline
•Zeroth Generation
•1642 - 1945
•First Generation
•1945 - 1955
•Second Generation
•1955 - 1965
•Third Generation
•1965 - 1980
•Fourth generation
•1980 - present
Zeroth Generation (1642 -1945)
Users Single User User
1
User Interface Cogs and wheels, Punch Card for Input
and Output were used
Application In mechanical machines - absent
In electromagnetic relay machine -
Programs Assembly
System Absent
Hardware
Programs (level 0)
Operating Absent
system
Hardware Mechanical (cogs, gears, wheels),
Electromagnetic relays, Huge in Size,
Examples : Babbage Analytical Engine (Purely
components Costly. Used to perform very specific Mechanical), AND COLOSSUS, Mark I, Mark II
operations (Electromagnetic Relays)
Users Single User First Generation
Programmer was the only user. Used to (1945-1955)
User Category interact directly with machine
User Interface Extremely unfriendly to programmer. Programmer
These machines were run from console,
consisting of display lights, toggle switches,
some form of input device and a printer.
Application Machine Language was used
Serial Processing
Programs
System Absent Hardware
(level 0)
Programs
Operating Absent Vacuum Tubes
system
Examples : John Van Neumann
Vacuum Tubes architecture, ENIAC, EDVAC, EDSAC,UNIVAC
Hardware – first commercial computer, IBM - 701
Very Large Size
components Very Costly
Von Neumann Machine
In 1946 : John Mauchley, with John Von Neumann, Eckert, build an electronic computer called
ENIAC (Electronic Numerical Integrator And Computer).
• It consisted of 18000 vacuum tubes, 1500 relays.
• It weighed 30 tons and consumed 140 KW power.
John Von Neumann, then developed EDVAC, the IAS machine.
• He realised that program could be represented digitally from computer’s memory along
with data.
• His basic design, known as von Neumann Machine, was used in EDSAC, the first stored
program computer.
• Even now, Von Neumann Machine, is still a basis for nearly all digital computers.
• The machine have FIVE basic parts as :
• MEMORY,
• Arithmetical Logical Unit,
• Program Control Unit,
Serial Processing
✔Initially, there was only computer hardware.
✔ Early computers, from late 1940s to mid 1950s, were very large machines, run from the console.
✔ The programmer interacted directly with the computer hardware.
✔ The programmer would write a program and then operate the program directly from the operator’s console.
✔There was no operating system.
✔The programmer was the operator.
• How it work?
• These machines were run from console, consisting of display lights, toggle switches, some form of input device and
a printer.
• The program, written in machine code, would be loaded manually into memory, either from the front panel
switches, paper tape or punched cards.
• The appropriate buttons would be pushed to load the starting address and to start the execution of the program.
• During execution of the program, programmer could monitor the execution by monitoring the display lights on the
console.
• If error halted the program, the error condition was indicated by the lights. The programmer could proceed to
examine the contents of the memory and registers and could debug the program directly from the console. (On
line debugging).
• If the program proceeded to normal completion, the output was printed or punched on paper tape or cards for
later printing.
• Numerous manual operations involved in the process.
Second Generation
Users Single User System
But role were like - designers, builders, (1955-1965)
User Category
operators, programmers, and maintenance
Programmer,
personnel operator, designer,
Punched Cards were used maintenance
User Interface personnel
Application Programs Transaction Processing Systems
Written in Assembly Language (Second generation),
App. Programs
Fortran (Third generation Programming Language)
System Programs
System Programs Use of libraries (e.g. Input Output Control System IOCS
by IBM), Job Control Language (JCL) to instruct Batch OS
Monitor , Spooling, Interrupt handling , Sequential
Processing Hardware
Operating system Automatic Job Sequencing was introduced, (The first (level 0)
rudimentary operating system was called as resident
monitor ) to control Batch Operating System
Operations
Transistors
Hardware Transistors were used Examples : IBM 7090, IBM Satellite
components
Size, Cost was dramatically reduced Computer, PDP – 1, Burroughs
B5000, CDC 6600
Batch Operating System
Simple Batch Systems
• To improve CPU utilisation, concept of batch operating system was developed. It was first developed by General Motors for
use on an IBM 701.
• The majority of computer system –
– reading from card readers and
– writing to card punch or line printers.
How it work?
• The jobs with similar needs were batched together and run through a computer as a group.
• Professional computer operators were hired.
• Programmers would submit their programs (jobs) with the operator.
• Operator would sort them into batches with similar requirements and would run the batch.
• The output from each job, then sent back to the appropriate programmer.
• Programmer used to find error, if any.
• In case of errors, programmer corrects the job and resubmit it again.
• In such cases, execution used to start again from beginning.
• This approach had following problems.
• By observing the console, the operator could notice whether job is terminated normally or abnormally.
• In case of errors, job would terminate abnormally.
• Then operator would take dump and used to send it to the programmer.
• Then operator would load the next job.
• This involved a lot of time.
• During this transition, from one job to next job, CPU sat idle.
Third Generation
Users Multiple users can access system
Different users types like – naïve, (1965-1980)
User Category programmer
User User User User
User Interface Keyboard, Monitor
Application Fortran, Pascal, COBOL, C
Assembly Application Programs
Programs
System Programs
System Programs Compilers, Loaders, Debuggers
Multi-programming,
Time Sharing OS
Operating system Multiprogramming, Time Sharing Systems Hardware
(e.g. Multics, UNIX) Integrated
Circuits
Hardware Integrated Circuits (ICs) were used.
Multiprocessor Systems, Increased Examples : IBM System 360, 370,
components processing speed, Smaller Size
4300 series, Minicomputer by DEC,
PDP -11, IBM PC/AT,
Multiprogramming OS
• A single user can not in general, keep either the CPU or I/O devices busy all the time.
• So multiprogramming is an attempt to increase CPU utilisation by always having something
for the CPU to execute.
• How it works?
• The operating system picks one of the jobs in the job pool and begins to execute it.
• If that needs an I/O, operating system will simply switch the CPU to another job to execute
it.
• When that job needs to wait, the CPU is switched to another job and so on.
• Meanwhile first job has completed its I/O operations and finished its waiting, will get the
CPU back.
• As long as there is always some job to execute, the CPU will never be idle.
• In order to have several jobs to run, they must all be simultaneously in memory.
• Therefore, some form of memory management is required, to have several programs in
memory at the same time.
• If several jobs are ready to run at the same time, some decision must be made to choose
among them. Therefore CPU scheduling is also required.
• Multiprogramming systems must provide, device scheduling, deadlock handling,
concurrency control, and protection.
Uniprogramming Vs Multiprogramming
Time Sharing System
• Idea of time sharing systems was demonstrated in
1960s, but they become common in early 1970s.
• Time sharing systems are the result of trying to provide
interactive use of computer system at the reasonable
cost.
• Time sharing systems, uses CPU scheduling and
multiprogramming to provide each user with a small
portion of a time shared computer.
• Each user has a separate program in memory.
• Operating system rapidly switches the CPU among
programs, which gives the impression, that each user
had his own computer system, which is actually shared
among many users.
Users Multiple users can access system Fourth Generation
Different users types like – naïve,
User Category programmer
(1980-present)
Keyboard, Monitor, Mouse, Touch Screen User User User User
User Interface 1 2 3 n
Application C, C++, Java, and many more
Assembly
Programs Application Programs and System
System Compilers, Loaders, Debuggers Programs
Programs Operating System
Operating Multiprogramming, Multi Processing,
Hardware
Multiprocessor, Multi Tasking, Time
system Sharing Systems, Multi Threading OS
(level 0)
Hardware Very Large Scale Integration
components Size reduced beyond expectations Examples : All recent PCs, Desktops,
Tremendous Increase in processing Laptops, Main frames, Super computers
power
• Chapter 1 Generations and Evolution of OS 2017 Tabular.pdf