The Info List - Time-sharing

--- Advertisement ---

In computing, time-sharing is the sharing of a computing resource among many users by means of multiprogramming and multi-tasking at the same time.[1] Its introduction in the 1960s and emergence as the prominent model of computing in the 1970s represented a major technological shift in the history of computing. By allowing a large number of users to interact concurrently with a single computer, time-sharing dramatically lowered the cost of providing computing capability, made it possible for individuals and organizations to use a computer without owning one,[2] and promoted the interactive use of computers and the development of new interactive applications.


1 History

1.1 Batch processing 1.2 Time-sharing 1.3 Development 1.4 Time-sharing

1.4.1 Rise and Fall Rapidata as an example

1.5 The computer utility 1.6 Security

2 Notable time-sharing systems 3 See also 4 References 5 Further reading 6 External links

History[edit] Batch processing[edit] Main article: Batch processing The earliest computers were extremely expensive devices, and very slow in comparison to later models. Machines were typically dedicated to a particular set of tasks and operated by control panels, the operator manually entering small programs via switches in order to load and run a series of programs. These programs might take hours, or even weeks, to run. As computers grew in speed, run times dropped, and soon the time taken to start up the next program became a concern. Batch processing methodologies evolved to decrease these "dead periods" by queuing up programs so that as soon as one program completed, the next would start. To support a batch processing operation, a number of comparatively inexpensive card punch or paper tape writers were used by programmers to write their programs "offline". When typing (or punching) was complete, the programs were submitted to the operations team, which scheduled them to be run. Important programs were started quickly; how long before less important programs were started was unpredictable[citation needed]. When the program run was finally completed, the output (generally printed) was returned to the programmer. The complete process might take days, during which time the programmer might never see the computer. The alternative of allowing the user to operate the computer directly was generally far too expensive to consider. This was because users might have long periods of entering code while the computer remained idle. This situation limited interactive development to those organizations that could afford to waste computing cycles: large universities for the most part. Programmers at the universities decried the behaviors that batch processing imposed, to the point that Stanford students made a short film humorously critiquing it.[3] They experimented with new ways to interact directly with the computer, a field today known as human–computer interaction. Time-sharing[edit]

time-sharing at the University of Wisconsin, 1978.

was developed out of the realization that while any single user would make inefficient use of a computer, a large group of users together would not. This was due to the pattern of interaction: Typically an individual user entered bursts of information followed by long pauses but a group of users working at the same time would mean that the pauses of one user would be filled by the activity of the others. Given an optimal group size, the overall process could be very efficient. Similarly, small slices of time spent waiting for disk, tape, or network input could be granted to other users. The concept is claimed to have been first described by John Backus
John Backus
in the 1954 summer session at MIT,[4] and later by Bob Bemer in his 1957 article "How to consider a computer" in Automatic Control Magazine.[5][6] In a paper published in December 1958 by W. F. Bauer,[7] he wrote that "The computers would handle a number of problems concurrently. Organizations would have input-output equipment installed on their own premises and would buy time on the computer much the same way that the average household buys power and water from utility companies." Implementing a system able to take advantage of this was initially difficult.[1][8][9] Batch processing
Batch processing
was effectively a methodological development on top of the earliest systems. Since computers still ran single programs for single users at any time, the primary change with batch processing was the time delay between one program and the next. Developing a system that supported multiple users at the same time was a completely different concept. The "state" of each user and their programs would have to be kept in the machine, and then switched between quickly. This would take up computer cycles, and on the slow machines of the era this was a concern. However, as computers rapidly improved in speed, and especially in size of core memory in which users' states were retained, the overhead of time-sharing continually decreased, relatively speaking. The first project to implement a time-sharing system was initiated by John McCarthy at MIT
in 1959, initially planned on a modified IBM
704, and later on an additionally modified IBM 709
IBM 709
(one of the first computers powerful enough for time-sharing).[9] One of the deliverables of the project, known as the Compatible Time-Sharing System or CTSS, was demonstrated in November 1961. CTSS has a good claim to be the first time-sharing system and remained in use until 1973. Another contender for the first demonstrated time-sharing system was PLATO II, created by Donald Bitzer at a public demonstration at Robert Allerton Park
Robert Allerton Park
near the University of Illinois in early 1961. But this was a special purpose system. Bitzer has long said that the PLATO project would have gotten the patent on time-sharing if only the University of Illinois had not lost the patent for 2 years.[10] JOSS began time-sharing service in January 1964.[11] The first commercially successful time-sharing system was the Dartmouth Time Sharing System.[12] Development[edit] Throughout the late 1960s and the 1970s, computer terminals were multiplexed onto large institutional mainframe computers (centralized computing systems), which in many implementations sequentially polled the terminals to see whether any additional data was available or action was requested by the computer user. Later technology in interconnections were interrupt driven, and some of these used parallel data transfer technologies such as the IEEE 488
IEEE 488
standard. Generally, computer terminals were utilized on college properties in much the same places as desktop computers or personal computers are found today. In the earliest days of personal computers, many were in fact used as particularly smart terminals for time-sharing systems. The Dartmouth Time Sharing System's creators wrote in 1968 that "any response time which averages more than 10 seconds destroys the illusion of having one's own computer".[13] Conversely, timesharing users thought that their terminal was the computer.[14] With the rise of microcomputing in the early 1980s, time-sharing became less significant, because individual microprocessors were sufficiently inexpensive that a single person could have all the CPU time dedicated solely to their needs, even when idle. However, the Internet brought the general concept of time-sharing back into popularity. Expensive corporate server farms costing millions can host thousands of customers all sharing the same common resources. As with the early serial terminals, web sites operate primarily in bursts of activity followed by periods of idle time. This bursting nature permits the service to be used by many customers at once, usually with no perceptible communication delays, unless the servers start to get very busy. Time-sharing
business[edit] In the 1960s, several companies started providing time-sharing services as service bureaus. Early systems used Teletype Model 33
Teletype Model 33
KSR or ASR or Teletype Model 35 KSR or ASR machines in ASCII
environments, and IBM
Selectric typewriter-based terminals (especially the IBM
2741) with two different seven-bit codes.[15] They would connect to the central computer by dial-up Bell 103A modem or acoustically coupled modems operating at 10–15 characters per second. Later terminals and modems supported 30–120 characters per second. The time-sharing system would provide a complete operating environment, including a variety of programming language processors, various software packages, file storage, bulk printing, and off-line storage. Users were charged rent for the terminal, a charge for hours of connect time, a charge for seconds of CPU time, and a charge for kilobyte-months of disk storage. Common systems used for time-sharing included the SDS 940, the PDP-10, and the IBM
360. Companies providing this service included GE's GEISCO, IBM
subsidiary The Service Bureau Corporation, Tymshare (founded in 1966), National CSS (founded in 1967 and bought by Dun & Bradstreet in 1979), Dial Data (bought by Tymshare in 1968), and Bolt, Beranek, and Newman
Bolt, Beranek, and Newman
(BBN). By 1968, there were 32 such service bureaus serving the US National Institutes of Health
National Institutes of Health
(NIH) alone.[16] The Auerbach Guide to Timesharing (1973) lists 125 different timesharing services using equipment from Burroughs, CDC, DEC, HP, Honeywell, IBM, RCA, Univac, and XDS.[17] An example of a UK-based time-sharing bureau business is OLS Computer Services (UK) Ltd. Previously Leasco Response and later acquired by On-Line Systems of Pittsburgh, PA, the company operated four HP-2000 TSB (Time shared Basic) systems from its Knightsbridge (later Islington) headquarters offering off-the-shelf business packages as well as raw time to universities. In addition to its HP estate a DEC PDP-10
operated as a front-end processor (FEP) connecting UK users to 16 DEC PDP-11s based in the US. Connectivity was provided via leased Westrex ASR 33 or Data Dynamics 390 punched-tape enabled teletype machines connected via Post Office (ex GPO) type 2 modems or acoustic couplers connecting telephone handsets operating at up to 110cps. Rise and Fall[edit] In 1975, it was said about one of the major super-mini computer manufacturers[18] that "The biggest end-user market currently is time-sharing." For DEC, for a while the second largest computer company (after IBM), this was also true: Their PDP-10
and IBM's 360/67[19] were widely used[20] by commercial timesharing services such as CompuServe, On-Line Systems (OLS), and Rapidata. Rapidata as an example[edit] Although many time-sharing services simply closed, Rapidata[21][22] held on, and became part of National Data Corporation.[23] It was still of sufficient interest in 1982 to be the focus of "A User's Guide to Statistics Programs: The Rapidata Timesharing System".[24] Even as revenue fell by 66%[25] and National Data subsequently developed its own problems, attempts were made to keep this timesharing business going.[26][27][28] The computer utility[edit] Beginning in 1964, the Multics
operating system was designed as a computing utility, modeled on the electrical or telephone utilities. In the 1970s, Ted Nelson's original "Xanadu" hypertext repository was envisioned as such a service. It seemed as the computer industry grew that no such consolidation of computing resources would occur as timesharing systems. In the 1990s the concept was, however, revived in somewhat modified form under the banner of cloud computing. Security[edit] Time-sharing
was the first time that multiple processes, owned by different users, were running on a single machine, and these processes could interfere with one another.[29] For example, one process might alter shared resources which another process relied on, such as a variable stored in memory. When only one user was using the system, this would result in possibly wrong output - but with multiple users, this might mean that other users got to see information they were not meant to see. To prevent this from happening, an operating system needed to enforce a set of policies that determined which privileges each process had. For example, the operating system might deny access to a certain variable by a certain process. The first international conference on computer security in London in 1971 was primarily driven by the time-sharing industry and its customers.[citation needed] Notable time-sharing systems[edit] See also: Time-sharing
system evolution Significant early timesharing systems:[17]

Allen-Babcock RUSH (Remote Users of Shared Hardware) Time-sharing System on IBM
S/360 hardware (1966)[30] → Tymshare AT&T Bell Labs
Bell Labs
(1971) → UC Berkeley BSD Unix
(1977) BBN PDP-1
System → Massachusetts General Hospital PDP-1D → MUMPS BBN TENEX → DEC TOPS-20, Foonly FOONEX, MAXC OS at PARC, Stanford Low Overhead Timesharing System (LOTS) Berkeley Timesharing System at UC Berkeley Project Genie Scientific Data Systems
Scientific Data Systems
SDS 940 (Tymshare, BBN, SRI, Community Memory) → BCC 500 → MAXC at PARC Burroughs Time-sharing
MCP → HP 3000 MPE Cambridge Multiple Access System was developed for the Titan, the prototype Atlas 2 computer built by Ferranti
for the University of Cambridge.[31] This was the first time-sharing system developed outside the United States, and which influenced the later development of UNIX. Compower Ltd., a wholly owned subsidiary of the National Coal Board (later British Coal Corporation) in the UK. Originally National Coal Board (NCB) Computer Services, it became Compower in 1973 providing computing and time-share services to internal NCB users and as a commercial service to external users. Sold to Philips C&P (Communications and Processing) in August 1994. CompuServe, also branded as Compu-Serv, CIS. Compu-Time, Inc.,[17] on Honeywell
400/4000, started in 1968 in Ft Lauderdale, Florida, moved to Daytona Beach in 1970. CDC MACE, APEX → Kronos → NOS → NOS/VE Dartmouth Time Sharing System (DTSS) → GE Time-sharing
→ GEnie DEC PDP-6
Monitor → TOPS-10 → BBN TENEX → DEC TOPS-20 DEC TSS-8 → RSTS-11, RSX-11
→ VAX/VMS HP 2000 Time-Shared BASIC HP 3000 series IBM
CALL/360, CALL/OS - using IBM
System/360 Model 50 IBM
CP-40 → CP-67 CP-370 CP/CMS → VM/CMS IBM
→ for OS/VS2 → for MVS → for z/OS IBM
→ TSS/370 International Timesharing Corporation on dual CDC 3300 systems.[17] MIT
/ GE / Bell Labs) → Unix MIT
System for the DEC PDP-1
→ ITS McGill University
McGill University
MUSIC/SP Michigan Terminal System, on the IBM
S/360-67, S/370, and successors. Michigan State University
Michigan State University
CDC SCOPE/HUSTLER System National CSS VP/CSS, on IBM 360
IBM 360
series; originally based on IBM's CP/CMS. Oregon State University
Oregon State University
OS-3, on CDC 3000
CDC 3000
series. Prime Computer
Prime Computer
TSOS → Univac
/ Unisys
VMOS → VS/9 Service in Informatics and Analysis (SIA), on CDC 6600
CDC 6600
Kronos. System Development Corporation Time-sharing
System, on the AN/FSQ-32. Stanford ORVYL and WYLBUR, on IBM
S/360-67. Stanford PDP-1
System → SAIL → WAITS Time Sharing Ltd. (TSL)[32] on DEC PDP-10
systems → Automatic Data Processing (ADP), first commercial time-sharing system in Europe and first dual (fault tolerant) time-sharing system. Tone (TSO-like, for VS1), a non- IBM
product, marketed by Tone Software
Co; TSO required VS2. Tymshare SDS-940 → Tymcom X → Tymcom XX Unisys/ UNIVAC
1108 EXEC 8
→ OS 1100 → OS 2200 UC Berkeley CAL-TSS, on CDC 6400. XDS UTS → CP-V → Honeywell

See also[edit]

Cloud computing The Heralds of Resource Sharing, a 1972 film. History of CP/CMS, IBM's virtual machine operating system (CP) that supported time-sharing (CMS). IBM
M44/44X, an experimental computer system based on an IBM
7044 used to simulate multiple virtual machines. IBM
System/360 Model 67, the only IBM
S/360 series mainframe to support virtual memory. Multiseat configuration, multiple users on a single personal computer. Project MAC, a DARPA
funded project at MIT
famous for groundbreaking research in operating systems, artificial intelligence, and the theory of computation. TELCOMP, an interactive, conversational programming language based on JOSS, developed by BBN in 1964. Timeline of operating systems VAX
(Virtual Address eXtension), a computer architecture and family of computers developed by DEC. Utility computing Virtual memory


^ a b DEC TIMESHARING (1965), by Peter Clark, The DEC Professional, VOLUME 1, Number 1 ^ IBM
advertised, early 1960s, with a headline: "This man is sharing a $2 million computer" ^ Eisenson, Arthur; and Yager, Heather (1967). Ellis D. Kropotchev Silent Film. Stanford University, 1967. This student-produced film from Stanford University
Stanford University
is a humorous spoof of the trials and tribulations of a college hacker condemned to use batch processing. Originally created by Arthur Eisenson and Gary Feldman, the film gives the viewer a feel for the process of computer programming in the 1960s. Original music by Heather Yager. Computer History Museum, Object ID 102695643. Retrieved on 2013-11-29 from http://www.computerhistory.org/revolution/punched-cards/2/211/2253. ^ Backus, John, Computer Advanced Coding Techniques, MIT
1954, page 16-2. The first known description of computer time-sharing. ^ Bemer, Bob (March 1957). "Origins of Timesharing". bobbemer.com. Retrieved June 24, 2016.  ^ Middleburg, C.A. (2010). "Searching Publications on Operating Systems". arXiv:1003.5525  [cs.OS].  ^ Bauer, W. F., Computer design from the programmer's viewpoint (Eastern Joint Computer Conference, December 1958) One of the first descriptions of computer time-sharing. ^ "There were no command files supported." - the commands to compile and then 'link' a program had to be typed in each time. As the article adds: "No CCL (Concise Command Language)" referring to the DEC world's equivalent of Clist and Rexx. ^ a b McCarthy, John. "REMINISCENCES ON THE HISTORY OF TIME SHARING". stanford.edu. stanford.edu. Retrieved 12 March 2017.  ^ Brian Dear, Chapter 4 -- The Diagram, The Friendly Orange Glow, Pantheon Books, New York, 2017; pages 71-72 discuss the development of time-sharing and the University of Illinois loss of the patent. ^ J. C. Shaw (1964). "JOSS: a designer's view of an experimental on-line computing system". Proceeding AFIPS '64 (Fall, part I) Proceedings of the October 27-29, 1964, fall joint computer conference, part I. pp. 455–464.  ^ dtss.dartmouth.edu/history.php ^ Kemeny, John G.; Kurtz, Thomas E. (11 October 1968). "Dartmouth Time-Sharing". Science. 162: 223–228.  ^ "TRANSCRIPTS OF 1974 National Computer Conference Pioneer Day Session". Dartmouth Time Sharing System. Dartmouth College.  ^ IBM 2741
IBM 2741
Communication Terminal (PDF). IBM. p. 12.  ^ "Information Technology Corporate Histories Collection". Computer History Museum. Retrieved on 2013-11-29 from http://www.computerhistory.org/corphist/view.php?s=stories&id=136. ^ a b c d Auerbach Guide to Time Sharing (PDF). Auerbach Publishers, Inc. 1973. Retrieved 2013-11-29.  ^ Computerworld, June 11, 1975, p. 35 ^ One Two-page IBM
print ad was headlined "100 or more people can use IBM's new time-sharing computer at the same time." Originals were/are? on e-Bay ^ p.1425, Encyclopedia of Computer Science, Litton Educational Publishing, Inc. ^ https://groups.google.com/forum/#!topic/alt.folklore.computers/aE4TwORruB8 - "I worked for RapiData Timesharing for about a year circa 1969..." ^ someone else: "I worked there for almost 2 years 1977 to 1979." alt.folklore.computers/aE4TwORruB8/EdpKfFAlBncJ ^ NDC started in 1967, and paralleled Rapidata; see Bloomberg's https://www.bloomberg.com/research/stocks/private/snapshot.asp?privcapId=290092 ^ Bruce Bosworth, ISBN 978-089529-1-677 ^ Computerworld, Oct. 6, 1986, p.179, "Rapidata revenue was $11 million ... in 1986, down from ... ($31 million in 1982)." ^ Computerworld, Aug.25,1986, p.5, "National Data Corp. said it is close to reaching an agreement with a buyer of its Rapidata timesharing division. In May, National Data said it would close down ..." ^ National Data Corp became NDC-Health Corp in 2001 (bizjournals.com/atlanta/stories/2001/10/29/daily25.html) ^ As for a place in history, Rapidata is listed in 'The AUERBACH Guide to Time Sharing (1973)' http://bitsavers.informatik.uni-stuttgart.de/pdf/auerbach/GuideToTimesharing_Jan73.pdf ^ Silberschatz, Abraham; Galvin, Peter; Gagne, Greg (2010). Operating system concepts (8th ed.). Hoboken, N.J.: Wiley & Sons. p. 591. ISBN 978-0-470-23399-3.  ^ "A Brief Description of Privacy Measures in the RUSH Time-Sharing System", J.D. Babcock, AFIPS Conference Proceedings, Spring Joint Computer Conference, Vol. 30, 1967, pp. 301-302. ^ Hartley, D. F. (1968), The Cambridge multiple-access system: user's reference manual, Cambridge: Cambridge Univ. Press, ISBN 978-0901224002  ^ "Time Sharing", James Miller. Retrieved 30 November 2013.

Further reading[edit]

Nelson, Theodor (1974). Computer Lib: You Can and Must Understand Computers Now; Dream Machines: "New Freedoms Through Computer Screens— A Minority Report". Self-published. ISBN 0-89347-002-3. pp. 56–57.

External links[edit]

"Time Sharing Supervisor Programs", notes comparing the supervisor programs of CP-67, TSS/360, the Michigan Terminal System
Michigan Terminal System
(MTS), and Multics
by Michael T. Alexander, Advanced Topics in Systems Programming (1970, revised 1971), University of Michigan Engineering Summer Conference. "The Computer Utility As A Marketplace For Computer Services", Robert Frankston's MIT
Master's Thesis, 1973. Reminiscences on the Theory of Time-Sharing by John McCarthy, 1983. Origins of timesharing by Bob Bemer. "40 years of Multics, 1969-2009", an interview with Professor Fernando J. Corbató on the history of Multics
and origins of time-sharing, 2009. "Mainframe Computers: The Virtues of Sharing", Revolution: The First 2000 Years of Computing, Computer History Museum Exhibition, January 2011. "Mainframe Computers: Timesharing as a Business", Revolution: The First 2000 Years of Computing, Computer History Museum Exhibition, January 2011.

v t e

Operating systems


Advocacy Comparison Forensic engineering History Hobbyist development List Timeline Usage share



Exokernel Hybrid Microkernel Monolithic Rump kernel Unikernel


Device driver Loadable kernel module Microkernel User space

Process management


Context switch Interrupt IPC Process Process control block Real-time Thread Time-sharing

Scheduling algorithms

Computer multitasking Fixed-priority preemptive Multilevel feedback queue Preemptive Round-robin Shortest job next

Memory management
Memory management
and resource protection

Bus error General protection fault Memory protection Paging Protection ring Segmentation fault Virtual memory

Storage access and file systems

Boot loader Defragmentation Device file File
attribute Inode Journal Partition Virtual file system Virtual tape library


AmigaOS Android BeOS BSD Chrome OS CP/M DOS GNU Haiku illumos IncludeOS iOS Linux Macintosh

Classic Mac OS macOS

MINIX MorphOS MUSIC/SP Nemesis NeXTSTEP NOS OpenVMS ORVYL OS/2 OSv Pick QNX ReactOS RISC OS RSTS/E RSX-11 RT-11 Solaris TOPS-10/TOPS-20 TPF tvOS Unix Visi On VM/CMS VS/9 watchOS webOS Windows Xinu z/OS

Miscellaneous concepts

API Computer network HAL Live CD Live USB OS shell



CP/CMS family relationships

→ derivation     >> strong influence     > some influence/precedence



>> CP-40/CMS → CP[-67]/CMS  → VM/370 → VM/SE versions → VM/SP versions → VM/XA versions → VM/ESA → z/VM


> TSS/360

> TSO for MVT → for OS/VS2 → for MVS → ... → for z/OS

and most other time-sharing pla