Saturday, January 24, 2009

An experimental time-sharing system - Fernando Corbato

First of all, this paper is old, 1962

Memory challenges were identified: things about isolation

Programming problems were identified: accounting, supervisor must manage shared IO resources, need good programming tools

Other problems: already thinking about failure
-----
Their design: basically how we would build this today, probably because this was the an ancestor to our current time sharing systems.

some of the most challening problems:
-HCI, which required considerably more experimentation and evaluation
-multiple terminals communicating with one program
-get some disks (only had tapes)

haha, operators take commands from "the supervisor", i.e. root, e.g. change this tape out

They use a priority queue scheduling policy, assigning priority of processes based on number of words in the program (equation (2)). This seems like a very crude first stab, essentially rating based on how fast we can get the process into and out of memory from tape.

They run a job from queue L_n for 2 * l quanta of time, and if it doesn't finish then they move it up to queue L+1. They run everything at queue level L (i.e. until level L is empty), then everything at level L+1 until L+1 is empty, etc. If a job enters a queue at a level lower than the currenly operating level, they jumpt down down to it (i.e. to that queue level) and start the process over from that level.

They keep efficiency of system > 1/2 by enforcing the policy that the time quantum must be larger than the context switch overhead time (equation (3)).

They also give some numbers for what parameters would be for the IBM 7090

No comments: