OPERATING SYSTEM
MADHUCHHANDA BASAK
COMPUTER SCIENCE & ENGINEERING
HISTORY OF OPERATING SYTEM
Why Study Operating Systems?
Why Study Operating Systems?
Studying OS design is studying design of large software systems.
The OS is really large (Windows Vista is 50 million lines+).
The OS manages concurrency.
Concurrency leads to interesting programming challenges.
(Interesting programming challenges can lead to wisdom.)
OS code manages raw hardware.
Programming raw hardware is challenging: timing dependent behavior, undocumented behavior,
HW bugs.
OS code must be efficient, low CPU, memory, disk use.
OS fails machine fails. OS must fail less than user programs.
OS provides services that enable application programs
knowledge of OS will make you a better computer user
OS basis of system security.
Increasing need for specialized operating systems
e.g. embedded operating systems for devices - cell phones, sensors and
controllers
real-time operating systems - aircraft control, multimedia services
Why Study Operating Systems?
What is an Operating System?
An OS is a program that acts an
intermediary between the user
of a computer and computer
hardware.
Major cost of general purpose
computing is software.
OS simplifies and manages the
complexity of running application
programs efficiently.
Abstract View of System
User
User User User
1
2 3
... n
compiler assembler Text editor Database
system
System and Application Programs
Operating System
Computer
Hardware
User View
User View
System View
Functions of the Operating System
• 1. Program development
• 2. Program execution
• 3. Access to the I/O device
• 4. Controlled access to file
• 5. System access
• 6. Error detection and
response
• 7. Accounting
History of OS
• Evolved through generations through 1940s
• One decade roughly corresponding to one generation
• Early computers lacked any form of operating system
• User had sole use of the machine and would arrive
armed with program and data, often on punched paper
and tape
• The program would be loaded into the machine, and
the machine would be set to work until the program
completed or crashed
Early Systems - Bare Machine (1950s)
• Structure
• Large machines run from console
• Single user system,
Programmer/User as operator
• Paper tape or punched cards
• Early software
• Assemblers, compilers, linkers,
loaders, device drivers, libraries of
common subroutines.
• Secure execution
• Inefficient use of expensive
resources
• Low CPU utilization, high setup
time.
Simple Batch Systems (1960’s)
Reduce setup time by batching
jobs with similar requirements.
Add a card reader, Hire an
operator
User is NOT the operator
Automatic job sequencing
Forms a rudimentary OS.
Resident Monitor
Holds initial control, control
transfers to job and then back
to monitor.
Problem
Need to distinguish job from
job and data from program.
Spooling
• Original batch systems used tape drives
• Later batch systems used disks for
buffering
– Operator read cards onto disk attached
to the computer
– Computer read jobs from disk
– Computer wrote job results to disk
– Operator directed that job results be
printed from disk
• Disks enabled simultaneous peripheral
operation on-line (spooling)
– Computer overlapped I/O of one job
with execution of another
– Better utilization of the expensive CPU
– Still only one job active at any given
time
Multiprogramming (‘65-‘80)
• Use interrupts to run multiple
programs simultaneously
• When a program performs I/O,
instead of polling, execute
another program till interrupt
is received.
• Requires secure memory, I/O
for each program.
• Requires intervention if
program loops indefinitely.
• Requires CPU scheduling to
choose the next job to run.
Timesharing
• Programs queued for execution in FIFO order.
• Like multiprogramming, but timer device
interrupts after a quantum (timeslice).
• Interrupted program is returned to
end of FIFO
• Next program is taken from head of
FIFO
• Control card interpreter replaced by command
language interpreter. Interactive
(action/response)
– when OS finishes execution of one
command, it seeks the next control
statement from user.
• File systems
• online filesystem is required for
users to access data and code.
• Virtual memory
– Job is swapped in and out of memory to
disk.
Personal Computing Systems
• Single user systems, portable.
• I/O devices - keyboards, mice,
display screens, small
printers.
• Laptops and palmtops, Smart
cards, Wireless devices.
• Single user systems may not
need advanced CPU
utilization or protection
features.
• Advantages:
– user convenience,
responsiveness, ubiquitous
Multiprocessor Systems
Multiprocessor Systems
Distributed Systems
Real-Time Systems
Clustered systems
• Like parallel systems clustered system gather together
multiple CPUs to be accomplish computational work.
• Cluster system differ from parallel systems however in
that they are composed of two or more individual
system coupled together.
• In asymmetric clustering one machine is in hot standby
mode while the other is running the applications. The
hot standby host does nothing but monitor the active
server. If that fails the hot standby host becomes the
active server.
• In symmetric mode two or more hosts are running
applications and they are monitoring each other. This
mode is obviously more efficient as it uses all of the
available hardware. It does not requires that more than
one application be available to run.
Hand held systems
• Hand held systems include
personal digital assistants
such as palm pilots or
cellular telephones with
connectivity to a network
such as internet. Due to
limited size of such devices,
it have a small amount of
memory including a slow
processors and features
small display screen.
Migration of OS Concepts and Features
Traditional Computing
– Blurring over time
– Office environment
• PCs connected to a network, terminals
attached to mainframe or
minicomputers providing batch and
timesharing
• Now portals allowing networked and
remote systems access to same
resources
– Home networks
• Used to be single system, then modems
• Now firewalled, networked
• Client-Server Computing
– Dumb terminals supplanted by smart PCs
– Many systems now servers, responding to
requests generated by clients
• Compute-server provides an interface to client
to request services (i.e. database)
• File-server provides interface for clients to
store and retrieve files
Web-Based Computing
• Web has become ubiquitous
• PCs most prevalent devices
• More devices becoming networked to allow
web access
• New category of devices to manage web
traffic among similar servers: load balancers
• Use of operating systems like Windows 95,
client-side, have evolved into Linux and
Windows XP, which can be clients and
servers
Embedded Computing
• Embedded computers are the most
prevalent form of computers in existence.
They run embedded real-time operating
systems.
• These devices are found everywhere, from
car engines and manufacturing robots to
VCRs and microwave ovens.
• The systems they run on are usually
primitive, lacking advanced features, such
as virtual memory, and even disks.
• They usually have little or no user interface,
preferring to spend their time monitoring
and managing hardware devices
Summary
• What is an operating system?
• Early Operating Systems
• Simple Batch Systems
• Multiprogrammed Batch Systems
• Time-sharing Systems
• Personal Computer Systems
• Parallel and Distributed Systems
• Real-time Systems
• Hand held system
• Traditional computing
• Web based computing
• Embedded computing
Question ?
Thank You.