このカテゴリーでは、大型汎用機用の代表OSであるIBM社の「MVS」について、その概要やポイントなどを紹介します。その他にも関連する話題を適宜追加したりもします。
現在ではMVSは「z/OS」の名称になっていますが、OSの基本部分は今でもMVSとしてその名が使用されています。
MVSに限らずメインフレーム・コンピュータ用OSはRASISの指標で示される品質を踏まえた上で、
- スループットを高める(少しでも多くの仕事をこなす)
- レスポンスを良くする(少しでも速く答える)
- 資源(装置やデータ)の有効利用(無駄なく遊ばせない)
と言う目標を達成しています。
Reliability(信頼性) | システムを間違いなく機能させること。障害の少なさ。 |
Availability(利用可能度) | 仮に障害となってもいかにそれを回避・回復できるか。局所化できるか。 |
Serviceability(保守性) | 障害原因の追及や修復のし易さ。 |
Integrity(保全性) | 障害によってデータやプログラムが破壊されないこと。 |
Security(機密保護性) | 情報の盗用や資源への不正なアクセスをいかに防げるか。 |
MVSではこれらの目標を達成するためにさまざまな機能が組み込まれています。「監視プログラム」と呼ばれる、根幹となる核の部分を構成するプログラム群の上に7つの大きな機能を載せたような構造になっています。
監視プログラム
OSとしてのカーネルの部分です。MVSではニュークリアスと呼ばれます。CPU制御、割込み制御、入出力制御、タイマー制御、プログラム実行制御など、ハードウェアを直接アクセスしたりマルチ・タスキングなどのプログラムを実行する上で基本となる制御を司ります。
ジョブ管理
処理プログラムの実行を「仕事」として制御・管理します。MVSではユーザーの業務を行う処理プログラムの実行を「ジョブ」と言う単位で捉えます。初期のS/360以前の時代から、まとまったデータを一気に処理するバッチ処理と言う処理形態がメインフレーム・コンピュータでのプログラム処理の基本でした。MVSもこの流れを組んでいます。1つ1つのバッチ処理を「ジョブ」と言う単位で管理していたのです。
ジョブ・エントリー・サブシステム(JES)
複数の「ジョブ」を自動的・連続的に処理させ、OS自身のジョブ管理機能を補完します。JES機能自体がMVS自身に含まれないのは、複数の種類のJESから用途に合わせて選択して利用できるようにするためです。MVSはOS自身にアドオンする形で機能を追加する仕組みを持っており、サブシステムと呼ばれます。JESはこのサブシステムの代表的なもので、JES2とJES3の2つがあります。日本では圧倒的にJES2が利用されています。
メモリー管理
仮想記憶と実記憶の制御と管理を行います。
タスク管理
複数のプログラムを並行して実行させたり、排他制御やエラー回復などの制御・管理などを行います。
データ管理
デバイス(ボリューム)とデータセットの制御と管理を行います。
ファイルシステム
データセットの構造管理、レコードへのアクセスサービスの提供を行います。MVSではファイルシステムはデータ管理のコンポーネント(現在のz/OSではDFSMSdfp)に含まれます。
システム管理
システムのモニタリングやロギングなど、OSの運用に必要なさまざまなデータの収集や解析が行われます。パフォーマンス制御などはこのシステム管理とタスク管理が密接に連動して行われることになります。
ネットワーク
通信デバイスの制御と管理、ネットワークへのアクセスサービスの提供。ネットワーク機能は本来OSに含まれる機能ではありませんが、現在ではネットワークなしでのメインフレーム・コンピューター運用はまずありません。MVSではIBM社のSNAプロトコルを制御するVTAM、TCPプロトコルを制御するTCPIP/MVSがあります。現在では両方のプロトコルを処理するCommunications Serverというコンポーネントが組み込まれていますが、SNAの制御はVTAM、TCPの制御はTCPIP/MVSであることに変わりありません。VTAMやTCPIPはCommunications Serverのサブコンポーネントと考えてもいいでしょう。