Chapter One Introduction
Chapter One Introduction
Introduction
1.1 What is an Operating System?
Definition
A program that acts as an intermediary between a user of a computer and the computer
hardware.
A system program which controls all the computer's resources and provides a base
Objectives
Convenience – Top Down View – Virtual Machine
Operating system - controls and coordinates the use of the hardware among the various
solve the computing problems of the users (compilers, database systems, video games,
business programs).
Users (people, machines, other computers).
1
1.2 Evolution of Operating Systems
Studying evolution of Operating Systems is used to
o Understand key requirements of an Operating System
o Understand significance of the major features of modern Operating Systems
Operating Systems and Computer Architecture are historically tied
o Architectural changes affect structure of Operating Systems
o Architectural changes affect performance of Operating Systems
Major progress in Operating Systems
o Early systems (Wiring-up plug-boards, Serial Processing)
o Simple batch processing
o Spooling batch processing
o Multi-programmed batch processing
o Timesharing systems
o Personal computer systems
o Parallel systems
o Distributed systems
o Real time processing
2
i. Wiring-up Plug-boards
Programming was done in machine language by wiring up plug-boards
Plug-boards control the basic functions of the computer
No Operating Systems, No programming languages, No operators
Complex programming and machine underutilization
ii. Serial Processing
The Technique
o Running a Job
Programmer creates his program and punches it on cards
He submits the card deck to an operator in the input room
He reserves machine time on a sign-up sheet
Operator set-up the job as scheduled
Operator caries over the output to the output room
Programmer will collect it later
o No Operating Systems
o No programming languages
Features
o Users get access in series
o Writing programs was improved
Drawbacks
o Wasted time due to scheduling and setup
o Wasted time while operators walking around the machine room
o Large machine/processor idle time
iii. Simple Batch Processing
The Technique
o To run jobs
Users submit jobs on cards
Operator batches jobs together into a tape inside the input room
Operator rewinds the input tape and brings it to machine room
Monitor, a special system program in the system tape, runs each job
sequentially
Output is written onto output tape and is brought to output room
Output is printed offline in the output room
o Each job is structured using JCL (Job Control Language)
To switch control back and forth between job and monitor
To automate job set-up (loading source code, compilers, object code etc)
o Monitor controls sequence of events
3
o Relies on some hardware features
Memory protection
Timer
Processor modes
Interrupts
o Operating Systems introduced for the first time
FMS – Fortran Monitor System for IBM 701 and later for IBM 704
IBMSYS – for IBM 7090/7094
Features
o Move much of the work of the operator to the computer
o Improve machine utilization
Handle scheduling problem
Reduce set-up time
Drawbacks
o Large turn-around time
o Large CPU idle time on heavily I/O bound jobs
o Large CPU idle time due to slower speed of I/O devices compared to CPU speed
o CPU idle time between batches of jobs: the computer still needs to read the deck
of cards before it can begin to execute the batch of jobs.
iv. Spooling Batch Processing
The Technique
o Adds up Spooling technique to simple batch processing
Spooling - Simultaneous Peripheral Operation Online
It is the ability to read jobs/print job outputs while the processor executes
jobs
Read jobs – from cards to disk
Print job outputs – from disk to printer
Used in input and output operations
With spooling, whenever a running job finished, the OS could load a new
job from disk into the now-empty partition and run it
o Spooling is the first attempt of multiprogramming
Features
o Avoids CPU idle time between batches of jobs
o Improve turn-around time: Output of a job was available as soon as the job
completed, rather than only after all jobs in the current cycle were finished.
Drawbacks
o Large turn-around time
4
o Large CPU idle time on heavily I/O bound jobs
v. Multi-programmed Batch Processing
The Technique
o Multiprogramming
Multiple jobs are loaded in a partitioned memory
Processor runs the jobs by cycling through them in some order
Processor works on each job for a specified period of time
o The system is responsible for
Starting user jobs
Spooling operations
I/O for user jobs
Switching between user jobs
Ensuring proper protection
o Relies on some hardware features
Memory protection
Timer
Processor modes
Interrupts
DMA (Direct Memory Access)
o OS/360 – the first multi-programmed batch system designed for IBM System/360
Features
o Improve machine utilization
o Resemble a modern operating system
Drawbacks
o Long response time: the time between submitting a job and getting back the
output was often several hours
o Poor interactivity between programmer and his program
vi. Timesharing/Time-slicing
The Technique
o Variant of multiprogramming in which each user has an online terminal
o Processor time is shared among multiple users
o Its main objective is getting quick response time
o The computer provides fast, interactive service to a number of users
o CTSS – the first timesharing system developed for IBM 709 and later to IBM
7094
o CTSS supported 32 users at a time
Features
5
o Minimizes response time
o Support many users simultaneously
Difference between multiprogramming and timesharing
o Multiprogramming
Its objective is to maximize processor use
JCL commands are source of directives to the OS
Designed to keep the processor & I/O devices simultaneously busy
o Timesharing
Its objective is to minimize response time
Terminal commands are sources of directives to the OS
Designed to be responsive to the needs of individual user
Drawbacks of multiprogramming and timesharing
o Problems related with multiple programs in memory interfering with each other
o Problems related with multiple interactive users accessing the same file system
o Problems related with multiple programs competing for the same resource
vii. Personal computer systems
Personal computers - computer system dedicated to a single user.
I/O devices - keyboards, mice, display screens, small printers.
User convenience and responsiveness.
Can adopt technology developed for larger operating systems; often individuals have
sole use of computer and do not need advanced CPU utilization or protection features.
viii. Parallel systems
Tightly coupled system - processors share memory and a clock; communication usually
takes place through the shared memory.
Advantages of parallel systems:
Increased throughput
Economical
Increased reliability
Symmetric multiprocessing
Each processor runs an identical copy of the operating system.
Many processes can run at once without performance deterioration.
Runs on a multiprocessor standalone computer system
Processors share the same main memory and I/O devices and can perform
the same
Jobs are scheduled across all processors
Several jobs run in parallel
Advantages
6
o Performance: due to multiprocessing
o Availability: Failure of a single processor does not halt the machine
o Incremental growth: additional processors can be added easily
o Scaling: Range of products with different price and performance
Asymmetric multiprocessing
Each processor is assigned a specific task; master processor schedules and
allocates work to slave processors.
More common in extremely large systems.
ix. Distributed systems
Runs on a multi-computer system: collection of computers, each with its own memory,
storage device and other I/O modules
Useful for sharing of the workload among the different computers
Existence of multiple computers is transparent to the user: It appears as a
uniprocessor system
It differs in critical ways from uniprocessor OSs
x. Real-time processing
Programs are guaranteed to have an upper bound on tasks that they carry out
Usually it is desired that the upper bound be very small
Severely constrained by the timing requirements
Usually used in dedicated/special purpose computers