タイムシェアリングシステム(TSS)関連資料

 1950年代から1960年代初頭のコンピュータ利用は「バッチ処理」(一括処理)方式が一般的であった。バッチ処理においては、処理に必要なプログラムとデータが最初にすべて一括入力され、その処理が完了するまで他の処理を実行することはできなかった。こうしたバッチ処理方式は、高額なコンピュータの稼働率を高める上では有効であったが、最初に与えたプログラムにバグなどの問題点があった場合のデバッグ作業や最終的な計算処理結果の確認に数時間から数日を要するという問題点があった。
 
 こうした問題点を克服するため、1960年代前半には、一台の計算機に複数の利用者がそれぞれの端末から接続し、計算機の処理時間を分け合うことで対話型処理を可能とするタイムシェアリングシステム(時分割処理システム、Time-Sharing System,TSS)の実用化が進んだ。計算機としては大型計算機(メインフレーム)が主として使われたが、DECのPDP-1のようなミニ・コンピュータも使われていた。端末は構内回線や専用回線での接続のほか、モデムを介した公衆電話網からのダイヤルアップ接続もできた。1960年代後半には、大学・研究機関や企業でTSSが普及するとともに、離れた場所に設置された大型計算機を通信回線経由で共同利用する商用TSSサービスも成長した。

 1980年代には、PCが企業や大学を中心に普及するとともに、一般家庭にも浸透し始めた。利用者は文書作成や表計算、プログラミングなどの情報処理を手元のPCで行えるようになった。こうした用途での商用TSSの利用は次第に減少した。一方、PCを通信端末として利用した、電子メール、ニュース、電子掲示板、チャットなどの個人向けオンライン情報サービスの市場が次第に拡大した。

 また1980年代には、UNIX系OSを搭載したワークステーションが企業の技術部門や大学・研究機関を中心に普及した。UNIXも、TSSと同じく、タイムシェアリング方式で複数の利用者が計算資源を共有し、利用者ごとにアクセス権限を管理する機能を備えていた。1980年代後半から1990年代にかけて、組織内LANを通じてPCやワークステーションをUNIXサーバーに接続し、ファイルを共有したり、各種のネットワークサービスを利用したりする方式が広がった。ただし大企業では、基幹業務、大規模なデータ処理、ソフトウェア開発のために大型計算機(メインフレーム)が引き続き利用された。

TSS関連マニュアル
解説WEBページ・解説ビデオ
  1. IEEE “What Are Time Sharing Computer Systems?”
    https://technav.ieee.org/topic/time-sharing-computer-systems/

  2. Computer History Museum “The Virtues of Sharing”
    https://www.computerhistory.org/revolution/mainframe-computers/7/178

  3. 英語版Wikipedia “Time-sharing system evolution”
    https://en.wikipedia.org/wiki/Time-sharing_system_evolution

  4. IBM “Time-sharing” IBM Heritage>Time-sharing
    https://www.ibm.com/history/time-sharing

  5. CTSS Operating System
    https://www.youtube.com/watch?v=UrOuaQQ4rRw

    CTSS(Compatible Time-Sharing System、互換タイムシェアリングシステム)は、MIT計算センターで開発された世界初のタイムシェアリングシステムのひとつである。1961年に最初の実演が行われ、1973年までMITで稼動していた。
    「Compatible」(互換)とは、IBM 7094 の標準のバッチ処理OS[FORTRAN Monitor System,FMS] と互換性があったことを意味している。

    CTSSは、大型計算機における従来的なバッチ処理と並行して、複数のユーザーが同時にコンピュータを操作・対話できる仕組みを先駆的に実現していた。また、パスワードによるログイン認証、電子メール(MAILコマンド)、簡易な即時メッセージング機能(WRITEコマンド)といった、現代のコンピューティングに不可欠な概念もいち早く導入した。同OS上では、世界初のチャットボットとされる「ELIZA」や、点字翻訳プログラム「DOTSYS」といった初期の革新的なアプリケーションも動作した。

    MITでは1964年からFernando Corbatóらの研究チーム(CTSSの開発チーム)を中心に、新たな汎用タイムシェアリング・システムの構想が始まり、これがのちにGEおよびベル研究所を交えた共同プロジェクト「Multics」として発展した。Multicsの初期開発段階では、既存のCTSSが開発ツールとして利用された。Multics専用のハードウェア(GE-645)が1967年に納入されて以降は、Multics自身の環境下で開発が進められた。
    ベル研究所は1969年にMulticsのプロジェクトから撤退した。当時Multicsに携わっていた技術者の一部(Ken Thompson、Dennis Ritchieら)は、その後UNIXシステムの開発に移行した。

歴史的資料(論文・書籍・マニュアルなど)
タイムシェアリングOSとしての初期UNIX関連論文
  1. Ritchie,Dennis M. (1977) “The UNIX Timesharing System: A Retrospective”
    本論文では、タイトルにあるように、UNIXをTSS(Time Sharing System)の一種として位置づけている。アブストラクトの冒頭でも、”UNIX is a generalpurpose,interactive timesharing operating system for the DEC PDP11 and Interdata 8/32 computers. Since it became operational in 1971, it has become quite widely used.”というように、timesharing operating systemであると明確に記している。

    しかしながら現代的用法では、TSSは、CTSSやBerkeley Timesharing Systemなど1960~1970年代の大型計算機(メインフレーム)用のシステムを指すものとされることが多い。すなわち、UNIXはMulticsなどと同じく別系統のシステムである、と位置づけられることが多い。

    このことは、広義のTSSと狭義のTSSの区別として理解することができる。「複数の利用者がそれぞれの端末からコンピュータへ対話的に接続し、CPU時間や記憶装置などの計算資源を共同利用するシステム」という広義の意味でTSSという用語を用いるならば、1970年代の初期UNIXは明らかにその一種である、と言える。しかしながら、日本のコンピュータ史でも、TSSという用語を「大型計算機を通信回線経由で多数の組織・顧客に提供する計算サービス」という狭義の意味で使われることがよくある。

    さらにまた、1970年代のUNIXをTSSと位置づけることは適切であるとしても、それ以降のあらゆるUNIXおよびUnix系システムを、TSSと位置づけるのはあまり適切ではない。というのもUNIXを単独利用する場合や非対話的なサーバー処理を中心とする運用もあるからである。

    したがって、歴史的説明としては、「初期UNIXはタイムシェアリングOSとして開発され、当時の開発者自身もそのように位置づけていた。」というのが適切であろう。

    なおRitchie(個人HP https://www.nokia.com/bell-labs/about/dennis-m-ritchie/)がベル研の同僚のKen Thompsonと共著で1974年に発表した同タイトルの元論文”The UNIX Timesharing System”(Ritchie,D.M.,Thompson, K.(1974) Communications of the ACM, Vol.17 No.7, July 1974,pp.359-375.https://dsf.berkeley.edu/cs262/unix.pdf)では、冒頭ではTSSとしながらも1977年論文と異なり、アブストラクトの冒頭では、下記のように”a general-purpose, multi-user, interactive operating system”と規定し、TSSとはしていない。

    UNIX is a general-purpose, multi-user, interactive operating system for the Digital Equipment Corporation PDP-11/40 and 11/45 computers. It offers a number of features seldom found even in larger operating systems, including: (1) a hierarchical file system incorporating demountable volumes; (2) compatible file, device, and inter-process I/O; (3) the ability to initiate asynchronous processes; (4) system command language selectable on a per-user basis; and (5) over 100 subsystems including a dozen languages. This paper discusses the nature and implementation of the file system and of the user command interface.
     
  2. M. D. MclLROY, E. N. PINSON, and B. A. TAGUE (1978)”UNIX Time-Sharing System:Foreword” Bell System Technical Journal, 1978, pp.1899-1900
    1978年のBell System Technical Journalの特集号「UNIX Time-Sharing System」の序文。

    本序文においても、”The growth and flowering of UNIX as a highly effective and reliable time-sharing system are detailed in the prizewinning ACM paper by Ritchie and Thompson that has been updated for this volume.”というように、UNIXがtime-sharing systemとして位置づけられている。この序文は、当時のBell研究所においてもUNIXがタイムシェアリング・システムとして理解されていたことを示唆するものと言えよう。

総説的論文・書籍
論文・書籍(各国)
  1. Clarke.K. E.(1970) “A user’s view of the UK time sharing industry” The Computer Bulletin, Volume 13, Issue 1, January 1970, pp.8–10.
    1970年刊行の本論文において、「英国のタイムシェアリング事業は、急速な拡大期を迎えようとしている兆候が見られる。」ということが指摘されている。