説明

ロードモジュール高速結合方式

【目的】 結合が高速で離脱の容易なプログラムモジュールの結合離脱を行う。
【構成】 プログラムモジュール20〜23が初期設定時にメモリ41にロードされたとき、リンク制御ルーチン30、初期設定ルーチン32,34,36がプログラムモジュール登録表31、リンク管理表33,35,37を用いてキャラクタリンク結合情報からプログラムモジュール間のバイナリリンク結合情報を生成し、プログラム走行時、バイナリリンク結合状態でプログラムを走行させる。

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のプログラムモジュールファイルより構成されるシステムのプログラムモジュール間のリンク結合を行うロードモジュール高速結合方式に関するものである。
【0002】
【従来の技術】ディスク上にインストールされた複数のプログラムモジュールより構成されるオンラインプログラムシステムで、各プログラムモジュール間のリンク結合は、ディスク上のファイルシステムを通したキャラクタ形式のファイル名によるキャラクタリンク結合となっていた。
【0003】また、一つのプログラムモジュールが他のプログラムモジュールを起動する場合はプログラムモジュールのファイル名によりファイルシステムを通して起動先のプログラムモジュールを認識し、認識したプログラムモジュールをメモリ上にロードし、OSの起動プロセスを通して相手方のプログラムモジュールを起動すると言う間接的な方法でプログラムモジュールが起動されていた。更に、これら一連の起動時の処理はプログラムモジュールを起動する度毎に行われていた。
【0004】
【発明が解決しようとする課題】このような従来の方法では、一つのプログラムモジュールが他のプログラムモジュールを起動しようとする場合は、キャラクタコードのファイル名によりファイルシステムを通して起動先プログラムモジュールを認識し、認識したプログラムモジュールファイルをメモリ上にロードし、更に起動プロセス処理を行った後に、プログラムモジュールを起動していた。このため、ファイルシステムを通して起動を行うため起動をする時間がかかってしまい、実時間動作を行うシステムが要求する起動時間を満足できないと言う課題を有していた。また更に、これらの処理はプログラムモジュールを起動する度毎に行われるため、システム全体の処理能力が向上できないと言う課題を有していた。一方、プログラムモジュール間の結合処理時間を軽減するため、全てのプログラムモジュールを合わせて、システムで一つのプログラムモジュールとした場合に、リンク結合処理時間の省略による高速化は図れるが、小さなプログラムモジュール単位での着脱の容易さが失われると言う課題を有していた。本発明はこのような状況に鑑みて成されたものでリンク結合処理時間の高速化を図ると共に、小さなプログラムモジュール単位での着脱の容易さも確保するようにしたものである。
【0005】
【課題を解決するための手段】このような課題を解決するために請求項1の発明は、オペレーティングシステムのプログラムモジュール登録表と各プログラムモジュールのリンク管理表を用いて、キャラクタリンク結合情報の中からバイナリリンク結合情報を生成し、一つのプログラムモジュールがロードされたメモリ上から削除されるとき、OSのプログラムモジュール登録表と、各プログラムモジュールのリンク管理表を用いてキャラクタリンク結合情報から、結合されたバイナリリンクを切断することによってプログラムモジュール間のバイナリリンク結合を行うようにしたものである。請求項2の発明は結合情報および切断情報を不揮発性記憶装置に記憶させておき、障害発生時はその記憶情報を基にバイナリリンク結合をやり直すようにしたものである。
【0006】
【作用】アプリケーションプログラムがメモリ上に展開され、メモリ上のリンク制御ルーチンとプログラムモジュール管理表および初期設定ルーチンに基づき結合情報が作成され、それによってバイナリリンク結合が行われ、プログラム離脱時に同様に結合情報に基づいてプログラム離脱が行われる。
【0007】
【実施例】図1はプログラム構成を示す図であり、ディスク40にアプリケーションプログラムであるアプリケーションプログラムモジュールファイル11〜13を有すると共に、OSプログラムを構成するOSプログラムモジュールファイル10を有している。OSプログラムであるOSプログラムモジュールファイル10が初めにメモリ41上にロードされて、ロードされたプログラムモジュール20のリンク制御ルーチン30は指定されたプログラムモジュールのロード手順に従い、アプリケーションプログラムモジュールファイル11をディスク40よりメモリ41上のプログラムモジュール21にロードし、ロード情報をプログラムモジュール登録表31に登録し、登録情報をディスク40上のOSプログラムモジュールファイル10内にバックアップする。なお、プログラムモジュール登録表は図3の構造となっている。
【0008】バックアップ後、リンク制御ルーチン30はロードしたプログラムモジュール21の初期設定ルーチン32を起動する。初期設定ルーチン32はプログラムモジュール登録表31とリンク管理表33を用いて、自己内のバイナリリンク結合処理を行い、処理した結果のバイナリリンク結合情報をディスク40上のアプリケーションプログラムモジュール11内にバックアップする。その処理が終了すると、リンク制御ルーチン30に制御が戻る。
【0009】リンク制御ルーチン30は次に指定されたプログラムモジュールのリード手順に従い、アプリケーションプログラムモジュールファイル12をディスク40よりメモリ41上のプログラムモジュール22にロードし、ロード情報をプログラムモジュール登録表31に登録し、登録情報をディスク40上のプログラムモジュールファイル10内にバックアップする。バックアップ後、リンク制御ルーチン30はロードしたプログラムモジュール22の初期設定ルーチン34を起動する。初期設定ルーチン34はプログラムモジュール登録表31と、リンク管理表33および35を用いてプログラムモジュール22の自己内のバイナリリンク結合処理と、プログラムモジュール22からプログラムモジュール21へのバイナリリンク結合処理を行い、処理した結果のバイナリリンク結合情報をディスク40上のアプリケーションプログラムモジュールファイル12内にバックアップする。
【0010】更に、初期設定ルーチン34は初期設定ルーチン32を起動する。初期設定ルーチン34は初期設定ルーチン32を起動する。処理設定ルーチン32はリンク管理表33および35を用いて、プログラムモジュール21よりプログラムモジュール22へのバイナリリンク結合処理を行い、処理した結果のバイナリリンク結合情報をディスク40上のアプリケーションプログラムモジュールファイル11内にバックアップする。処理が終了すると、リンク制御ルーチン30に制御が戻る。
【0011】リンク制御ルーチン30は次に、指定されたプログラムモジュールロード手順に従い、アプリケーションプログラムモジュールファイル13をディスク40よりメモリ41上のプログラムモジュール23にロードし、ロード情報をプログラムモジュール登録表31に登録し、登録情報をディスク40上のプログラムモジュールファイル10内にバックアップする。
【0012】バックアップ後、リンク制御ルーチン30はロードしたプログラムモジュール23の初期設定ルーチン36を起動する。初期設定ルーチン36はプログラムモジュール登録表31と、リンク管理表37、35、33を用いて、プログラムモジュール23の自己内のバイナリリンク結合処理と、プログラムモジュール23から、プログラムモジュール21、22へのバイナリリンク結合処理を行い、処理した結果のバイナリリンク結合情報をディスク40上のプログラムモジュールファイル13内にバックアップする。
【0013】更に、初期設定ルーチン36は初期設定ルーチン34を起動する。初期設定ルーチン34はリンク管理表35および37を用いてプログラムモジュール22よりプログラムモジュール23へのバイナリリンク結合処理を行い、処理した結果のバイナリリンク結合情報をディスク40上のプログラムモジュールファイル12内にバックアップする。更に、初期設定ルーチン36は初期設定ルーチン32を起動する。初期設定ルーチン32はリンク管理表33および37を用いて、プログラムモジュール21よりプログラムモジュール23へのバイナリリンク結合処理を行い、処理した結果のバイナリリンク結合をディスク40上のアプリケーションプログラムモジュールファイル11内にバックアップする。以上のバイナリリンク結合処理が終了して、システム全体のバイナリリンク結合処理が終了する。
【0014】次に図2でプログラムモジュール51がシステムにすでに存在するとき、プログラムモジュール52が追加される場合のバイナリリンク結合処理の詳細を説明する。
【0015】OSプログラムであるプログラムモジュール50のリンク制御ルーチン60はプログラムモジュール52の追加指示により、プログラムモジュール52をメモリ上にロードし、ロード情報をプログラムモジュール登録表61に追加登録し、プログラムモジュール登録表61をパラメータとしてプログラムモジュール52の初期設定エントリ80を起動する。
【0016】初期設定エントリ80はプログラムモジュール登録表61を基に内部エントリ表86のアドレス部を設定し、外部エントリ表85をパラメータとしてプログラムモジュール51の問い合わせエントリ72を起動する。問い合わせエントリ72は外部エントリ表85と内部エントリ表76を基に、問い合わせアドレスの結果情報を返送し、初期設定エントリ80は返送結果情報を基に、外部エントリ表85のアドレス部を設定する。図3R>3は外部エントリ表および内部エントリ表の構造を示している。すなわち、従来はキャラクタによる結合であったために、ファイルシステムすなわちソフトウエアが介在した結合であるため結合に時間がかかったが、バイナリ結合を採用したことによりアドレス照合によって結合が行えるため、結合時間が従来のものより極端に短くなり、実時間要求が厳しい場合でも容易に結合が行える。
【0017】次に、初期設定エントリ80はプログラムモジュール登録表61を基に、内部エントリ表86をパラメータとしてプログラムモジュール51の追加通知エントリ73を起動する。追加通知エントリ73は内部エントリ表86を基に、外部エントリ表75のアドレス部を設定する。以上の処理の中で、バイナリリンク結合情報はその度にディスクにバックアップされる。以上でプログラムモジュール51とプログラムモジュール52の間のバイナリリンク結合処理は終了する。
【0018】次に、図2でプログラムモジュール51および52がすでにシステムに存在するとき、プログラムモジュール52が削除される場合のバイナリリンク切断処理の詳細を説明する。プログラムモジュール50のリンク制御ルーチン60はプログラムモジュール52に対する削除指示により、プログラムモジュール登録表61をパラメータとして、プログラムモジュール52の終了エントリ81を起動する。
【0019】終了エントリ81は内部エントリ表86、外部エントリ表85のアドレス部を削除し、プログラムモジュール登録表61を基に、内部エントリ表86をパラメータとして、プログラムモジュール51の削除通知エントリ74を起動する。削除通知エントリ74は内部エントリ表86を基に外部エントリ表75のアドレス部を削除する。
【0020】以上の処理が終了すると、プログラムモジュール50のリンク制御ルーチン60はプログラムモジュール52のロード情報をプログラムモジュール登録表61により削除する。このような結合されたプログラムを分離する場合はそのプログラムのキャラクタ情報から分離すべきファイル名を識別し、その識別された情報から必要なプログラムの分離が行われる。
【0021】以上の処理の中でバイナリリンク切断情報は全てその度にディスクにバックアップされる。以上でプログラムモジュール51とプログラムモジュール52との間のバイナリリンク切断処理は終了する。
【0022】
【発明の効果】以上説明したように請求項1の発明は、バイナリ形式によって結合したので、各プログラムモジュール間の結合が高速に行え、また分離も容易になったと言う効果を有する。請求項2の発明は、結合情報を不揮発性の記憶部に記憶させ、障害児に記憶内容を読み出して結合を再試行するようにしたので、障害の復旧を迅速に行えると言う効果を有する。
【図面の簡単な説明】
【図1】 本発明の一実施例を示す図である。
【図2】 プログラムモジュールが登録されている状態のところへ新たなプログラムモジュールを追加するときの状態を説明するための図である。
【図3】 各種エントリ表の内部構造を示す図である。
【符号の説明】
10…OSプログラムモジュール、11〜13…アプリケーションプログラムモジュール、20〜23…プログラムモジュール、30…リンク制御ルーチン、31…プログラムモジュール登録表、32,34,34…初期設定ルーチン、33,35,37…リンク管理表。

【特許請求の範囲】
【請求項1】 複数のプログラムモジュールファイルより構成されるオンラインプログラムシステムで、ディスク上のモジュールファイルがメモリ上にロードされたとき、ロードされたプログラムモジュールとすでにロードされているプログラムモジュールとの間のバイナリリンク結合が行われていないとき、ロードされたプログラムモジュールとすでにロードされているプログラムモジュール間のバイナリリンク結合を各プログラムモジュール自身が各々自身に関わるバイナリリンク結合部分に対して、オペレーティングシステムのプログラムモジュール登録表と、各プログラムモジュールのリンク管理表を用いてキャラクタリンク結合情報の中からバイナリリンク結合情報を生成し、一つのプログラムモジュールがロードされたメモリ上から削除されるとき、メモリ上の各プログラムモジュールは削除されるプログラムモジュールと、残存するプログラムモジュールとの間のバイナリリンクの切断を各プログラムモジュール自身が各々自身に関わるバイナリリンク切断部分に対し、OSのプログラムモジュール登録表と、各プログラムモジュールのリンク管理表を用いて、キャラクタリンク結合情報から、結合されたバイナリリンクを切断することによってプログラムモジュール間のバイナリリンク結合を行うことを特徴とするロードモジュール高速結合方式。
【請求項2】 複数のプログラムモジュールファイルより構成されるオンラインプログラムシステムで、ディスク上のモジュールファイルがメモリ上にロードされたとき、ロードされたプログラムモジュールとすでにロードされているプログラムモジュールとの間のバイナリリンク結合が行われていないとき、ロードされたプログラムモジュールとすでにロードされているプログラムモジュール間のバイナリリンク結合を各プログラムモジュール自身が各々自身に関わるバイナリリンク結合部分に対して、オペレーティングシステムのプログラムモジュール登録表と、各プログラムモジュールのリンク管理表を用いてキャラクタリンク結合情報の中からバイナリリンク結合情報を生成し、生成したバイナリリンク結合情報をディスク上の自プログラムモジュールファイルに結合情報としてバックアップし、一つのプログラムモジュールがロードされたメモリ上から削除されるとき、メモリ上の各プログラムモジュールは削除されるプログラムモジュールと、残存するプログラムモジュールとの間のバイナリリンクの切断を各プログラムモジュール自身が各々自身に関わるバイナリリンク切断部分に対し、OSのプログラムモジュール登録表と、各プログラムモジュールのリンク管理表を用いて、キャラクタリンク結合情報から、結合されたバイナリリンクを切断し、切断したバイナリリンク切断情報をディスク上の自プログラムモジュールファイルに切断情報としてバックアップすることによってプログラムモジュール間のバイナリリンク結合を行い、障害発生時は前記バックアップされている結合情報および切断情報を読み出してバイナリリンク結合を再度行うことを特徴とするロードモジュール高速結合方式。

【図1】
image rotate


【図2】
image rotate


【図3】
image rotate