さて、CTSSが実現し、その後「TSS」と呼ばれるようになる時分割システム というのは、こういうバッチ処理思想とは全く違った方向から生まれてい ます。
CTSSではコンピュータに多数のタイプライタ端末を接続し、それらのキー 入力を、一方ではバッチ処理が動いている1台のコンピュータ(IBM 7090) で同時に処理させました。
基本的にコンピュータというのは一つしか頭がない訳ですから、1度には
一つのことしかできません。この基本は40年たった今でも全く変わってい
ません。しかし人間の動作はコンピュータに比べると非常に遅いので、キ
ー入力の処理は一瞬で終わりますし、何十台もの端末をたとえ接続してい
ても、その処理にかかる時間は合計でもわずかです。
そこで、TSSでは通常のバッチ処理を行いつつ、どこかで誰かがキーボー
ドを1文字打ったら「割込み」を発生させ、今している処理をいったん保
留にして、そのキー入力に対応する処理を行います。
こうすると、各端末を操作している人は全員が、あたかもコンピュータを
独占して使用しているかのごとく、操作が可能になります。
こう書けば、実に簡単なことをしているかのように思われますが、実は
TSSを支えるためには色々な技術が使われています。
まず問題になるのが処理の中断と再開のための処理です。人間でも何かし
ている最中に上司から割り込みで作業を頼まれたりすると、後で訳がわか
らなくならないように、最低限のメモなどをノートや手帳に書いたり、本
に栞をはさんだりしておいて、あとで戻ってきた時は、それを見て自分が
どこまでやったかを思い出して続きの作業をします。
コンピュータの場合も、何かしている最中に別の処理をするには、その時
のレジスタや一部メモリーの内容をどこか(実際には当時は磁気ドラム)
に書き出し、割込み処理が終わったらそれを読み戻して、作業を続けると
いうことを行なっています。
更にやっかいなのはファイルの共用制御の問題です。複数の利用者に同時
に対応して処理を行おうとしますと、別々の人が同じファイルにアクセス
する可能性があります。その時、うまく制御をしてやらないと、データに
矛盾が発生したり、更新したつもりが他の人が古いデータを書き戻した為
に全然更新されていないようになったりしかねません。このあたりの論理
的な設計はかなり苦労したようです。
MACプロジェクトで開発されたCTSSは、その後 General Electric や ATT
も参加して、Multics というシステムへ発展します。
Multics は Multiplex Information and Computing Service の略称で、
これは UNIX の元になったシステムとして有名です。その話は次回行い
ます。