The University of Michigan Multiprogramming Supervisor (UMMPS) was initially developed by the staff of the academic computing center at theUniversity of Michigan for operation of theIBM S/360-67, S/370 and compatible computers. The software may be described as amultiprogramming,multiprocessing,virtual memory,time-sharing supervisor that runs multiple resident,reentrant programs. Among these programs is the Michigan Terminal System (MTS) for command interpretation, execution control, file management, and accounting. End-users interact with the computing resources through MTS using terminal, batch, and server oriented facilities.[2]
The name MTS refers to:
The UMMPS Job Program with which most end-users interact;
The software system, including UMMPS, the MTS and other Job Programs, Command Language Subsystems (CLSs), public files (programs), and documentation; and
The time-sharing service offered at a particular site, including the MTS software system, the hardware used to run MTS, the staff that supported MTS and assisted end-users, and the associated administrative policies and procedures.
MTS was used on a production basis at about 13 sites in theUnited States,Canada, theUnited Kingdom,Brazil, and possibly inYugoslavia and at several more sites on a trial or benchmarking basis. MTS was developed and maintained by a core group of eight universities included in theMTS Consortium.
The University of Michigan announced in 1988 that "Reliable MTS service will be provided as long as there are users requiring it ... MTS may be phased out after alternatives are able to meet users' computing requirements".[3] It ceased operating MTS for end-users on June 30, 1996.[4] By that time, most services had moved to client/server-based computing systems, typically Unix for servers and various Mac, PC, and Unix flavors for clients. The University of Michigan shut down its MTS system for the last time on May 30, 1997.[5]
Rensselaer Polytechnic Institute (RPI) is believed to be the last site to use MTS in a production environment. RPI retired MTS in June 1999.[6]
Today, MTS still runs using IBM S/370 emulators such asHercules, Sim390,[7] and FLEX-ES.[8]
In the mid-1960s, the University of Michigan was providingbatch processing services onIBM 7090 hardware under the control of theUniversity of Michigan Executive System (UMES), but was interested in offering interactive services usingtime-sharing.[9] At that time the work that computers could perform was limited by their smallreal memory capacity. When IBM introduced itsSystem/360 family of computers in the mid-1960s, it did not provide a solution for this limitation and within IBM there were conflicting views about the importance of and need to support time-sharing.
A paper titledProgram and Addressing Structure in a Time-Sharing Environment byBruce Arden,Bernard Galler,Frank Westervelt (all associate directors at UM's academic Computing Center), and Tom O'Brian building upon some basic ideas developed at the Massachusetts Institute of Technology (MIT) was published in January 1966.[10] The paper outlined avirtual memory architecture using dynamic address translation (DAT) that could be used to implement time-sharing.
After a year of negotiations and design studies, IBM agreed to make a one-of-a-kind version of its S/360-65 mainframe computer with dynamic address translation (DAT) features that would supportvirtual memory and accommodate UM's desire to support time-sharing. The computer was dubbed the Model S/360-65M.[9] The "M" stood for Michigan. But IBM initially decided not to supply a time-sharing operating system for the machine. Meanwhile, a number of other institutions heard about the project, includingGeneral Motors, theMassachusetts Institute of Technology's (MIT)Lincoln Laboratory,Princeton University, and Carnegie Institute of Technology (laterCarnegie Mellon University). They were all intrigued by the time-sharing idea and expressed interest in ordering the modified IBM S/360 series machines. With this demonstrated interest IBM changed the computer's model number toS/360-67 and made it a supported product.[1] With requests for over 100 new model S/360-67s IBM realized there was a market for time-sharing, and agreed to develop a new time-sharing operating system calledTSS/360 (TSS stood for Time-sharing System) for delivery at roughly the same time as the first model S/360-67.
While waiting for the Model 65M to arrive, U of M Computing Center personnel were able to perform early time-sharing experiments using anIBM System/360 Model 50 that was funded by theARPA CONCOMP (Conversational Use of Computers) Project.[11] The time-sharing experiment began as a "half-page of code written out on a kitchen table" combined with a small multi-programming system, LLMPS from MIT'sLincoln Laboratory,[1] which was modified and became the U of M Multi-Programming Supervisor (UMMPS) which in turn ran the MTS job program. This earliest incarnation of MTS was intended as a throw-away system used to gain experience with the new IBM S/360 hardware and which would be discarded when IBM'sTSS/360 operating system became available.
Development of TSS took longer than anticipated, its delivery date was delayed, and it was not yet available when the S/360-67 (serial number 2) arrived at the Computing Center in January 1967.[12] At this time UM had to decide whether to return the Model 67 and select another mainframe or to develop MTS as an interim system for use until TSS was ready. The decision was to continue development of MTS and the staff moved their initial development work from the Model 50 to the Model 67. TSS development was eventually canceled by IBM, then reinstated, and then canceled again. But by this time UM liked the system they had developed, it was no longer considered interim, and MTS would be used at U of M and other sites for 33 years.
Several sites ran more than one MTS system: NUMAC ran two (first at Newcastle and later at Durham), Michigan ran three in the mid-1980s (UM for Maize, UB for Blue, and HG at Human Genetics), UBC ran three or four at different times (MTS-G, MTS-L, MTS-A, and MTS-I for general, library, administration, and instruction).
Each of the MTS sites made contributions to the development of MTS, sometimes by taking the lead in the design and implementation of a new feature and at other times by refining, enhancing, and critiquing work done elsewhere. Many MTS components are the work of multiple people at multiple sites.[19]
In the early days collaboration between the MTS sites was accomplished through a combination of face-to-face site visits, phone calls, the exchange of documents and magnetic tapes bysnail mail, and informal get-togethers atSHARE or other meetings. Later, e-mail, computer conferencing usingCONFER and *Forum, network file transfer, and e-mail attachments supplemented and eventually largely replaced the earlier methods.
The members of the MTS Consortium produced a series of 82MTS Newsletters between 1971 and 1982 to help coordinate MTS development.[20]
Mugs from MTS Workshop VIII, Ann Arbor, July 1982
Starting at UBC in 1974[21] the MTS Consortium held annualMTS Workshops at one of the member sites. The workshops were informal, but included papers submitted in advance andProceedings published after-the-fact that included session summaries.[22] In the mid-1980s severalWestern Workshops were held with participation by a subset of the MTS sites (UBC, SFU, UQV, UM, and possibly RPI).
The annual workshops continued even after MTS development work began to taper off. Called simply the "community workshop", they continued until the mid-1990s to share expertise and common experiences in providing computing services, even though MTS was no longer the primary source for computing on their campuses and some had stopped running MTS entirely.
Computing Center staff member Mike Alexander sitting at the console of the IBM System 360 Model 67 Duplex at the University of Michigan, 1969Amdahl 470V/6 P2 at the University of Michigan, 1975
In theory MTS will run on the IBM S/360-67, any of the IBM S/370 series which include virtual memory, and their successors. MTS has been runon the following computers in production, benchmarking, or trial configurations:[2]
The University of Michigan installed and ran MTS on the first IBM S/360-67 outside of IBM (serial number 2) in 1967, the second Amdahl 470V/6 (serial number 2) in 1975,[26][27] the first Amdahl 5860 (serial number 1) in 1982, and the first factory shipped IBM 3090–400 in 1986.[28] NUMAC ran MTS on the first S/360-67 in the UK and very likely the first in Europe.[29] The University of British Columbia (UBC) took the lead in converting MTS to run on theIBM S/370 series (an IBM S/370-168) in 1974. The University of Alberta installed the first Amdahl 470V/6 in Canada (serial number P5) in 1975.[16] By 1978 NUMAC (at University of Newcastle upon Tyne and University of Durham) had moved main MTS activity on to itsIBM S/370 series (an IBM S/370-168).
MTS was designed to support up to four processors on theIBM S/360-67, although IBM only produced one (simplex and half-duplex) and two (duplex) processor configurations of the Model 67. In 1984 RPI updated MTS to support up to 32 processors in theIBM S/370-XA (Extended Addressing) hardware series, although 6 processors is likely the largest configuration actually used.[30] MTS supports the IBMVector Facility,[31] available as an option on theIBM 3090 andES/9000 systems.
In early 1967 running on the single processor IBM S/360-67 at UM withoutvirtual memory support, MTS was typically supporting 5 simultaneous terminal sessions and one batch job.[2] In November 1967 after virtual memory support was added, MTS running on the same IBM S/360-67 was simultaneously supporting 50 terminal sessions and up to 5 batch jobs.[2] In August 1968 a dual processor IBM S/360-67 replaced the single processor system, supporting roughly 70 terminal and up to 8 batch jobs.[32] By late 1991 MTS at UM was running on an IBM ES/9000-720 supporting over 600 simultaneous terminal sessions and from 3 to 8 batch jobs.[2]
MTS can beIPL-ed underVM/370, and some MTS sites did so, but most ran MTS on native hardware without using avirtual machine.
The use of multiprocessing on an IBM S/360-67 with two CPUs in 1968.
Programs with access to (for the time) very large virtual address spaces.
A straightforwardcommand language that is the same for both terminal and batch jobs.
A strongdevice independent input/output model that allows the same commands and programs to access terminals, disk files, printers, magnetic and paper tapes, card readers and punches, floppy disks, network hosts, and an audio response unit (ARU).
Afile system with support for "line files" where the line numbers and length of individual lines are stored asmetadata separate from the data contents of the line, and the ability to read, insert, replace, and delete individual lines anywhere in the file without the need to read or write the entire file.[35]
A file editor ($EDIT) with both command line and "visual" interfaces and pattern matching based on SNOBOL4 patterns.[36]
The ability to share files in controlled ways (read, write-change, write-expand, destroy, permit).[37]
The ability to permit files, not just to other user IDs and projects (aka groups), but to specific commands or programs and combinations of user IDs, projects, commands and programs.[37]
The ability for multiple users to manage simultaneous access to files with the ability to implicitly and explicitly lock and unlock files and to detect deadlocks.[35]
Network host to host access from commands and programs as well as access to or from remote network printers, card readers and punches.[38]
An e-mail system ($MESSAGESYSTEM) that supports local and network mail with the ability to send to groups, to recall messages that haven't already been read, to add recipients to messages after they have been sent, and to display a history of messages in an e-mail chain without the need to include the text from older messages in each new message.[39]
The ability to access tapes remotely, and to handle data sets that extend across multiple tapes efficiently.[40]
The availability of a rich collection of well-documented subroutine libraries.[20][41][42]
The ability for multiple users to quickly load and use a collection of common reentrant subroutines, which are available in shared virtual memory.
The availability of compilers, assemblers, and a Symbolic Debugging System (SDS) that allow users to debug programs written in high-level languages such as FORTRAN, Pascal, PL/I, ... as well as in assembly language.
A strong protection model that uses the virtual memory hardware and the S/360 and S/370 hardware's supervisor and problem states and via software divides problem state execution into system (privileged or unprotected) and user (protected or unprivileged) modes. Relatively little code runs in supervisor state. For example, Device Support Routines (DSRs, aka device drivers) are not part of the supervisor and run in system mode in problem state rather than in supervisor state.[43][44]
The following are some of the notable programs developed for MTS:[46]
Awit, a computer chess program written in Algol W by Tony Marsland.[47]
Chaos, one of the leading computer chess programs from 1973 through 1985. Written in FORTRAN Chaos started at RCA Systems Programming division in Cinnaminson, NJ with Fred Swartz and Victor Berman as first authors, Mike Alexander and others joined the team later and moved development to MTS at the UM Computing Center.[48]
MICRO Information Management System, one of the earliest relational database management systems implemented in 1970 by the Institute for Labor and Industrial Relations (ILIR) at the University of Michigan.[53][54]
MIDAS (Michigan Interactive Data Analysis System), an interactive statistical analysis package developed by Dan Fox and others at UM's Statistical Research Laboratory.[55]
Plus, a programming language developed by Alan Ballard and Paul Whaley of the Computing Centre at the University of British Columbia (UBC).[56][57] It was used for systems programming within MTS itself, particularly DSRs and CLSes.
TAXIR, an information storage and retrieval system designed for taxonomic data at the University of Colorado by David Rogers, Henry Fleming, Robert Brill, and George Estabrook and ported to MTS and enhanced by Brill at the University of Michigan.[58]
Textform, a text-processing program developed at the University of Alberta's Computing Centre to support device independent output to a wide range of devices from line printers, to the Xerox 9700 page printers, to advanced phototypesetting equipment using fixed width and proportional fonts.[59][60][61][62]
VSS, a simulator developed at theUniversity of British Columbia's Computing Centre that makes it possible to run OS/MFT, OS/MVT, VS1, and MVS application programs under MTS.
MAD/I (an expanded version of theMichigan Algorithm Decoder for the IBM S/360 architecture that is not compatible with the original7090 version of MAD, see also GOM above)
Plus[56][57] (A "Pascal-like" system implementation language from theUniversity of British Columbia (UBC) based on the SUE[99] system language developed at the University of Toronto, c. 1971)
Command Language Subsystems (CLSs), Device Support Routines (DSRs), System Subroutines
system
Job programs (MTS, PDP, DMGR, RM or HASP, ...)
on or off
Supervisor (UMMPS)
supervisor
n/a
off
off
S/360-67 or S/370 hardware
UMMPS, the supervisor, has complete control of the hardware and manages a collection of job programs.[32] One of the job programs is MTS, the job program with which most users interact.[2] MTS operates as a collection of command language subsystems (CLSs). One of the CLSs allows for the execution of user programs. MTS provides a collection of system subroutines that are available to CLSs, user programs, and MTS itself.[41] Among other things these system subroutines provide standard access to Device Support Routines (DSRs), the components that perform device dependent input/output.
The lists that follow are quite University of Michigan centric. Most other MTS sites used some of this material, but they also produced their own manuals, memos, reports, and newsletters tailored to the needs of their site.
The manual seriesMTS: The Michigan Terminal System, was published from 1967 through 1991, in volumes 1 through 23, which were updated and reissued irregularly.[20] Initial releases of the volumes did not always occur in numeric order and volumes occasionally changed names when they were updated or republished. In general, the higher the number, the more specialized the volume.
The earliest versions ofMTS Volume I and II had a different organization and content from the MTS volumes that followed and included some internal as well as end user documentation. The second edition from December 1967 covered:
MTS Volume I: Introduction; Concepts and facilities; Calling conventions; Batch, Terminal, Tape, and Data Concentrator user's guides; Description of UMMPS and MTS; Files and devices; Command language; User Programs; Subroutine and macro library descriptions; Public or library file descriptions; and Internal specifications: Dynamic loader (UMLOAD), File and Device Management (DSRI prefix and postfix), Device Support Routines (DSRs), and File routines[106]
MTS Volume II: Language processor descriptions: F-level assembler; FORTRAN G; IOH/360; PIL; SNOBOL4; UMIST; WATFOR; and 8ASS (PDP-8 assembler)[103]
The followingMTS Volumes were published by the University of Michigan Computing Center[2] and are available as PDFs:[107][108][109][110]
MTS Volume 1:The Michigan Terminal System, 1991
MTS Volume 2:Public File Descriptions, 1990
MTS Volume 3:Subroutine and Macro Descriptions, 1989
MTS Volume 4:Terminals and Networks in MTS, 1988 (earlierTerminals and Tapes)
MTS Volume 21:MTS Command Extensions and Macros, 1991
MTS Volume 22:Utilisp in MTS, 1988
MTS Volume 23:Messaging and Conferencing in MTS, 1991
MTS Volume 1 cover
MTS Reference Summary, a ~60 page, 3" x 7.5", pocket guide to MTS, Computing Center, University of Michigan
The Taxir primer: MTS version, Brill, Robert C., Computing Center, University of Michigan
Fundamental Use of the Michigan Terminal System, Thomas J. Schriber, 5th Edition (revised), Ulrich's Books, Inc., Ann Arbor, MI, 1983, 376 pp.
Digital computing, FORTRAN IV, WATFIV, and MTS (with *FTN and *WATFIV), Brice Carnahan and James O Wilkes, University of Michigan, Ann Arbor, MI, 1968–1979, 1976 538 p.
Documentation for MIDAS, Michigan Interactive Data Analysis System, Statistical Research Laboratory, University of Michigan[111]
OSIRIS III MTS Supplement, Center for Political Studies, University of Michigan[112]
Various aspects of MTS at the University of Michigan were documented in a series ofComputing Center Memos (CCMemos)[108][113] which were published irregularly from 1967 through 1987, numbered 2 through 924, though not necessarily in chronological order. Numbers 2 through 599 are general memos about various software and hardware; the 600 series are the Consultant's Notes series—short memos for beginning to intermediate users; the 800 series covers issues relating to the Xerox 9700 printer, text processing, and typesetting; and the 900 series covers microcomputers. There was no 700 series. In 1989 this series continued asReference Memos with less of a focus on MTS.[114][115]
Cover page of the May 1996 issue of University of Michigan IT Digest, May 1996
A long run of newsletters targeted to end-users at the University of Michigan with the titlesComputing Center News,Computing Center Newsletter,U-M Computing News, and theInformation Technology Digest were published starting in 1971.[108][113]
There was also introductory material presented in theUser Guide,MTS User Guide, andTutorial series, including:[108]
Getting connected—Introduction to Terminals and Microcomputers
Introduction to the Computing Center
Introduction to Computing Center services
Introduction to Database Management Systems on MTS
A series of lectures describing the architecture and internal organization of the Michigan Terminal System given by Mike Alexander, Don Boettner, Jim Hamilton, and Doug Smith (4 audio tapes, lecture notes, and transcriptions)
The University of Michigan released MTS on magnetic tape on an irregular basis.[20] There were full and partial distributions, wherefull distributions (D1.0, D2.0, ...) included all of the MTS components andpartial distributions (D1.1, D1.2, D2.1, D2.2, ...) included just the components that had changed since the last full or partial distribution. Distributions 1.0 through 3.1 supported the IBM S/360 Model 67, distribution 3.2 supported both the IBM S/360-67 and the IBM S/370 architecture, and distributions D4.0 through D6.0 supported just the IBM S/370 architecture and its extensions.
MTS distributions included the updates needed to run licensed program products and other proprietary software under MTS, but not the base proprietary software itself, which had to be obtained separately from the owners. Except for IBM's Assembler H, none of the licensed programs were required to run MTS.
The last MTS distribution was D6.0 released in April 1988. It consisted of 10,003 files on six 6250 bpi magnetic tapes. After 1988, distribution of MTS components was done in an ad hoc fashion using network file transfer.
To allow new sites to get started from scratch, two additional magnetic tapes were made available, anIPLableboot tape that contained a minimalist version of MTS plus theDASDI and DISKCOPY utilities that could be used to initialize and restore aone disk pack starter version of MTS from the second magnetic tape. In the earliest days of MTS, the standaloneTSS DASDI and DUMP/RESTORE utilities rather than MTS itself were used to create the one-disk starter system.
There were also less formalredistributions where individual sites would send magnetic tapes containing new or updated work to a coordinating site. That site would copy the material to a common magnetic tape (RD1, RD2, ...), and send copies of the tape out to all of the sites. The contents of most of the redistribution tapes seem to have been lost.
Today, complete materials from the six full and the ten partial MTS distributions as well as from two redistributions created between 1968 and 1988 are available from the Bitsavers Software archive[122][123] and from the University of Michigan's Deep Blue digital archive.[124][125]
Working with the D6.0 distribution materials, it is possible to create anIPLable version of MTS. A new D6.0A distribution of MTS makes this easier.[126] D6.0A is based on the D6.0 version of MTS from 1988 with various fixes and updates to make operation under Hercules in 2012 smoother. In the future, an IPLable version of MTS will be made available based upon the version of MTS that was in use at the University of Michigan in 1996 shortly before MTS was shut down.[123]
As of December 22, 2011, the MTS Distribution materials are freely available under the terms of theCreative Commons Attribution 3.0 Unported License (CC BY 3.0).[127]
In its earliest days MTS was made available for free without the need for a license to sites that were interested in running MTS and which seemed to have the knowledgeable staff required to support it.
In the mid-1980s licensing arrangements were formalized with the University of Michigan acting as agent for and granting licenses on behalf of the MTS Consortium.[128] MTS licenses were available to academic organizations for an annual fee of $5,000, to other non-profit organizations for $10,000, and to commercial organizations for $25,000. The license restricted MTS from being used to provide commercial computing services. The licensees received a copy of the full set of MTS distribution tapes, any incremental distributions prepared during the year, written installation instructions, two copies of the current user documentation, and a very limited amount of assistance.
Only a few organizations licensed MTS. Several licensed MTS in order to run a single program such as CONFER. The fees collected were used to offset some of the common expenses of the MTS Consortium.
^abcdefghiThe Michigan Terminal System(PDF), vol. 1, Ann Arbor, Michigan: University of Michigan, Information Technology Division, Consulting and Support Services, November 1991, pp. 9,13–14.
^ab"How computers have changed since 1968",ITS News, Computing and Information Services, Durham University, 29 January 2005. Northumbrian Universities Multiple Access Computer (N.U.M.A.C.), a collaboration between of the universities ofDurham (DUR),Newcastle upon Tyne (UNE) andNewcastle Polytechnic that shared a S/360-67 at Newcastle starting in 1969
^Van Epp, Peter; Baines, Bill (October 19–23, 1992). "Dropping the Mainframe Without Crushing the Users: Mainframe to Distributed UNIX in Nine Months". Simon Fraser University: LISA VI Conference (Long Beach, California).CiteSeerX10.1.1.56.2631.{{cite journal}}:Cite journal requires|journal= (help)
^In 1982"How computers have changed since 1968",ITS News, Computing and Information Services, Durham University, 29 January 2005. NUMAC installed a separate machine running MTS at the University of Durham, prior to that both DUR and UNE shared a single MTS system running at the University of Newcastle upon Tyne.
^It is difficult to properly give credit for all the work that was done, however, to avoid giving too little credit and at the risk of not giving proper credit to everyone that made contributions, an attempt is made to note the sites where a major feature or enhancement was initially developed
^"A Chronicle of Merit's Early History". Merit Network. 2008. Archived fromthe original on 2009-02-07. Retrieved2008-09-15.—A university press release called a demonstration of the network (with a connection between UM and Wayne State University) on December 14, 1971, as "a milestone in higher education" and an "historic event."
^"The Internal Design of theIG Routines, an Interactive Graphics System for a Large Timesharing Environment", James Blinn and Andrew Goodrich,SIGGRAPH Proceedings, 1976, pp. 229-234
^"Publishing, Word Processing and TEXTFORM", Grant Crawford, University of Alberta, in Canadian Information Processing Society (CIPS) Session '78 Proceedings, pp. 88-92, 1978.
^Textform, Computing Services, University of Alberta, 1984, 216 p.
^Simulation with GASP II, A. A. B. Pritzker and Philip J. Kiviat, Prentice-Hall, 1969
^da Cruz, Frank (1984-01-06)."Announcing KERMIT for MTS".Info-Kermit Digest (Mailing list). Kermit Project, Columbia University. Retrieved23 February 2016.
^abMPS/360 Version 2, Linear and Separable Programming User's Manual (GH20-0476), 1971, IBM Corporation
^ab"The System Language for Project SUE", B. L. Clark and J. J. Horning of the Computer Systems Research Group and Department of Computer Science, University of Toronto,Proceedings of the SIGPLAN symposium on Languages for system implementation, 1971, pp.79-88
^MTS Lecture 1, a transcription of the first in a series of lectures on the internals of the Michigan Terminal System given by Mike Alexander, Don Boettner, Jim Hamilton, and Doug Smith, c. 1972
^MTS Volume I, second edition, December 1, 1967, University of Michigan Computing Center, Ann Arbor, Michigan, 415 p.
^ab"Computing Center" collection within "Archival Collections -- Bentley Library" of the University of Michigan's Deep Blue digital archive
^abUnit Publications series, Computing Center publications, 1965-1999, Bentley Historical Library, University of Michigan
^Unit Publications series, Information Technology Division (University of Michigan) publications, 1971-1999, Bentley Historical Library, University of Michigan
^ITD Publications, University of Michigan, Ann Arbor, November 1995, 24 pages
MTS ArchiveArchived 2011-01-11 at theWayback Machine, a collection of documents, photographs, movies, and other materials related to MTS and the organizations and people that developed and used it
TheComputing Center collection in the University of Michigan's Deep Blue digital archive contains over 50 items, mostly PDFs, but also a few videos, related to MTS and the U-M Computing Center.
Several articles from the May 13, 1996 issue of the University of Michigan Information Technology Digest, Volume 5, No. 5, giving the history of and reminiscences about MTS, Merit, and UMnet on the eve of MTS's retirement at the University of Michigan, preserved on Web pages created by Josh Simon
Try-MTS.com, a web site showing how to run MTS under the Hercules emulator, tutorials on using the system and on several of the programming languages available on MTS