【三菱電機】DPS10

1982年から1983年にかけて発表されたMELCOM80 OFFICELAND モデル500,モデル400では,他社に先駆け32ビット・アーキテクチャを採用し(論理空間は24ビット16メガバイト),OSとしてDPS10が搭載された. DPS10は,UNIX SystemIIIのプロセス管理,メモリ管理,ファイルシステムなどをベースに,ビジネス系コンピュータのOSに必要なジョブ管理,データベース管理,スプール管理,端末管理,通信管理などが機能拡張され,当時としては画期的なOSであった.DPS10の特長は次の通りである.

(1)ファイルシステム
一般に,UNIXファイルシステムでは,ディスク領域をブロック(DPS10では2キロバイト/ブロック)単位で管理し,ディスクI/Oは,主記憶装置上のキャッシュ領域を経由してブロック単位で行なわれる.DPS10のファイルシステムでは,このブロック単位で管理されるBDS(Blocked Data Space)以外に,物理的に連続した領域SDS(Sequential Data Space)を準備している.SDSにより,ビジネスアプリケーションで頻繁に用いられる大量データ処理を効率よく行なうことができるようにしている.
(2) データベース管理
DPS10では,上記のファイルシステム上に,独自のデータベース管理システムを備えている.DPS10データベース管理では,DPSIV以前と互換性のある,順編成ファイル,相対編成ファイル,索引編成ファイル,多面索引編成ファイルなどを編成することができるが,さらに,物理ファイルの構成とは別に,論理的なデータ定義によって複数の物理データをマッピングした仮想的なファイルを扱うことを可能にする“リレーショナル型データベース”を実現している. これらデータファイルへのアクセスは,主記憶上のディスクキャッシュを経由することでオンライン業務の高速化を図っている.また,データファイルが前述のSDS上に連続的に作られていることを利用して,バッチ業務などで大きなファイルが1つのジョブから排他的に使用される場合には,ディスクキャッシュを経由せず,大きなサイズでI/Oを行なうことでI/OのCPUオーバヘッドを大幅に削減することができるようになっている.
(3) ジョブ管理
ビジネス系コンピュータの必須機能として,DPS10ではUNIX上にジョブ管理機能を実装した.DPS10ジョブ管理には,ジョブスケジューリング機能,ジョブ制御言語,ジョブ課金機能,自動運転機能などを備えている.ジョブ制御言語には,プログラミング言語が持つ条件判定やループなどのフロー制御を付加したコマンドランゲージを記述することができるようになっている.また,シンビオント機能(スプール管理機能)も実装している.
(4) プログラミング言語
プログラミング言語としては,COBOL,プログレスIIがサポートされた.さらに,第四世代言語である「DUET」(後に「EDUET」)が搭載され,管理系,情報分析系のアプリケーションやデータメンテナンス用アプリケーションの生産性を飛躍的に向上した.
(5) RDBプロセッサGREOとMSA
1989年4月に発表されたMELCOM80 GEOC システム80GRでは,世界初の超高速RDBプロセッサGREOを搭載.GREOボードを本体に搭載するだけで,負荷の重いソート処理をCPUから切り離して高速処理し,RDB処理を従来の3〜50倍高速化している.DPS10では,GREOを制御するためにMSA(Multi Stream Architecture)を開発した.MSAは,ビジネスアプリケーションでしばしば用いられるソートや索引生成,レコード抽出などの処理を,CPUで処理するかGREOで処理するかを判断・制御し,既存のアプリケーションやジョブ記述言語に修正を加えることなく,RDB処理を高速に実行するとともにシステムのスループットを最大にしている.
(6)オンライントランザクション処理システム
DPS10では,オフコン初のOLTP(オンライントランザクション処理システム)を搭載した.DPS10トランザクション処理システムは,キュー方式を採用することによって,最小限のリソース(CPU, メモリなど)で多端末からのトランザクションの処理を可能にし,金融業界のATM接続など1,000端末超のシステムに使われた.
DPS10 K00版(諸元拡大)
1990年代に入ると,データ量の増大,メインフレームからのダウンサイジング需要やエンドユーザコンピューティング(EUC)の進展などに対応し,オフコンにも汎用中小型機並みの性能・信頼性が必要になってきた.1992年11月に発表されたMELCOM80 GS700/10では,顧客企業の発展や最先端の半導体技術による170万トランジスタ規模の1チップフルカスタムCPUを開発,高密度実装し,システムアーキテクチャを大幅に拡張・改良した.このGS700/10用に開発したDPS10 K00版では,様々な改良を行なっている.
(1) 諸元拡大
GS700/10ではアドレス空間を24ビット(16メガバイト)から31ビット(2ギガバイト)に拡大.DPS10 K00版では,31ビットアドレス空間に対応することで,ディスク容量150ギガバイト,最大端末数2,048台,通信回線数384回線などをサポートした.
(2)高信頼性機能と回復管理システム
高信頼化機能として,OSではミラーディスク機能と回復管理システムをサポートした. 以下にDPS10回復管理システムについて説明する. 旧来型のオフコンシステムでは,日中のオンライン業務にて取引ログを作成しておき,夜間のバッチ処理によってマスタファイルを更新するケースが多く,システムダウンが発生した場合でもデータベースを回復することは難しくなかった.しかしながら,オフコンが徐々に大規模なOLTPシステムに適用されるようになると,本格的な回復手段を準備し,万一の場合にトランザクション単位でデータベース回復をすることが必要になっていった.このため,DPS10では回復管理システムRMS(Recovery Management System)が開発された.

図 DPS10回復管理システム

図 DPS10回復管理システム

RMSでは,いかなる障害に対してもデータの整合性を維持するため,3種類のデータベース回復機能を持つ.
1. ダイナミック回復
業務プログラムの異常終了(トランザクション障害)または業務プログラムからのロールバック要求ときに適用される回復手段である.これはメモリ上に蓄積されたジャーナルデータ(トランジェントジャーナル:更新履歴データ)をもとに速やかに回復する(トランザクションの開始状態に戻す).
2. システム回復
高信頼化機能として,OSではミラーディスク機能と回復管理システムをサポートした. システムダウンによる障害(システム障害)時に未完了のトランザクション内で行われたデータ操作の戻し回復を行う.具体的には,システムジャーナルファイルを走査してデータベースの整合性のある最終トランザクションを見いだし,それ以降のトランザクションで更新されたデータベースを回復の対象とする.回復対象のトランザクションを最終トランザクションまでデータのロールフォワード(更新後履歴の適用)操作を行い,未完了のトランザクションについてはさらにロールバック(更新前履歴の適用)操作を行う.
3. ファイル回復
ディスク装置の故障(媒体障害)時には,データベースのバックアップとバックアップ以降に採取したジャーナルデータをもとに最新の状態までリカバリする(ミラーディスクを利用すればこのケースはほとんど発生しない).
なお,RMSでは,トランザクション内でのレコード更新操作(レコードの追加や削除も含む)時に更新結果をバッファキャッシュメモリ上に残し,ディスク装置へのアクセスを最小限にすることにより,トランザクション処理性能を向上している.