Transcript 1. Intro
Operating Systems
Certificate Program in Software Development
CSE-TC and CSIM, AIT
September -- November, 2003
1. Introduction
(Chapter 1, S&G)
Objectives
– introduce Operating System (OS) principles
OSes: 1. Intro
1
Contents
1. What is an OS?
2. Some History
– early systems, batch systems,
multiprogramming, time-sharing,
desktop systems
3. Recent Trends
– multiprocessor systems, distributed,
clustered, real-time, handheld, etc.
OSes: 1. Intro
2
1. What is an OS?
User 1
User 2
compiler
editor
…..
…..
User N
database
Application Programs
Operating System
Computer Hardware
OSes: 1. Intro
3
Features
An
OS is a program that acts as an
intermediary between users and hardware
– supports a high-level work environment
– makes hardware convenient to use
– makes efficient use of hardware
OS
OSes: 1. Intro
design goals are often contradictory
continued
4
The
OS manages resources
– e.g. CPU time, memory, files, I/O devices
– avoid bottlenecks
– keeps the hardware busy
The
OS controls
– prevents users/programs adversely affecting the
hardware or other users
– the system should never crash
OSes: 1. Intro
5
OS Development
OSes: 1. Intro
6
2. Some History
2.1.
2.2.
2.3.
2.4.
2.5.
OSes: 1. Intro
Early Systems
Batch Systems
Multiprogramming Batch Systems
Time-Sharing
Desktop Systems
7
2.1. Early Systems
One
person at a contol panel of switches
and lights
Load libraries/utilities from tape
Slow set-up
Very costly hardware
Read
Compute
Print
Read
OSes: 1. Intro
Compute
Print
8
2.2. Batch Systems
Motivation:
highly utilise the hardware
– dedicated computer operator
– card/tapes handed to the operator
Similar
jobs were run in sequence (batched)
– no machine/user interaction
– errors were recorded as a printed core dump
– very slow turnaround time (for users)
OSes: 1. Intro
9
Resident Monitor
For
automatic job sequencing
Loader Job Sequencing
Control Card
Interpreter
User Program Area
monitor
OSes: 1. Intro
10
Control Cards
User’s
cards included control cards to guide
the monitor.
$END
data cards
$RUN
program cards
$JOB
OSes: 1. Intro
11
Off-line I/O Processing
On-line:
Card Reader
CPU
Line Printer
Off-line:
CPU
Card Reader
OSes: 1. Intro
tape drives
Line Printer
tape drives
12
Spooling
Job
pool on disk, scheduled by OS
disk
I/O
Card Reader
OSes: 1. Intro
CPU
Line Printer
13
Benefit Of Spooling
Read
OSes: 1. Intro
Compute
Print
Read
Compute
Print
Read
Compute
Print
14
2.3. Multiprogrammed Batch Systems
Have
several jobs in memory at a time.
Multiprogramming
allows the OS to switch to
executing another job when the current one is
suspended (e.g. waiting for user input).
The
OS may also swap jobs to/from disk.
Requires
OSes: 1. Intro
CPU scheduling
15
2.4. Time-Sharing
Multiple
jobs are executed by the CPU
switching between them
– as in multiprogramming
Difference
is speed; the switching is so fast
that users feel that their programs are
always running.
Executing
OSes: 1. Intro
program is called a process.
continued
16
Virtual
memory
– hides the distinction between memory and disk
Disk
management
Concurrent
execution requires fancy
scheduling schemes
Job
synchronisation, communication,
deadlock avoidance
OSes: 1. Intro
17
2.5. Desktop Systems
Personal
computers
– computer system dedicated to a single user
I/O
devices
– keyboards, mice, display screens, small printers
User
OSes: 1. Intro
convenience and responsiveness
continued
18
Can
adopt technology developed for larger
operating system
– sole use means less need for protection features
May
run several different types of operating
systems
– e.g. Windows, MacOS, UNIX, Linux
OSes: 1. Intro
19
3. Recent Trends
3.1.
3.2.
3.3.
3.4.
3.5.
3.6.
OSes: 1. Intro
Multiprocessor Systems
Distributed Systems
Clustered Systems
Real-time Systems
Handheld Systems
Computing Environments
20
3.1. Multiprocessor Systems
A system
with more than 1 processor, but
perhaps sharing computer bus, clock,
memory and devices
– tightly coupled systems
n
OSes: 1. Intro
processes = n times speed-up
continued
21
Benefits:
– save money on hardware
– increased reliability (graceful degradation)
Two
main types:
– symmetric multiprocessing systems
– asymmetric multiprocessing systems
OSes: 1. Intro
22
3.1.1. Symmetric Multiprocessing
Each
processor runs an identical copy of
the OS
Often
in a master-slave configuration
Jobs/resources
are shared dynamically
for better load balancing
OSes: 1. Intro
23
3.1.2. Asymmetric Multiprocessing
Have
– e.g.
OSes: 1. Intro
dedicated processors for specific tasks
remote job entry (RJE),
I/O terminal buffering
24
3.2. Distributed Systems
“The
OSes: 1. Intro
system is the network.”
continued
25
Multiprocessors,
but not sharing memory,
clock, etc.
– may be geographically separated
– loosely coupled systems
Benefits:
– resource sharing, speed-up, reliability
– matches modern business practise
OSes: 1. Intro
26
3.3. Clustered Systems
Clustering
allows two or more systems to
share storage.
– provides high reliability
Asymmetric
clustering
– one host runs the application while others
standby
Symmetric
clustering
– all hosts run the application
OSes: 1. Intro
27
3.4. Real-time Systems
There
are time constraints placed on
operations/data flows which must be met.
Uses:
– scientific experiments, medicine, industrial
control systems, home appliances, weapons
Two
OSes: 1. Intro
types:
– hard real-time systems
– soft real-time systems
28
3.4.1. Hard Real-time Systems
Critical
tasks are guaranteed to be done on
time.
Many
useful hardware/OS features are
missing since they make the time
constraints too hard to satisfy
– e.g. no secondary storage
OSes: 1. Intro
29
3.4.2. Soft Real-time Systems
Critical
tasks are given priority, but their
time constraints may not be met.
Weaker,
but can be used alongside typical
OS features
Applications: VR,
OSes: 1. Intro
multimedia
30
3.5. Handheld Systems
Personal
Digital Assistants (PDAs)
Cellular telephones
Issues:
– limited memory
– slow processors
– small display screens
OSes: 1. Intro
31
3.6. Computing Environments
Changing
environments are leading to
changes in OS requirements
–
–
–
–
OSes: 1. Intro
traditional
hand-held, mobile
Web-based
embedded, dedicated processors
32