JPH01207824A - モジュール結合制御方式 - Google Patents
モジュール結合制御方式Info
- Publication number
- JPH01207824A JPH01207824A JP3339888A JP3339888A JPH01207824A JP H01207824 A JPH01207824 A JP H01207824A JP 3339888 A JP3339888 A JP 3339888A JP 3339888 A JP3339888 A JP 3339888A JP H01207824 A JPH01207824 A JP H01207824A
- Authority
- JP
- Japan
- Prior art keywords
- module
- section
- entity
- information
- called
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概要〕
ロードモジュールライブラリ内の各情報間の相対的な位
置関係を変更しないで、−括してローディングすること
により、動的結合を高速化したモジュール結合制御方式
に関し。
置関係を変更しないで、−括してローディングすること
により、動的結合を高速化したモジュール結合制御方式
に関し。
個々のモジュールの独立性を高めると共に、動的結合の
実行性能を向上させる手段を提供することを目的とし1 ファイル内相対アドレスで設定される入口点アドレス格
納域を持つモジュール情報部とプログラムの実体が格納
されるモジュール実体部とを複数有するロードモジュー
ルライブラリを作成するライブラリ編集部と、複数のモ
ジュール情報部とモジュール実体部とを各情報域間の相
対的な位置関係を変更しないでローディングする一括ロ
ーディング処理部と、モジュール実体部内に呼び出し先
モジュールに対応するモジュール情報部を参照し直接ま
たは間接的に呼び出し先へ分岐する命令コードを持つリ
ンケージ部とを備え、呼び出し元モジュールと呼び出し
先モジュールとの動的結合を行うように構成する。
実行性能を向上させる手段を提供することを目的とし1 ファイル内相対アドレスで設定される入口点アドレス格
納域を持つモジュール情報部とプログラムの実体が格納
されるモジュール実体部とを複数有するロードモジュー
ルライブラリを作成するライブラリ編集部と、複数のモ
ジュール情報部とモジュール実体部とを各情報域間の相
対的な位置関係を変更しないでローディングする一括ロ
ーディング処理部と、モジュール実体部内に呼び出し先
モジュールに対応するモジュール情報部を参照し直接ま
たは間接的に呼び出し先へ分岐する命令コードを持つリ
ンケージ部とを備え、呼び出し元モジュールと呼び出し
先モジュールとの動的結合を行うように構成する。
本発明は、多数のモジュールに分割して開発されたプロ
グラムを、実行時に動的に結合するデータ処理システム
におけるモジュール結合制御方式に係り、特に、ロード
モジュールライブラリ内の各情報間の相対的な位置関係
を変更しないで、−括してローディングすることにより
、動的結合を高速化したモジュール結合制御方式に関す
る。
グラムを、実行時に動的に結合するデータ処理システム
におけるモジュール結合制御方式に係り、特に、ロード
モジュールライブラリ内の各情報間の相対的な位置関係
を変更しないで、−括してローディングすることにより
、動的結合を高速化したモジュール結合制御方式に関す
る。
第12図は従来のモジュール結合の例を示す。
情報処理分野におけるプログラムは、−船釣に多数のモ
ジュールに分割して開発される。これらの分割されたモ
ソユールは2例えばCOB OL 。
ジュールに分割して開発される。これらの分割されたモ
ソユールは2例えばCOB OL 。
FORTRANなどの言語から機械語への翻訳プログラ
ムによって、別々に翻訳され、さらに実行可能形式であ
るロードモジュールに変換される。
ムによって、別々に翻訳され、さらに実行可能形式であ
るロードモジュールに変換される。
これらの別々に開発されたモジュールの結合形態には、
従来、2つの種顧がある。
従来、2つの種顧がある。
その1つは、第12図に示すロードモジュール1におけ
るモジュールAおよびモジュールBのように、実行前に
、結合編集プログラム(リンカ)によって、予め1つの
ロードモジュールに結合しておく形態である。他の1つ
は、第12図に示すロードモジュール1とロードモジュ
ール2のように、動作時に必要なロードモジュールを検
索し。
るモジュールAおよびモジュールBのように、実行前に
、結合編集プログラム(リンカ)によって、予め1つの
ロードモジュールに結合しておく形態である。他の1つ
は、第12図に示すロードモジュール1とロードモジュ
ール2のように、動作時に必要なロードモジュールを検
索し。
ローディングして結合する形態である。前者を静的結合
、後者を動的結合という。静的結合と動的結合の特徴は
、以下のとおりである。
、後者を動的結合という。静的結合と動的結合の特徴は
、以下のとおりである。
(・〕)静的結合
実行時1分岐先のモジュールのアドレスが既に決まって
いるため、スーパバイザの介入がない。
いるため、スーパバイザの介入がない。
そのため、高速である。反面、モジュールの修正がある
と、その都度、変更のないモジュールを含めて、結合し
なおさなければならず、プログラムの開発や変更におけ
る操作性が悪い。
と、その都度、変更のないモジュールを含めて、結合し
なおさなければならず、プログラムの開発や変更におけ
る操作性が悪い。
(bl 動的結合
異なるモジュール間での分岐になるため、実行時に、ロ
ードモジュールの検索、ロードモジュールのローディン
グといったスーパバイザのプログラム管理機能が必要に
なり、実行性能が悪い。反面、モジュール修正時などに
は、他のモジュールに影響を及ぼさないため、操作性は
よい。
ードモジュールの検索、ロードモジュールのローディン
グといったスーパバイザのプログラム管理機能が必要に
なり、実行性能が悪い。反面、モジュール修正時などに
は、他のモジュールに影響を及ぼさないため、操作性は
よい。
本発明は、上記従来の静的結合および動的結合における
問題点を解決し9個々のモジュールの独立性を高めると
共に、動的結合の実行性能を向上させる手段を提供する
ことを目的としている。
問題点を解決し9個々のモジュールの独立性を高めると
共に、動的結合の実行性能を向上させる手段を提供する
ことを目的としている。
第1図は本発明の原理説明図である。
第1図において、10はCPUおよびメモリなどからな
る処理装置、11はロードモジュールライブラリを作成
するライブラリ編集部、12はロードモジュールライブ
ラリの内容をまとめてローディングする一括ローディン
グ処理部、13は磁気ディスク装置などの外部記憶装置
、14は別々に開発された複数のモジュールが格納され
たロードモジュールライブラリ、15はロードモジュー
ルライブラリ14におけるスペース管理情報を持つスペ
ース管理部、16A、16B、・・・は各モジュールの
入口点アドレス情報を持つモジュール情’Full、1
7A、17B、 ・・・は各モジュールのプログラム・
コード情報を持つモジュール実体部、18はメモリ上の
ローディング域、19は他のモジュールへ分岐するため
の命令コードを持つリンケージ部を表す。
る処理装置、11はロードモジュールライブラリを作成
するライブラリ編集部、12はロードモジュールライブ
ラリの内容をまとめてローディングする一括ローディン
グ処理部、13は磁気ディスク装置などの外部記憶装置
、14は別々に開発された複数のモジュールが格納され
たロードモジュールライブラリ、15はロードモジュー
ルライブラリ14におけるスペース管理情報を持つスペ
ース管理部、16A、16B、・・・は各モジュールの
入口点アドレス情報を持つモジュール情’Full、1
7A、17B、 ・・・は各モジュールのプログラム・
コード情報を持つモジュール実体部、18はメモリ上の
ローディング域、19は他のモジュールへ分岐するため
の命令コードを持つリンケージ部を表す。
ライブラリ編集部11は、従来の結合編集プログラムに
相当する機能を持つと共に、多数のロードモジュールを
格納できるロードモジュールライブラリ14を1区分編
成ファイルの形式ではなく。
相当する機能を持つと共に、多数のロードモジュールを
格納できるロードモジュールライブラリ14を1区分編
成ファイルの形式ではなく。
順編成ファイルの形式で作成する処理機能を持つ。
本発明におけるロードモジュールライブラリ14ば2個
々のモジュールごとに、モジュール情報部とモジュール
実体部とを持ち、モジュール情報部には、モジュールの
属性、入ロ点アドレス5モジュール名なとの情報か格納
されるようになっている。特に、他のモジュールからの
分岐先となる入口点アドレスは、0−トモジュールライ
ブラリ14におけるファイル内相対アドレスで設定され
るようになっている。
々のモジュールごとに、モジュール情報部とモジュール
実体部とを持ち、モジュール情報部には、モジュールの
属性、入ロ点アドレス5モジュール名なとの情報か格納
されるようになっている。特に、他のモジュールからの
分岐先となる入口点アドレスは、0−トモジュールライ
ブラリ14におけるファイル内相対アドレスで設定され
るようになっている。
一括ローディング処理部12は、プログラムの実行にあ
たって、ロードモジュールライブラリ14の内容を、各
情報域間の相対的な位置関係を変更しないで、メモリ」
二のローディング域18に。
たって、ロードモジュールライブラリ14の内容を、各
情報域間の相対的な位置関係を変更しないで、メモリ」
二のローディング域18に。
まとめてローディングする処理を行うものである。
第1図(イ)に示すように、モジュール情報部16Aは
、モジュール実体部17Aの人口点アドレスを8 ファ
イル内相対アドレスで持ち、モジュール情報部16Bは
、モジュール実体部17Bの入口点アドレスを持つ。ロ
ードモジュールAが5m1−トモジュールBを呼び出す
場合、モジュール実体部17Aには、モジュール情報部
16Bにおける入口点アドレスを参照することにより、
直接またはメモリ固定領域の命令を介して、ロードモジ
ュールBの人口点へ分岐する命令コードを持つリンケー
ジ部19が設けられる。実行時には、このリンケージ部
19から、モジュール実体部17Bのロードモジュール
Bへ分岐することにより。
、モジュール実体部17Aの人口点アドレスを8 ファ
イル内相対アドレスで持ち、モジュール情報部16Bは
、モジュール実体部17Bの入口点アドレスを持つ。ロ
ードモジュールAが5m1−トモジュールBを呼び出す
場合、モジュール実体部17Aには、モジュール情報部
16Bにおける入口点アドレスを参照することにより、
直接またはメモリ固定領域の命令を介して、ロードモジ
ュールBの人口点へ分岐する命令コードを持つリンケー
ジ部19が設けられる。実行時には、このリンケージ部
19から、モジュール実体部17Bのロードモジュール
Bへ分岐することにより。
動的な結合を行う。
ロードモジュールライブラリ14に格納されたロードモ
ジュールは、実行時にそれぞれ単独ではローディングさ
れず、ロードモジュールライブラリ14全体が、−括ロ
ーディング処理部12によって一括してローディングさ
れる。そのため、外部記憶装置13の媒体上における各
情報域間の相対的な位置関係は、ローディングされた後
も変更されることはない。これをもとに、動的結合を可
能とするため、呼び出し元のモジュール実体部17Aか
ら、呼び出し先ロードモジュールBのモジュール情報部
16Bを介して、モジュール実体部1713の入口点ア
)・レスを求めて分岐する命令を。
ジュールは、実行時にそれぞれ単独ではローディングさ
れず、ロードモジュールライブラリ14全体が、−括ロ
ーディング処理部12によって一括してローディングさ
れる。そのため、外部記憶装置13の媒体上における各
情報域間の相対的な位置関係は、ローディングされた後
も変更されることはない。これをもとに、動的結合を可
能とするため、呼び出し元のモジュール実体部17Aか
ら、呼び出し先ロードモジュールBのモジュール情報部
16Bを介して、モジュール実体部1713の入口点ア
)・レスを求めて分岐する命令を。
リンケージ部19に埋め込む。
呼び出し時に参照するモジュール情報部16Bが、ロー
ドモジュールへの作成時に、ライブラリ内に存在しなけ
れば、モジュール情報部16Bの枠だけを、そのモジュ
ール実体部17Aの作成時Qこ作成する。これにより、
各ロードモジュールが個別に開発されても、リンケージ
部19がらの入口点アドレスの参照が可能になる。
ドモジュールへの作成時に、ライブラリ内に存在しなけ
れば、モジュール情報部16Bの枠だけを、そのモジュ
ール実体部17Aの作成時Qこ作成する。これにより、
各ロードモジュールが個別に開発されても、リンケージ
部19がらの入口点アドレスの参照が可能になる。
モジュール情報部16A、モジュール情報部16B等の
位置は、モジュール実体部のモジュールの入れ換えを行
っても変わらない。そのためモジュール修正の影響を、
呼び出し元の他のモジュールに与えないという動的結合
の長所をそのまま活かすことができる。
位置は、モジュール実体部のモジュールの入れ換えを行
っても変わらない。そのためモジュール修正の影響を、
呼び出し元の他のモジュールに与えないという動的結合
の長所をそのまま活かすことができる。
例えば第1図(ロ)に示すように5 ロードモジュール
Bの修正により、モジュール実体部17Bが、モジュー
ル実体部17B1に移動したとする。
Bの修正により、モジュール実体部17Bが、モジュー
ル実体部17B1に移動したとする。
−8=
このとき、モジュール情報部16Bの位置を変更するこ
となく、その人口点アドレス等の内容だけを変更すれば
、呼び出し元であるモジュール実体部17A等の修正は
全く不要である。
となく、その人口点アドレス等の内容だけを変更すれば
、呼び出し元であるモジュール実体部17A等の修正は
全く不要である。
呼び出し先が例えば書き込み禁止セクションで構成され
るような場合には、実行時に、スーパバイザを経由する
必要がないため、多くても10数ステップ程度のオーバ
ヘッドで動的結合を実現できる。呼び出し先が書き込み
可能セクションであるような場合にも、実行時に外部記
憶装置13へのIloを行う必要がないので、高速化が
可能である。
るような場合には、実行時に、スーパバイザを経由する
必要がないため、多くても10数ステップ程度のオーバ
ヘッドで動的結合を実現できる。呼び出し先が書き込み
可能セクションであるような場合にも、実行時に外部記
憶装置13へのIloを行う必要がないので、高速化が
可能である。
なお、ロードモジュールライブラリ14を順編成ファイ
ルとしても、ユーザビューを従来のロードモジュールラ
イブラリと何ら変わることがないようにすることができ
る。
ルとしても、ユーザビューを従来のロードモジュールラ
イブラリと何ら変わることがないようにすることができ
る。
第2図はモジュール情報部の構成例、第3図は本発明の
一実施例に係る入口点アドレス説明図。
一実施例に係る入口点アドレス説明図。
第4図および第5図は本発明の一実施例に係るモジュー
ル作成説明図、第6図は本発明の一実施例に係るモジュ
ール入れ換え説明図、第7図は本発明の一実施例に係る
リンゲージ部処理説明図、第8図ないし第11図は本発
明の一実施例に係る動的結合説明図を示す。
ル作成説明図、第6図は本発明の一実施例に係るモジュ
ール入れ換え説明図、第7図は本発明の一実施例に係る
リンゲージ部処理説明図、第8図ないし第11図は本発
明の一実施例に係る動的結合説明図を示す。
各モジュールごとに設りられるモジュール情報部の構成
は1例えば第2図に示すようになっている。このモジュ
ール情報部16内に、モジュールの属性情報、入口点ア
ドレス情報、モジュール名情報などの格納域がある。
は1例えば第2図に示すようになっている。このモジュ
ール情報部16内に、モジュールの属性情報、入口点ア
ドレス情報、モジュール名情報などの格納域がある。
モジュール属性のフィールドに、入口点は書き込み禁止
セクションであるか、それとも入口点は書き込み可能で
初期値ありのセクションであるかを示すフラグや、モジ
ュール実体がライブラリ内にあるかないかを示すフラグ
がある。入口点を含むセクションが、書き込め禁止セク
ションである場合、仮想記4Q上ではプロテクションが
かりられている。これに対し、@き込み可能である場合
には、仮想記憶上の他のCPU実行権上で動作するプロ
グラムとの共用はできない。すなわち、マルチタスクで
動作させた場合に、他タスクとのプログラムの共用がで
きないので、このときには、オペレーティング・システ
ム(O8)のスーパバイザにおりるプログラム管理部へ
制御を渡す必要があり、その判定のために、属性のフラ
グが参照される。また、属性が実体なしを示す場合にも
、プログラム管理部への制御移行がなされる。
セクションであるか、それとも入口点は書き込み可能で
初期値ありのセクションであるかを示すフラグや、モジ
ュール実体がライブラリ内にあるかないかを示すフラグ
がある。入口点を含むセクションが、書き込め禁止セク
ションである場合、仮想記4Q上ではプロテクションが
かりられている。これに対し、@き込み可能である場合
には、仮想記憶上の他のCPU実行権上で動作するプロ
グラムとの共用はできない。すなわち、マルチタスクで
動作させた場合に、他タスクとのプログラムの共用がで
きないので、このときには、オペレーティング・システ
ム(O8)のスーパバイザにおりるプログラム管理部へ
制御を渡す必要があり、その判定のために、属性のフラ
グが参照される。また、属性が実体なしを示す場合にも
、プログラム管理部への制御移行がなされる。
モジュール情報部16における入口点アドレスは、呼ひ
出し名ごとの入口点アドレスが、第3図に示すように、
ロードモジュールライブラリ14における先頭または所
定の位置からのファイル内相対アドレス(変位)αで設
定される。
出し名ごとの入口点アドレスが、第3図に示すように、
ロードモジュールライブラリ14における先頭または所
定の位置からのファイル内相対アドレス(変位)αで設
定される。
別々に作成されるモジュールの独立性を高めるため、結
合編集(リンカ)の処理において、ランダムな順序で作
成されるロードモジュール間の結合をいかに矛盾なく、
その時々の処理で結合していくかが問題になるが1本発
明では、第4図ないし第6図に従って説明するように解
決されている。
合編集(リンカ)の処理において、ランダムな順序で作
成されるロードモジュール間の結合をいかに矛盾なく、
その時々の処理で結合していくかが問題になるが1本発
明では、第4図ないし第6図に従って説明するように解
決されている。
以下、呼び出し元モジュールをCALLING、呼び出
し先モジュールをCALI、EDとして説明する。
し先モジュールをCALI、EDとして説明する。
第4図は、 CALLINGを先に作成し、後からCA
LLnDを作成する例を示している。
LLnDを作成する例を示している。
CALLINGを作成するときには、ロードモジュール
ライブラリ14内にばCALLEDが存在しない。その
ため、 CALLINGを作成する場合に、モジュール
情報部16Aとモジュール実体部17Aとを作成すると
共に、 CALLED用のモジュール情報部16Bだけ
を作成しておく。モジュール情報部16Bにおりる入口
点アドレスは「0」とし、属性は「実体なし」とする。
ライブラリ14内にばCALLEDが存在しない。その
ため、 CALLINGを作成する場合に、モジュール
情報部16Aとモジュール実体部17Aとを作成すると
共に、 CALLED用のモジュール情報部16Bだけ
を作成しておく。モジュール情報部16Bにおりる入口
点アドレスは「0」とし、属性は「実体なし」とする。
そして、 CALI、TNGのリンケージ部19から、
モジュール情報部16Bを参照可能にする。
モジュール情報部16Bを参照可能にする。
次に、 CAI几EDを作成する場合には、モジュール
情報部1.6 Bの枠が既に作成されているため、モジ
ュール実体部17Bを作成し、モジュール情報部16B
の入口点アドレスを、モジュール実体部17Bにおける
入口点の相対アドレスであるβに更新すると共に、属性
を「実体あり」にする。モジュール情報部16Bか既に
作成されているか否= 12− かは、モジュール名によってライブラリ内を検索するこ
とにより2判定することができる。モジュール情報部1
6Bの位置は変わらないため、 CALLINGとの関
係は崩れない。
情報部1.6 Bの枠が既に作成されているため、モジ
ュール実体部17Bを作成し、モジュール情報部16B
の入口点アドレスを、モジュール実体部17Bにおける
入口点の相対アドレスであるβに更新すると共に、属性
を「実体あり」にする。モジュール情報部16Bか既に
作成されているか否= 12− かは、モジュール名によってライブラリ内を検索するこ
とにより2判定することができる。モジュール情報部1
6Bの位置は変わらないため、 CALLINGとの関
係は崩れない。
第5図は、第4図とは反対に、 CALLHDを先に作
成し、後からCALLINGを作成する例を示している
。
成し、後からCALLINGを作成する例を示している
。
CAI、LEDが他のモジュールを呼び出していないと
すると、自分自身のモジュール情報部1.6Bとモジュ
ール実体部17Bだけを作成し、その入口点アドレスを
、モジュール情報部16B内に設定する。次にCIIL
LINGを作成する場合、呼び出すモジュール(CAL
LED)が既に作成されているため、モジュール情報部
1’6Aとモジュール実体部17 Aとを作成し、リン
ケージ部19からモジュール情IEt部16Bへのポイ
ンタを張る。
すると、自分自身のモジュール情報部1.6Bとモジュ
ール実体部17Bだけを作成し、その入口点アドレスを
、モジュール情報部16B内に設定する。次にCIIL
LINGを作成する場合、呼び出すモジュール(CAL
LED)が既に作成されているため、モジュール情報部
1’6Aとモジュール実体部17 Aとを作成し、リン
ケージ部19からモジュール情IEt部16Bへのポイ
ンタを張る。
以上の処理によ−)7. CALLINGとCALLE
Dとをどちらを先に作成しても、それらの結合関係を同
じにすることができる。
Dとをどちらを先に作成しても、それらの結合関係を同
じにすることができる。
第6図は、既にあるC A L L E Dのモジュー
ルを、修正のため新しいモジュールと入れ換える例を示
している。
ルを、修正のため新しいモジュールと入れ換える例を示
している。
モジュール実体部1.7Bのロードモジュールライブラ
リ14における格納域は、モジュールの作成時に、第6
図に示すように、予め実体のサイズta+より、大きい
サイズ(C1で確保しておく。これにより、モジュール
を修正して2元のサイズ(81よりも大きいサイズ(b
lになっても、それが格納域のサイズ(C)よりも小さ
ければ1元の格納域をそのまま使用することができる。
リ14における格納域は、モジュールの作成時に、第6
図に示すように、予め実体のサイズta+より、大きい
サイズ(C1で確保しておく。これにより、モジュール
を修正して2元のサイズ(81よりも大きいサイズ(b
lになっても、それが格納域のサイズ(C)よりも小さ
ければ1元の格納域をそのまま使用することができる。
修正後の実体が2元の格納域のサイズ(C1より大きい
サイズ(dlになる場合には、さらに大きいサイx [
el rc持つ格納域をロードモジュールライブ−7’
J14内の他の位置に確保し、そこに新しいモジュール
実体部17B1を作成する。モジュール情報部16Bは
そのまま利用して、その入口点アドレス情報等を、モジ
ュール実体部17B1に合わせて更新する。元のモジュ
ール情報部16Bの格納域は、後々7作成または修正さ
れる他のプログラムの格納域に使用される。
サイズ(dlになる場合には、さらに大きいサイx [
el rc持つ格納域をロードモジュールライブ−7’
J14内の他の位置に確保し、そこに新しいモジュール
実体部17B1を作成する。モジュール情報部16Bは
そのまま利用して、その入口点アドレス情報等を、モジ
ュール実体部17B1に合わせて更新する。元のモジュ
ール情報部16Bの格納域は、後々7作成または修正さ
れる他のプログラムの格納域に使用される。
いずれの場合でも、他のモジュールから参照されている
可能性のあるモジュール情報部]、 6 Bは。
可能性のあるモジュール情報部]、 6 Bは。
その位置か変更されないため、モジュールを矛盾なく置
き換えることができる。
き換えることができる。
ロードモジュールライブラリ14のファイルは。
予め例えば4にハイドのブロックでフメーマソティング
しておく。ライブラリを編集するリンカは。
しておく。ライブラリを編集するリンカは。
その4にハイドをまるまる置き換える場合には。
その4にハイドのデータをそのまま書き込む。−部だけ
を置き換える場合には、該当ブロックを入力し、入力し
たブロックを更新した後、1ブロツクをまるまる置き換
える処理を行う。
を置き換える場合には、該当ブロックを入力し、入力し
たブロックを更新した後、1ブロツクをまるまる置き換
える処理を行う。
リンケージ部19を介した分岐の処理は1本実施例では
、アドレス依存型プログラムであるか否により、第7図
(イ)または(ロ)に示す処理命令によって2行われる
ようになっている。
、アドレス依存型プログラムであるか否により、第7図
(イ)または(ロ)に示す処理命令によって2行われる
ようになっている。
リンケージ部19がアドレス依存型プログラム中に展開
される場合、第7図(イ)に示すように。
される場合、第7図(イ)に示すように。
リンケージ部19は、最初に共通リンケージ部30に分
岐する命令を持つ。共通リンケージ部30ば2例えば主
記憶のO番地から1000番地(16進数)間のヘース
レジスタなしでアクセスできるページに設けられる。共
通リンケージ部30では、スーパバイザであるプログラ
ム管理部31への分岐先アドレスの計算を仔い、プログ
ラム管理部31へ分岐する。プログラム管理部31では
。
岐する命令を持つ。共通リンケージ部30ば2例えば主
記憶のO番地から1000番地(16進数)間のヘース
レジスタなしでアクセスできるページに設けられる。共
通リンケージ部30では、スーパバイザであるプログラ
ム管理部31への分岐先アドレスの計算を仔い、プログ
ラム管理部31へ分岐する。プログラム管理部31では
。
各種アドレス設定等の処理を行い、呼び出し先モジュー
ルへ分岐する。呼び出し先モジュールへの分岐アドレス
が決まった場合、プログラム管理部31は、リンケージ
部19内に、直接、呼び出し先モジュールへ分岐する命
令を設定する。これにより、2回目以降の呼び出し時に
は、リンケージ部19から直接、呼び出し先モジュール
へ分岐することができる。なお、リンケージ部19が書
き込み禁止セクションにある場合には2分岐命令の書き
換えはできないので、2回目以降も1回目と同様に処理
を行う。
ルへ分岐する。呼び出し先モジュールへの分岐アドレス
が決まった場合、プログラム管理部31は、リンケージ
部19内に、直接、呼び出し先モジュールへ分岐する命
令を設定する。これにより、2回目以降の呼び出し時に
は、リンケージ部19から直接、呼び出し先モジュール
へ分岐することができる。なお、リンケージ部19が書
き込み禁止セクションにある場合には2分岐命令の書き
換えはできないので、2回目以降も1回目と同様に処理
を行う。
リンケージ部19が、アドレス無依存型プログラムに展
開される場合、第7図(ロ)に示すように、共通リンケ
ージ部30の第2のエントリに分岐する命令を5 リン
ケージ部19に設定する。共通リンケージ部30では、
呼び出し先のモジ1.−ル情報部のアドレスを得て、そ
の属性により書き込み可否、実体の有無を判定する。実
体があり。
開される場合、第7図(ロ)に示すように、共通リンケ
ージ部30の第2のエントリに分岐する命令を5 リン
ケージ部19に設定する。共通リンケージ部30では、
呼び出し先のモジ1.−ル情報部のアドレスを得て、そ
の属性により書き込み可否、実体の有無を判定する。実
体があり。
書き込み禁止である場合には、モジュール情報部の入口
点アドレスから分岐先アドレスを計算し。
点アドレスから分岐先アドレスを計算し。
呼び出し先モジュールへ分岐する。それ以外の場合には
、プログラム管理部31へのアドレスを計算し、呼び出
し先モジュールの複写処理などを行う。なお2プログラ
ム管理部31における処理の大部分は、従来からある既
存の処理を流用できる。
、プログラム管理部31へのアドレスを計算し、呼び出
し先モジュールの複写処理などを行う。なお2プログラ
ム管理部31における処理の大部分は、従来からある既
存の処理を流用できる。
共通リンケージ部30は、複数のリンケージ部19が重
複した命令を持つことにより、メモリが無駄になること
を避けると共に、プログラム管理部31とのインタフェ
ースを簡易化するために設けられているが、実質的にリ
ンケージ部19の延長であり、その一部であると考えて
よい。
複した命令を持つことにより、メモリが無駄になること
を避けると共に、プログラム管理部31とのインタフェ
ースを簡易化するために設けられているが、実質的にリ
ンケージ部19の延長であり、その一部であると考えて
よい。
以下、第8図ないし第11図に従って1本発明の一実施
例における動的結合を説明する。
例における動的結合を説明する。
第8図は、呼び出し先が「実体あり」であり。
かつ書き込め禁止セクションである場合の例てあ呼び出
し元モジュールCALLINGにおいて、 CALLE
Dを呼び出す命令(CAI−L CALLED)を実
行すると、リンケージ部19へ制御が渡される。
し元モジュールCALLINGにおいて、 CALLE
Dを呼び出す命令(CAI−L CALLED)を実
行すると、リンケージ部19へ制御が渡される。
リンケージ部19は、共通リンケージ部30への分岐命
令を持つと共に、モジュール情報部16Bへのポインタ
情報を持つ。リンケージ部19に制御が渡されると、こ
こから、すべてのリンケージ部で共通に使用可能な命令
コードを記述した共通リンケージ部30に分岐し、その
命令コードにより、モジュール情報部16Bを参照し、
その属性を判定する。ここでは呼び出し先の実体があり
。
令を持つと共に、モジュール情報部16Bへのポインタ
情報を持つ。リンケージ部19に制御が渡されると、こ
こから、すべてのリンケージ部で共通に使用可能な命令
コードを記述した共通リンケージ部30に分岐し、その
命令コードにより、モジュール情報部16Bを参照し、
その属性を判定する。ここでは呼び出し先の実体があり
。
呼び出し先が書き込み禁止であるので、モジュール情報
部16Bが持つ入口点アドレスにより、共通リンケージ
部30からモジュール実体部17Bの入口点へ分岐する
。
部16Bが持つ入口点アドレスにより、共通リンケージ
部30からモジュール実体部17Bの入口点へ分岐する
。
第9図は、呼び出し先の実体がない場合の例である。
第8図と同様に、共通リンケージ部30に制御が渡され
後、共通リンケージ部30が、モジュール情報部16B
における属性を判定することにより、呼び出し先の実体
がないことが判明する。そこで、共通リンケージ部30
からスーパバイザのプログラム管理部31へ制御を渡す
。プログラム管理部31では、呼び出し先の実体がなく
、他のファイルに定義されてもいないことが判明すると
。
後、共通リンケージ部30が、モジュール情報部16B
における属性を判定することにより、呼び出し先の実体
がないことが判明する。そこで、共通リンケージ部30
からスーパバイザのプログラム管理部31へ制御を渡す
。プログラム管理部31では、呼び出し先の実体がなく
、他のファイルに定義されてもいないことが判明すると
。
エラーと認識し、その処理を行う。
第10図は、呼び出し先の実体があり、かつ呼び出し先
が書き込み可能である場合の例である。
が書き込み可能である場合の例である。
共通リンケージ部30におけるモジュール情報部1.6
Bの属性判定により、書き込み可能が判明すると、プ
ログラム管理部3]へ制御を渡す。プログラム管理部3
1では、モジュール情報部16Bによってモジュール実
体部17Bの位置を確認し、仮想記憶内の他のアドレス
に、モジュール実体部]、7Bを複写し、リロケーショ
ンを行って。
Bの属性判定により、書き込み可能が判明すると、プ
ログラム管理部3]へ制御を渡す。プログラム管理部3
1では、モジュール情報部16Bによってモジュール実
体部17Bの位置を確認し、仮想記憶内の他のアドレス
に、モジュール実体部]、7Bを複写し、リロケーショ
ンを行って。
モジュール実体部17Cを作成する。そして、そのア1
−レスを求めて制御を渡す。
−レスを求めて制御を渡す。
第11回は、第9図の例とほぼ同様であるが。
他のファイルに、呼び出し先の実体がある場合である。
サブルーチン・パンケージを使用する多くのプログラム
(実行時ライブラリを必要とする高級言語で記述された
プログラムを含む)では、第11図に示す動作を行うこ
とになる。ユーザプログラムがCALLING 、 →
ノフ゛ル−チン・パッケージがCALLEDに相当する
。
(実行時ライブラリを必要とする高級言語で記述された
プログラムを含む)では、第11図に示す動作を行うこ
とになる。ユーザプログラムがCALLING 、 →
ノフ゛ル−チン・パッケージがCALLEDに相当する
。
プログラム管理部31では、共通リンケージ部30から
制御を渡されると、呼び出し先の名前により、他のファ
イルから実体を見っ′け、そこへ制御を渡す。ただし、
第11図の例では、 CALLEDが書き込み禁止セク
ションであるが、これが書き込め可能である場合には、
第1O図の例と同様に。
制御を渡されると、呼び出し先の名前により、他のファ
イルから実体を見っ′け、そこへ制御を渡す。ただし、
第11図の例では、 CALLEDが書き込み禁止セク
ションであるが、これが書き込め可能である場合には、
第1O図の例と同様に。
さらに複写、リロケーションの処理を行い、そこへ制御
を渡す。
を渡す。
以上説明したように3本発明によれば、従来の動的結合
とほぼ同様なモジュールの独立性を維持し、モジュール
の開発 修正におりる操作性をよくすると共に、動的結
合時における実行性能を大幅に向上させることができる
。
とほぼ同様なモジュールの独立性を維持し、モジュール
の開発 修正におりる操作性をよくすると共に、動的結
合時における実行性能を大幅に向上させることができる
。
第1図は本発明の原理説明図。
第2図はモジュール情報部の構成例。
第3図は本発明の一実施例に係る入口点アドレス説明口
。 第4図および第5図は本発明の一実施例に係るモジュー
ル作成説明図。 第6図は本発明の一実施例に係るモジコー−ル入れ換え
説明図。 第7図は本発明の一実施例に係るリンケージ部処理説明
図。 第8図ないし第11図は本発明の一実施例に係る動的結
合説明図。 第12図は従来のモジュール結合の例を示す。 図中、10は処理装置、11はライブラリ編集部112
は一括ローディング処理部、13は外部記4.Qla置
、14はロードモジュールライブラリ。 15はスペース管理部、16A、16Bはモジュール情
報部、17A、17Bはモジュール実体部。 18はローディング域、19はリンケージ部を表す。
。 第4図および第5図は本発明の一実施例に係るモジュー
ル作成説明図。 第6図は本発明の一実施例に係るモジコー−ル入れ換え
説明図。 第7図は本発明の一実施例に係るリンケージ部処理説明
図。 第8図ないし第11図は本発明の一実施例に係る動的結
合説明図。 第12図は従来のモジュール結合の例を示す。 図中、10は処理装置、11はライブラリ編集部112
は一括ローディング処理部、13は外部記4.Qla置
、14はロードモジュールライブラリ。 15はスペース管理部、16A、16Bはモジュール情
報部、17A、17Bはモジュール実体部。 18はローディング域、19はリンケージ部を表す。
Claims (1)
- 【特許請求の範囲】 モジュール化されたプログラムをメモリにローディング
し実行するデータ処理システムにおいて、他のモジュー
ルから呼び出されるアドレスがファイル内相対アドレス
で設定される入口点アドレス格納域を持つモジュール情
報部と、プログラムの実体が格納されるモジュール実体
部とを複数有するロードモジュールライブラリ(14)
を作成するライブラリ編集部(11)と、 前記複数のモジュール情報部とモジュール実体部とを、
各情報域間の相対的な位置関係を変更しないで、まとめ
てメモリ上にローディングする一括ローディング処理部
(12)と、 前記モジュール実体部内に、呼び出し先モジュールに対
応する前記モジュール情報部を参照し、直接または間接
的に呼び出し先へ分岐する命令コードを持つリンケージ
部(19)とを備え、呼び出し元モジュールと呼び出し
先モジュールとの動的結合を行うようにしたことを特徴
とするモジュール結合制御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63033398A JP2865291B2 (ja) | 1988-02-16 | 1988-02-16 | モジュール結合制御方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63033398A JP2865291B2 (ja) | 1988-02-16 | 1988-02-16 | モジュール結合制御方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH01207824A true JPH01207824A (ja) | 1989-08-21 |
| JP2865291B2 JP2865291B2 (ja) | 1999-03-08 |
Family
ID=12385493
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63033398A Expired - Lifetime JP2865291B2 (ja) | 1988-02-16 | 1988-02-16 | モジュール結合制御方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2865291B2 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08106378A (ja) * | 1994-10-07 | 1996-04-23 | Nec Corp | ロードモジュール高速結合方式 |
| US6052778A (en) * | 1997-01-13 | 2000-04-18 | International Business Machines Corporation | Embedded system having dynamically linked dynamic loader and method for linking dynamic loader shared libraries and application programs |
| US6363436B1 (en) | 1997-01-27 | 2002-03-26 | International Business Machines Corporation | Method and system for loading libraries into embedded systems |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5617437A (en) * | 1979-07-23 | 1981-02-19 | Fujitsu Ltd | Loading system for nonresident program |
| JPS5769458A (en) * | 1980-10-17 | 1982-04-28 | Hitachi Ltd | Registration system for resident subroutine |
| JPS61128336A (ja) * | 1984-11-28 | 1986-06-16 | Fujitsu Ltd | サブプログラム非常駐化方式 |
| JPS61224041A (ja) * | 1985-03-29 | 1986-10-04 | Usac Electronics Ind Co Ltd | デ−タ処理装置 |
-
1988
- 1988-02-16 JP JP63033398A patent/JP2865291B2/ja not_active Expired - Lifetime
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5617437A (en) * | 1979-07-23 | 1981-02-19 | Fujitsu Ltd | Loading system for nonresident program |
| JPS5769458A (en) * | 1980-10-17 | 1982-04-28 | Hitachi Ltd | Registration system for resident subroutine |
| JPS61128336A (ja) * | 1984-11-28 | 1986-06-16 | Fujitsu Ltd | サブプログラム非常駐化方式 |
| JPS61224041A (ja) * | 1985-03-29 | 1986-10-04 | Usac Electronics Ind Co Ltd | デ−タ処理装置 |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08106378A (ja) * | 1994-10-07 | 1996-04-23 | Nec Corp | ロードモジュール高速結合方式 |
| US6052778A (en) * | 1997-01-13 | 2000-04-18 | International Business Machines Corporation | Embedded system having dynamically linked dynamic loader and method for linking dynamic loader shared libraries and application programs |
| US6363436B1 (en) | 1997-01-27 | 2002-03-26 | International Business Machines Corporation | Method and system for loading libraries into embedded systems |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2865291B2 (ja) | 1999-03-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5146593A (en) | Procedure call interface | |
| US6526441B2 (en) | Input/output device information management system for multi-computer system | |
| US5481713A (en) | Method and apparatus for patching code residing on a read only memory device | |
| AU615536B2 (en) | Improved version management tool | |
| JP3138171B2 (ja) | システム機能をダウンロードする方法 | |
| US4104718A (en) | System for protecting shared files in a multiprogrammed computer | |
| US5546586A (en) | Method and apparatus for vectorizing the contents of a read only memory device without modifying underlying source code | |
| JP2986042B2 (ja) | オブジェクト指向プログラミング環境を変更するための方法及び装置 | |
| US4812981A (en) | Memory management system improving the efficiency of fork operations | |
| CA2047696C (en) | Method of reading and writing files on non-erasable storage media | |
| US4587628A (en) | Method and apparatus for dynamic invocation of utilities | |
| US5553286A (en) | System and method for preparing a computer program for execution | |
| JPH1040087A (ja) | ソフトウェア工学で使われるデータモデルの取り扱い方法 | |
| EP0237637B1 (en) | A method for the relocation of linked control blocks | |
| JP2002525707A (ja) | バーチャルコールのインライン化のための精確な方法 | |
| Bailey et al. | A formal model and specification language for procedure calling conventions | |
| US5062039A (en) | Sharing of workspaces in interactive processing using workspace name tables for linking of workspaces | |
| US5404531A (en) | Method and apparatus for compiler processing on program related to data transfer and calculation, and method of managing memory | |
| US6499094B1 (en) | Management of memory heap space for data files accessible to programs operating in different addressing modes | |
| Bergeron et al. | Systems programming languages | |
| JP2865291B2 (ja) | モジュール結合制御方式 | |
| US5450587A (en) | Expanded memory addressing scheme | |
| JP3019915B2 (ja) | 手続き呼出し方法 | |
| JPS63626A (ja) | プログラム管理装置 | |
| KR20020022050A (ko) | 공통 어드레스를 이용하여 어플리케이션 프로그램간의데이터 공유 및 어플리케이션 프로그램에 의한 주변기기의 액세스를 용이하게 하는 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071218 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081218 Year of fee payment: 10 |
|
| EXPY | Cancellation because of completion of term | ||
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081218 Year of fee payment: 10 |