0% found this document useful (0 votes)
87 views39 pages

Evolution of OS

The document discusses the evolution of operating systems from early serial processing systems of the 1940s-1950s to modern networked and distributed systems. Early systems involved direct interaction with hardware and serial processing of individual programs. Later developments included simple batch processing, multiprogramming to improve CPU utilization, time-sharing to support interactive use, and real-time capabilities to process data within deadlines. Modern systems leverage multiprocessing, distributed computing across networks, and more sophisticated scheduling and resource management.

Uploaded by

21PC12 - GOKUL D
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
87 views39 pages

Evolution of OS

The document discusses the evolution of operating systems from early serial processing systems of the 1940s-1950s to modern networked and distributed systems. Early systems involved direct interaction with hardware and serial processing of individual programs. Later developments included simple batch processing, multiprogramming to improve CPU utilization, time-sharing to support interactive use, and real-time capabilities to process data within deadlines. Modern systems leverage multiprocessing, distributed computing across networks, and more sophisticated scheduling and resource management.

Uploaded by

21PC12 - GOKUL D
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 39

Evolution of Operating

Systems
Need for Evolution of an Operating Systems
• Must adapt to hardware upgrades and new types of hardware
• Must offer new services
• Fixes – Any OS has faults
• The need to change the OS on regular basis places certain requirements on
it’s design:
• modular construction with clean interfaces.
• much more to be done than simple partitioning a program into modules - object
oriented methodology.
Evolution of an Operating Systems
• Early Systems/Serial Processing (mid 1940s to mid 1950s)
• Simple Batch Systems (1960)
• Multi-programmed Batch Systems (1970)
• Time-Sharing and Real-Time Systems (1970)
• Multiprocessor Systems (1980)
• Networked/Distributed Systems (1980)
Early Systems/Serial Processing
• A Programmer/User as operator interacted directly with the
hardware
• Large machines run from console, since no OS
• Programs in machine code are read through card reader
Example of an early computer system
Early Systems /Serial Processing
• Machines run from a console with display lights, toggle switches,
input device, and printer
• If no error, program output in printer, or else error indicated by lights
• Extremely slow I/O devices
• Very low CPU utilization
Early Systems /Serial Processing
• Serial processing
• Scheduling:
• User should reserve computer time in hard copy sheet, in multiples of 30 minutes or so.
• Overhead in scheduling time.
• Setup included loading the compiler, source program, saving compiled
program, and loading and linking
• Need significant amount of setup time
in mounting and dismounting card decks
• Various system software tools were developed to make
serial processing easier – linkers, loaders, debuggers and
I/O driver routines
Simple Batch Systems
• Early computers were expensive - important to maximize CPU utilization
• Scheduling and setup time was unacceptable
• Jobs of users are batched together by an operator - submits the entire batch to
the input device for use by the monitor.
• After each job, the control branches back to the monitor, and the monitor
automatically begins loading the next job for execution
• A special program, the monitor, manages the execution of each program in the
batch.
• Monitor utilities are loaded when needed – compilers, assemblers, drivers...
• “Resident monitor” is always in main memory and available for execution that
controls the sequence of events
Resident Monitor Layout
Control Cards
• Problems:
• How does the monitor know about the nature of the job (e.g., Fortran versus
Assembly) or which program to execute?
• How does the monitor distinguish:
(a) job from job?
(b) data from program?
• Solution: Job Control Language (JCL) and control cards.
Job Control Language (JCL)
$JOB
• JCL is the language that provides instructions $FTN
...
to the monitor: FORTRAN
• what compiler to use program
• what data to use ...
• Example of job format: ------->> $LOAD
• $FTN loads the FORTRAN compiler and transfers control to it. $RUN
• $LOAD loads the object code (along in place of compiler). ...
• $RUN transfers control to user program. Data
...
$END
Example card deck of a Job
Idea of Simple Batch Systems
• Reduce setup time by batching similar jobs.
• Alternate execution between user program (user mode) and the
monitor program (kernel mode).
• Sacrifices:
• some main memory is now given over to the monitor
• some processor time is consumed by the monitor
Desirable Hardware Features
• Memory protection
• do not allow the memory area containing the monitor to be altered by a user
program.
• Privileged instructions
• can be executed only by the resident monitor.
• A trap occurs if a program tries these instructions.
• Interrupts
• provide flexibility for relinquishing control to and regaining control from user
programs.
• Timer interrupts prevent a job from monopolizing the system.
Spooling
• Problem:
• Card reader, Line printer and Tape drives slow (compared to Disk).
• I/O and CPU could not overlap.
• Solution: Spooling -
• Overlap I/O of one job with the computation of another job (using double
buffering, DMA, etc).
• Technique is called SPOOLing: Simultaneous Peripheral Operation On Line.
Spooling
• While executing one job, the OS:
• Reads next job from card reader into a storage area on the disk (Job pool).
• Outputs printout of previous job from disk to printer.
• Job pool – data structure that allows the OS to select which job to run
next in order to increase CPU utilization.
Uni-programming until now
• I/O operations are exceedingly slow (compared to instruction
execution).
• A program containing even a very small number of I/O operations, will
spend most of its time waiting for them.
• Hence: poor CPU usage when only one program is present in memory.
Memory Layout for Uni-programming
Memory Layout for Batch Multiprogramming
• Several jobs are kept in main memory at the same time, and the CPU
is multiplexed among them.
Multiprogramming
• There must be enough memory to hold the OS (resident monitor) and
one user program
• When one job needs to wait for I/O, the processor can switch to the
other job, which is likely not waiting for I/O
Multiprogramming
• Multiprogramming
• also known as multitasking
• memory is expanded to hold three, four, or more programs and switch among
all of them
Why Multiprogramming?
• Multiprogramming needed for efficiency:
• Single user cannot keep CPU and I/O devices busy at all times.
• Multiprogramming organizes jobs (code and data) so CPU always has one to
execute.
• A subset of total jobs in system is kept in memory.
• One job selected and run via job scheduling.
• When it has to wait (for I/O for example), OS switches to another job.
Requirements for Multiprogramming
• Hardware support:
• I/O interrupts and DMA controllers
• in order to execute instructions while I/O device is busy.
• Timer interrupts for CPU to gain control.
• Memory management
• several ready-to-run jobs must be kept in memory.
• Memory protection (data and programs).
• Software support from the OS:
• For scheduling (which program is to be run next).
• To manage resource contention.
Time-Sharing Systems
• Can be used to handle multiple interactive jobs
• Processor time is shared among multiple users
• Multiple users simultaneously access the system through terminals, with the OS
interleaving the execution of each user program in a short CPU burst or time
quantum of computation
Compatible Time-Sharing Systems CTSS
• One of the first time-sharing operating systems
• Developed at MIT by a group known as Project MAC
• Ran on a computer with 32,000 36-bit words of main memory, with
the resident monitor consuming 5000 of that
• To simplify both the monitor and memory management a program
was always loaded to start at the location of the 5000th word
Time Slicing
• System clock generates interrupts at a rate of approximately once
every 0.2 seconds
• At each interrupt OS regained control and could assign processor to
another user
• At regular time intervals the current user would be preempted and
another user loaded in
• Old user programs and data were written out to disk
• Old user program code and data were restored in main memory when
that program was next given a turn
CTSS Operation
Real-time Operating Systems
• Real-time operating system (RTOS) is an operating system intended to
serve real time application that process data as it comes in, mostly
without buffer delay.
• It is time-bound system that can be defined as fixed time constraints.
• In this type of system, processing must be done inside the specified
constraints. Otherwise, the system will fail.
Real-time Systems
• Three types of RTOS systems are:
• Hard Real Time :
• In Hard RTOS, the deadline is handled very strictly which means that given
task must start executing on specified scheduled time, and must be
completed within the assigned time duration.
• Example: Medical critical care system, Aircraft systems, etc.
Real-time Systems
• Firm Real time:
• These type of RTOS also need to follow the deadlines. However, missing a
deadline may not have big impact but could cause undesired affects, like a
huge reduction in quality of a product.
• Example: Various types of Multimedia applications.
• Soft Real Time:
• Soft Real time RTOS, accepts some delays by the Operating system. In this
type of RTOS, there is a deadline assigned for a specific job, but a delay for a
small amount of time is acceptable. So, deadlines are handled softly by this
type of RTOS.
• Example: Online Transaction system and Livestock price quotation System.
Real-time Systems
• Real-time systems are used in:
• Airlines reservation system.
• Air traffic control system.
• Systems that need immediate updating.
• Used in any system that provides up to date and minute information on stock
prices.
• Defense application systems like RADAR.
• Networked Multimedia Systems
• Command Control Systems
Multi-processor Systems
• Multiprocessor Operating System refers to the use of two or more
central processing units (CPU) within a single computer system.
• These multiple CPUs are in a close communication sharing the
computer bus, memory and other peripheral devices.
• These systems are referred as tightly coupled systems.
• These types of systems are used when very high speed is required to
process a large volume of data.
• These systems are generally used in environment like satellite control,
weather forecasting etc.
Multi-processor Systems
• Symmetric Multiprocessors
• In these types of systems, each processor contains a similar copy of the
operating system and they all communicate with each other. All the
processors are in a peer to peer relationship i.e. no master - slave relationship
exists between them.
• An example of the symmetric multiprocessing system is the Encore version of
Unix for the Multimax Computer.
Multi-processor Systems
• Asymmetric Multiprocessors
• In asymmetric systems, each processor is given a predefined task. There is a
master processor that gives instruction to all the other processors.
Asymmetric multiprocessor system contains a master slave relationship.
• Asymmetric multiprocessor was the only type of multiprocessor available
before symmetric multiprocessors were created.
Distributed Operating Systems
• A DOS is a system which contains multiple components located on
different machines, which coordinate and communicate actions in
order to appear as a single coherent working system to the user.
• A distributed operating system (DOS), are systems which model
where distributed applications are running on multiple computers,
linked by communications.
• All software and hardware compounds are located remotely. In order
for them to communicate with each other, they pass messages.
Network Operating System
• Network Operating System is an operating system that includes
special functions for connecting computers and devices into a local-
area network (LAN) or Inter-network.
• Some popular network operating systems are Novell Netware,
Windows NT/2000, Linux, Sun Solaris, UNIX, and IBM OS/2.
• An operating system that provides the connectivity among a number
of autonomous computers is called a network operating system.
• A typical configuration for a network operating system is a collection
of personal computers along with a common printer, server and file
server for archival storage, all tied together by a local network.
Network Operating System
• Provide file, print, web services and back-up services.
• Support Internet working such as routing and WAN ports.
• User management and support for logon and logoff, remote access;
system management, administration and auditing tools with graphical
interfaces.
• In this, the users can remotely access each other.
• It also includes security features.
• Example: authentication of data, restrictions on required data, authorizations
of users etc.
Homework
• Clustered Systems
• Peer-Peer Systems
• Mobile Computing Systems
• Web/Cloud-based Systems

You might also like