Operating System
CO M P IL ED BY M RINA L K A NTI
NATH
OS – Objectives & Functions
OS - Program that controls the execution of application programs
and act as an interface between applications and computer hardware.
Have 3 objectives –
1. Convenience – makes a computer more convenient to use
2. Efficiency – allows resource to be used in efficient manner
3. Ability to evolve – permit effective development, testing and
introduction to new systems without interfering with service
2
Layers & Views of Computer
Systems
3
OS as User/Computer
Interface
• Program Development – assist the programmer in creating programs
• Program Execution – Number of steps needed to execute a program.
Scheduling done by OS
• Access to I/O Device - Each I/O device have it’s own set of
instructions/control signals
- OS hides these details and user access it in
simple read writes
• Control Access to File - have details understanding of not only nature of
I/O device but also structure of data contained in file in storage medium
- have protection mechanism to control access of
files in multi user system
OS as User/Computer
Interface Contd..
• System Access – in Shared/Public system OS control system access to
protect resources and data from unauthorized user
• Error Detection & Response – Variety of error occurred while a
computer system is running
- OS detects the error and respond it
- Respond can be ending the process, retry
the process, send error report to application etc..
• Accounting – collect user statistics on various resources and monitor
performance parameters for further better enhancement
OS as Resource Manager
History of Operating Systems
First generation 1940 - 1950
◦ vacuum tubes, plug boards, punch card, magnetic core memory – NO
OPERATING SYSTEM
Second generation 1950 - 1965
◦ transistors, Mainframe Computer, batch systems, line printer, assembler,
linker, loader, FORTRAN, COBOL
Third generation 1965 – 1980
◦ IC, Magnetic Disk and multiprogramming, UNIX, C
Fourth generation 1980 – present
◦ LSI, VLSI, Microcomputer, PC
7
First Generation
Early batch system
◦ bring cards to 1401
◦ read cards to tape
◦ put tape on 7094 which does computing
◦ put tape on 1401 which prints output
8
First Generation
It all started with computer hardware in about 1940s.
ENIAC 1943
First Generation
ENIAC (Electronic Numerical Integrator and Computer), at the U.S. Army's
Aberdeen Proving Ground in Maryland.
◦ built in the 1940s,
◦ weighed 30 tons,
◦ was eight feet high, three feet deep, and 100 feet long
◦ contained over 18,000 vacuum tubes that were cooled by 80 air blowers.
First Generation
Computers were using vacuum tube technology.
ENIAC’s vacuum tubes
First Generation
ENIAC’s backside
First Generation
Programs were loaded into memory manually using switches, punched
cards, or paper tapes.
ENIAC : coding by cable connections
First Generation
Punch Card
First Generation
First Generation
Paper tape
First Generation
First Generation
Babbage’s analytical engine
(designed in 1840’s by Charles Babbage, but cold not be constructed by him.
An earlier and simpler version is constructed in 2002, in London )
http://www.computerhistory.org/babbage/
First Generation
Ada Lovalence (at time of Charles Babbage) wrote code for analytical engine
to compute Bernulli Numbers
Second Generation
Card readers, line printers, and magnetic tape units were developed as
additional hardware elements.
First batch OS is developed by General Motors in 1950 and used in IBM 701
Assemblers, linker, loaders were developed as software tools.
FORTRAN, COBOL is developed to run different jobs
Second Generation
To execute a job in Batch System OS, Steps are –
Load compiler tape of the required compiler
Read from card reader
Run the compiler
Unload the compiler
Load assembler tape
Run assembler
Unload assembler tape
Load object program
Run object program
Second Generation
Structure of a typical FMS job – 2nd generation
22
Second Generation
Commodore PET,
1977
Second Generation
Problems are
Loading and unloading takes lot of time
CPU idle most of the time
Sequential processing of jobs take more time in set-up delay
To avoid these problems Monitor Programs, Control Card and Resident
Monitor introduced
Monitor Program:- perform automatic job sequencing
Control Card:- contained directives to tell the software which task to
perform for a job
Resident Monitor:- Read Control Card, Load appropriate program and run it
JCL :– Job Control Language
Memory Layout of Resident
Monitor
Second Generation
Still CPU is idle as I/O devices are mostly electro mechanical but CPU
is electronic device.
To Solve that problem new concept arise – Offline operation – (i.e. –
instead of being sent directly to I/O device first save it to magnetic tape)
Third Generation
Due to technological improvements of hardware – CPU became more
faster
For multiple jobs response time is higher and CPU is idle when one job
performing I/O operations
Concept of Multiprogramming arise here
- if one job is in I/O operation CPU will execute next job in the
queue and so on..
CPU utilization and throughput improved
Still response time is high –
- Debugging process became time consuming
Third Generation
To improve response time – multi user time sharing concept arise
Multi User Time Sharing
– Instead of submit job in a batch, every user directly submit
their job to the system.
- CPU time is shared among all the jobs in the system
- Idea is basically user have a feelings that he/she is using the
system alone
- Still now personal computers are not invented
Third Generation
CTSS (Compatible time sharing system) developed by MIT
With the success of CTSS, MIT, Bell Labs and General Electric came
together to build MULTICS (Multiplexed Information and Computing
Service)
- But this idea didn’t work
Ken Thompson individually worked on MULTICS and build a single user
version on PDP-7
After it’s success Kernighan, Ritchie, Thompson and other scientists
build UNICS (Uniplexed Information & Computing Service)
- Later known as UNIX
Third Generation
Porting UNIX in different machine become tough
- as it is in assembly language
Ritchie developed C and rewrite UNIX in C
Forth Generation
Silicon chip
LSI & VLSI technology
PC with Intel 8080 Microprocessor
OS - CP/M (Control Program for microcomputers) - First operating
System for PC designed by Gary Kildall of Intel
IBM developed DOS
Microsoft modify it to MS-DOS
CP/M, DOS, MS-DOS all are command based
Forth Generation
GUI (Graphical User Interface) concept came
Steve jobs build Apple Macintosh – first GUI based OS
Later, Microsoft designed Windows
Time sharing concept changed into Multi Tasking
Network OS
Distributed OS
Types of Operating System
Batch Processing System
Multi Programming System
Multi User Time Sharing System
Multi Tasking System
Network OS
Multi Processor OS
Distributed OS
Real Time OS
Embedded OS
Batch processing
Interactive processing
Time Sharing / Multitasking
CPU time is shared among all the jobs in the system – time
sharing
◦ Implemented using multiprogramming (time is divided into
multiple intervals, execution of one job is limited to a single time
interval)
When time sharing is applied to single-user environments is usually
called multitasking
Multiprocessor Operating Systems
Provide time sharing/multi-tasking capabilities by assigning
different tasks to different processors as well as sharing the
time of one single processor
Problems to solve:
◦ Load balancing – dynamically allocating tasks to the various
processor so that all of them are used efficiently
◦ Scaling – breaking tasks into sub-tasks compatible with the number
of processors available
Network Operating System
Each user have their own system, but all the users are connected
through a network
User can perform non local operations (e.g. – Remotely access
different system through network)
Advantage – Resource sharing
Example – Windows NT, Windows XP etc…
Distributed Operating System
Distributed Systems also multiprocessor system, but have following
differences –
Works in a wide area network
Each node have full set of peripherals like a complete computer
(Including OS)
Users have a illusion that they are working on a single machine
Example – Amoeba, V System
Real Time Operating System
Here, response to a user request has to be immediate or within a
fixed time frame, else application will fail – Real Time Processing
Used in defence applications
Two type of Real Time System – Hard RTS and Soft RTS
o HARD RTS – strictly follow deadline, otherwise application will fail
o SOFT RTS – Missing some deadline is acceptable (e.g. – Video
Conferencing system – audio/video data delayed a fraction of time, it
may be acceptable)
Example – pSOS, VxWorks
Embedded Operating Systems
Specialized systems that tend to have very specific tasks
Used in hand held devices (PDAs), mobile phones, cars, etc …
Limited data storage and power conservation are the big challenges
Examples: Android, Windows Phone OS, Palm OS, Symbinan OS etc…
THANK YOU