【富士通】 MCP II

MCP (Master Control Program)は,富士通の中型汎用コンピュータFACOM 230-20およびFACOM 230-30用の制御プログラムであり,MCP I,MCP II,およびMCP IIIの3種類があった.MCP IIは,同社中型汎用コンピュータの制御プログラムとして初めて多重プログラミング処理を実現し,1966年12月に完成した.
以下に,MCP開発の歴史およびMCP IIの概要について述べる.

1. MCP開発の歴史
プログラムの開発における翻訳処理作業と実行作業は独立していて,その作業の切り替えには手間がかかった.そこで,仕事(JOB)を連続的に行うように制御することを目的とした制御プログラムMCP (Master Control Program) Iが開発された.次いで,コンピュータ(FACOM 230-20およびFACOM 230-30)の使用効率を向上させるために多重プログラミングを実現したMCP IIが,その後,小規模なリアルタイム処理を可能としたMCP IIIが,それぞれ開発された.表-1に,各MCPの特長と完成時期を示す.
表-1 MCPの特長と完成時期
種類 特長 必要なコアメモリ 完成時期
MCP I バッチ専用の制御プログラム
実行時にメモリを占有しないように管理プログラム自身を磁気テープや磁気ディスクに置いた
32/65k桁 1965年10月
MCP II 多重プログラミングを実現した制御プログラム 65k桁 1966年12月
MCP III MCP IIを改良し,1つの小規模なリアルタイム処理と1つのバッチ処理,または2つのバッチ処理を可能とした制御プログラム.メモリをバッチプログラム領域とリアルタイムプログラム領域に分割.後者はさらに16個のセグメントに分割し,プログラムをオーバレイさせた. 32/65k桁 1967年6月

2. MCP IIの概要
(1)特長
MCP IIは,富士通の中型汎用コンピュータの制御プログラムとして初めて多重プログラミングを採用し,以下の特長を有した.
- 最大4個までのプログラムの同時処理を実現
- 磁気ドラムを最大限に利用することにより処理速度を向上させた
- 同時に10個までのジョブをスタックし,オペレータの介入を最小にして運用効率を向上
- チェックポイント・再スタートの機能を完備し,障害対策を十分考慮した
(2)MCP II多重プログラミングシステムのソフトウェア構成および必要機器
MCP II多重プログラミングシステムは,制御プログラムMCP IIとその管理下にある翻訳プログラム(アセンブラ FASP),サービスプログラム(FASP-CHECK,EDIT,UTILITY,SORT/MERGE)およびFASP言語で書かれた使用者作成プログラムから構成された.
表-2に,MCP IIが必要としたハードウェア機器を示す.
表-2 MCP IIが必要とした機器
機器名 台数/容量 備考
1 FACOM 230-20(または230-30)中央処理装置 1台  
2 記憶装置 65k桁  
3 コンソール・タイプライタ装置 1台  
4 紙テープ読取装置またはカード読取装置 1台  
5 磁気ドラム装置 1(0)台 推奨 1台
6 磁気テープ装置 0(2)台 磁気ドラム装置がない場合は,2台必須

表-2に示す機器以外に,翻訳プログラム,サービスプログラム用に,最低 3台の磁気テープ装置と1台のラインプリンタ装置を必要とした.

(3)MCP IIの構造
MCP IIは,スーパーバイザプログラムとモニタプログラムの2つの部分から構成された.
スーパーバイザプログラムは,システムの核となる部分で,モニタプログラムおよびJOBプログラム(翻訳プログラムやサービスプログラムも含む)はすべてスーパーバイザプログラムの支配下で実行された.このスーパーバイザプログラムは,割込処理ルーチンとプログラム・スイッチを行うSWITCHERの2つの部分から構成された.
モニタプログラムは,1)鍵盤指令処理ルーチン,2)SCHEDULER,3)INITIATOR,4)TERMINATORの4つの部分から構成され,オペレータとの会話の制御,仕事(JOB)の流れの管理および一部の入出力装置の管理を行った.

図 MCP II制御プログラムの構造

図 MCP II制御プログラムの構造


(4)多重プログラミングの効果
MCP IIは,1967年5月に日本電信電話公社に納入されたCM30(FACOM 230-30)システムで使用が開始された.請求書印刷処理において多重処理を行った場合,3倍の件数を処理しても処理時間は15%の増加にとどまり,多重プログラミングの効果が実証された.
- 多重化しない場合 約 4,500件処理で19分23秒
- 2多重の場合(同一プログラムを2本同時処理) 約 9,000件処理で20分33秒(+6%)
- 3多重の場合(同一プログラムを3本同時処理) 約13,500件処理で22分20秒(+15%)