OS Definition:

A program that acts as an intermediary between a computer user and the computer hardware and software.

Function of OS

Resource manager -- (traditional view - due to expense of computers)

Manages

Concerns:

Productivity enhancement (enabling technology)

Audiences

OS tasks

(no clear separation)

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

Early on (and to many still), OS's restrict behavior, get in the way, add lots of overhead, slow things down, needlessly consume valuable resources (memory, machine cycles, disk space), hence the old joke:

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.

Variation in "standard" OS services

depends on how system it controls is expected to be used:

  1. Embedded, often "real-time", e.g., fly an airplane, control power plant.
    Characterization: real-time deadlines.

  2. Single user system. Examples: MS-DOS/various Windows, MAC
    Characterization: simplicity of use, little security.

  3. Time-sharing: Examples: CMS, UNIX, MULTICS
    Characterization: provide simultaneous services to several users as if each had a single-user system.

  4. Translation-based system: Examples: airline reservation, course registration
    Characterization: distributed access/modification of database

  5. Distributed systems. Examples: SunOS on network
    Characterization: many physical sites providing services to a distributed user community.

  6. Web-enabled services. Examples: e-bay, google, digital libraries

Quick history

1940'sno OSutilization: 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" OSutilization: 90%
throughput: 55 jobs/hr
turnaround:
job timetime req'd
1 min2-3 hrs
5 min8-10 hrs
more1-7 days
Early 1960'sSpoolingmuch 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'sbatch disappearing; micros;
embedded systems, networks
hard to characterize
1990'sdistributed 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

Evolution of OS concepts

Simple monitor:
                   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