26 March 1965
GENERAL ELECTRIC COMPUTER DEPT. LABORATORY
(revised from a publication of the
dated 19 October 1964)
THE DARTMOUTH TIME SHARING SYSTEM (*)
College Computation Center at Hanover, N.H. and the General Electric Advanced Systems Lab
at Phoenix, Arizona, each operate Time-Sharing computer systems that can simultaneously
service a large number of remote consoles. The system at Dartmouth, where the original
development was done, is used both for teaching large numbers of undergraduate students,
and for faculty research purposes. It was designed and the software constructed in a
relatively short time by a small group of faculty members ably assisted by a highly qualified and enthusiastic group of undergraduates. The
Dartmouth Time-Sharing experience shows two
facts: First, Time-Sharing should be considered not only for major research and testing
Centers but also for smaller and more conventional installations. Second, the nature of
the programming and system problems connected with Time-sharing are now fairly well
understood and present less difficulty than was previously anticipated.
The Dartmouth Time-Sharing hardware complex contains two computers. One is the General Electric Datanet- 30, which is used both as the remote console controller and also the site of the master executive program. It can control, through interrupts, the other computer, a General Electric GE-235 , whose main functions is to compile programs and to perform floating-point arithmetic. There is a direct line connecting these computers which is used for control purposes. However, the main path of data and information transfer in both directions is through a disc storage unit which can be accessed by either computer. In addition to its role in handling the information flow between the two computers, the disc provides a storage for both active and saved programs.
The multiple remote consoles are model 33/35 teletype machines. However, the equipment can handle almost any type of remote device employing standard codes transmitted at relatively slow rates.
The computer complex also includes conventional tape drives, card reader, card punch, and high-speed printer. However, those devices paly only an ancillary role in the Time-Sharing System.
The user introduces himself (1) to the system by typing the word HELLO. This initiates a short series of questions and answers which serve to further identify the user and his problem. Specifically, the user supplies his user number, the name of the system with which he intends to operate, specifies whether the problem he is about to name is new or old, and gives the problem name. If it is an old problem, the system retrieves it from the saved program storage area on the disc. The user may then add to the program or modify it in any way. If it is a new problem, the user is presented with a clean slate, and he composes his program from scratch.
The statements of the program start with a line number, which distinguishes them from the commands to the system. Having the user typing his own line numbers permits him to correct lines in the program simply by retyping them, to insert new lines in the program, or to delete unneeded lines. When he has finishing composing his program, he then types RUN without a line number. This command causes the system to deliver his source program to a translator, after which it is run. The answer will be typed out on the teletype machine.
Other commands are available to the user. By typing SAVE the user can store away for future reference his program as it exists at that moment and under the problem name he is currently using. Such saved programs can be later retrieved by typing OLD. If the user is finished with his saved program, he should type UNSAVE, which makes available that particular storage space for some other program. At any point he may type LIST, which list his entire active program, or LIST-XXXX, which will list his program starting with line number XXXX. At any time in the proceedings the user may type STOP. Even if the system is printing (2) out answers or listing a program, it will immediately stop and wait further commands. The combined use of the selective LIST and the STOP commands permits the user to list easily lines in the middle of his program.
Currently under development are two new commands RENUMBER and MERGE. MERGE will permit a user to retrieve two or more saved programs to create a larger composite program. RENUMBER will permit the user to renumber the lines in any program to permit later merging with programs having similar line numbers (3).
Two algebraic languages, BASIC and ALGOL, are available, with FORTRAN planned for September 1965. These one-pass compilers are rather fast, requiring usually 1 to 4 seconds per compilation. Because of their speed, it is economical always to recompile upon each RUN; thus symbolic debugging is quite straightforward.
The disc file at Dartmouth contains a large number of programs in symbolic (4) form. These are available to every user by typing in OLD and the library program name followed by ***: he may then rename, save, modify, etc. just if he had originated the program. Thus the user has at his fingertips an extensive library available within seconds
The system may be divided logically into three parts. The Datanet-30 computer acts as remote console controller but more importantly contains the master executive program (5) . The GE-235 performs all translations and executions, and certain bookkeeping operations as well. The disc storage unit acts as the buffer area for currently active programs, the buffer area for information being outputted from the GE-235, and a storage unit for saved programs. It also serves as the storage unit for the various systems used by the GE-235.
Inside the Datanet-30 are input-output buffer areas associated
with each teletype station. There are operated in a flip-flop fashion so that input or
output typing may continue in one part of the buffer while the other is
"connected" to the disc unit. The program in the Datanet-30 is divided into two
parts, a real-time part and a spare-time part. The real-time is entered via clock
controlled interrupt 110 times per second in order to scan the teletype lines. As
characters are completed, the real-time part collects them into messages and, when a
"return" character is encountered, interprets the message. If it is a line in
the program, nothing is done. If the message is a command, a spare-time task to start
carrying out the command is set up and inserted in the spare-time list. If there is not
enough time to complete this setting-up, the real-time part will complete the set-up
during the next real-time period.
The spare-time portion carries out the spare-time tasks, which include mainly disc operations and certain teletype operations. Communication to the GE-235 is carried out in real-time according to instructions generated in spare-time.
In the GE-235 part there is resident compiler system that acts as a translator, and a resident executive routine to manage the disc input-output operations and to perform other functions. The executive system permits simultaneous use of the card equipment , the tape drives, and the high-speed printer during Time-sharing through interrupt processing.
The disc unit is divided into three areas. First is the current
working area containing the program which the user is either composing or has retrieved.
It is this program that is delivered to the GE-235 when a RUN request is made. The second
area in the disc includes the storage area for the saved programs. Depending on the size
of the program, somewhere between 2,000 and 7,000 programs may be saved. The third area is
a catalog for saved programs. The catalog is divided into 100 equivalent classes according
to the third and second digits of the user number. Each time a request for a SAVE, OLD or
UNSAVE is made, the catalog is scanned by the Datanet-30 for either the desired entry or a
space into which a catalog entry for the program to be placed.
Because the rate of information flow between the two computers is disc-bound, the maximum utilization of the GE-235 cannot exceed approximately 80 percent. Future plans call for a reallocation of the areas on the disc to minimize the average arm movement time, and to possibly cut down the disc overhead time by about 25 percent.
The Time-Sharing system is not compatible with the
monitor-controlled system (6) as operated at other times during the
day. In Time-Shoring, the user has a block of only 6,000 words at his disposal. However,
it is planned to permit a user to compose and debug a program during Time-Sharing, and
then to create an equivalent form for production running during monitor operation.
A certain amount of background usage of the system, such as assemblies, card to tape, tape to printer, etc., is permitted when the number of users is small. This type of usage is still in the experimental stage, but appears practical.(7)
This system can be accurately described as a small job processing system with fast turnaround. At the present time, Dartmouth Time-Sharing does not have the capability for running large complex programs under Time-Sharing. Furthermore, the design of the system as a job processor does not permit it to be designated as a truly real-time system. There can be fairly long waits of from 5 to 10 seconds as the spare time tasks and run requests become stacked up. These stack ups and delays are almost entirely a result of the central role played by the relatively slow disc as an extension of memory. Future systems with large memories need nit so encumbered. Furthermore, relatively simple (8) changes in the master executive program will permit almost any sort of communication with external devices, including the instantaneous sort of response required by laboratory experiment being controlled by the computer.
The Dartmouth Time-Sharing system is, however, extremely effective as a small job processor. The minimum amount of red tape required by the user, and the simplicity of the BASIC language provide an accessibility equivalent to that offered by a desk calculator. In fact, it is often easier to run a trivial calculation through the Time-Sharing system than it is to use a desk-calculator, and it is also easier to use the Time-Sharing system to calculate some tabled quantity than to look up that quantity in the handbook. While such usage may not be an effective use of the teletype consoles, it costs virtually nothing in terms of machine time used; such an equivalent table lookup can be made for less than one penny.
Back to GE-200
(*) This document is directly reproduced from a GE internal document. The bulk of the text might have be written by Dartmouth college people. It has been edited by the GE evangelists seeking a way to justify and promote DTSS internally inside GE, before it was offered to the public, through whar became GEISD.
Annotations are 2001 comments in hypertext by Jean Bellec.
(1) Note the "user"s gender
(2) In that time, batch processing meant often analyzing a big stack of papers printed by a run-away program.
(3) While ALGOL was a programming language of DTSS, that "merging" of program is a lot of miles away from "structured programming".
(4) Actually, "source" programs.
(5) DTSS is really a multi-computer system, the Datanet is not only a front-end processor, but includes a key portion of the operating system.
(6) the standard operating system of the GE-200 operating in batch mode from cards or tapes.
(7)The high cost of machines in the 1960s explains that it was difficult to dedicate a system only to T-S system. At that time, it was not envision as a service bureau business.
(8) the author might have underestimated the problems of introducing specific equipemt support in the real-time portion of the OS