You are on page 1of 6

CONTENTS

What is an Operating System?


Evolution of Operating Systems

CHAPTER 1:
Early Systems
Simple Batch Systems
Multiprogrammed Batch Systems
INTRODUCTION TO Time-Sharing Systems

OPERATING SYSTEM
Desktop Systems
Multiprocessor Systems
Distributed Systems
Clustered System
Real -Time Systems
Handheld Systems
Computing Environments

What is an Operating System? What is an Operating System?

Definition : Computer system components:


A program that acts as an intermediary between a user 1. Hardware provides basic computing resources
of a computer and the computer hardware. (CPU, memory, I/O devices).
Purpose: 2. Operating system controls and coordinates the use
to provide an environment in which user can execute of the hardware among the various application
program in a convenient & efficient manner. programs for the various users.
Operating system goals: 3. Applications programs define the ways in which the
Execute user programs and make solving user system resources are used to solve the computing
problems easier. problems of the users (compilers, database systems,
video games, business programs, office applications,
Make the computer system convenient to use.
etc).
4. Users (people, machines, other computers).

What is an Operating System? What is an Operating System?


COMPUTER
SYSTEM User Point of View :
COMPONENTS PC single user ( to monopolize resources &
maximize the work);
OS designed for ease of use, attention to
HARDWARE OPERATING APPLICATION USER performance not to resource utilization
SYSTEM PROGRAM
Mainframe other users are accessing through other
terminals;
OS designed to: maximize resource utilization (e.g:
CPU time, memory & I/O)
Workstations connect to networks of other
workstations and server;
OS designed to compromise between individual
usability & resource utilization

1
What is an Operating System? What is an Operating System?

System Point of View:


Resources Allocator Abstract view
Computer system has many resources. of computer
OS act as the manager of these resources system
component
manages and allocates resources.
Control Program
Manages the execution of user program to prevent
error and improper use of the computer
Concerned with the operation and control of I/O
devices
Kernel one program running at all time on the
computer

What is an Operating System? Evolution of Operating Systems

Operating System Definitions: Early Systems (1950)


Resource allocator manages and allocates
Simple Batch Systems (1960)
resources.
Multiprogrammed Batch Systems (1970)
Control program controls the execution of
Time-Sharing and Real-Time Systems (1970)
user programs and operations of I/O devices .
Personal/Desktop Systems (1980)
Kernel the one program running at all times
(all else being application programs). Multiprocessor Systems (1980)
Networked/Distributed Systems (1980)
Handheld Systems (1990)

Early Systems (1950)


Mainframe
Mainframe Machine
Systems
Structure:
Single user system.
Large machines run from console.
Programmer/User as operator.
Paper Tape or Punched cards.
No tapes/disks in computer.
Early software: Assemblers, Libraries of common
subroutines, Device Drivers, Compilers, Linkers.
Significant amount of setup time.
Low CPU utilization.
But very secure.

2
Simple Batch Systems (1960) Simple Batch Systems (1960)
Mainframe Machine
Early computer physically enormous machine run from a console
Input Device card reader & tape drives Paper tape
Tape drive Key Punch Machine
Output Device line printer, tape drives & punch cards
generate punch
User did not interact directly with the computer system card
A job (a single program+ associated data + control information)
usually on the punch cards submitted to the operator.
The output consisted of the results of the program or memory dump
in case of error.
The operator used to batch together similar programs and run as a
group to reduce setup time.
No user interaction while the job is executing.
Current examples include .bat files under Dos Windows and shell
files under Unix/Linux.

Simple Batch Systems (1960) Mainframe

What is a Mainframe? Ref: http://mainframes.com/whatis.htm


User prepared a job [program, data, control info Definition from SDS:
about the nature of the job (control card)] Mainframes used to be defined by their size, and they can still fill a
room, cost millions, and support thousands of users. But now a
submitted to the computer operator output
mainframe can also run on a laptop and support two users. So today's
Major task of OS Automatic job sequencing : mainframes are best defined by their operating systems: Unix and
automatically transfers control from one job to Linux, and IBM's z/OS, OS/390, MVS, VM, and VSE.
another. Mainframes combine four important features:
To speed up processing Reduce setup time by 1) Reliable single-thread performance, which is essential for reasonable
operations against a database.
batching together jobs with similar needs and ran
2) Maximum I/O connectivity, which means mainframes excel at
them through the computer as a group providing for huge disk farms.
Problems: 3) Maximum I/O bandwidth, so connections between drives and
Slow Performance I/O and CPU could not overlap; card processors have few choke-points.
reader very slow. 4) Reliability--mainframes often allow for "graceful degradation" and
CPU was often idle. service while the system is running.

Mainframe Memory Layout for a Simple Batch


System / Uniprogramming
Uniprogramming Until Now
I/O operations are exceedingly slow (compared
There were 2 ways of mainframe processing:
to instruction execution).
A program containing even a very small number
1. time sharing (Online (Interactive) Transaction of I/O operations will spend most of its time
Processing) waiting for them.
because the computer gave each user Problem: poor CPU usage when only one
a tiny sliver of time in a round-robin fashion program is present in memory.

2. batch mode processing (Batch Processing)


the computer gives its full attention to your program

Memory Layout for a Simple Batch System / Uniprogramming

3
Multiprogrammed Batch Systems Multiprogrammed Batch Systems
Several jobs are kept in main memory at
the same time, and the CPU is multiplexed
among them.
If memory can hold several programs, then
CPU can switch to another one whenever a
program is waiting for an I/O to complete
This is multiprogramming.
How does it works?
o/s keeps several jobs in memory
simultaneously in job pool. OS Features Needed for Multiprogramming:
o/s pick and begins to execute 1 of the
I/O routine supplied by the system.
job in memory.
o/s can simply switch to another job Memory management the system must allocate the
(2nd job) if job 1 have to wait for some memory to several jobs.
task (e.g wait for I/O to complete). CPU scheduling the system must choose among
If job 1 finished waiting, it will get back several jobs ready to run.
the CPU. Allocation of devices.
CPU will never in idle.

Time Sharing Systems (Interactive Time Sharing Systems (Interactive


Systems) Systems)
TSS extends Batch multiprogramming to handle multiple interactive TS system provides each user with his/her own
jobs Its Interactive Multiprogramming. virtual machine.
Multiple users simultaneously access the system through terminals.
Processors time is shared among multiple users, that is, the CPU
is multiplexed among several jobs that are kept in memory and on
disk (the CPU is allocated to a job only if the job is in memory).
A job swapped in and out of memory to the disk.
On-line communication between the user and the system is
provided; when the operating system finished the execution of one
command, it seeks the next control statement from the users
keyboard.
On-line system must be available for users to access data and
code.

Time Sharing Systems (Interactive Personal / Desktop Systems (1980)


Systems)
Multitasking Personal computers computer system
TSS eventually supports multitasking.
A time share system that supports multiple processes (program in execution) per
dedicated to a single user.
user is called a multitasking system. I/O devices keyboards, mice, display screens,
small printers.
Why Does Time Sharing Work?
Because of slow human reaction time, a typical user needs 2 seconds of User convenience and responsiveness.
processing time per minute.
Can adopt technology developed for larger
Then many users should be able to share the same system without noticeable
delay in the computer reaction time. operating systems.
May run several different types of operating
OS Features Needed for Time Sharing Systems
systems (Windows, MacOS, UNIX, Linux)
On-line file system must be available for users to access data and code.
Should do memory management
Should do CPU scheduling
Should do job synchronization and have communication facilities.
Should ensure that dead lock and indefinite waiting does not occur.
Should allow sharing of computer resources.

4
Personal / Desktop Systems Multiprocessor systems
Multiprocessor systems / Parallel systems:
Two Categories of Computer Systems Multiprocessor systems has more than one CPU in close
1. Single Instruction Single Data (SISD) communication.
Single processor executes a single instruction sequence to Tightly coupled system processors share memory and a clock;
operate on data stored in a single memory. communication usually takes place through the shared memory.
This is a Uniprocessor. Advantages of parallel system:
Increased throughput
2. Multiple Instruction Multiple Data (MIMD) Economical
A set of processors simultaneously execute different
Increased reliability
instruction sequences on different data sets.
This is a Multiprocessor.
graceful degradation

Multiprocessor
architecture

Multiprocessor systems Multiprocessor systems


Multiprocessor systems / Parallel Systems:
1. Symmetric multiprocessing (SMP) Multiprocessor systems / Parallel Systems:
Each processor runs an identical copy of the operating
system. 2. Asymmetric multiprocessing
Each processor can perform the same functions and share Each processor is assigned a specific task; master
same main memory and I/O facilities (symmetric). processor schedules and allocated work to slave
processors.
The OS schedules processes/threads across all the
More common in extremely large systems
processors (real parallelism).
Existence of multiple processors is transparent to the user.
Incremental growth: just add another CPU!
Robustness: a single CPU failure does not halt the system,
only the performance is reduced.
Many processes can run at once without performance
deterioration.
Most modern operating systems support SMP

Distributed Systems Distributed Systems


Distribute the computation among several physical
General Structure of Client-Server
processors.
Loosely coupled system each processor has its own local
memory; processors communicate with one another through
various communications lines, such as high-speed buses or
telephone lines.
Advantages of distributed systems.
Resources Sharing
Computation speed up load sharing
Reliability
Communications
Requires networking infrastructure - Local area networks
(LAN) or Wide area networks (WAN)
May be either client-server or peer-to-peer systems.

5
Clustered Systems Real-Time Systems
Note that not all Operating Systems are general-purpose systems.
Real-Time (RT) systems are dedicated systems that need to adhere
to deadlines, i.e., time constraints.
Correctness of the computation depends not only on the logical
Clustering allows two or more systems to share
result but also on the time at which the results are produced.
external storage and balance CPU load . Often used as a control device in a dedicated application such as
Provides high reliability. controlling scientific experiments, medical imaging systems,
industrial control systems, and some display systems.
Asymmetric clustering: one server runs the
Real-Time systems may be either hard or soft real-time.
application while other servers standby. Hard real-time:
Symmetric clustering: all N hosts are running Must meet its deadline.
Secondary storage limited or absent, data stored in short term
the application. memory, or read-only memory (ROM)
Conflicts with time-sharing systems, not supported by general-purpose
operating systems.
Soft real-time
A critical real-time task gets priority over the other tasks (Deadline
desirable but not mandatory).
Limited utility in industrial control of robotics
Useful in applications (multimedia, virtual reality) requiring advanced
operating-system features.

Handheld Systems Computing Environments

Personal Digital Assistants (PDAs)


Cellular telephones
Issues:
Limited memory
Slow processors
Small display screens.

Migration of Operating-System Concepts and Features

Operating-System Concepts and


Features

You might also like