Product Code Database
Example Keywords: resident evil -grand $24-161
   » » Wiki: Compatible Time-sharing System
Tag Wiki 'Compatible Time-sharing System'.

The Compatible Time-Sharing System ( CTSS), was one of the first ; it was developed at the MIT Computation Center. CTSS was first demonstrated in 1961 and was operated at MIT until 1973. During part of this time, MIT's influential Project MAC also ran CTSS, but the system did not spread beyond these two sites.

CTSS was described in a paper presented at the 1962 Spring Joint Computer Conference and greatly influenced the design of other early time-sharing systems.

Experimental Time-Sharing System
said in the 1954 summer session at MIT that "By time sharing, a big computer could be used as several small ones; there would need to be a reading station for each user".Backus, John, Computer Advanced Coding Techniques, MIT 1954, page 16-2. The first known description of computer time-sharing. Computers at that time, like IBM 704, were not powerful enough to implement such system, but at the end of 1958, MIT's Computation Center nevertheless added a typewriter input to its 704 with the intent that a programmer or operator could "obtain additional answers from the machine on a time-sharing basic with other programs using the machine simultaneously". Progress Report Number 4 of the Research and Educational Activities in Machine Computation by the Cooperating Colleges of New England, December, 1958,

In June 1959, Christopher Strachey published a paper "Time Sharing in Large Fast Computers" at the UNESCO Information Processing Conference in Paris, where he envisaged a programmer debugging a program at a console (like a ) connected to the computer, while another program was running in the computer at the same time.F. J. Corbató, et al., The Compatible Time-Sharing System A Programmer's Guide (MIT Press, 1963) . Describe the system and its commandsJohn McCarthy, Reminiscences on the History of Time Sharing (Stanford University 1983). Debugging programs was an important problem at that time, because with batch processing, it then often took a day from submitting a changed code, to getting the results. John McCarthy wrote a memo about that at MIT, after which a preliminary study committee and a working committee were established at MIT, to develop time sharing. The committees envisaged many users using the computer at the same time, decided the details of implementing such system at MIT, and started the development of the system.

By July, 1961 Progress Report Number 9 of the Research and Educational Activities in Machine Computation by the Cooperating Colleges of New England, July, 1961 a few time sharing commands had become operational on the Computation Center's IBM 709, and in November 1961, Fernando J. Corbató demonstrated at MIT what was called the "Experimental Time-Sharing System". On May 3, 1962, F. J. Corbató, M. M. Daggett and R. C. Daley published a paper about that system at the Spring Joint Computer Conference.F. J. Corbató, M. M. Daggett, R. C. Daley, An Experimental Time-Sharing System (IFIPS 1962). Robert C. Daley, Peter R. Bos and at least 6 other programmers implemented the operating system, partly based on the Fortran Monitor System. The system used an IBM 7090, modified by Herbert M. Teager, with added 3 Flexowriters for user consoles, and maybe a timer. Each of the 3 users had two tape units, one for the user's file directory, and one for dumping the core (program in memory). There was also one tape unit for the system commands, there were no disk drives. The memory was 27 k words (36-bit words) for users, and 5 k words for the supervisor (operating system). The input from the consoles was written to the buffers in the supervisor, by , and when a was received, the control was given to the supervisor, which dumped the running code to the tape and decided what to run next. The console commands implemented at the time were login, logout, input, edit, fap, mad, madtrn, load, use, start, skippm, listf, printf, xdump and xundump. This became the initial version of the Compatible Time-Sharing System. This was evidently the first ever demonstration of ; there are other claims, but about special-purpose systems or with no known papers published.

  • CTSS had one of the first computerized text formatting utilities, called (the successor of DITTO).
  • CTSS had one of the first inter-user messaging implementations, possibly inventing .Tom Van Vleck's memoir of The History of Electronic Mail
  • MIT Computation Center staff member created for CTSS a command called , which executed a list of commands contained in a file. (He later created a design for the shell that was implemented by which in turn inspired Unix .) RUNCOM also allowed parameter substitution.
  • CTSS had the text editor QED, the predecessor of ed and vim, with regular expressions added by .


CTSS used a modified IBM 7090 mainframe computer that had two 32,768 (32K) 36-bit-word banks of instead of the normal one.
(1988). 9780201187601
One bank was reserved for the time-sharing supervisory program, the other for user programs. CTSS had a protected-mode kernel, the supervisor's functions in the A-core (memory bank A) could only be called by software interrupts, like in the modern operating systems. Causing memory-protection interrupts were used for software interrupts. Processor allocation scheduling with a quantum time unit 200 ms, was controlled by a multilevel feedback queue. It also had some special memory-management hardware, a clock interrupt and the ability to trap certain instructions.

Supervisor subroutines
  • RDFLXA – Read an input line from console
  • WRFLX – Write an output line to console
  • DEAD – Put the user into dead status, with no program in memory
  • DORMNT – Put the user into dormant status, with program in memory
  • GETMEM – Get the size of the memory allocation
  • SETMEM – Set the size of the memory allocation
  • TSSFIL – Get access to the CTSS system files on the disk
  • USRFIL – Change back to user's own directory
  • GETBRK – Get the instruction location counter at quit

Programming languages
CTSS at first had only an assembler FAP and a compiler MAD. Also, Fortran II code could be translated into a MAD code. Later half of the system was written in MAD. Later there were other programming languages like LISP and a version of .

File system
Every user had one's own directory, and there were also directories for groups of people, who had the same "problem number". Each had two names, the second name was similar to extension today. At first, each file could have one of four modes: temporary, permanent, read-only class 1, and read-only class 2. Read-only class 2 differed in that the user couldn't change the mode of these files. Files could also be linked from other directories than the user's directory. A directory listing by listf:
5/20/63		MAIN	MAD	P	15
5/17/63 	DPFA	SYMTB	P	1
5/17/63 	DPFA	BSS	P	1
5/17/63 	DPFA	FAP	P	2

Disk-control subroutines
  • .DUMP – Dump a continuous block onto file
  • .LOAD – Load a continuous block from file
  • .ASIGN – Prepares file for writing
  • .APEND – Prepares file for appending
  • .SEEK – Prepares file for reading
  • .RELRW – Prepares file for reading and writing
  • .WRITE – Write data to a relative location in file
  • .READK – Read data from a relative location in file
  • .FILE – Terminate writing of file
  • .ENDRD – Terminate reading of file
  • .DLETE – Delete a file
  • .RENAM – Rename a file and change its mode
  • .FILDR – Obtain a copy of the user file directory
  • .FSTAT – Get information about a file

Console commands
  • login – Log into system
  • logout – Log out of system
  • listf – List files in the directory
  • input – Input source code, fixed size lines
  • edit – Edit source code in a BASIC style with line numbers
  • printf – Print file starting from a line number
  • fap – FAP assembler
  • mad – MAD compiler
  • madtrn – Fortran II to MAD translator
  • load – Load binaries (linking in memory)
  • use – Load missing binaries
  • start – Run program loaded into memory
  • save – Save program in the memory to file
  • resume – Load saved program and resume running it
  • pm – Get post-mortem information of the program in memory
  • patch – Edit memory
  • tra – Create transfer to a relative location in a program
  • stopat – Create transfer to stop the program at a location
  • rename – Rename file
  • chmode – Change the mode of the file
  • delete – Delete file, had * wildcards
  • split – Split file
  • combin – Join files, also binary files, making libraries
  • cpu – Get the current machine conditions
  • octlk – Print memory
  • memo – Input text files, variable size lines
  • modify – Edit text files, similar to edit
  • ditto – Print text files with formatting (footnotes, pages)

Input-output hardware was mostly standard IBM . These included six data channels connecting to:
  • Printers, readers and punches
  • IBM 729 tape drives, an IBM 1301 disk storage, later upgraded to an IBM 1302, with 38 million word capacity
  • An IBM 7320 drum memory with 186K words that could load a 32K-word memory bank in one second (later upgraded to 0.25 seconds)
  • Two custom high-speed vector graphics displays
  • An IBM 7750 transmission control unit capable of supporting up to 112 terminals, including IBM 1050 and Model 35s. Some of the terminals were located remotely, and the system could be accessed using the public networks.

, which was also developed by Project MAC, was started in the 1960s as a successor to CTSS – and in turn inspired the development of in 1969. One of technical terms inherited by these systems from CTSS is daemon.

Incompatible Timesharing System (ITS), another early, revolutionary, and influential MIT time-sharing system, was produced by people who disagreed with the direction taken by CTSS and, later, Multics; the name was a of CTSS, as later the name of Unix was a parody of Multics.

(2018). 9781449388393, O'Reilly Media.

See also
  • Fernando J. Corbató, project leader
  • Timeline of operating systems

Further reading

External links

Page 1 of 1
Page 1 of 1


Pages:  ..   .. 
Items:  .. 


General: Atom Feed Atom Feed  .. 
Help:  ..   .. 
Category:  ..   .. 
Media:  ..   .. 
Posts:  ..   ..   .. 


Page:  .. 
Summary:  .. 
1 Tags
10/10 Page Rank
5 Page Refs