An Experimental Time-Sharing System
Corbato, Merwin-Daggett, Daley (1962)
What kind of paper is this?
- Describes a system
- Motivates need for a new type of system
- Presents a new scheduling algorithm
Paper places itself in context.
- Two interpretations of time-sharing
- multiprogramming -- goal is to use hardware more effectively.
- "real" time-sharing -- run different jobs for multiple people
- Focus on man-computer interaction (is this a systems paper or an
- A lovely quote, as true today it was then (if not more so):
"In part, this effect has been due to the fact that as elementary problems become mastered on the computer, more complex problems immediately become of interest. As a result, larger and more complicated programs are written to take advantage of larger and faster computers."
Problems in "today's" systems
- System complexity is increasing
- Systems are becoming larger.
- Larger systems implies more bugs.
- Debugging is time-consuming.
- Turn-around on debugging is too long.
This idea of time-sharing can be thought of as one element in a line of
Problems in hardware:
- Memory protection.
- Dynamic relocation.
- I/O device protection.
- More permanent storage.
- Timer interrupts.
- Larger main memories.
System software requirements:
- Swap out processes waiting on I/O.
- Programming tools.
- Programmer flexibility.
- Handle excessively large programs.
- Accurate accounting reporting.
- Identify running process; handle errors gracefully.
- Not only developed, but ported once!
- Hardware modifications
- attach typewriters (3)
- add accounting/interrupt clock
- supervisor mode (i.e. protection, relocation, trap on I/O)
- 3 interactive users, 1 batch user
- Timesharing supervisor takes up low 5000 words of memory
- Each user has two tapes (private, dump)
System subtleties (or why this is an important paper):
- Commands are queued
- Overlap CPU and I/O (read-ahead) .
- Buffer flow control
What does the time-sharing supervisor subsume in today's systems?
Research areas identified
- User interfaces
- Symbolic debuggers (tracing, dump, post-mortem)
- Shared programs (i.e. groupware)
- File systems
- Integration of background / foreground users
Part II: Scheduling
Derivation of multi-level scheduling
- programs enter system at level based on ratio of program size to the
number of bytes that can be moved to/from secondary storage in a
quantum (let L = log 2 ratio)
- supervisor runs programs with lowest ratio.
- run program for 2 L quanta.
- if program runs to completion but is not done (not waiting user
input), elevate the program to the L + 1st queue.
- what scheduling discipline is this.
- bounded response time.
- bounded system efficiency.
- bounded efficiency relative to run-to-completion.
- describe how efficient I/O can be utilized to improve algorithm.
- Great paper.
- Important ideas.
- Analytical evidence.
- Well -integrated paper (i.e. hardware + software + tools)