知識ベース

DOS / 360およびその後継機

Disk Operating System / 360DOS / 360 、または単にDOSは、IBMメインフレームの製造中止されたオペレーティングシステムです。 1964年の最終日にIBMによって発表され、1966年6月に最初に配信されました。当時、DOS / 360は世界で最も広く使用されているオペレーティングシステムでした。

DOSバージョン

TOS / 360

TOS / 360 (Tape Operating System / 360、DOSなどではなく、いわゆる)は、System / 360用のIBMオペレーティングシステムであり、1965年頃の初期にSystem / 360 Model 30および類似のプラットフォームをサポートするために使用されました。

TOSは、名前の「テープ」に従って、テープドライブを必要としました。ほとんどのコードベースといくつかのマニュアルをIBMのDOS / 360と共有しました。

TOSは14のリリースを経て、System / 360の時点でIBM 2311やIBM 2314などのディスクがより手頃な価格になったときに廃止されましたが、IBM 7090では高価でした。

DOS / 360

DOS / 360は、ほとんどの中小規模のS / 360インストールの主要なオペレーティングシステムでした。

DOS / VS

DOS / VSは1972年にリリースされました。最初のDOS / VSリリースには、DOS / 360からの増分アップグレードを示すために「リリース28」という番号が付けられました。新しいSystem / 370シリーズハードウェアをサポートする仮想メモリが追加されました。固定ページテーブルを使用して、すべてのパーティションを組み合わせて最大16メガバイトの単一アドレス空間をマップしました。

DOS / VSは、パーティション(個別の同時プログラム)の数を3(バックグラウンド、フォアグラウンド1およびフォアグラウンド2)から5(BGおよびF1からF4)に増やし、システム全体で合計15のサブタスクを許可しました。:pp.24–28

DOS / VSは、z / VSEを介してDOS / VSEに引き継がれました。

DOS / VSE

DOS / VSEは、新しい4300プロセッサをサポートするDOS / VSの「拡張」バージョンとして1979年に導入されました。 4300システムには、プロセッサとI / Oチャネルの両方に単一レベルのストレージを提供するECPS:VSEと呼ばれる機能が含まれていました。 DOS / VSEはECPS:VSEのサポートを提供しましたが、その機能がなくてもSystem / 370で実行できます。 VSEは、DOSの最後の無料バージョンです。

SSX / VSE

SSX / VSE (「Small System Executive」)は、OSおよび最も一般的な製品を含む事前生成システムを提供することにより、VSEの購入とインストールを簡素化するIBMの試みでした。 SSXは1982年にリリースされ、後にVSE / SPに置き換えられました。 SSXは、14のコンポーネント製品(Advanced Functions / VSE、VSE / POWER、ACF / VTAME、VSE / VSAM、CICS / DOS / VS、DOS / VS、Sort / Merge、VSE / ICCF、VSE / OCCF、VSE / IPCS、DOS / COBOL、バックアップ/復元、スペース管理、VSE / DITTO)、元々は個別の製品を個別にRPQ経由で提供することにのみ同意しますが、IBMは後にそれらの製品を個別に価格表に追加することに同意しましたバンドルが独占禁止法に違反していると主張するISVからの圧力の下で。

VSE / SP

1986年、IBMは9370プロセッサーの発表に合わせてVSE / SP (「システム製品」)をリリースしました。 VSE / SPは、SSX / VSEとバンドルVSEを、VSE / AF、ACF / VTAM、CICS、POWER / VSなどの最も一般的なVSEプログラム製品に置き換えました。 VSE / SPは、XA(31ビット)バージョンを提供するという顧客の要求にもかかわらず、24ビットアドレスのみをサポートしていました。

VSE / ESA

VSE / ESAは31ビットDOS / VSEバージョンで、最大384 MBの実ストレージをサポートする1​​990年にリリースされました。最大12個の静的パーティションを提供し、VSE / POWERおよびACF / VTAMをプライベートアドレススペースで実行できるようにしました。 動的パーティションと呼ばれる新しい機能が導入され、それぞれが独自のアドレス空間で最大150個の同時ジョブを許可できるようになりました。バージョン1はESAまたは370モードで実行できますが、ESAモードはXAハードウェアも制限付きでサポートします。バージョン2は、ESAハードウェアでESAモードのみをサポートしていました。

z / VSE

IBMは2005年にz / VSE 3.1をリリースしました。この命名の変更は、IBMのメインフレーム製品ラインの新しい「System z」ブランドを反映しましたが、それ以前のVSE / ESA 2.7からのアーキテクチャの根本的な変更を表すものではありませんでした。特に、新しい64ビットz / Architectureをサポートしていませんでした。64ビット対応マシン上でも31ビットモードでのみ実行されていました。 2007年にリリースされたz / VSE 4.1は、最大8 GBのメモリを備えた64ビットの実アドレス指定のサポートを導入しました。ただし、スーパーバイザの一部は64ビットモードで実行されますが、問題状態のアプリケーションに31ビットの仮想アドレススペースのみを提供します。 2011年の時点で、z / VSEを使用しているサイトの数は約4000でした。

歴史

統一されたSystem / 360(またはS / 360)コンピューターの新しいハードウェア世代を開発するとき、IBMはもともとローエンドマシンと互換性のある単一のオペレーティングシステムOS / 360を提供することを約束していました。しかし、ハードウェアはすでに利用可能であり、OS / 360プロジェクトはスケジュールに遅れをとっていました。これについては、The Mythical Man-MonthのFred Brooksが詳しく説明しています。 IBMは、4つの追加システムを迅速に開発することを余儀なくされました。

  • 少なくとも8 KBのコアメモリとパンチカードリーダーを備えたマシン用のBPS / 360、
  • 8 KB以上のメモリとディスクドライブを搭載したマシンのBOS / 360
  • 16 KB以上のメモリとディスクドライブを備えたマシン用のDOS / 360
  • 16 KB以上のメモリとテープドライブを備えたマシンのTOS / 360。

OS / 360が最終的にリリースされた1年後、少なくとも64 KBのメモリが必要でした。 DOSはメモリをほとんど使用しないように設計されており、16 KBマシンで実行できます。これは、ローエンドS / 360モデル30で使用できます。OS/ 360とは異なり、DOS / 360は当初、マルチタスクをサポートしない単一ジョブシステムでした。 32 KBのメモリを必要とする、最大3つのメモリパーティションをサポートするマルチタスクを備えたバージョンが後にリリースされました。その制限にもかかわらず、DOS / 360は、256 KB未満のメモリを搭載したプロセッサで最も広く使用されているオペレーティングシステムになりました。 DOS / 360は、中規模の組織が対応できるSystem / 360プロセッサで良好に動作しました。そして、これらの顧客が以前持っていた「オペレーティングシステム」よりも優れていました。

DOS / 360は、System / 360の発表と、目的のオペレーティングシステムであるOS / 360の可用性との間の時間的ギャップを埋めるオペレーティングシステムでした。遅延の結果、多くの顧客がDOSシステムを実装し、それらを実行するために多額の投資をしました。 IBMは、DOS / 360ユーザーがすぐにOS / 360にアップグレードすることを期待していましたが、それらの投資の結果、彼らはそのような変換にコミットすることを渋っていました。 IBMは、DOS / 360を追加のオペレーティングシステムとして提供し続ける必要がありました。 Hacker's Jargon Fileは、GECOS(GCOSとも呼ばれる)がDOS / 360からコピーされたと誤って述べていますが、そうではありませんでしたが、Xerox Data Systems Xerox Operating System(XOS)は、プログラムの移植を単純化するために意図的にDOSに似ていました

ハードウェア要件

DOS / 360では、標準命令セット(オプションで10進および浮動小数点命令セット)を備えたSystem / 360 CPU(モデル25以上)が必要でした。最小メモリ要件は16 KBでした。ストレージ保護は、マルチプログラミングが使用された場合にのみ必要でした。 1052モデル7プリンターキーボード、セレクターまたはマルチプレクサーチャネル、および少なくとも1つのディスクドライブが必要でした。最初は2325で7.25 MBを保持していました。通常、カードリーダー、カードパンチ、およびラインプリンターが含まれていましたが、磁気テープドライブで代用できます。:p.10

典型的な構成は、32KBメモリと10進命令セットを備えたS / 360モデル30、IBM 2540カードリーダー/カードパンチ、IBM 1403プリンター、2つまたは3つのIBM 2311ディスク、2つのIBM 2415磁気テープドライブ、および1052-7コンソール。

技術的な詳細

以下の説明は、特に断りのない限り、DOS / 360に適用されます。それ以降のバージョンは追加機能を提供します。

DOS / 360は、System / 360のメモリ使用量のローエンドモデルで実行するように設計されていたため、懸念事項でした。オペレーティングシステムの常駐部分であるDOS スーパーバイザ (5902バイト)を生成することができました。:p.297詳細なグラフには、各sysgenオプションのメモリ要件がリストされています。最小システムでは、単一のバッチパーティションに使用可能なストレージが10 KBを超えないため、ユーティリティ、COBOL、PL / I、および完全なFORTRAN IVを除くすべてのコンパイラを実行できます。メモリの使用量をできるだけ少なくするために、DOSは完全にアセンブリ言語でコーディングされました。

過渡現象

メモリ使用量をさらに削減するために、スーパーバイザーはトランジェントと呼ばれるオーバーレイを採用し、必要に応じて2つの予約済みトランジェント領域のいずれかに読み込まれました。 物理的トランジェント論理 的トランジェントと呼ばれる2種類のトランジェントルーチンは、ハードウェア例外を処理し、それぞれOPEN / CLOSEなどのプログラムサービスを提供しました。一時的なモジュール名はすべて$$ Aまたは$$ Bで始まり、名前を最初にディレクトリに保存することでロードを高速化しました。それらはしばしば「Aトランジェント」または「Bトランジェント」と呼ばれていました。

マルチプログラミング

すべてのSystem / 360オペレーティングソフトウェアのように、DOSの初期リリースでは一度に1つのプログラムしか実行できませんでした。 「実際の」DOSの後のバージョンでは、よりスケーラブルなOS / 360オペレーティングシステムの同じハードウェアメモリ保護機能によってサポートされる、別々のメモリパーティションで最大3つのプログラムを同時に実行できました。これらはBG( バックグラウンド )、F1( フォアグラウンド1 )およびF2( フォアグラウンド2 )として識別されました。マルチプログラミングは、システム生成時に選択可能なDOS / 360のオプション機能でした。:p.34別のSYSGENオプションにより、いずれかのFGパーティションでバッチ操作を実行できました。それ以外の場合、フォアグラウンドプログラムはコンピューターオペレーターが手動で開始する必要がありました。

DOS-VSは最大7つの同時プログラムを許可しましたが、通常DOSシステムをホストするハードウェアの規模が小さいため、5または6がより一般的な数でした。 DOSとDOS-VSの両方では、ブートロードのIBM用語であるIPL(初期プログラムロード)でパーティションの数を設定できます。

プログラムライブラリ

実行可能プログラムは、 Core Image Libraryに保存されていました。実行中、DOSはプログラムが削除または新しいバージョンに置き換えられたため、スペースを再利用できませんでした。 Core Image Libraryがいっぱいになると、ユーティリティプログラムの1つで圧縮する必要があり、これにより開発作業が半日も停止する可能性がありました。多くのショップは、1日の変更を単に凍結し、CILを「オフライン」で圧縮し、営業日の初めに新しいコアイメージライブラリでIPLしました。リンク可能なオブジェクトプログラム用の再配置可能なライブラリと、アセンブラマクロとインクルードテキスト用のソースステートメントライブラリもサポートされていました。インストールでは、他のディスクボリュームに追加のプライベート再配置可能およびソースステートメントライブラリを定義できます。

公益事業

DOS / 360には、一連のユーティリティプログラム、アセンブラー、およびFORTRAN、COBOL、最終的にはPL / I用のコンパイラーがあり、それらを使用するのに役立つアクセス方法でさまざまなファイル編成をサポートしました。

  • 順次データセットは、最初から最後まで一度に1レコードブロックだけ読み取りまたは書き込みが行われました。
  • インデックス付き(ISAM)ファイルでは、各レコードの指定されたセクションは、特定のレコードを検索するために使用できるキーとして定義されていました。
  • 直接アクセス(BDAM)ファイルでは、アプリケーションプログラムは、アクセスするデータのディスク上の物理的な場所を指定する必要がありました。 BDAMプログラミングは簡単ではなく、ほとんどのお客様が自分で使用したことはありません。しかし、ディスク上のデータにアクセスする最速の方法であり、多くのソフトウェア会社が自社の製品、特にADABAS、IDMS、IBMのDBOMPおよびDL / Iなどのデータベース管理システムで使用していました。

シーケンシャルおよびISAMファイルは、固定長または可変長のレコードを格納でき、すべてのタイプが複数のディスクボリュームを占有する可能性があります。

テレコミュニケーション

DOS / 360は、BTAMを提供しました。BTAMは、原始的で、後の標準では使いにくいデータ通信機能です。ただし、BTAMはほぼすべてのタイプの端末と通信できます。これは、通信プロトコルの標準化がほとんど行われていない当時の大きな利点でした。 APIのシンプルさにより、外部通信プロセッサのインターフェイスが比較的簡単になり、DOS / 360マシンが大規模組織の多層ネットワークのノードになりやすくなりました。

ジョブ制御

すべてのDOSジョブ制御ステートメントは、「/&␢」、「 データの終わり 」、「/ *␢」、およびコメント 「*␢」であるジョブの終わりを除いて、カード列1および2の「//」で始まりました。 。 ( 文字「␢」に続く説明では、単一の空白を表します 。)

  • JOBステートメントは、「ジョブの制御情報の始まり」を示します。形式は// JOB ジョブ名> コメント>です。 jobname>は、ジョブを識別するために1〜8文字の英数字でなければなりません。 comments>は無視されます。
  • EXECステートメントは、 ジョブステップとして実行されるプログラムを識別します。 EXECステートメントを読み取る前に、「実行に必要なすべての制御ステートメントを処理する必要があります」。形式は// EXEC program>です
  • PAUSEステートメントは、「ジョブステップ間のオペレータアクションを許可するために使用できます。」形式は// PAUSE comment>です。コメントは、オペレーターにメッセージを提供するために使用されます。
  • コメント文を使用して、オペレータにメッセージを表示できます。形式は* コメント>です。
  • データ終わりステートメントは、入力ストリームのデータの終わりを示します。形式は/ *です。ブランクに続くステートメントのデータはすべて無視されます。
  • ジョブ終了ステートメントは、ジョブの終了を示し、ジョブが異常終了した場合にフラッシュされるデータの終了を示す場合があります。形式は/&です。ブランクに続くステートメントのデータはすべて無視されます。
  • OPTIONステートメントは、このジョブに適用されるシステムオプションの値を指定します。形式は// OPTION option1>です。
  • ASSGNステートメントは、「論理I / Oユニットを物理デバイスに割り当てるために使用されます。」形式は// ASSGN SYSxxx、device>です。 SYSxxxは、SYS001やSYSIPTなどの論理ユニットを示します。 device>は、物理デバイス(チャネルおよびユニット)を示す「X'cuu '」、無視する場合は「IGN」、割り当てられていない場合は「UA」です。 tape option>は、密度、パリティなどのテープモード設定、または代替デバイスを示す「ALT」のいずれかを指定します。
  • RESETステートメントは、指定されたI / Oユニットの割り当てを永続的な値にリセットします。形式は// RESET オプション>です。 option>は、すべてのシステム論理ユニット割り当てをリセットする「SYS」、すべてのプログラマ割り当てをリセットする「PROG」、すべての割り当てをリセットする「ALL」、または論理ユニット「SYSxxx」の割り当てをリセットする「SYSxxx」です。例SYS002。
  • LISTIOステートメントは、現在有効なすべての指定されたI / O割り当てのリストを印刷するようにシステムに指示します。形式は// LISTIO option>です。 option>は、すべてのシステム割り当てをリストする「SYS」、バックグラウンドまたは指定されたフォアグラウンドパーティションのすべての割り当てをリストする「PROG」、「F1」、または「F2」、「ALL」、「SYSxxx」、「X'cuu ' 「、「UNITS」は割り当てられたすべてのユニットをリストし、「UA」はすべての未割り当てユニットをリストし、「DOWN」は動作不能としてマークされたすべてのユニットをリストします。
  • MTCステートメントは、磁気テープ装置にコマンドを発行します。形式は// MTC opcode>、SYSxxxです。 opcode>は、スペースを1ファイル進める「FSF」やテープを巻き戻す「REW」などの機能です。 nn>は、フォワードスペース2ファイルなど、操作を実行する回数を指定できる数値です。
  • VOLステートメントは、標準ラベルチェック用のディスクまたはテープボリュームラベル情報を提供します。形式は// VOL SYSxxx、volume>です。
  • DOSは元々、テープラベル情報用のTPLABステートメントと、ディスクラベルおよびエクステント情報用のDLABおよびXTENTステートメントを提供していました。少なくとも1968年には、TPLABステートメントがTLBLに、DLABステートメントがDLBLに置き換えられました。これらのステートメントは、多数の定位置パラメーターを使用し、かなり高い情報密度を持っていました。

OS / 360との違い

ジョブ制御言語

DOS JCLは、解析速度と単純さのために設計されました。結果の定位置構文は、OS / 360のキーワード駆動ジョブ制御よりもはるかにわかりにくいものでした。

スプール

初期のDOSには、パンチされたカードとラインプリンターのI / Oの効率を改善するスプーリングサブシステムが含まれていませんでした。 1960年代後半までに、IBMとアフターマーケットベンダーの両方がこの空白を埋め始めました。 IBMのスプーラーはPOWERと呼ばれるオプションであり、独立系ソフトウェア会社のSoftware Design、Inc.はGRASPと呼ばれるスプーラーを販売していました。

プログラムの読み込み

DOS / 360には再配置ローダーがなかったため、プログラマは、プログラムが実行される可能性が高いパーティションまたはアドレススペースごとに、各プログラムの個別の実行可能バージョンをリンク編集する必要がありました。別の方法として、アセンブラー言語のプログラムを自己再配置として作成することもできますが、小さなものではありますが、追加の複雑さとサイズのペナルティが課せられます。複数のマシンと複数のパーティションレイアウトを持つ大規模なDOSショップでは、この問題を回避するために独自の再配置ローダーを作成することがよくありました。

アプリケーションプログラミングインターフェース

DOS / 360アプリケーションプログラミングインターフェイスはOS / 360と互換性がありませんでした。 DOS用に作成された高水準言語プログラムは、OS / 360で使用する前にコンパイルおよびリンクする必要がありました。 OSとは対照的なDOSのコンパイラ間の小さな違いにより、プログラムの変更が必要になる場合がありました。しかし、反対方向の港はより困難でした。 OS / 360はAPIでサポートされる機能が大幅に多いため、これらの機能の使用は、DOSに移植されるプログラムから削除する必要があります。これは、COBOLなどの高レベル言語で作業するプログラマにとってはそれほど問題ではありませんでした。一方、アセンブラープログラムは、これらの機能をより頻繁に利用する傾向があり、通常、DOSで実行するにはより大きな修正が必要でした。