Disk Operating System/360 (D
[OS/360|OS_360]])は、IBMメインフレーム用の歴史的な
オペレーティングシステム]です。1964年末に[[IBMによって発表され、1966年6月に最初に提供されました。1960年代当時、D
OS/360|OS_360は世界で最も広く利用されたOSの一つでした。
DOSの主なバージョン
T
OS/360|OS_360 (Tape Operating System/360)は、System/360初期のOSで、主にSystem/360 Model 30などのプラットフォームをサポートしていました。TOSは
テープドライブを必要とし、コードやマニュアルの一部はD
OS/360|OS_360と共通でした。14回の更新を経て、
ディスクドライブの価格低下により更新が終了しました。
D
OS/360|OS_360は、小型から中型のSystem/360モデルで最初の選択肢となるOSでした。
DOS/VS
1972年にリリースされたDOS/VSは、System/370シリーズの仮想メモリ機能をサポートし、最大16MBのメモリを管理できました。同時に実行できるプログラムパーティションの数が3から5に増強され、システム全体で15のサブタスクが実行可能でした。DOS/VSは、後のDOS/VSE、そしてz/VSEへと進化しました。
DOS/VSE
1979年リリースのDOS/VSEは、新機種の4300プロセッサをサポートする拡張版で、プロセッサとI/Oチャネルを単一レベルのストレージとして扱えるECPS:VSE機能を搭載していました。このOSが無料で提供された最後のバージョンです。
SSX/VSE
SSX/VSE (Small System Executive)は、OSとアプリを組み合わせたパッケージで、VSEの販売を簡略化する目的で提供されました。14のコンポーネント製品がバンドルされていましたが、独占禁止法の指摘を受け、個別の販売も行われるようになりました。
VSE/SP
1986年にリリースされたVSE/SP (System Product)は、9370プロセッサーとともに発表されました。SSX/VSEの後継で、VSEで人気のある製品がバンドルされていました。顧客はXA(31ビット)バージョンを望みましたが、VSE/SPは24ビットアドレスのみをサポートしていました。
VSE/ESA
1990年リリースのVSE/ESAは、DOS/VSEの31ビット版で、最大384MBの実ストレージをサポートしました。最大12本の静的パーティション分割が可能で、動的パーティションでは最大150個のジョブが並列実行できました。バージョン1はESAと370の両方のモードをサポートし、バージョン2はESAハードウェアのみをサポートしました。
z/VSE
2005年、
IBMはz/VSE 3.1をリリースしました。このバージョンは
System zブランドを表していますが、アーキテクチャの大きな変更はありませんでした。z/VSE 4.1では64ビットのリアルアドレッシングに対応しましたが、アプリケーションの仮想メモリ空間は31ビットのままでした。2011年時点で、約4000の組織がz/VSEを利用していたと推定されています。
歴史的背景
System/360 (S/360)の登場時、
IBMはローエンドでも動作する共通OSとして
OS/360|OS_360のみを提供する予定でした。しかし、
OS/360|OS_360の開発遅延により、
IBMは急遽4つのOSを追加する必要に迫られました。
OS/360|OS_360は1年遅れてリリースされ、最低64KBのメモリが必要でした。一方、DOSは16KBでも動作可能で、ローエンドのS/360 Model 30で利用可能でした。当初、D
OS/360|OS_360はシングルジョブシステムでしたが、後に
マルチタスク版が追加されました。
D
OS/360|OS_360は、
OS/360|OS_360が利用可能になるまでの繋ぎとして開発されました。しかし、多くの顧客がDOSに投資したため、
IBMは継続的にD
OS/360|OS_360をサポートする必要がありました。また、ゼロックスデータシステムのゼロックスOS (XOS)は、プログラム移植を容易にするため、意図的にDOSを模倣しました。
動作環境
D
OS/360|OS_360には、System/360 CPUのModel 25以上、最小16KBのメモリが必要でした。マルチプログラミング機能を利用しない場合はストレージ保護機能は不要でした。必要な周辺機器として、プリンターキーボード、セレクターまたはマルチプレクサーチャネル、少なくとも1台の
ディスクドライブが必要でした。S/360 model 30では、32KBのメモリ、カードリーダー、プリンター、
ディスクドライブ、磁気
テープドライブ、コンソールが一般的な構成でした。
技術詳細
D
OS/360|OS_360は、メモリ消費量を削減するため、フルアセンブラで記述されました。OSの常駐部分であるDOSスーパーバイザは、約5902バイトと非常にコンパクトでした。トランジェントというオーバーレイ的な仕組みを採用し、必要な時にだけ読み込むことでメモリ消費をさらに削減しました。
トランジェント
トランジェントには、物理トランジェントと論理トランジェントの2種類があり、それぞれハードウェア例外やプログラムサービスを提供しました。トランジェントモジュールは、ディレクトリの先頭に名前の一覧を格納することでロードを高速化しました。
マルチプログラミング
初期のDOSでは一度に1つのプログラムしか実行できませんでしたが、後のバージョンでは最大3つのプログラムを同時に実行できました。各パーティションには、BG (バックグラウンド)、F1 (フォアグラウンド1)、F2 (フォアグラウンド2)の名前が付けられていました。DOS-VSでは最大7つのプログラムを同時に実行できましたが、実際のシステム構成では5~6本が一般的でした。
プログラムライブラリ
実行可能プログラムはコアイメージライブラリ(CIL)に格納されました。プログラムの実行中は削除や差し替えができなかったため、CILがいっぱいになるとユーティリティプログラムで圧縮する必要がありました。リロケータブルライブラリ、アセンブラマクロのソースステートメントライブラリ、組み込みテキストもサポートされていました。
ユーティリティ
D
OS/360|OS_360にはアセンブラ、FORTRANと
COBOLの
コンパイラ、各種ファイル構成に対応したインターフェースなどのユーティリティプログラムが付属していました。後のバージョンでは
PL/I|PL_Iも追加されました。
- - シーケンシャルデータセット - レコードを順番に読み書きする
- - インデックス付きファイル(ISAM) - キーでレコードを検索する
- - ダイレクトアクセスファイル(BDAM) - アプリケーションが物理位置を指定する
通信機能
D
OS/360|OS_360は、データ通信機能としてBTAMを提供していました。BTAMは当時の標準的な通信プロトコルが少ない中で、さまざまな種類の端末と通信が可能でした。APIがシンプルだったため、外部通信プロセッサとの接続も容易でした。
ジョブ制御
DOSジョブ制御ステートメントは、カードの先頭2文字が必ず`//`で始まります。ジョブの終了は`/&`、データの終了は`/`、コメントは``で始まります。
- - `JOB` - ジョブの開始を宣言
- - `EXEC` - 実行するプログラムを指定
- - `PAUSE` - オペレーターの介入を要求
- - `COMMENT` - コメントを表示
- - `データ終了` - データストリームの終わりを示す
- - `ジョブ終了` - ジョブの終了を示す
- - `OPTION` - システムオプションを設定
- - `ASSGN` - 論理I/Oユニットを物理デバイスに割り当てる
- - `RESET` - I/Oユニットの割り当てをリセット
- - `LISTIO` - I/Oユニットの割り当てを表示
- - `MTC` - 磁気テープ装置にコマンドを発行
- - `VOL` - ボリュームラベル情報を指定
関連項目
参考文献
- - Bitsavers.orgのDOSマニュアル
- - VintageBigBlue.orgのDOS / VSセクション
- - Free On-line Dictionary of Computingの資料(GFDL v1.3以降に基づき組み込み)