歴史
TSS(オペレーティングシステム)
IBMタイムシェアリングシステムTSS / 360は、メインフレームのSystem / 360シリーズの特別なモデルであるModel 67専用に設計された廃止された初期のタイムシェアリングオペレーティングシステムです。1967年に一部の顧客に試用可能、IBMのサポート対象製品として公式にリリースされたことはありません。 TSSは多くの新しい機能を開拓し、その一部は後にMVSなどのより一般的なシステムに登場しました。 TSSはSystem / 370および303xシステムに移行されましたが、その多くの進歩と新しい機能にもかかわらず、TSSは期待に応えることができず、最終的にキャンセルされました。 TSS / 370は、UNIXからIBMメインフレームへのポートの基礎として使用されました。 TSS / 360は、TSS-8オペレーティングシステムの開発にも影響を与えました。
新しい特徴
TSS / 360は、密結合対称型マルチプロセッシングの最初の実装の1つでした。モデル67メインフレームのペアは、共通の物理メモリスペースを共有し、カーネル(およびアプリケーション)コードの単一コピーを実行しました。 1つのプロセッサによって起動されたI / O操作が終了し、他のプロセッサで割り込みが発生する可能性があります。モデル67は、テストおよび設定と呼ばれる標準の360命令を使用して、コードクリティカルセクションにロックを実装しました。
また、位置に依存しないコードを使用して仮想メモリと仮想マシンを実装しました。
TSS / 360には、「テーブルドリブンスケジューラ」の初期実装が含まれていました。これは、現在の優先度、ワーキングセットのサイズ、現在までに使用されたタイムスライス数などのパラメーターを列に持つユーザー設定のテーブルです。カーネルは、スレッドの新しい優先度を計算するときにこのテーブルを参照します。これは後にHoneywell CP-VやIBM z / OSなどの多様なシステムに登場しました。
当時のオペレーティングシステムソフトウェアの標準であったように、TSS / 360の顧客(ゼネラルモーターズリサーチラボラトリーズなど)は、オペレーティングシステムコードと開発ツールのソース全体へのフルアクセスを許可されました。ユーザーが開発した改善とパッチは、公式のソースコードに頻繁に組み込まれました。
批判
TSS / 360はパフォーマンスと信頼性の問題とOS / 360との互換性の欠如に悩まされていましたが、これらの問題は最終的に対処されました。 IBMは、Multicsと競合するプログラマーの大規模なスタッフと一緒に、非常に攻撃的なスケジュールでTSSを開発しようとしました。 1967年までに、TSS / 360がOS / 360と同じ種類の遅延に苦しんでいることが明らかになりました。 1968年2月、SHARE 30の時点で、TSSを実行しようとしている18のS / 360-67サイトがありました。会議中に、IBMは「青い文字」で、TSS / 360が廃止されたことを発表しました。これは、タイムシェアコミュニティに大きな打撃を与えました。この決定は一時的に取り消され、TSS / 360は1971年まで正式にキャンセルされませんでした。しかし、TSS / 360は暫定措置として、既存のTSS / 360のお客様にしばらくの間静かに利用できました。
TSS / 360がキャンセルされた後、IBMはOS / 360用のタイムシェアリングモニターであるTime Sharing Option(TSO)に主な努力を注ぎました。他のいくつかのグループは、IBM / Cambridge Scientific CenterのCP-67、特にVM / 370に進化した初期の仮想マシンモニターであるS / 360-67、ミシガン大学のMTS向けに、野心的ではない、より成功したタイムシェアリングシステムを開発しました。スタンフォード大学のORVYL。 IBMはまた、TSS / 370 PRPQを既存のTSS / 360のお客様の移行パスとして提供し、複数のリリースを経ました。
ユーザーインターフェース
TSSは、ユーザーにコマンドラインインターフェイスを提供します。ユーザーはコマンドシステムと対話します 。コマンド形式はCommand_Nameで構成されます。コマンド名は、埋め込みブランクなしの1〜8文字です。オペランドはコマンドに応じてオプションであり、コマンド名と少なくとも1つのブランクで区切る必要があります。複数のオペランドは、 TAB文字またはコンマで区切る必要があります。コマンド行を続行するには、継続する行の最後にハイフン( "-")を入力し、次の行の先頭に継続を入力します。複数のコマンドをセミコロン( ";")で区切って1行に記述することができます。コメントはコマンドラインで許可され、セミコロンでコマンドと区切られ、一重引用符( "'")で囲まれます。オペランドは、位置またはキーワードのいずれかで、「keyword = value」の形式です。
システムコマンドは7つのカテゴリに分類されます。
- タスク管理-ログオン、ログオフ、異常終了など
- データ管理– CATALOG、DDEF、DELETEなど。
- プログラム管理-LOAD、DUMP、DISPLAY、TRAPなど。
- コマンド作成-PROCDEF、BUILTIN
- メッセージ処理
- ユーザープロファイル– SYNONYM、DEFAULT、PROFILEなど。
- プログラム製品の言語インターフェース– COBOL、HASM、PLIOPT、FTNHなど
位置に依存しないコード
TSSは、「プロセスに依存しないコード」の初期実装を提供しました。これは、プロセスごとに異なる仮想アドレスにマッピングされる実行可能ファイルの単一コピーを異なるプロセスに実行させる機能です。
システム/ 360プログラムには通常、変更可能なデータ(作業用ストレージ)と「アドレス定数」または「アドコン」(コードまたはデータのアドレスを含むフィールド)が含まれています。 TSSでは、そのプログラムを実行するプロセスごとに仮想アドレスが異なります。 TSS言語プロセッサは、すべてのアドコンと作業用ストレージを、 Prototype Control Sectionまたは「PSECT」と呼ばれるコードの別のセクションに配置します。プログラムがロードされると、ダイナミックローダーはPSECTのコピーを作成し、アドコンを再配置して現在のプロセス内で割り当てられた仮想アドレスを反映します。したがって、プログラムの各ユーザーはPSECTの一意のコピーを持ちます。呼び出されたプログラムが実行されると、汎用レジスター13に現在のプロセスのPSECTのアドレスが含まれます。このアドレスは、変数データまたはアドレスへのすべての参照に使用されます。