You are on page 1of 2

What is an Operating System?

History of Operating Systems


(Review)

n An operating system (OS) is the interface n Phase 0 — hardware is a very expensive


between the user and the hardware experiment; no operating systems exist
● It implements a virtual machine that is 1. One user at console
easier to program than bare hardware n One function at a time (computation, I/O,
user think/response)
n An OS provides standard services (an n Program loaded via card deck
interface) which are implemented on the – Libraries of device drivers (for I/O)
hardware, including: n User debugs at console

● Processes, CPU scheduling, memory


n Phase 1 — hardware is expensive,
management, file system, networking
humans are cheap
n The OS coordinates multiple 2. Simple batch processing: load program,
applications and users (multiple run, print results, dump, repeat
processes) in a fair and efficient manner n User gives program (cards or tape) to the
operator, who schedules the jobs
åThe goal in OS development is to make n Resident monitor automatically loads,
runs, dumps user jobs
the machine convenient to use (a
n Requires memory management
software engineering problem) and (relocation) and protection
efficient (a system and engineering n More efficient use of hardware, but
problem) debugging is more difficult (from dumps)
1 Fall 1998, Lecture 02 2 Fall 1998, Lecture 02

History of Operating Systems (cont.) History of Operating Systems (cont.)

n Phase 1 — hardware is expensive, n Phase 2 — hardware is less expensive


humans are cheap than before, humans are expensive
3. Overlapped CPU & I/O operations 5. Interactive timesharing
n First: buffer slow I/O onto fast tape drives n Lots of cheap terminals, one computer
connected to CPU, replicate I/O devices – All users interact with system at once
n Later: spool data to disk – Debugging is much easier
n Disks are cheap, so put programs and
4. Multiprogrammed batch systems
data online
n Multiple jobs are on the disk,waiting to run
– 1 punch card = 100 bytes
n Multiprogramming — run several – 1MB = 10K cards
programs at the “same” time – OS/360 was several feet of cards
– Pick some jobs to run (scheduling), and
n New problems:
put them in memory (memory
management) – Need preemptive scheduling to maintain
adequate response time
– Run one job; when it waits on something
(tape to be mounted, key to be pressed), – Need to avoid thrashing (swapping
switch to another job in memory programs in and out of memory too often)
n First big failures: – Need to provide adequate security
measures
– MULTICS announced in 1963, not
released until 1969 n Success: UNIX developed at Bell Labs so
– IBM’s OS/360 released with 1000 known a couple of computer nerds (Thompson,
bugs Ritchie) could play Star Trek on an unused
PDP-7 minicomputer
n OS design should be a science, not an art
3 Fall 1998, Lecture 02 4 Fall 1998, Lecture 02
History of Operating Systems (cont.) History Lessons

n Phase 3 — hardware is very cheap, n None of these operating systems were


humans are expensive particularly bad; each depended on
6. Personal computing
tradeoffs made at that point in time
n CPUs are cheap enough to put one in ● Technology changes drive OS changes
each terminal, yet powerful enough to be
useful n Since 1953, there has been about 9
– Computers for the masses!
orders of magnitude of change in almost
n Return to simplicity; make OS simpler by
every computer system component
getting rid of support for
multiprogramming, concurrency, and ● Unprecedented! In past 200 years, gone
protection from horseback (10 mph) to Concorde
(1000 mph), only 2 orders of magnitude

n Modern operating systems are: n Changes in “typical” academic computer:


● Enormous 1981 1996
n Small OS = 100K lines of code MIPS 1 400
n Big OS = 10M lines price / MIPS $100,000 $50
memory 128 KByte 64 MByte
● Complex (100-1000 person year of work)
disk 10 MByte 4 GByte
● Poorly understood (outlives its creators, network 9600 bit/sec 155 Mb/s
too large for one person to comprehend) address bits 16 64
5 Fall 1998, Lecture 02 6 Fall 1998, Lecture 02

Modern OS Functionality
More Recent Developments
(Review)

n Concurrency n Parallel operating systems


● Multiple processes active at once ● Shared memory, shared clock
● Processes can communicate ● Large number of tightly-coupled
processors
● Processes may require mutually-
exclusive access to some resource ● Appearance of single operating system
● CPU scheduling, resource management
n Distributed operating systems
n Memory management — allocate ● No shared memory, no shared clock
memory to processes, move processes ● Small number of loosely-coupled
between disk and memory processors

n File system — allocate space for storage ● Appearance of single operating system is
ideal goal, but not realized in practice
of programs and data on disk
● May try to simulate a shared memory
n Networks and distributed computing —
allow computers to work together n Real-time operating systems
● Meet hard / soft real-time constraints on
n Security & protection processing of data

7 Fall 1998, Lecture 02 8 Fall 1998, Lecture 02