MONITOR IIは,富士通の大型汎用コンピュータFACOM 230-50用の制御プログラムであり,1966年に完成した.このMONITOR IIでは,ダイナミックリロケーション方式を世界で初めて実現した.その後,MONITOR IIに,ジョブスタック機能を追加したMONITOR IIIと,リアルタイム処理機能を追加したMONITOR IVが1968年に完成した.
以下に,大型汎用コンピュータFACOM 230-50用制御プログラムの歴史,MONITOR II,MONITOR IIIおよびMONITOR IVの概要について述べる.
1. 大型汎用コンピュータFACOM 230-50用制御プログラムの歴史
1962年7月,外国メーカの大型コンピュータに対抗する国産大型コンピュータを開発するために,富士通,沖電気,日本電気の3社により日本電子計算機技術研究組合が設立された.同組合は,通産省の補助金を受けてFONTAC (Fujitsu-Oki-Nippondenki-Triple-Allied Computer)を開発した.富士通は,FONTACの中心となるFONTAC Centralの開発を分担し,その成果をベースに大型汎用コンピュータFACOM 230-50を商用化した.ソフトウェアについてもFONTAC用を改良しFACOOM 230-50用として1966年に提供した.
制御プログラムMONITOR IIは,多重プログラム処理とダイナミックリロケーションを実現したFONTAC MONITORをベースに開発された.また,他のソフトウェアとしてFORTRAN,ALGOL,COBOL,PL/Iの各種コンパイラが開発された.これらは,FACOM 230シリーズのコンピュータ相互間はもちろんのことIBM機とのプログラム互換性の配慮に加え,国際規約に準拠した.
1968年には,ジョブスタック機能の追加によりバッチ処理効率を向上させたMONITOR IIIと,大規模なリアルタイム処理とバッチ処理の並行処理を可能としたMONITOR IVが完成した.
1962年7月,外国メーカの大型コンピュータに対抗する国産大型コンピュータを開発するために,富士通,沖電気,日本電気の3社により日本電子計算機技術研究組合が設立された.同組合は,通産省の補助金を受けてFONTAC (Fujitsu-Oki-Nippondenki-Triple-Allied Computer)を開発した.富士通は,FONTACの中心となるFONTAC Centralの開発を分担し,その成果をベースに大型汎用コンピュータFACOM 230-50を商用化した.ソフトウェアについてもFONTAC用を改良しFACOOM 230-50用として1966年に提供した.
制御プログラムMONITOR IIは,多重プログラム処理とダイナミックリロケーションを実現したFONTAC MONITORをベースに開発された.また,他のソフトウェアとしてFORTRAN,ALGOL,COBOL,PL/Iの各種コンパイラが開発された.これらは,FACOM 230シリーズのコンピュータ相互間はもちろんのことIBM機とのプログラム互換性の配慮に加え,国際規約に準拠した.
1968年には,ジョブスタック機能の追加によりバッチ処理効率を向上させたMONITOR IIIと,大規模なリアルタイム処理とバッチ処理の並行処理を可能としたMONITOR IVが完成した.
種類 | 特長 | 完成時期 |
---|---|---|
FONTAC MONITOR | 多重プログラム処理とダイナミックリロケーションを実現. | 1965年 |
MONITOR II | FONTAC MONITORを改良したFACOM 230-50用の最初の制御プログラム.磁気テープ装置をベースとしたバッチ処理専用. | 1966年 |
MONITOR III | 磁気ドラム装置をベースとしたバッチ専用制御プログラム.ジョブスタック機能を追加し,バッチ処理効率の向上を実現. | 1968年 |
MONITOR IV | 大規模なリアルタイム処理とバッチ処理の並行処理を実現. | 1968年 |
2. MONITOR IIの概要
入出力装置の速度の向上に比べてCPUの速度の向上は目覚しく,CPUが遊んでしまうという問題があった.当時の試算では,情報転送の処理時間とCPUがその情報を処理する時間の比が,磁気テープ装置の場合で8:1,カードリーダの場合で150:1になると予想された.そのため,互いに関係のない複数個のプログラムをメモリに置いておき,入出力条件のためにプログラムが進めなくなった時は,他のプログラムに制御を移すことによりCPUの使用効率を上げること,すなわち「多重プログラム処理」の実現が重要課題となっていた.このような背景の下に,FONTAC MONITORでは以下のことを実現した.これらはMONITOR IIの基礎となった.
入出力装置の速度の向上に比べてCPUの速度の向上は目覚しく,CPUが遊んでしまうという問題があった.当時の試算では,情報転送の処理時間とCPUがその情報を処理する時間の比が,磁気テープ装置の場合で8:1,カードリーダの場合で150:1になると予想された.そのため,互いに関係のない複数個のプログラムをメモリに置いておき,入出力条件のためにプログラムが進めなくなった時は,他のプログラムに制御を移すことによりCPUの使用効率を上げること,すなわち「多重プログラム処理」の実現が重要課題となっていた.このような背景の下に,FONTAC MONITORでは以下のことを実現した.これらはMONITOR IIの基礎となった.
- ダイナミックリロケーション方式の採用により最高28個までの多重処理
- 多重処理を効率良く行うためのプログラム・スイッチ機能
- LOGICAL UNITとPHYSICAL UNITという概念の導入による入出力装置の割り当て
これらのうちで,ダイナミックリロケーション方式と入出力装置の割り当てについて以下に述べる.(1) ダイナミックリロケーション方式
当時は,絶対形式となったプログラムはメモリの特定の場所でしか動作できなかったが,FACOM 230-50では命令中のアドレスをベースレジスタで修飾していることとLocation dependentな量とLocation independentな量が入る場所を制御プログラムが分かるようになっていたため(ハードウェアにSXJ,SSJ命令を装備),ある時点でメモリ中の特別な場所で動作しているプログラムを瞬時に別の場所に移して,継続動作が可能であった.そのためMONITOR II(FONTAC MONITOR)では,未完了のプログラムが占める飛び飛びの領域を詰め合わせるダイナミックリローション方式を採用した.この方式の採用は,IBMのシステム360に先立って実現し,世界で最初のことであった.
MONITOR II(FONTAC MONITOR)は,この方式の採用により最大28個までのプログラムを効率よく時分割動作させることができた.
当時は,絶対形式となったプログラムはメモリの特定の場所でしか動作できなかったが,FACOM 230-50では命令中のアドレスをベースレジスタで修飾していることとLocation dependentな量とLocation independentな量が入る場所を制御プログラムが分かるようになっていたため(ハードウェアにSXJ,SSJ命令を装備),ある時点でメモリ中の特別な場所で動作しているプログラムを瞬時に別の場所に移して,継続動作が可能であった.そのためMONITOR II(FONTAC MONITOR)では,未完了のプログラムが占める飛び飛びの領域を詰め合わせるダイナミックリローション方式を採用した.この方式の採用は,IBMのシステム360に先立って実現し,世界で最初のことであった.
MONITOR II(FONTAC MONITOR)は,この方式の採用により最大28個までのプログラムを効率よく時分割動作させることができた.
(2) 入出力装置の割り当て
多重プログラム処理を行うためには,1つの入出力装置を複数のプログラムで同時に割り当てないようにする必要があるが,プログラムを作成する時にまったく関係のないプログラムのことを考えて作成することは不可能である.そこで,MONITOR IIでは入出力装置に対しLOGICAL UNIT(機種の種類を指定)とPHYSICAL UNIT(機種の種類に加え接続パスや機番を指定)の2つの概念を導入し,プログラムではLOGICAL UNITを指定することにした.そして,プログラムの実行直前または実行中にMONITOR IIが実際のPHYSICAL UNITを割り当てるようにした.なお,処理時間を問題とするプログラムのためにLOGICAL DATA CHANNELという概念を設け,あるLOGICAL UNITに対応する装置が特定のデータ・チャネルに接続されている装置とする指定方法も設けられた.
また,大容量ランダム・アクセス記憶装置についてはLOGICAL UNITの大きさをLOGICAL BLOCKの数で定義し,その大きさの容量が空いている装置をMONITOR IIが探して割り当てた.1つのLOGICAL BLOCKの大きさは4キロワードとした.
多重プログラム処理を行うためには,1つの入出力装置を複数のプログラムで同時に割り当てないようにする必要があるが,プログラムを作成する時にまったく関係のないプログラムのことを考えて作成することは不可能である.そこで,MONITOR IIでは入出力装置に対しLOGICAL UNIT(機種の種類を指定)とPHYSICAL UNIT(機種の種類に加え接続パスや機番を指定)の2つの概念を導入し,プログラムではLOGICAL UNITを指定することにした.そして,プログラムの実行直前または実行中にMONITOR IIが実際のPHYSICAL UNITを割り当てるようにした.なお,処理時間を問題とするプログラムのためにLOGICAL DATA CHANNELという概念を設け,あるLOGICAL UNITに対応する装置が特定のデータ・チャネルに接続されている装置とする指定方法も設けられた.
また,大容量ランダム・アクセス記憶装置についてはLOGICAL UNITの大きさをLOGICAL BLOCKの数で定義し,その大きさの容量が空いている装置をMONITOR IIが探して割り当てた.1つのLOGICAL BLOCKの大きさは4キロワードとした.
3. MONITOR IIIおよびMONITOR IVの概要
コンピュータの動作効率を上げることが制御プログラムの最大の目的であった.そのため,MONITOR IIでは,オペレータに多少の負荷を負わせることも止むを得ないこととした.しかし,MONITOR IIIでは,ジョブスタック機能を追加して,バッチ処理効率の向上とオペレータの介在の最小化を図った.MONITOR IIIでは,処理すべき仕事の情報をシステム用入力装置(通常はカード読取装置)から読み込んで大容量ランダム・アクセス装置(磁気ドラム装置や磁気ディスク装置)に記憶する(INCONTROL機能).その中から優先順位の高い最大28個までの仕事をリソースの許す範囲で動作状態にする(ALLOCATOR機能).そしてEXECUTORが多重プログラム制御を行った.
バッチ処理用のMONITOR IIIの開発と並行して,リアルタイムとバッチジョブの並行処理を可能とするMONITOR IVが開発された.MONITOR IVでは,電文交換,データ収集分配,座席予約,銀行業務のようにデータ処理用プログラムをコンピュータに内蔵しておき,端末から与えられたデータを即時処理するリアルタイム処理を実現した.
コンピュータの動作効率を上げることが制御プログラムの最大の目的であった.そのため,MONITOR IIでは,オペレータに多少の負荷を負わせることも止むを得ないこととした.しかし,MONITOR IIIでは,ジョブスタック機能を追加して,バッチ処理効率の向上とオペレータの介在の最小化を図った.MONITOR IIIでは,処理すべき仕事の情報をシステム用入力装置(通常はカード読取装置)から読み込んで大容量ランダム・アクセス装置(磁気ドラム装置や磁気ディスク装置)に記憶する(INCONTROL機能).その中から優先順位の高い最大28個までの仕事をリソースの許す範囲で動作状態にする(ALLOCATOR機能).そしてEXECUTORが多重プログラム制御を行った.
バッチ処理用のMONITOR IIIの開発と並行して,リアルタイムとバッチジョブの並行処理を可能とするMONITOR IVが開発された.MONITOR IVでは,電文交換,データ収集分配,座席予約,銀行業務のようにデータ処理用プログラムをコンピュータに内蔵しておき,端末から与えられたデータを即時処理するリアルタイム処理を実現した.