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

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

タイムシェアリングシステム (Time Sharing System, TSS) は、1台のコンピュータ(のCPU)をユーザ単位に時分割で共有(タイムシェア)し、複数ユーザで同時にコンピュータを利用するシステムである。開発された1960年代の当初は、当時のメインフレーム程度にパワフルなシステムを有効に使うためのものであったが、その後ミニコンピュータを中心に、ユーザ単位ではなくタスク(プロセス)を複数動かすマルチタスクオペレーティングシステムとして広まり、パーソナルコンピュータにおいても現在は一般的な利用法となっている。

概念[編集]

1960年代ごろまでのメインフレームは非常に高価であり、個人が占有してインタラクティブ(対話的)に使用することは不可能だった。インタラクティブにコンピュータを使うということは、ほとんどの時間をユーザが考え込んでコンピュータが入力を待っている状態になることを意味するからである。しかしその「ほとんどが待ち時間」という点に注目し、CPUを時分割して複数のユーザで使用するという発想が生まれた。ヒトによるインタラクティブな使用だけでなく、ディスクやテープや通信などの入出力の完了を待っている時間を無駄にせず、他の、例えば大量の計算が必要な科学技術計算のプログラムに当てるなど、技術的な発展の順番としては入出力機器からの割り込みを活用したマルチプログラミングのほうが先である。

しかし、キーボードからの入力を待つようなプログラムばかりであれば、その待ちに入る所で切替えれば良いが、大量の計算を行いたいプログラムなどでは、プログラム中に適切なタイミングで切替えを呼ぶようにするのは難しく、タイマー割り込みを利用したプリエンプションがあったほうが便利である。もっとも後年のUnixなどとは違い「タイムシェアリングシステム」と呼ばれるようなメインフレーム上のシステムの場合、まず第1に課金のための正確なCPU時間の決定が必要であり、次いで(タスクといったような単位ではなく)使用中の各ユーザに対し平等にCPU時間(タイムスライス)を割り当てる必要がある。そういったように、基本的な部分で考え方が異なっている点も多い今日のシステムとは異なる点も多いことに注意が必要である。

黎明期には、そのオーバーヘッドなどを理由として、タイムシェアリングによる対話的な使用を疑問視する向きもあった。しかし、タイムシェアリングシステムは一時期、(特にアメリカでは[1])大変な隆盛を迎えた。経済的な誘因として考えられるのは「グロッシュの法則」である。「コンピュータの性能はその価格の二乗に比例する」というこの法則によれば、1000万円のコンピュータは500万円のコンピュータの4倍の性能があり、5000万円のコンピュータは1000万円のコンピュータの25倍の性能があるということになる。したがって、1000万円のコンピュータを25台購入して個々人に割り当てるよりも、5000万円のコンピュータを25人で共有したほうが経済的だという計算になる(グロッシュの法則が、いつごろのどのようなコンピュータに対してなら適切に当てはまっていたのかははっきりしないが、マイクロプロセッサベースのコンピュータシステムの高いコストパフォーマンスを評したkiller micro(en:Killer micro)という語がある。1999年に提案されたポラックの法則では、むしろ逆になってしまったと指摘された)。

また、こんにちではほぼ見られなくなった運用スタイルだが、ユーザがオンラインでコンピュータを使いたい昼間はタイムシェアリングで、夜間は大きなジョブが大きな時間単位で占有するバッチ処理で、といったような運用も往年は見られた。

歴史[編集]

1978年、ウィスコンシン大学Unix タイムシェアリングシステムを利用するユーザ

対話型コンピューティングに大きな影響を与えた論文に、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 SystemDTSS)であり、1964年ダートマス大学で開発された。DTSSは後にゼネラル・エレクトリック (GE) 社が商用化した。DTSSはユーザインターフェイス用にBASICダートマスBASIC)を採用したことでも有名である。

また、J・C・R・リックライダーは1962年ARPAの情報処理技術部門を任されると、対話型コンピューティングに関する研究プロジェクトに多額の資金を投入した。そのひとつがMITで行われたProject MACであり、IBMとの共同開発によるTSSが1963年に稼働している。このシステムはすぐに過負荷状態となり、さらなるTSSの開発が計画されたが、IBMはシステム/360をTSS用に改造することに消極的だったため、GEとMITとベル研究所によるMulticsの共同開発が1964年に開始された。

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時代にまいた種は後のインターネットパーソナルコンピュータに大きな影響を与えた。

日本におけるタイムシェアリングシステムの開発[編集]

日立・東大[編集]

(高橋ら『オペレーティング・システムの機能と構成』第4章§4より)

東京大学大型計算機センターHITAC 5020を納入した日立において、同機のモニタを開発した高橋延匡らは、Multicsの発表に、特に2次元番地付け方式の仮想記憶に刺激を受け、これを実現したTSSの開発を構想した。中研の上司村田健郎中沢喜三郎嶋田正三らのリーダーシップにより、ただちに着手する必要があると判断され、1966年4月にプロジェクト研究が発足した。

(今日で言うところの)ヒューマンマシンインタフェースの難しさと重要性を鑑み、プロジェクト発足当初より東京大学高橋秀俊研究室と交流し、1966年9月より正式に共同研究を開始した。

プロジェクトの24ヵ月で第一バージョンを完成し、1968年3月末、2次元番地付け方式のTSSとしては世界初の稼動となった。また、高水準言語PL/IのサブセットPL/IW)によるOSの記述にも成功している。

また、高橋秀俊の示した8箇条、「人間は気まぐれである」〜「人間は何をするかわからない」(趣旨を説明した文章を電気通信学会雑誌に載せたものの引用が http://www.iijlab.net/~ew/know_thyself.html で読める)は、OS構築に際して対話処理の問題の扱いにおいて、大いに参考となった、としている。

富士通[編集]

FACOM 230-50(FONTAC)用のモニタとして、FONTAC MONITOR、MONITOR II〜IVを1965年から1968年にかけて完成。ダイナミックリロケーション、多重処理、リアルタイム処理を実現した。その後FACOM 230-60用のOS、MONITOR Vを開発。1968年12月にバッチ機能、1970年12月にTSS機能を完成した。

日電・電電・阪大[編集]

MITでTSSの研究がはじまった頃、同所にて日本からは日本電気 (NEC) や日本電信電話公社(現NTT先端研究所、NTTデータではない)のエンジニアや大阪大学からの留学生が中心となって、ジョン・マッカーシーの元で研究を行っていた。これらの研究者・エンジニアが帰国後、NECの水野幸男などを中心に開発が進み、IBMとリックライダーの発表後、3年程(1968年)に阪大MAC(TSS)としてNECの汎用機NEAC上で実装された。

電総研[編集]

(『渕一博 その人とコンピュータサイエンス』pp. 14~16)

1960年代なかば、通産省の「大型工業技術研究開発制度」(通称大プロ)によるプロジェクトのひとつとして、電総研では「超高性能電子計算機」というプロジェクトがあった。ハードウェア中心のプロジェクトであったが、渕一博はTSSの開発を提案し、採用となった。

ETSSというこのTSSは、1966年10月にプロジェクト・チームを結成している。1968年5月には、1日4時間週5日の運用実験を開始し遠隔端末から使用できた。

関連項目[編集]

参考文献[編集]

  • 『コンピューター200年史 -情報マシーン開発物語-』M.キャンベル=ケリー他(著)、山本菊男(訳)、海文堂(1999年)、ISBN 4-303-71430-5
    • ^ 日本では期待されたほどではなかった、とされることがあり、「日本を風びしなかったTSS」という雑誌記事がある。