タイムシェアリングシステム

タイムシェアリングシステム (Time Sharing System, TSS) は、1台のコンピュータを複数のユーザが同時に利用するためのシステムである。主にメインフレームのリソースを効率良く使うために利用される。タイムシェアリングは、CPU時間を割り当てる一つの手法であり、典型的には対話的処理環境でCPUを時分割利用することで、利用者に対し素早い応答性を提供する。 メインフレームは非常に高価であり、個人が占有して使用することは不可能である。高性能なコンピュータを個人が占有するということは、ほとんどの時間が、ユーザが思考中でコンピュータが入力を待っている状態に費やされることを意味する。そのため、ヒトによるコマンドの実行待ちや、ディスクやテープ、通信などの入出力の完了を待っている時間などを、他の処理のために活用するという発想が生まれた。 しかし、キーボードからの入力を待つようなプログラムばかりであれば、その待ちに入る所で切替えれば良いが、大量の計算を行いたいプログラムなどでは、プログラム中に適切なタイミングで切替えを呼ぶようにするのは難しく、タイマー割り込みを利用したプリエンプションがあったほうが便利である。もっとも後年のUnixなどとは違い「タイムシェアリングシステム」と呼ばれるようなメインフレーム上のシステムの場合、まず第1に課金のための正確なCPU時間の決定が必要であり、次いで（タスクといったような単位ではなく）使用中の各ユーザに対し平等にCPU時間（タイムスライス）を割り当てる必要がある。そういったように、基本的な部分で考え方が異なっているなど、今日のシステムとは異なる点も多いことに注意が必要である。 タイムシェアリングシステムは一時期、（特にアメリカでは）大変な隆盛を迎えた。経済的な誘因として考えられるのは「グロッシュの法則」である。「コンピュータの性能はその価格の二乗に比例する」というこの法則によれば、1000万円のコンピュータは500万円のコンピュータの4倍の性能があり、5000万円のコンピュータは1000万円のコンピュータの25倍の性能があるということになる。したがって、1000万円のコンピュータを25台購入して個々人に割り当てるよりも、5000万円のコンピュータを25人で共有したほうが経済的だという計算になる（グロッシュの法則が、いつごろのどのようなコンピュータに対してなら適切に当てはまっていたのかははっきりしないが、マイクロプロセッサベースのコンピュータシステムの高いコストパフォーマンスを評したKiller microという語がある。1999年に提案されたポラックの法則では、むしろ逆になってしまったと指摘された）。 対話型コンピューティングに大きな影響を与えた論文に、J・C・R・リックライダーが1960年に発表した Man-Computer Symbiosis（人間とコンピュータの共生）がある。 TSSの概念の提唱者にはいくつか説がある。一人はASCIIコードの開発者や2000年問題を世界で初めて指摘した人物としても知られているボブ・バーマーで、1957年初めごろに雑誌の記事でその概念を記述している。また、マサチューセッツ工科大学 (MIT) で数学の教鞭をとっていたジョン・マッカーシーも同様のアイデアをほぼ同時期に思いついている（一説には1959年）。さらに1959年にはイギリスのコンピュータ科学者クリストファー・ストレイチーがタイムシェアリングシステムの特許を取得している。ただし、ストレイチーの特許はTSSというよりもマルチタスク方式に関するものであるという見方が最近では一般的である。いずれにしても後世への影響はマッカーシーが一番大きく、後述するCTSSや前述のリックライダーの推進したProject MACは直接影響を受けている。 実際の最初のTSSの開発は、MITのコンピュータ・センターのロバート・ファーノらが行ったもので、1961年11月に Compatible Time Sharing System (CTSS) を開発してデモンストレーションを行った。CTSSは同時に 3人のユーザがコンピュータを使用して独立に処理を行えることを立証し、1973年まで実際に使われていた。最初の商業的に成功したTSSであり、1960年代後半から1970年代前半にかけて最も広く使われたTSSは Dartmouth Time-Sharing System（DTSS）であり、1964年にダートマス大学で開発された。DTSSは後にゼネラル・エレクトリック (GE) 社が商用化した。DTSSはダートマスBASICの誕生したシステムとしても有名である。 また、J・C・R・リックライダーは1962年にARPAの情報処理技術部門を任されると、対話型コンピューティングに関する研究プロジェクトに多額の資金を投入した。そのひとつがMITで行われたProject MACであり、IBMとの共同開発によるTSSが1963年に稼働している。このシステムはすぐに過負荷状態となり、さらなるTSSの開発が計画されたが、IBMはシステム/360をTSS用に改造することに消極的だったため、GEとMITとベル研究所によるMulticsの共同開発が1964年に開始された。 またそのIBMも、1960年代後半にはそういったコンピュータの利用法が有用だと認識し、System/360モデル67、という機種を開発する。これは同シリーズの基本設計に、DAT box (DATはDynamic Address Translation（動的アドレス変換）の略。TSSをサポートするのに必須である）を付加したもので、同時にTSSの機能を持つOSである「TSS/360」を開発しリリースした。 1960年代後半になると、「コンピュータ・ユーティリテイ」というコンセプトが話題となる。これはTSSを活用して電話回線でコンピューティングサービスを提供するビジネスである。1967年にはTSSサービス会社が全米で20社にもなったという。しかし、これは一種のバブルであり、1971年には多くの会社の経営が行き詰った（生き残った会社は後にインターネット・サービスプロバイダとなったところもある）。また、Multicsの開発も混迷し、1969年にはベル研究所が手を引き、1970年にはGEがコンピュータ開発そのものから撤退してしまった（Multicsが完成しなかったわけではない）。 しかし、ベル研究所はMulticsの反省点を生かしてUNIXオペレーティングシステムを開発することになる（現代では、Unix系のようなマルチタスクのオペレーティングシステムはTSSとは別のカテゴリとして専ら扱われるが、Unixに関する有名なpaper The UNIX Time-Sharing System のタイトルのように、当初はUnixもTSSの一種として扱われていた）。また、J・C・R・リックライダーの描いた対話型コンピューティングという概念と彼がARPA時代にまいた種は後のインターネットとパーソナルコンピュータに大きな影響を与えた。 1960年代後半、アメリカ合衆国でのProject MACや商用TSSの登場を受けて、日本でもいくつかの研究機関がTSSの開発に取りかかった。1968年（昭和43年）には電気試験所のETSSや慶應義塾大学のKEIO-TOSBAC-TSSが研究用として完成し、大阪大学では阪大MACとしてTSSサービスが開始された。やがて、IBMのTSO ( Time Sharing Option ) や日本電気のTSS/AF ( TSS-Advanced Function )、富士通のTSS-AIF ( TSS-Advanced Interactive processing Facility ) のように、メインフレーム用オペレーティングシステムのインタフェース機能に関わるオプションとして提供された。 このような動きがあった一方、日本ではアメリカ合衆国に比べて計算需要に対するコンピュータの設置台数が少なかったことから、黎明期にはオーバーヘッドが発生するTSSはそこまで受け入れられないだろうという意見もあった。 商用TSSについては、日本では当時の有線電気通信法および公衆電気通信法の規定から公衆交換電話網をデータ通信に使用できなかったため、普及の見通しが立っていなかった。1967年（昭和42年）11月の通商産業省情報産業部会設置と1968年（昭和43年）1月の日本生産性本部MIS使節団による提言から端を発した通信自由化の動きは、日本電信電話公社（電電公社）によるデータ通信サービスの実施と民間企業による公衆交換電話網のデータ通信利用を認める結果になった。1971年3月、電電公社が商用TSSとして科学技術計算サービス「DEMOS」の提供を開始。1971年10月には電通が日本の民間企業で初めての商用TSS「電通TSS」を発表。1972年1月には日本IBMが商用TSSの試験運用を開始した。 しかし、1970年代からコンピュータの製造に利用され始めた集積回路によってハードウェアの価格は急激に下がり、オフィスコンピュータやパーソナルコンピュータといった個人が独占的に使用できる小型コンピュータが登場。グロッシュの法則が成り立たなくなったため、商用TSSは単なるCPU時間の提供だけでなく、数値解析などのソフトウェアや経済分野のデータベースなどを充実させて普及を試みた。1980年代に通信網を活用したサービスに重点を置いた付加価値通信網 (VAN) がブームになると、商用TSSの時代は終わりを迎えた。 東京大学大型計算機センターにHITAC 5020を納入した日立において、同機のモニタを開発した高橋延匡らは、Multicsの発表に、特に2次元番地付け方式の仮想記憶に刺激を受け、これを実現したTSSの開発を構想した。中研の上司村田健郎、中沢喜三郎、嶋田正三らのリーダーシップにより、ただちに着手する必要があると判断され、1966年4月にプロジェクト研究が発足した。 今日で言うところのヒューマンマシンインタフェースの難しさと重要性に鑑み、プロジェクト発足当初より東京大学高橋秀俊研究室と交流し、1966年9月より正式に共同研究を開始した。 プロジェクトの24ヵ月で第一バージョンを完成し、1968年3月末、2次元番地付け方式のTSSとしては世界初の稼動となった。また、高水準言語（PL/IのサブセットPL/IW）によるOSの記述にも成功している。 また、高橋秀俊の示した8箇条は、OS構築に際して対話処理の問題の扱いにおいて、大いに参考となった、としている。 FONTAC用のモニタとして、FONTAC MONITOR、MONITOR IIからIVを1965年から1968年にかけて完成。ダイナミックリロケーション、多重処理、リアルタイム処理を実現した。その後、FACOM 230-60用のOS、MONITOR Vを開発。1968年12月にバッチ機能、1970年12月にTSS機能を完成した。この成果は電電公社が1970年9月にサービスを開始した販売在庫管理サービス「DRESS」のシステムで活用された。 MITでTSSの研究がはじまった頃、同所にて日本からは日本電気 (NEC) や日本電信電話公社（後のNTT先端研究所、NTTデータではない）のエンジニアや大阪大学からの留学生が中心となって、ジョン・マッカーシーの元で研究を行っていた。これらの研究者・エンジニアが帰国後、NECの水野幸男などを中心に開発が進み、IBMとリックライダーの発表後、3年程（1968年）に阪大MAC(TSS)としてNECの汎用機NEAC上で実装された。 1960年代なかば、通産省の「大型工業技術研究開発制度」（通称大プロ）によるプロジェクトのひとつとして、電気試験所では「超高性能電子計算機」というプロジェクトがあった。日立、富士通、日本電気といったメーカーによるハードウェア中心のプロジェクトで、渕一博は電気試験所としてソフトウェアに取りかかるべくTSSの開発を提案した。 ETSSというこのTSSは、1966年10月にプロジェクト・チームを結成している。1968年5月には、1日4時間週5日の運用実験を開始し遠隔端末から使用できた。しかし、このプロジェクトは実用化に向けた改良を重ねる段階までには結びつかず、1970年には別のプロジェクトに移行した。 ^ Donovan, John J. (1972). Systems Programming. p. 9. ISBN 0-07-085175-1  ^ 日本では期待されたほどではなかった、とされることがあり、「日本を風びしなかったTSS」という雑誌記事がある。 ^ 野田, 克彦「TSS総論」『Business communication』第6巻第3号、1969年、22-26頁。  ^ 「V 通信回線開放までの足どり」『コンピュートピア』第5巻第56号、1971年、184-191頁。  ^ 編集部「タイムシェアリング・サービスの展望」『Business communication』第18巻第10号、1981年、65-68頁。  ^ 1965年の秋にあった、1965 Fall Joint Computer Conference のようである。 ^ 高橋, 延匡、土居, 範久、益田, 隆司「第4章§4」『オペレーティング・システムの機能と構成』岩波書店、1984年。ISBN 9784000101660。  ^ 和田, 英一 (1999年6月19日). “Know Thyself”. www.iijlab.net. 2023年10月29日閲覧。 ^ “MONITOR II-コンピュータ博物館”. museum.ipsj.or.jp. 2023年2月23日閲覧。 ^ “MONITOR V-コンピュータ博物館”. museum.ipsj.or.jp. 2023年2月23日閲覧。 ^ 田中, 穂積、黒川, 利明、太田, 耕三、古川, 康一、岡田, 久雄『渕一博　その人とコンピュータサイエンス』近代科学社、2010年、14-16頁。ISBN 4764903652。  ^ 臼井, 健治「人物登場 人工知能の研究にむけて--淵一博氏」『コンピュートピア』第15巻第174号、1981年、107頁。  大型計算機センター マルチタスク マルチスレッド Time Sharing Option タイムシェア RSTS/E 『コンピューター200年史 －情報マシーン開発物語－』M.キャンベル＝ケリー他(著)、山本菊男(訳)、海文堂（1999年）、ISBN 4-303-71430-5