A short history of computer systems Outline Recall... Recall... Types

advertisement
Outline
Recall...
Characteristics of an OS
A short history of computer systems
CS211: Lecture 2
Niall Madden
Friday, 11 Sep 2009
CS211 — A short history of computer systems
Recall...
1/21
1
Recall...
Characteristics of an OS
2
Types of Computer Systems
Batch Systems (1950’s)
Multiprogramming (’60s)
Multitasking (1970s +)
PCs (1980’s +)
Multiprocessor (’80s+)
Real-time Systems
Distributed Systems
Mobile Computing
Different ways one may characterise an operating system:
After the computer is booted, it is the first program to run. All other
programs are run by it.
It provides an interface between users and the computer’s hardware.
It is a resource allocator – it gives access to the CPU, RAM, mass
storage, etc., and makes efficient use of resources.
It controls the execution of (all) other programs.
It is running at all times – this part of the Operating System is
often called the kernel.
CS211 — A short history of computer systems
2/21
Types of Computer Systems
Characteristics of an OS
CS211 — A short history of computer systems
3/21
Types of Computer Systems Batch Systems (1950’s)
Processor speeds measured in kHz.
Programs were stored on cards – a fast card reader could handle up to
20 cards per second!
Examples of Operating Systems include:
Microsoft: Windows NT (XP, Vista, 7), etc.
Apple: MacOS/Darwin, iPhone OS
GNU/Linux
Batch Systems
Google Chrome(?)
Multiprogramming Systems
Other UNIX-type operating systems: Solaris (Sun), HP-UX (HP), Tru
64 (Digital/Compaq Alpha), AIX (IBM)
Multitasking Systems
VMS (Virtual Memory System). Latest version: OpenVMS (Oct ’08)
Multiprocessor Systems
Personal Computers
Distributed Systems
Exercise
Write a short essay (no more than 200 words) on any operating system
other than those listed above.
Send your essay by email to Niall.Madden@NUIGalway.ie no later than
Thursday 19/09/09.
CS211 — A short history of computer systems
Programs submitted by hand to the operator who put complementary
programs into separate “batches” and loaded them.
4/21
CS211 — A short history of computer systems
5/21
CS211 — A short history of computer systems
6/21
Types of Computer Systems Batch Systems (1950’s)
Types of Computer Systems Batch Systems (1950’s)
The OS took the form of the resident monitor – consisting of
The solution is to over-lap job execution with I/O. The OS would
simultaneously
Card Interpreter – read and carry out instructions on cards.
Loader – place system and application programs into memory.
Device Drivers – manage the Input and Output (I/O) devices.
Biggest problem with Batch Systems was slow performance: I/O and
CPU operations could not overlap; the CPU was much faster than the
card reader but had to wait for instructions to be read in.
CS211 — A short history of computer systems
BASIC IDEA: Processors run faster than I/O devices.
BASIC GOAL: Keep the processor in use at all times.
Read the next jobs from card reader onto a disk
Several jobs are selected from a job pool and are loaded into
memory.
Execute the current job
The OS selects one and starts to executing it.
Output the results of the previous job to the printer.
If that job is delayed (waiting for I/O) the CPU selects another and
runs that instead. When that one is delayed, a 3rd is selected and
that is executed.
With the advancement of disk technology, job scheduling became
possible. In particular, the concept of Multiprogramming was
introduced.
7/21
CS211 — A short history of computer systems
Types of Computer Systems
Multiprogramming requires the OS have certain components:
BASIC IDEA: for interactive computing the CPU must be able to switch
between jobs quickly
Job scheduling: must decide which jobs are selected from the pool
and loaded into memory together.
Eventually, by the time the OS returns to the first job it should have
completed the I/O by then.
8/21
Types of Computer Systems Multiprogramming (’60s)
CS211 — A short history of computer systems
Types of Computer Systems
Multitasking (1970s +)
9/21
Multitasking (1970s +)
A Time-sharing/multitasking system must have the following facilities:
multiprogramming and CPU scheduling
BASIC GOAL: to give the impression to users/programs that they have
exclusive use of the computer
CPU scheduling: if job X is delayed, must have a mechanism for
selecting which job replaces it.
more that one job executing at a given time – processes
Memory management and virtual memory
The CPU gives a small amount of attention to each available job. This is
called Time Sharing. This gives the impression that all the jobs are
running at the same time.
Memory management
Memory and File protection: make sure that different jobs don’t try
to write to the same location in memory or the on disk drive
File systems and Disk management
process synchronisation and communication
Most modern Operating Systems are multitasking.
Instead of submitting programs on cards to the operator, several users (2,
10, 100...) interact with the computer at the same time, using
key-board/mouse/whatever.
In order to make key-board driven, multi-user computers feasible the idea
had to be extended further, if only because typing is much slower that
even card reading. This leads to Multitasking
CS211 — A short history of computer systems
Types of Computer Systems Multiprogramming (’60s)
The systems mentioned above had many concepts in common. One
crucial one was that Computer time was expensive and People’s time
was cheap.
Typing is slow: about 1 key-press every 0.1s. Between key-presses, the
CPU has time to perform other tasks such as reading another user’s
key–strokes.
10/21
CS211 — A short history of computer systems
11/21
CS211 — A short history of computer systems
12/21
Types of Computer Systems
Types of Computer Systems
PCs (1980’s +)
Also known as micro computers, PCs were cheap compared
to mainframes/minicomputers – could afford to have a ratio of
Types of Computer Systems
PCs (1980’s +)
Because only one user was using a computer at any given time, the OS
could be much simpler than on the big systems:
One user to one Computer
BASIC IDEA: to increase a computer’s speed, increase the number of
CPUs that it has access to
no multiprogramming
no security
Because user’s time became more valuable than the computers, the
operating systems were designed primarily to be easy to use.
As limits of processor speeds are reached, high performance computing
(where emphasis is on performing as many calculations as possible in a
short amount of time) looked to increasing the number of CPUs in a
computer.
no file/memory protection
This was to change because
Early PC makers included Apple and IBM.
small computers became faster – comparable to speed on mini
computers.
Multiprocessor Systems vary from dual-processor desk-top systems to
“massively parallel computers” with 1000’s of CPUs.
use of networking requires security.
Advantages:
Multitasking Operating Systems were ported to micro-computers. In
particular several Unix systems were re-written for Intel (x086)
architecture. E.g., Free BSD, SCO Unix, Linux.
Ten 1 Ghz chips might be cheaper that one 10 Ghz chip.
Faster absolute speeds can be achieved
Reliability – if one processor fails, others will keep running.
So other OSs such as NT, OS/2 and Mac OS were developed for
personal computer but with features of multitasking operating systems.
CS211 — A short history of computer systems
Types of Computer Systems
13/21
CS211 — A short history of computer systems
Types of Computer Systems
Multiprocessor (’80s+)
There are two basic types of multiprocessing:
CS211 — A short history of computer systems
Types of Computer Systems
Real-time Systems
Medical Equipment
Note: in general if you can get w units of work done on one processor
and you have n processors, you will get less than w × n units done with
them.
Domestic Appliances
Fuel injection systems
16/21
CS211 — A short history of computer systems
15/21
Real-time Systems
There are two basic types of real-time system:
1
Hard real-time: no secondary storage (eg., hard-drive), no
time-sharing or multiprogramming, data is usually stored in ROM.
Operating System lacks components that we study in this course.
2
Soft real-time: Used in real-time systems that require some
advanced OS features, e.g., multimedia systems, space exploration,
etc.
When a time-critical task must be completed, it gets priority over
other operations until it completes.
Robotics Control
Asymmetric multiprocessing: master-slave model.
CS211 — A short history of computer systems
14/21
are employed when there are very rigid time constraints – when the
system must complete its designated task in a given time frame.
Examples include
Symmetric multiprocessing (SMP): common on smaller systems, must
operating systems have a facility for SMP. All processors
are equal (peers) and run a copy of the OS.
Multiprocessor (’80s+)
17/21
CS211 — A short history of computer systems
18/21
Types of Computer Systems
Types of Computer Systems
Distributed Systems
Distributed Information Systems are a familiar concept: the World Wide
Web is a good example. Instead of all the information being stored on
one computer, small amounts are on different computers connect by a
network.
Types of Computer Systems
Distributed Systems
Mobile Computing
Examples of distributed systems:
In a similar manner, computational work may be shared across a
network. Computers that work in this fashion are called
Distributed or Loosely Coupled Systems
Shared Resources (data bases, printers, file systems, ...)
1
Large information servers, e.g., Google. Need to be fast and reliable.
2
Intensive Computational Work. E.g., rendering for animated films
are often done using on clusters of PCs running (Beowolf) Linux.
3
Remote computational Systems, e.g., SETI: though this is more an
example of distributed computer rather than a distributed operating
system.
Devices such as the BlackBerry, iPhone
have led to a large deal of technology
convergence, and leading to a new
generation of operating systems.
Although we won’t cover these in any great
detail, many of the principles associated
with traditional computing still apply, but
with a strong emphasis on connectivity.
KEY IDEA: Distributed Systems are similar to Parallel Systems, but
use several/many computers on one network rather than
several/many processors in one computer
Load sharing – work can be distributed over the different computers
so that no one is over-loaded.
Reliability – one computer fails, the system will continue to function.
CS211 — A short history of computer systems
19/21
CS211 — A short history of computer systems
20/21
CS211 — A short history of computer systems
21/21
Download