Productivity enhancement (enabling technology)
Security is clearly an OS function, to protect resources and users from both accidental and intentional intrusions.
File System Organization
Communication
Memory Management
"Mutual exclusion" in management of shared resources (much more on this later -- but OS often must allocate a resource to at most one user at a time).
User interfaces
Q. What is an elephant?
A. A mouse with an operating system.
Purpose of OS is to reduce costs (do more with less) and provide necessary security.
| 1940's | no OS | utilization: 7% throughput: 4 jobs/hr productivity: perceived as good | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| User sat at console. signed out machine (one standard CS urban legend is that the term "bug" came into the CS lexicon when Grace Hopper fixed a program by removing a moth that prevented a switch from closing. The moth was taped into the log book.) | ||||||||||
| 1950's | "batch" OS | utilization: 90% throughput: 55 jobs/hr turnaround:
| ||||||||
| Early 1960's | Spooling | much slowerI/O devices 800 jobs/day turnaround: 5 min. | ||||||||
| 1960's & 1970's | time sharing & batch Also first micros | hard to characterize, but turnaround in a few seconds. | ||||||||
| 1980's | batch disappearing; micros; embedded systems, networks | hard to characterize | ||||||||
| 1990's | distributed systems, time- sharing, embedded, batch | hard to characterize | ||||||||
GM is credited with the first OS in 1950's for IBM 701: goal was to reduce set-up and tear-down time.
1960's
Main memory
+-------------+
/ | loader | can read cards/tape $FTN
| +-------------+ $ASM
| | job seq. | $RUN
monitor < +-------------+ $DATA
| | cntl card | interp. task
\ | interperter |
+-------------+
| |
| user pgm |
| area |
| |
| |
| |
| |
+-------------+
Handle speed mismatches:
I/O devices ``slow'' CPU ``fast'' hence have spooling:
________ _____ | _____ _____ ____ | _____ _____
/ | | | | | | | | | | || | | |
| |-->| O O | | | O O |-->| |-->| O O | || O O |-->| /
|_________| |_____| | |_____| |_____| |_____| ||_____| |____|
card rdr tape drive|tape drive computer tape drive|tape drive printer
(slow) (faster) | (faster) (fast) (faster) | (faster) (slow)
| |
tape moved physically tape moved physically
(by operator) (by operator)
So input decks (of cards) were "spooled" into tape. Later an operator would move the tape to the computer, which would produce an output tape, which the operator could later move to the tape attached to the printer.
Now replace all of the tape drives with a disk drive (so that operator did not have to regularly move tapes). Hence spooling. (SPOOL is "Simultaneous Peripheral Operations OnLine", an ideal Computer Bowl Question - or 471 quiz question.)
I/O devices are slow (compared to CPU speeds). It was recognized that CPUs spent most of their time waiting on I/O completions. Hence multiprogramming.
Main memory
+---------+ cycle: run j1 until I/O wait, then switch to
| monitor | j2 til it requests I/O, then switch to j3
| | until it needs I/O. And (with luck), j1's
+---------+ I/O will by this time be complete, so switch
| job 1 | back to j1.
| |
| | Actual cycle is "smarter" than this, but this
+---------+ is the basic idea: have several jobs in memory
| job 2 | "ready-to-go" and switch the CPU to another ready
+---------+ one whenever one gets blocked. Purpose is to keep
| job 3 | the CPU busy doing useful work. Well, if not
| | completely busy, at least busier than otherwise.
+---------+
|/////////| (unused memory)
|/////////|
+---------+
Once this was possible (to switch among several jobs in memory so that the CPU could be shared), time-sharing became possible. With RR servicing. First introduced in early 60's, common in early 70's. Computing became fun again (at least for the programmers).
Distributed systems (Symmetric/Asymmetric):
| Index | Next |
|---|
Copyright ©2005, G. Hill Price
Send comments to G. Hill Price