JPH01207824A - Module coupling control system - Google Patents

Module coupling control system

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
information
library
entity
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
Application number
JP3339888A
Other languages
Japanese (ja)
Other versions
JP2865291B2 (en
Inventor
Haruhisa Yamashita
山下 治久
Hideo Abotani
英夫 阿保谷
Ryuichi Suzuki
隆一 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP63033398A priority Critical patent/JP2865291B2/en
Publication of JPH01207824A publication Critical patent/JPH01207824A/en
Application granted granted Critical
Publication of JP2865291B2 publication Critical patent/JP2865291B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

PURPOSE:To attain a system to make a dynamic coupling high speed by batch- loading without changing the relative inter-information positional relation in a load module library. CONSTITUTION:A load module library stored in a load module library 14 is not loaded independently on executing, and the whole library 14 is batch-loaded at a batch loading processing part 12. Then, the relative positional relation between respective information areas on the medium of an external storage 13 is not changed. Since a dynamic coupling is made possible, the entry point address of a module substance part 17B is found from a module substance part 17A of a calling source through a module information part 16B of a calling destination load module B, and a branch instruction is embedded in a linkage part 19. When the information part 16B referred on calling does not exist inside the library on the preparing of a load module A, only the frame of the information part 16B is prepared on the preparing of the substance part 17A.

Description

【発明の詳細な説明】 〔概要〕 ロードモジュールライブラリ内の各情報間の相対的な位
置関係を変更しないで、−括してローディングすること
により、動的結合を高速化したモジュール結合制御方式
に関し。
[Detailed Description of the Invention] [Summary] This invention relates to a module coupling control method that speeds up dynamic coupling by loading information in a load module library all at once without changing the relative positional relationship between each piece of information. .

個々のモジュールの独立性を高めると共に、動的結合の
実行性能を向上させる手段を提供することを目的とし1 ファイル内相対アドレスで設定される入口点アドレス格
納域を持つモジュール情報部とプログラムの実体が格納
されるモジュール実体部とを複数有するロードモジュー
ルライブラリを作成するライブラリ編集部と、複数のモ
ジュール情報部とモジュール実体部とを各情報域間の相
対的な位置関係を変更しないでローディングする一括ロ
ーディング処理部と、モジュール実体部内に呼び出し先
モジュールに対応するモジュール情報部を参照し直接ま
たは間接的に呼び出し先へ分岐する命令コードを持つリ
ンケージ部とを備え、呼び出し元モジュールと呼び出し
先モジュールとの動的結合を行うように構成する。
The purpose is to increase the independence of individual modules and to provide a means to improve the execution performance of dynamic linkage. A library editing section that creates a load module library that has a plurality of module entity sections storing module information sections, and a batch loading module that loads a plurality of module information sections and module entity sections without changing the relative positional relationship between each information area. It is equipped with a loading processing section and a linkage section that has an instruction code in the module entity section that refers to the module information section corresponding to the called module and directly or indirectly branches to the called destination. Configure for dynamic joins.

〔産業上の利用分野〕[Industrial application field]

本発明は、多数のモジュールに分割して開発されたプロ
グラムを、実行時に動的に結合するデータ処理システム
におけるモジュール結合制御方式に係り、特に、ロード
モジュールライブラリ内の各情報間の相対的な位置関係
を変更しないで、−括してローディングすることにより
、動的結合を高速化したモジュール結合制御方式に関す
る。
The present invention relates to a module combination control method in a data processing system that dynamically combines a program developed by dividing it into a large number of modules at the time of execution. The present invention relates to a module connection control method that speeds up dynamic connection by loading all at once without changing relationships.

〔従来の技術〕[Conventional technology]

第12図は従来のモジュール結合の例を示す。 FIG. 12 shows an example of conventional module combination.

情報処理分野におけるプログラムは、−船釣に多数のモ
ジュールに分割して開発される。これらの分割されたモ
ソユールは2例えばCOB OL 。
Programs in the information processing field are developed by being divided into a large number of modules. These divided modules are 2 e.g. COB OL.

FORTRANなどの言語から機械語への翻訳プログラ
ムによって、別々に翻訳され、さらに実行可能形式であ
るロードモジュールに変換される。
They are translated separately using a language to machine language translation program such as FORTRAN, and further converted into a load module that is an executable format.

これらの別々に開発されたモジュールの結合形態には、
従来、2つの種顧がある。
The combination of these separately developed modules includes:
Traditionally, there are two types of reviews.

その1つは、第12図に示すロードモジュール1におけ
るモジュールAおよびモジュールBのように、実行前に
、結合編集プログラム(リンカ)によって、予め1つの
ロードモジュールに結合しておく形態である。他の1つ
は、第12図に示すロードモジュール1とロードモジュ
ール2のように、動作時に必要なロードモジュールを検
索し。
One of them is a form in which modules A and B in load module 1 shown in FIG. 12 are previously combined into one load module by a combination editing program (linker) before execution. The other method is to search for load modules necessary during operation, such as load module 1 and load module 2 shown in FIG.

ローディングして結合する形態である。前者を静的結合
、後者を動的結合という。静的結合と動的結合の特徴は
、以下のとおりである。
It is a form of loading and combining. The former is called static binding, and the latter is called dynamic binding. The characteristics of static binding and dynamic binding are as follows.

(・〕)静的結合 実行時1分岐先のモジュールのアドレスが既に決まって
いるため、スーパバイザの介入がない。
(・]) When executing static binding, the address of the module at the destination of one branch has already been determined, so there is no intervention by the supervisor.

そのため、高速である。反面、モジュールの修正がある
と、その都度、変更のないモジュールを含めて、結合し
なおさなければならず、プログラムの開発や変更におけ
る操作性が悪い。
Therefore, it is fast. On the other hand, each time a module is modified, it is necessary to recombine it, including modules that have not been modified, which makes it difficult to develop or modify a program.

(bl  動的結合 異なるモジュール間での分岐になるため、実行時に、ロ
ードモジュールの検索、ロードモジュールのローディン
グといったスーパバイザのプログラム管理機能が必要に
なり、実行性能が悪い。反面、モジュール修正時などに
は、他のモジュールに影響を及ぼさないため、操作性は
よい。
(bl) Dynamic coupling causes branching between different modules, so the program management functions of the supervisor such as searching for a load module and loading the load module are required at runtime, resulting in poor execution performance.On the other hand, when modifying a module, etc. is easy to use because it does not affect other modules.

〔発明が解決しようとする課題〕[Problem to be solved by the invention]

本発明は、上記従来の静的結合および動的結合における
問題点を解決し9個々のモジュールの独立性を高めると
共に、動的結合の実行性能を向上させる手段を提供する
ことを目的としている。
An object of the present invention is to solve the problems in the conventional static coupling and dynamic coupling described above, to increase the independence of individual modules, and to provide a means for improving the execution performance of dynamic coupling.

〔課題を解決するための手段〕[Means to solve the problem]

第1図は本発明の原理説明図である。 FIG. 1 is a diagram explaining the principle of the present invention.

第1図において、10はCPUおよびメモリなどからな
る処理装置、11はロードモジュールライブラリを作成
するライブラリ編集部、12はロードモジュールライブ
ラリの内容をまとめてローディングする一括ローディン
グ処理部、13は磁気ディスク装置などの外部記憶装置
、14は別々に開発された複数のモジュールが格納され
たロードモジュールライブラリ、15はロードモジュー
ルライブラリ14におけるスペース管理情報を持つスペ
ース管理部、16A、16B、・・・は各モジュールの
入口点アドレス情報を持つモジュール情’Full、1
7A、17B、 ・・・は各モジュールのプログラム・
コード情報を持つモジュール実体部、18はメモリ上の
ローディング域、19は他のモジュールへ分岐するため
の命令コードを持つリンケージ部を表す。
In FIG. 1, 10 is a processing device including a CPU and memory, 11 is a library editing section that creates a load module library, 12 is a bulk loading processing section that loads the contents of the load module library all at once, and 13 is a magnetic disk device. 14 is a load module library storing a plurality of separately developed modules, 15 is a space management unit containing space management information in the load module library 14, 16A, 16B, . . . are each module Module information with entry point address information 'Full, 1
7A, 17B, ... are the programs of each module.
A module entity part 18 has code information, a loading area on memory, and a linkage part 19 has an instruction code for branching to another module.

ライブラリ編集部11は、従来の結合編集プログラムに
相当する機能を持つと共に、多数のロードモジュールを
格納できるロードモジュールライブラリ14を1区分編
成ファイルの形式ではなく。
The library editing section 11 has a function equivalent to a conventional combination editing program, and the load module library 14 that can store a large number of load modules is not in the format of a single partitioned file.

順編成ファイルの形式で作成する処理機能を持つ。It has a processing function that creates sequential files.

本発明におけるロードモジュールライブラリ14ば2個
々のモジュールごとに、モジュール情報部とモジュール
実体部とを持ち、モジュール情報部には、モジュールの
属性、入ロ点アドレス5モジュール名なとの情報か格納
されるようになっている。特に、他のモジュールからの
分岐先となる入口点アドレスは、0−トモジュールライ
ブラリ14におけるファイル内相対アドレスで設定され
るようになっている。
The load module library 14 in the present invention has a module information section and a module entity section for each module, and the module information section stores information such as module attributes, entry point address 5 module name, etc. It has become so. In particular, the entry point address that is a branch destination from another module is set as an in-file relative address in the zero-to-module library 14.

一括ローディング処理部12は、プログラムの実行にあ
たって、ロードモジュールライブラリ14の内容を、各
情報域間の相対的な位置関係を変更しないで、メモリ」
二のローディング域18に。
When executing a program, the batch loading processing unit 12 stores the contents of the load module library 14 in memory without changing the relative positional relationship between each information area.
In the second loading area 18.

まとめてローディングする処理を行うものである。It performs the process of loading all files at once.

第1図(イ)に示すように、モジュール情報部16Aは
、モジュール実体部17Aの人口点アドレスを8 ファ
イル内相対アドレスで持ち、モジュール情報部16Bは
、モジュール実体部17Bの入口点アドレスを持つ。ロ
ードモジュールAが5m1−トモジュールBを呼び出す
場合、モジュール実体部17Aには、モジュール情報部
16Bにおける入口点アドレスを参照することにより、
直接またはメモリ固定領域の命令を介して、ロードモジ
ュールBの人口点へ分岐する命令コードを持つリンケー
ジ部19が設けられる。実行時には、このリンケージ部
19から、モジュール実体部17Bのロードモジュール
Bへ分岐することにより。
As shown in FIG. 1(A), the module information section 16A has the population point address of the module entity section 17A as an 8-file relative address, and the module information section 16B has the entry point address of the module entity section 17B. . When load module A calls 5m1-to module B, the module entity section 17A contains the following information by referring to the entry point address in the module information section 16B.
A linkage unit 19 is provided that has an instruction code that branches to the population point of load module B directly or via an instruction in a memory fixed area. At the time of execution, by branching from this linkage section 19 to the load module B of the module entity section 17B.

動的な結合を行う。Perform dynamic joins.

〔作用〕[Effect]

ロードモジュールライブラリ14に格納されたロードモ
ジュールは、実行時にそれぞれ単独ではローディングさ
れず、ロードモジュールライブラリ14全体が、−括ロ
ーディング処理部12によって一括してローディングさ
れる。そのため、外部記憶装置13の媒体上における各
情報域間の相対的な位置関係は、ローディングされた後
も変更されることはない。これをもとに、動的結合を可
能とするため、呼び出し元のモジュール実体部17Aか
ら、呼び出し先ロードモジュールBのモジュール情報部
16Bを介して、モジュール実体部1713の入口点ア
)・レスを求めて分岐する命令を。
The load modules stored in the load module library 14 are not individually loaded during execution, but the entire load module library 14 is loaded at once by the -batch loading processing unit 12. Therefore, the relative positional relationship between each information area on the medium of the external storage device 13 remains unchanged even after loading. Based on this, in order to enable dynamic coupling, the entry point A)/response of the module entity section 1713 is sent from the calling module entity section 17A via the module information section 16B of the called load module B. Find and branch instructions.

リンケージ部19に埋め込む。It is embedded in the linkage part 19.

呼び出し時に参照するモジュール情報部16Bが、ロー
ドモジュールへの作成時に、ライブラリ内に存在しなけ
れば、モジュール情報部16Bの枠だけを、そのモジュ
ール実体部17Aの作成時Qこ作成する。これにより、
各ロードモジュールが個別に開発されても、リンケージ
部19がらの入口点アドレスの参照が可能になる。
If the module information section 16B referred to at the time of calling does not exist in the library when creating the load module, only the frame for the module information section 16B is created when the module entity section 17A is created. This results in
Even if each load module is developed individually, the entry point address can be referenced from the linkage unit 19.

モジュール情報部16A、モジュール情報部16B等の
位置は、モジュール実体部のモジュールの入れ換えを行
っても変わらない。そのためモジュール修正の影響を、
呼び出し元の他のモジュールに与えないという動的結合
の長所をそのまま活かすことができる。
The positions of the module information section 16A, module information section 16B, etc. do not change even if the modules in the module entity section are replaced. Therefore, the impact of module modification is
You can take advantage of the advantage of dynamic binding, which does not affect other calling modules.

例えば第1図(ロ)に示すように5 ロードモジュール
Bの修正により、モジュール実体部17Bが、モジュー
ル実体部17B1に移動したとする。
For example, as shown in FIG. 1(B), suppose that the module entity section 17B is moved to the module entity section 17B1 due to modification of the 5 load module B.

−8= このとき、モジュール情報部16Bの位置を変更するこ
となく、その人口点アドレス等の内容だけを変更すれば
、呼び出し元であるモジュール実体部17A等の修正は
全く不要である。
-8= At this time, if only the contents such as the population point address are changed without changing the position of the module information section 16B, there is no need to modify the module entity section 17A which is the calling source.

呼び出し先が例えば書き込み禁止セクションで構成され
るような場合には、実行時に、スーパバイザを経由する
必要がないため、多くても10数ステップ程度のオーバ
ヘッドで動的結合を実現できる。呼び出し先が書き込み
可能セクションであるような場合にも、実行時に外部記
憶装置13へのIloを行う必要がないので、高速化が
可能である。
If the called destination is configured in a write-protected section, for example, there is no need to go through the supervisor during execution, so dynamic linking can be achieved with an overhead of about 10 steps at most. Even when the call destination is a writable section, there is no need to perform Ilo to the external storage device 13 during execution, so speeding up is possible.

なお、ロードモジュールライブラリ14を順編成ファイ
ルとしても、ユーザビューを従来のロードモジュールラ
イブラリと何ら変わることがないようにすることができ
る。
Note that even if the load module library 14 is a sequential file, the user view can be made no different from that of a conventional load module library.

〔実施例〕〔Example〕

第2図はモジュール情報部の構成例、第3図は本発明の
一実施例に係る入口点アドレス説明図。
FIG. 2 is a configuration example of a module information section, and FIG. 3 is an explanatory diagram of an entry point address according to an embodiment of the present invention.

第4図および第5図は本発明の一実施例に係るモジュー
ル作成説明図、第6図は本発明の一実施例に係るモジュ
ール入れ換え説明図、第7図は本発明の一実施例に係る
リンゲージ部処理説明図、第8図ないし第11図は本発
明の一実施例に係る動的結合説明図を示す。
4 and 5 are explanatory diagrams of module creation according to an embodiment of the present invention, FIG. 6 is an explanatory diagram of module replacement according to an embodiment of the present invention, and FIG. 7 is an explanatory diagram of module replacement according to an embodiment of the present invention. FIGS. 8 to 11 are explanatory diagrams for explaining the process of the linkage part, and are diagrams for explaining the dynamic coupling according to an embodiment of the present invention.

各モジュールごとに設りられるモジュール情報部の構成
は1例えば第2図に示すようになっている。このモジュ
ール情報部16内に、モジュールの属性情報、入口点ア
ドレス情報、モジュール名情報などの格納域がある。
The configuration of the module information section provided for each module is as shown in FIG. 2, for example. This module information section 16 includes storage areas for module attribute information, entry point address information, module name information, and the like.

モジュール属性のフィールドに、入口点は書き込み禁止
セクションであるか、それとも入口点は書き込み可能で
初期値ありのセクションであるかを示すフラグや、モジ
ュール実体がライブラリ内にあるかないかを示すフラグ
がある。入口点を含むセクションが、書き込め禁止セク
ションである場合、仮想記4Q上ではプロテクションが
かりられている。これに対し、@き込み可能である場合
には、仮想記憶上の他のCPU実行権上で動作するプロ
グラムとの共用はできない。すなわち、マルチタスクで
動作させた場合に、他タスクとのプログラムの共用がで
きないので、このときには、オペレーティング・システ
ム(O8)のスーパバイザにおりるプログラム管理部へ
制御を渡す必要があり、その判定のために、属性のフラ
グが参照される。また、属性が実体なしを示す場合にも
、プログラム管理部への制御移行がなされる。
In the module attribute field, there is a flag indicating whether the entry point is a write-protected section or a writable section with initial values, and a flag indicating whether the module entity is in the library or not. . If the section including the entry point is a write-prohibited section, it is protected on virtual memory 4Q. On the other hand, if it is @readable, it cannot be shared with programs running on other CPU execution rights on the virtual memory. In other words, when operating in multitask mode, the program cannot be shared with other tasks, so in this case, control must be passed to the program management section of the operating system (O8) supervisor, and the decision-making process is For this purpose, the attribute's flags are referenced. Also, when the attribute indicates that there is no entity, control is transferred to the program management section.

モジュール情報部16における入口点アドレスは、呼ひ
出し名ごとの入口点アドレスが、第3図に示すように、
ロードモジュールライブラリ14における先頭または所
定の位置からのファイル内相対アドレス(変位)αで設
定される。
The entry point address in the module information section 16 is as shown in FIG.
It is set as an in-file relative address (displacement) α from the beginning or a predetermined position in the load module library 14.

別々に作成されるモジュールの独立性を高めるため、結
合編集(リンカ)の処理において、ランダムな順序で作
成されるロードモジュール間の結合をいかに矛盾なく、
その時々の処理で結合していくかが問題になるが1本発
明では、第4図ないし第6図に従って説明するように解
決されている。
In order to increase the independence of modules that are created separately, in the process of link editing (linker), how can the connections between load modules that are created in random order be made without contradiction?
The problem is how to combine them in the processing at each time, but in the present invention, the problem is solved as explained in accordance with FIGS. 4 to 6.

以下、呼び出し元モジュールをCALLING、呼び出
し先モジュールをCALI、EDとして説明する。
The following description will be made assuming that the calling module is CALLING, and the calling modules are CALI and ED.

第4図は、 CALLINGを先に作成し、後からCA
LLnDを作成する例を示している。
In Figure 4, CALLING is created first and CA is created later.
An example of creating LLnD is shown.

CALLINGを作成するときには、ロードモジュール
ライブラリ14内にばCALLEDが存在しない。その
ため、 CALLINGを作成する場合に、モジュール
情報部16Aとモジュール実体部17Aとを作成すると
共に、 CALLED用のモジュール情報部16Bだけ
を作成しておく。モジュール情報部16Bにおりる入口
点アドレスは「0」とし、属性は「実体なし」とする。
When creating CALLING, CALLED does not exist in the load module library 14. Therefore, when creating CALLING, the module information section 16A and module entity section 17A are created, and only the module information section 16B for CALLED is created. The entry point address in the module information section 16B is set to "0", and the attribute is set to "no entity".

そして、 CALI、TNGのリンケージ部19から、
モジュール情報部16Bを参照可能にする。
Then, from the linkage part 19 of CALI and TNG,
The module information section 16B is made referenceable.

次に、 CAI几EDを作成する場合には、モジュール
情報部1.6 Bの枠が既に作成されているため、モジ
ュール実体部17Bを作成し、モジュール情報部16B
の入口点アドレスを、モジュール実体部17Bにおける
入口点の相対アドレスであるβに更新すると共に、属性
を「実体あり」にする。モジュール情報部16Bか既に
作成されているか否= 12− かは、モジュール名によってライブラリ内を検索するこ
とにより2判定することができる。モジュール情報部1
6Bの位置は変わらないため、 CALLINGとの関
係は崩れない。
Next, when creating the CAI ED, since the module information section 1.6B frame has already been created, create the module entity section 17B, and then create the module information section 16B.
The entry point address of is updated to β, which is the relative address of the entry point in the module entity section 17B, and the attribute is set to "substantive". Whether the module information section 16B has already been created or not can be determined by searching the library using the module name. Module information section 1
Since the position of 6B does not change, the relationship with CALLING will not collapse.

第5図は、第4図とは反対に、 CALLHDを先に作
成し、後からCALLINGを作成する例を示している
In contrast to FIG. 4, FIG. 5 shows an example in which CALLHD is created first and CALLING is created later.

CAI、LEDが他のモジュールを呼び出していないと
すると、自分自身のモジュール情報部1.6Bとモジュ
ール実体部17Bだけを作成し、その入口点アドレスを
、モジュール情報部16B内に設定する。次にCIIL
LINGを作成する場合、呼び出すモジュール(CAL
LED)が既に作成されているため、モジュール情報部
1’6Aとモジュール実体部17 Aとを作成し、リン
ケージ部19からモジュール情IEt部16Bへのポイ
ンタを張る。
Assuming that CAI and LED are not calling other modules, they create only their own module information section 1.6B and module entity section 17B, and set their entry point address in the module information section 16B. Next, CIIL
When creating a LING, the module to be called (CAL
Since the module information section 1'6A and the module entity section 17A are created, a pointer is set from the linkage section 19 to the module information IEt section 16B.

以上の処理によ−)7. CALLINGとCALLE
Dとをどちらを先に作成しても、それらの結合関係を同
じにすることができる。
By the above processing-)7. CALLING and CALLE
No matter which one is created first, the connection relationship between them can be the same.

第6図は、既にあるC A L L E Dのモジュー
ルを、修正のため新しいモジュールと入れ換える例を示
している。
FIG. 6 shows an example in which an existing CALLED module is replaced with a new module for modification.

モジュール実体部1.7Bのロードモジュールライブラ
リ14における格納域は、モジュールの作成時に、第6
図に示すように、予め実体のサイズta+より、大きい
サイズ(C1で確保しておく。これにより、モジュール
を修正して2元のサイズ(81よりも大きいサイズ(b
lになっても、それが格納域のサイズ(C)よりも小さ
ければ1元の格納域をそのまま使用することができる。
The storage area of the module entity section 1.7B in the load module library 14 is
As shown in the figure, a size (C1) larger than the actual size ta+ is reserved in advance. This allows the module to be modified to a binary size (a size larger than 81 (b
Even if the storage area becomes 1, if it is smaller than the storage area size (C), the 1-element storage area can be used as is.

修正後の実体が2元の格納域のサイズ(C1より大きい
サイズ(dlになる場合には、さらに大きいサイx [
el rc持つ格納域をロードモジュールライブ−7’
J14内の他の位置に確保し、そこに新しいモジュール
実体部17B1を作成する。モジュール情報部16Bは
そのまま利用して、その入口点アドレス情報等を、モジ
ュール実体部17B1に合わせて更新する。元のモジュ
ール情報部16Bの格納域は、後々7作成または修正さ
れる他のプログラムの格納域に使用される。
If the corrected entity becomes the size of the binary storage area (a size larger than C1 (dl), an even larger size x [
Load the storage area with el rc module live-7'
It is secured in another position within J14 and a new module entity part 17B1 is created there. The module information section 16B is used as is, and its entry point address information etc. are updated in accordance with the module entity section 17B1. The storage area of the original module information section 16B will be used as a storage area for other programs that will be created or modified later.

いずれの場合でも、他のモジュールから参照されている
可能性のあるモジュール情報部]、 6 Bは。
In either case, the module information section that may be referenced from other modules], 6B.

その位置か変更されないため、モジュールを矛盾なく置
き換えることができる。
Since its position remains unchanged, modules can be replaced without conflict.

ロードモジュールライブラリ14のファイルは。The files of the load module library 14 are:

予め例えば4にハイドのブロックでフメーマソティング
しておく。ライブラリを編集するリンカは。
For example, use Hyde's block on block 4 for example. The linker edits the library.

その4にハイドをまるまる置き換える場合には。If you want to replace Hyde entirely in Part 4.

その4にハイドのデータをそのまま書き込む。−部だけ
を置き換える場合には、該当ブロックを入力し、入力し
たブロックを更新した後、1ブロツクをまるまる置き換
える処理を行う。
Write Hyde's data as is into Part 4. If only the - part is to be replaced, the corresponding block is input, the input block is updated, and then the entire block is replaced.

リンケージ部19を介した分岐の処理は1本実施例では
、アドレス依存型プログラムであるか否により、第7図
(イ)または(ロ)に示す処理命令によって2行われる
ようになっている。
In this embodiment, branch processing via the linkage unit 19 is performed in two ways, depending on whether the program is an address-dependent program or not, according to the processing instructions shown in FIG. 7(a) or (b).

リンケージ部19がアドレス依存型プログラム中に展開
される場合、第7図(イ)に示すように。
When the linkage section 19 is expanded into an address-dependent program, as shown in FIG. 7(a).

リンケージ部19は、最初に共通リンケージ部30に分
岐する命令を持つ。共通リンケージ部30ば2例えば主
記憶のO番地から1000番地(16進数)間のヘース
レジスタなしでアクセスできるページに設けられる。共
通リンケージ部30では、スーパバイザであるプログラ
ム管理部31への分岐先アドレスの計算を仔い、プログ
ラム管理部31へ分岐する。プログラム管理部31では
The linkage unit 19 has an instruction that first branches to the common linkage unit 30. The common linkage section 30b2 is provided, for example, in a page that can be accessed without a HAS register between address O and address 1000 (hexadecimal) in the main memory. The common linkage unit 30 calculates the branch destination address to the program management unit 31, which is the supervisor, and branches to the program management unit 31. In the program management section 31.

各種アドレス設定等の処理を行い、呼び出し先モジュー
ルへ分岐する。呼び出し先モジュールへの分岐アドレス
が決まった場合、プログラム管理部31は、リンケージ
部19内に、直接、呼び出し先モジュールへ分岐する命
令を設定する。これにより、2回目以降の呼び出し時に
は、リンケージ部19から直接、呼び出し先モジュール
へ分岐することができる。なお、リンケージ部19が書
き込み禁止セクションにある場合には2分岐命令の書き
換えはできないので、2回目以降も1回目と同様に処理
を行う。
Performs processing such as various address settings, and branches to the called module. When the branch address to the called module is determined, the program management section 31 sets an instruction to directly branch to the called module in the linkage section 19. Thereby, when calling for the second time or later, it is possible to branch directly from the linkage unit 19 to the called module. Note that if the linkage unit 19 is in a write-protected section, the two-branch instruction cannot be rewritten, so the same processing as the first time is performed for the second and subsequent times.

リンケージ部19が、アドレス無依存型プログラムに展
開される場合、第7図(ロ)に示すように、共通リンケ
ージ部30の第2のエントリに分岐する命令を5 リン
ケージ部19に設定する。共通リンケージ部30では、
呼び出し先のモジ1.−ル情報部のアドレスを得て、そ
の属性により書き込み可否、実体の有無を判定する。実
体があり。
When the linkage unit 19 is developed into an address-independent program, an instruction to branch to the second entry of the common linkage unit 30 is set in the 5 linkage unit 19, as shown in FIG. 7(b). In the common linkage section 30,
Call destination moji1. - Obtain the address of the file information section and determine whether it is writable or not and whether it exists or not based on its attributes. There is substance.

書き込み禁止である場合には、モジュール情報部の入口
点アドレスから分岐先アドレスを計算し。
If writing is prohibited, calculate the branch destination address from the entry point address in the module information section.

呼び出し先モジュールへ分岐する。それ以外の場合には
、プログラム管理部31へのアドレスを計算し、呼び出
し先モジュールの複写処理などを行う。なお2プログラ
ム管理部31における処理の大部分は、従来からある既
存の処理を流用できる。
Branch to the called module. In other cases, the address to the program management section 31 is calculated, and the copying process of the called module is performed. Note that most of the processing in the second program management section 31 can be carried out using conventional existing processing.

共通リンケージ部30は、複数のリンケージ部19が重
複した命令を持つことにより、メモリが無駄になること
を避けると共に、プログラム管理部31とのインタフェ
ースを簡易化するために設けられているが、実質的にリ
ンケージ部19の延長であり、その一部であると考えて
よい。
The common linkage section 30 is provided to avoid wasting memory due to multiple linkage sections 19 having duplicate instructions, and to simplify the interface with the program management section 31. In general, it is an extension of the linkage section 19, and can be considered to be a part thereof.

以下、第8図ないし第11図に従って1本発明の一実施
例における動的結合を説明する。
Dynamic coupling in one embodiment of the present invention will be described below with reference to FIGS. 8 to 11.

第8図は、呼び出し先が「実体あり」であり。In FIG. 8, the called destination is "substantive".

かつ書き込め禁止セクションである場合の例てあ呼び出
し元モジュールCALLINGにおいて、 CALLE
Dを呼び出す命令(CAI−L  CALLED)を実
行すると、リンケージ部19へ制御が渡される。
For example, if the section is a write-protected section, in the calling module CALLING, CALLE
When the instruction to call D (CAI-L CALLED) is executed, control is passed to the linkage unit 19.

リンケージ部19は、共通リンケージ部30への分岐命
令を持つと共に、モジュール情報部16Bへのポインタ
情報を持つ。リンケージ部19に制御が渡されると、こ
こから、すべてのリンケージ部で共通に使用可能な命令
コードを記述した共通リンケージ部30に分岐し、その
命令コードにより、モジュール情報部16Bを参照し、
その属性を判定する。ここでは呼び出し先の実体があり
The linkage unit 19 has a branch instruction to the common linkage unit 30 and also has pointer information to the module information unit 16B. When control is passed to the linkage section 19, the process branches from here to the common linkage section 30 which describes an instruction code that can be used commonly by all linkage sections, and uses the instruction code to refer to the module information section 16B.
Determine its attributes. Here we have an entity to call.

呼び出し先が書き込み禁止であるので、モジュール情報
部16Bが持つ入口点アドレスにより、共通リンケージ
部30からモジュール実体部17Bの入口点へ分岐する
Since the call destination is write-protected, the common linkage section 30 branches to the entry point of the module entity section 17B based on the entry point address held by the module information section 16B.

第9図は、呼び出し先の実体がない場合の例である。FIG. 9 shows an example where there is no entity to call.

第8図と同様に、共通リンケージ部30に制御が渡され
後、共通リンケージ部30が、モジュール情報部16B
における属性を判定することにより、呼び出し先の実体
がないことが判明する。そこで、共通リンケージ部30
からスーパバイザのプログラム管理部31へ制御を渡す
。プログラム管理部31では、呼び出し先の実体がなく
、他のファイルに定義されてもいないことが判明すると
Similarly to FIG. 8, after control is passed to the common linkage section 30, the common linkage section 30 controls the module information section 16B.
By determining the attributes in , it becomes clear that there is no entity to call. Therefore, the common linkage section 30
Control is then passed to the program management section 31 of the supervisor. When the program management unit 31 determines that the entity to be called does not exist and is not defined in any other file.

エラーと認識し、その処理を行う。Recognize it as an error and take action.

第10図は、呼び出し先の実体があり、かつ呼び出し先
が書き込み可能である場合の例である。
FIG. 10 is an example of a case where there is a callee entity and the callee is writable.

共通リンケージ部30におけるモジュール情報部1.6
 Bの属性判定により、書き込み可能が判明すると、プ
ログラム管理部3]へ制御を渡す。プログラム管理部3
1では、モジュール情報部16Bによってモジュール実
体部17Bの位置を確認し、仮想記憶内の他のアドレス
に、モジュール実体部]、7Bを複写し、リロケーショ
ンを行って。
Module information section 1.6 in common linkage section 30
When the attribute determination of B reveals that it is writable, control is passed to the program management section 3]. Program management department 3
1, the position of the module entity section 17B is confirmed by the module information section 16B, and the module entity section], 7B is copied to another address in the virtual memory and relocation is performed.

モジュール実体部17Cを作成する。そして、そのア1
−レスを求めて制御を渡す。
A module entity part 17C is created. And that A1
− Request a response and pass control.

第11回は、第9図の例とほぼ同様であるが。The 11th example is almost the same as the example shown in FIG.

他のファイルに、呼び出し先の実体がある場合である。This is the case when the called entity exists in another file.

サブルーチン・パンケージを使用する多くのプログラム
(実行時ライブラリを必要とする高級言語で記述された
プログラムを含む)では、第11図に示す動作を行うこ
とになる。ユーザプログラムがCALLING 、 →
ノフ゛ル−チン・パッケージがCALLEDに相当する
Many programs that use subroutine bunkage (including programs written in high-level languages that require runtime libraries) will perform the operations shown in FIG. 11. The user program is CALLING, →
The routine package corresponds to CALLED.

プログラム管理部31では、共通リンケージ部30から
制御を渡されると、呼び出し先の名前により、他のファ
イルから実体を見っ′け、そこへ制御を渡す。ただし、
第11図の例では、 CALLEDが書き込み禁止セク
ションであるが、これが書き込め可能である場合には、
第1O図の例と同様に。
When the program management section 31 receives control from the common linkage section 30, it finds the entity from another file based on the name of the called destination and transfers control thereto. however,
In the example in Figure 11, CALLED is a write-protected section, but if it is writable, then
Similar to the example in Figure 1O.

さらに複写、リロケーションの処理を行い、そこへ制御
を渡す。
It also performs copying and relocation processing, and passes control there.

〔発明の効果〕〔Effect of the invention〕

以上説明したように3本発明によれば、従来の動的結合
とほぼ同様なモジュールの独立性を維持し、モジュール
の開発 修正におりる操作性をよくすると共に、動的結
合時における実行性能を大幅に向上させることができる
As explained above, according to the present invention, the independence of modules is maintained which is almost the same as in conventional dynamic combinations, and the operability in developing and modifying modules is improved, and the execution performance during dynamic combinations is improved. can be significantly improved.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明の原理説明図。 第2図はモジュール情報部の構成例。 第3図は本発明の一実施例に係る入口点アドレス説明口
。 第4図および第5図は本発明の一実施例に係るモジュー
ル作成説明図。 第6図は本発明の一実施例に係るモジコー−ル入れ換え
説明図。 第7図は本発明の一実施例に係るリンケージ部処理説明
図。 第8図ないし第11図は本発明の一実施例に係る動的結
合説明図。 第12図は従来のモジュール結合の例を示す。 図中、10は処理装置、11はライブラリ編集部112
は一括ローディング処理部、13は外部記4.Qla置
、14はロードモジュールライブラリ。 15はスペース管理部、16A、16Bはモジュール情
報部、17A、17Bはモジュール実体部。 18はローディング域、19はリンケージ部を表す。
FIG. 1 is a diagram explaining the principle of the present invention. Figure 2 shows an example of the configuration of the module information section. FIG. 3 is an entry point address explanation window according to an embodiment of the present invention. FIG. 4 and FIG. 5 are explanatory diagrams for creating a module according to an embodiment of the present invention. FIG. 6 is an explanatory diagram of module replacement according to an embodiment of the present invention. FIG. 7 is an explanatory diagram of linkage section processing according to an embodiment of the present invention. FIGS. 8 to 11 are explanatory diagrams of dynamic coupling according to an embodiment of the present invention. FIG. 12 shows an example of conventional module combination. In the figure, 10 is a processing device, 11 is a library editing section 112
13 is the batch loading processing section, and 4. is the external memory. Qla location, 14 is the load module library. 15 is a space management section, 16A and 16B are module information sections, and 17A and 17B are module entity sections. 18 represents a loading area, and 19 represents a linkage section.

Claims (1)

【特許請求の範囲】 モジュール化されたプログラムをメモリにローディング
し実行するデータ処理システムにおいて、他のモジュー
ルから呼び出されるアドレスがファイル内相対アドレス
で設定される入口点アドレス格納域を持つモジュール情
報部と、プログラムの実体が格納されるモジュール実体
部とを複数有するロードモジュールライブラリ(14)
を作成するライブラリ編集部(11)と、 前記複数のモジュール情報部とモジュール実体部とを、
各情報域間の相対的な位置関係を変更しないで、まとめ
てメモリ上にローディングする一括ローディング処理部
(12)と、 前記モジュール実体部内に、呼び出し先モジュールに対
応する前記モジュール情報部を参照し、直接または間接
的に呼び出し先へ分岐する命令コードを持つリンケージ
部(19)とを備え、呼び出し元モジュールと呼び出し
先モジュールとの動的結合を行うようにしたことを特徴
とするモジュール結合制御方式。
[Claims] A data processing system that loads a modularized program into a memory and executes the module includes a module information section having an entry point address storage area in which an address to be called from another module is set as a relative address within a file. , and a module entity section in which program entities are stored (14).
a library editing section (11) that creates the plurality of module information sections and module entity sections;
a batch loading processing unit (12) that loads information areas all at once onto memory without changing the relative positional relationship between them; and a module information unit that references the module information unit corresponding to the called module in the module entity unit. , a linkage section (19) having an instruction code that directly or indirectly branches to a called destination, and dynamically connects a calling module and a called module. .
JP63033398A 1988-02-16 1988-02-16 Module connection control method Expired - Lifetime JP2865291B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63033398A JP2865291B2 (en) 1988-02-16 1988-02-16 Module connection control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63033398A JP2865291B2 (en) 1988-02-16 1988-02-16 Module connection control method

Publications (2)

Publication Number Publication Date
JPH01207824A true JPH01207824A (en) 1989-08-21
JP2865291B2 JP2865291B2 (en) 1999-03-08

Family

ID=12385493

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63033398A Expired - Lifetime JP2865291B2 (en) 1988-02-16 1988-02-16 Module connection control method

Country Status (1)

Country Link
JP (1) JP2865291B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08106378A (en) * 1994-10-07 1996-04-23 Nec Corp Fast connection system for load module
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)

* Cited by examiner, † Cited by third party
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 (en) * 1984-11-28 1986-06-16 Fujitsu Ltd Nonresident system of subprogram
JPS61224041A (en) * 1985-03-29 1986-10-04 Usac Electronics Ind Co Ltd Data processing device

Patent Citations (4)

* Cited by examiner, † Cited by third party
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 (en) * 1984-11-28 1986-06-16 Fujitsu Ltd Nonresident system of subprogram
JPS61224041A (en) * 1985-03-29 1986-10-04 Usac Electronics Ind Co Ltd Data processing device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08106378A (en) * 1994-10-07 1996-04-23 Nec Corp Fast connection system for load module
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 (en) 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
JP2986042B2 (en) Method and apparatus for modifying an object-oriented programming environment
Hauck et al. Burroughs' B6500/B7500 stack mechanism
US5353411A (en) Operating system generation method
US5729748A (en) Call template builder and method
US5546586A (en) Method and apparatus for vectorizing the contents of a read only memory device without modifying underlying source code
JP3138171B2 (en) How to download system features
US5553286A (en) System and method for preparing a computer program for execution
JPH01306923A (en) System for connecting different languages
JPH02188833A (en) Interface for computer system
JPH0760380B2 (en) Program call device
JPH1040087A (en) Method for handling data model to be used for software engineering
EP0237637B1 (en) A method for the relocation of linked control blocks
JP2002525707A (en) An accurate method for virtual call inlining
Bailey et al. A formal model and specification language for procedure calling conventions
JPH0254337A (en) Data processing system for facilitating generation of executable image
US5062039A (en) Sharing of workspaces in interactive processing using workspace name tables for linking of workspaces
EP2321734B1 (en) Type descriptor management for frozen objects
JPH01207824A (en) Module coupling control system
US5450587A (en) Expanded memory addressing scheme
JPS63626A (en) Program managing device
JP3293821B2 (en) Dynamic link system

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