JPH01191232A - External module acquiring system - Google Patents

External module acquiring system

Info

Publication number
JPH01191232A
JPH01191232A JP63015198A JP1519888A JPH01191232A JP H01191232 A JPH01191232 A JP H01191232A JP 63015198 A JP63015198 A JP 63015198A JP 1519888 A JP1519888 A JP 1519888A JP H01191232 A JPH01191232 A JP H01191232A
Authority
JP
Japan
Prior art keywords
module
external
object module
symbol
undefined
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
JP63015198A
Other languages
Japanese (ja)
Other versions
JP2841363B2 (en
Inventor
Seiji Uchida
内田 誠二
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP63015198A priority Critical patent/JP2841363B2/en
Publication of JPH01191232A publication Critical patent/JPH01191232A/en
Application granted granted Critical
Publication of JP2841363B2 publication Critical patent/JP2841363B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PURPOSE:To set necessary file resources to only an object module store file by linking dynamically an object module existing in the object module store file to a load module in a main storage. CONSTITUTION:A dynamic link means 4 executes a solution of a reference of an undefined external symbol by using an external symbol management table 6 for recording an external symbol existing in a main storage 1, a hash table for managing the external symbol management table 6 and an undefined reference chain which corresponds to undefined external symbols, respectively and links a reference part to these external symbols, to a list format, based on information for a static linker which a file 30 for storing an object module being an external module has. Also, the object module 3 is placed again in the main storage 1, and an inlet name registering means 7 outputs an interface routine 8 for making the object module 3 which has been placed again by the dynamic link means 4 executable as one module for forming an object module. In such a way, file resources can be curtailed.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は外部モジュール獲得方式に関し、特に実行中の
ロードモジュールがオブジェクトモジュール格納ファイ
ル内に存在するオブジェクトモジュールを動的にリンク
して自ロードモジュールの1モジュールとして実行可能
とする外部モジュール獲得方式に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to an external module acquisition method, and more particularly, the present invention relates to an external module acquisition method, and in particular, a load module that is being executed dynamically links an object module existing in an object module storage file to a self-load module. This invention relates to a method for acquiring an external module that can be executed as one module.

〔従来の技術〕[Conventional technology]

従来、この種の外部モジュール獲得方式としては、実行
中のロードモジュールが他のロードモジエールを自ロー
ドモジュールの1モジュールとしてリンクして動作させ
る方式がある。
Conventionally, as this type of external module acquisition method, there is a method in which a load module being executed links and operates another load module as one module of its own load module.

また、実行中のロードモジュールが自ロードモジュール
を格納したファイルおよびリンクすべきオブジェクトモ
ジュールを格納したファイルを入力ファイルとして静的
リンカを起動して、その結果としてファイルに出力され
たロードモジュールと自ロードモジュールとの差異を自
ロードモジュールに対して反映する方法を用いてオブジ
ェクトモジュールを自ロードモジュールの1モジュール
として実行可能とする方式がある。
In addition, the load module being executed starts the static linker using the file containing the self-load module and the file containing the object module to be linked as input files, and the load module output to the file as a result and the self-load module There is a method of making an object module executable as one module of the self-loading module by using a method of reflecting the difference between the module and the self-loading module.

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

上述した従来の外部モジュール獲得方式は、ロードモジ
ュールをリンクする方式の場合には、fal  主ロー
ドモジュールにリンクされる各モジュールがそれぞれロ
ードモジュールを構成している必要があるので、利用者
は主ロードモジュールの実行に先立ち、リンクされる全
てのロードモジュールを事前に作成しておかなければな
らない、(bl  これらのロードモジュールのうちの
複数が動的なメモリ管理を行っているときには、それぞ
れ1つのロードモジュールとしては何ら矛盾なく動作し
ていたとしても、これらのロードモジュールをリンクし
たことより動的なメモリ管理の間に競合が発生する可能
性が強い、 等の欠点がある。
In the conventional external module acquisition method described above, in the case of the method of linking load modules, each module linked to the fal main load module must constitute a load module. Before executing a module, all the load modules to be linked must be created in advance (bl If multiple of these load modules are doing dynamic memory management, each load module must be Even if the module operates without any contradiction, there are drawbacks such as the strong possibility that conflicts will occur between dynamic memory management due to linking these load modules.

一方、実行時に静的リンカを起動する方式の場合には、 fc)  自ロードモジエールを格納したファイルを静
的リンカの入力とするので、このファイルは静的リンカ
の再入力可能な形式を有している必要があり、一般にそ
のようなロードモジュール格納ファイルは通常のロード
モジュール格納ファイルよりも大きなファイル資源を必
要とする、fdl  静的リンカが出力したロードモジ
ュールと自ロードモジュールとの比較において、その増
分のみからでは新しく加わったオブジェクトモジュール
の入口等は不明であり、オブジェクトモジュール格納フ
ァイルに対して何らかの解析が必要となるので、静的リ
ンカの処理と併せて入出力処理が多く行われることにな
り、外部モジュールの獲得のために長い処理時間を必要
とする、等の欠点がある。
On the other hand, in the case of the method of starting the static linker at runtime, the file that stores the fc) self-loading module is input to the static linker, so this file has a format that allows re-input of the static linker. Generally, such a load module storage file requires larger file resources than a normal load module storage file.In comparing the load module output by the fdl static linker and its own load module, The entrance of the newly added object module is unknown from the increment alone, and some kind of analysis is required for the object module storage file, so a lot of input/output processing is performed in conjunction with static linker processing. However, there are drawbacks such as a long processing time required to acquire external modules.

本発明の目的は、上述の点に鑑み、オブジェクトモジュ
ール格納ファイル内に存在するオブジェクトモジュール
を動的に主記憶内のロードモジュールにリンクしてオブ
ジェクトモジュールをロードモジエールを形成する1モ
ジュールとして実行することができるようにした外部モ
ジュール獲得方式を提供することにある。
In view of the above points, an object of the present invention is to dynamically link an object module existing in an object module storage file to a load module in main memory, and execute the object module as one module forming a load module. The purpose of the present invention is to provide an external module acquisition method that enables the acquisition of external modules.

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

本発明の外部モジュール獲得方式は、主記憶上にロード
されて実行中のロードモジュールが外部記憶装置内に存
在する外部モジュールを前記主記憶上にロードしてこの
外部モジュールを自ロードモジュールを形成する1モジ
ュールとして実行可能とする外部モジュール獲得方式に
おいて、前記外部モジュールとしてのオブジェクトモジ
ュールを格納するファイルが有する静的リンカのための
情報を基に前記主記憶内に存在する外部シンボルを記録
する外部シンボル管理表、この外部シンボル管理表を管
理するハツシュ表および未定義の外部シンボルにそれぞ
れ対応してこれら外部シンボルへの参照箇所をリスト形
式につなぐ未定義参照チェインを用いて未定義の外部シ
ンボルの参照の解決を行い前記オブジェクトモジュール
を前記主記憶内に再配置する動的リンク手段と、この動
的リンク手段によって再配置された前記オブジェクトモ
ジュールを前記ロードモジュールを形成する1モジュー
ルとして実行可能とするためのインタフェースルーチン
を出力する入口名登録手段とを有する。
In the external module acquisition method of the present invention, a load module loaded onto the main memory and being executed loads an external module existing in an external storage device onto the main memory, and forms this external module as a self-load module. In an external module acquisition method capable of being executed as one module, an external symbol records an external symbol existing in the main memory based on information for a static linker included in a file storing an object module as the external module. References to undefined external symbols are made using a management table, a hash table that manages this external symbol management table, and an undefined reference chain that connects references to these external symbols in a list format corresponding to each undefined external symbol. dynamic linking means for solving the problem and relocating the object module in the main memory, and making the object module relocated by the dynamic linking means executable as one module forming the load module. and an entrance name registration means for outputting an interface routine.

〔作用〕[Effect]

本発明の外部モジュール獲得方式では、動的リンク手段
が外部モジュールとしてのオブジェクトモジュールを格
納するファイルが有する静的リンカのための情報を基に
主記憶内に存在する外部シンボルを記録する外部シンボ
ル管理表、外部シンボル管理表を管理するハツシュ表お
よび未定義の外部シンボルにそれぞれ対応してこれら外
部シンボルへの参照箇所をリスト形式につなぐ未定義参
照チェインを用いて未定義の外部シンボルの参照の解決
を行いオブジェクトモジュールを主記憶内に再配置し、
入口名登録手段が動的リンク手段によって再配置された
オブジェクトモジエールをロードモジュールを形成する
1モジュールとして実行可能とするためのインタフェー
スルーチンを出力する。
In the external module acquisition method of the present invention, the dynamic linking means performs external symbol management that records external symbols existing in the main memory based on information for a static linker that a file that stores an object module as an external module has. Resolving references to undefined external symbols using an undefined reference chain that connects references to these external symbols in a list format corresponding to tables, hash tables that manage external symbol management tables, and undefined external symbols. and relocate the object module in main memory,
The entrance name registration means outputs an interface routine for making the object module relocated by the dynamic linking means executable as one module forming a load module.

〔実施例〕〔Example〕

次に、本発明について図面を参照して詳細に説明する。 Next, the present invention will be explained in detail with reference to the drawings.

第1図は、本発明の一実施例の外部モジュール獲得方式
の構成を示すブロック図である6本実施例の外部モジュ
ール獲得方式は、主記憶1と、主記憶1上にロードされ
ているロードモジュール2と、外部記憶装置上のオブジ
ェクトモジュール格納ファイル30内に格納されている
オブジェクトモジュール3と、オブジェクトモジニール
格納ファイル30が有する静的リンカ(図示せず)のた
めの情報を基に外部シンボル管理表6.ハツシュ表5お
よび未定義参照チェイン9(第3図および第8図参照)
を用いて未定義の外部シンボルの参照の解決を行いオブ
ジェクトモジュール3を主記憶1内に再配置する動的リ
ンク手段4と、外部シンボル管理表6を管理するハツシ
ュ表5と、主記憶1内に存在する外部シンボルを記録す
る外部シンボル管理表6と、インタフェースルーチン8
を出力する入口名登録手段7と、動的リンク手段4によ
って再配置されたオブジェクトモジュール3を自ロード
モジュール2を形成する1モジュールとして実行可能と
するためのインタフェースルーチン8と、未定義の外部
シンボルにそれぞれ対応しこれら外部シンボルへの参照
箇所をリスト形式につなぐ未定義参照チェイン9とから
、その主要部が構成されている。
FIG. 1 is a block diagram showing the configuration of an external module acquisition method according to an embodiment of the present invention.6 The external module acquisition method according to this embodiment includes a main memory 1 and a load loaded on the main memory 1. External symbols are created based on information for the module 2, the object module 3 stored in the object module storage file 30 on the external storage device, and the static linker (not shown) that the object module storage file 30 has. Management table 6. Hash table 5 and undefined reference chain 9 (see Figures 3 and 8)
a dynamic linking means 4 that resolves references to undefined external symbols and relocates the object module 3 in the main memory 1 using External symbol management table 6 that records external symbols existing in the interface routine 8
an interface routine 8 for making the object module 3 relocated by the dynamic linking means 4 executable as one module forming the self-loading module 2, and an undefined external symbol. The main part thereof consists of an undefined reference chain 9 that corresponds to each of the external symbols and connects references to these external symbols in a list format.

第2図を参照すると、外部シンボル管理表6は、シンボ
ル名アドレス61と、モジュールの入口アドレスまたは
シンボルの先頭アドレスもしくは未定義参照チェイン9
の先頭アドレスを格納する参照解決用エントリ62と、
参照解決用エントリ62の内容の種別を示す種別標ra
63と、同一ハツシュ値を有する外部シンボルに対する
外部シンボル管理表6をつなぐハツシュチェインエント
リ64とから構成されている。
Referring to FIG. 2, the external symbol management table 6 includes a symbol name address 61, a module entrance address, a symbol start address, or an undefined reference chain 9.
a reference resolution entry 62 that stores the start address of
Type indicator ra indicating the type of content of the reference resolution entry 62
63, and a hash chain entry 64 that connects external symbol management tables 6 for external symbols having the same hash value.

第3図を参照すると、未定義参照チェイン9は、次エン
トリアドレス91と、参照箇所アドレス92とからなる
エントリがリスト形式につながれて構成される。なお、
未定義参照チェイン9の終端エントリは、次エントリア
ドレス91が0となっていることにより判定される。
Referring to FIG. 3, the undefined reference chain 9 is composed of entries consisting of a next entry address 91 and a reference location address 92 connected in a list format. In addition,
The terminal entry of the undefined reference chain 9 is determined by the next entry address 91 being 0.

第4図を参照すると、動的リンク手段4における処理は
、初期化済判定ステップ41と、初期化処理ステップ4
2と、参照解決ステップ43と、再配置ステップ44と
からなる。
Referring to FIG. 4, the processing in the dynamic linking means 4 includes an initialization determination step 41 and an initialization processing step 4.
2, a reference resolution step 43, and a relocation step 44.

第5図を参照すると、入口名登録手段7における処理は
、外部シンボル名等入力ステップ71と、インタフェー
スルーチン出カステップ72と、インタフェースルーチ
ン記録ステップ73とからなる。
Referring to FIG. 5, the processing in the entrance name registration means 7 consists of an external symbol name input step 71, an interface routine output step 72, and an interface routine recording step 73.

第6図を参照すると、インタフェースルーチン8におけ
る処理は、呼出しパラメータ作成ステップ81と、オブ
ジェクトモジュール呼出しステップ82と、返却値作成
ステップ83とからなる。なお、インタフェースルーチ
ン8に、必要に応じてレジスタの退避および復活2例外
ハンドラの設定および解除等を行う処理を付加すること
は容易である。
Referring to FIG. 6, the processing in the interface routine 8 consists of a call parameter creation step 81, an object module call step 82, and a return value creation step 83. Note that it is easy to add to the interface routine 8 processes for setting and canceling register saving and restoring 2 exception handlers, etc., as necessary.

次に、このように構成された本実施例の外部モジュール
獲得方式の動作について、第7図〜第9図を参照しなが
ら説明する。
Next, the operation of the external module acquisition method of this embodiment configured as described above will be explained with reference to FIGS. 7 to 9.

いま、主記憶1にロードモジュール2がロードされて動
作していて、ロードモジュール2はオブジェクトモジュ
ール3に関する何らの情報も有していないものとする。
It is now assumed that the load module 2 is loaded into the main memory 1 and is operating, and the load module 2 does not have any information regarding the object module 3.

ロードモジュール2の動作に伴いオブジェクトモジュー
ル3を獲得するようにとの指示があると、動的リンク手
段4が起動される。
When there is an instruction to acquire the object module 3 along with the operation of the load module 2, the dynamic linking means 4 is activated.

動的リンク手段4は、まず初期化処理が済んでいるか否
かを確認する(ステップ41)、確認の方法としては種
々の方法が考えられるが、本実施例では初期化完了フラ
グ(図示せず)を設定し、その値を確認する方法が用い
られている。
The dynamic linking means 4 first checks whether or not the initialization process has been completed (step 41). Various methods can be used for checking, but in this embodiment, the initialization completion flag (not shown) is used. ) and check its value.

初期化処理が済んでいない場合には、動的リンク手段4
は、第7図に示すように、初期化処理として、ハツシュ
表5の作成と、ロードモジュール2内に入口を有しかつ
外部モジュールと共有すべきモジュール(例えば、メモ
リ管理モジエール21゜l10(入出力)モジュール2
2等)が有する外部シンボルに対する外部シンボル管理
表6の作成とを行い、初期化完了フラグを初期化済を示
す値にセットする(ステップ42)。
If the initialization process has not been completed, dynamic linking means 4
As shown in FIG. 7, the initialization process includes the creation of a hash table 5 and the creation of a module that has an entrance in the load module 2 and is to be shared with an external module (for example, the memory management module 21゜l10 (input Output) module 2
2, etc.), and sets the initialization completion flag to a value indicating that the initialization has been completed (step 42).

ステップ41で初期化処理が済んでいた場合には、動的
リンク手段4はステップ42をスキップする。
If the initialization process has been completed in step 41, the dynamic linking means 4 skips step 42.

次に、動的リンク手段4は、主記憶1上にオブジェクト
モジュール3をロードするための領域を確保し、獲得対
象となるオブジェクトモジュール3を格納したオブジェ
クトモジュール格納ファイル30から静的リンカのため
の情報以外の部分、すなわちオブジェクトモジュール3
の本体(以下、単にオブジェクトモジュールと称する)
をロードする。
Next, the dynamic linking means 4 secures an area for loading the object module 3 on the main memory 1, and extracts the area for the static linker from the object module storage file 30 storing the object module 3 to be acquired. Parts other than information, that is, object module 3
body (hereinafter simply referred to as object module)
Load.

続いて、動的リンク手段4は、オブジェクトモジュール
格納ファイル30に記録されている静的リンカのための
情報に基づいて、オブジェクトモジュール3が有する外
部シンボルおよびオブジェクトモジュール3から参照し
ている外部シンボルに対する外部シンボル管理表6を作
成および更新する(ステップ43)。
Subsequently, the dynamic linking means 4 performs linking for the external symbols possessed by the object module 3 and the external symbols referenced from the object module 3 based on the information for the static linker recorded in the object module storage file 30. The external symbol management table 6 is created and updated (step 43).

この外部シンボル管理表6の作成および更新処理につい
て詳細に説明すると、外部シンボルの参照の解決におい
て次の■〜■の場合がある。
To explain in detail the process of creating and updating the external symbol management table 6, there are the following cases (1) to (2) in resolving references to external symbols.

■ 主記憶l上にすでにロードされているオブジェクト
モジュール3にはシンボルに関する情報がなく、新しく
ロードされたオブジェクトモジュール3内でシンボルが
定義されている場合。
■ When the object module 3 already loaded on the main memory l has no information regarding the symbol, and the symbol is defined in the newly loaded object module 3.

この場合には、動的リンク手段4は、このシンボルに対
する外部シンボル管理表6を主記憶1上に割り付け、シ
ンボル名アドレス61を記入する。
In this case, the dynamic linking means 4 allocates the external symbol management table 6 for this symbol on the main memory 1 and writes the symbol name address 61 therein.

次に、オブジェクトモジュール3の格納アドレスからシ
ンボルの先頭アドレスを算出して参照解決用エントリ6
2に記入する。続いて、種別標識63に定義済である旨
を記入する。
Next, the start address of the symbol is calculated from the storage address of the object module 3, and the reference resolution entry 6
Fill in 2. Then, write in the type indicator 63 that it has been defined.

■ 主記憶1上にすでにロードされているオブジェクト
モジュール3にはシンボルに関する情報がなく、新しく
ロードされたオブジェクトモジュール3内でシンボルが
参照されている場合。
■ When the object module 3 already loaded on the main memory 1 does not have information regarding the symbol, and the symbol is referenced in the newly loaded object module 3.

この場合には、動的リンク手段4は、■の場合と同様に
、このシンボルに対する外部シンボル管理表6を主記憶
1上に割り付け、シンボル名アドレス61を記入し、参
照解決用エントリ62にOを記入し、種別標1li63
に未定義である旨を記入する。
In this case, the dynamic linking means 4 allocates the external symbol management table 6 for this symbol on the main memory 1, writes the symbol name address 61, and writes the reference resolution entry 62 into the O Enter the type mark 1li63
Enter the fact that it is undefined.

■ 主記憶1上にすでにロードされているオブジェクト
モジュール3にシンボルに対する定義があり、新しくロ
ードされたオブジェクトモジュール3内でもシンボルが
定義されている場合。
■ When there is a definition for a symbol in the object module 3 that has already been loaded into the main memory 1, and the symbol is also defined in the newly loaded object module 3.

この場合は通常は発生しないので、動的リンク手段4は
、利用者の指定誤りとして処理を中断する。
Since this case does not normally occur, the dynamic linking means 4 interrupts the process as an error in the user's specification.

■ 主記憶1上にすでにロードされているオブジェクト
モジュール3にシンボルに対する定義があり、新しくロ
ードされたオブジェクトモジュール3内でシンボルが参
照されている場合。
■ When there is a definition for a symbol in the object module 3 that has already been loaded into the main memory 1, and the symbol is referenced in the newly loaded object module 3.

この場合には、動的リンク手段4は、後続する再配置処
理において実際のシンボルのアドレスを参照箇所に対し
て記入するので(後記(2)参照)、ステップ23にお
いては処理を行わない。
In this case, the dynamic linking means 4 writes the address of the actual symbol to the reference location in the subsequent relocation process (see (2) below), and therefore does not perform the process in step 23.

■ 主記憶l上にすでにロードされているオブジェクト
モジエール3にシンボルに対する参照があり、新しくロ
ードされたオブジェクトモジュール3内でシンボルが定
義されている場合。
■ When there is a reference to the symbol in the object module 3 that has already been loaded into the main memory l, and the symbol is defined in the newly loaded object module 3.

この場合には、すでにロードされているオブジェクトモ
ジュール3の再配置処理において、シンボルへの参照箇
所が未定義参照チェイン9によって記録されている(後
記(3)参照)。
In this case, in the relocation process of the object module 3 that has already been loaded, the reference location to the symbol is recorded by the undefined reference chain 9 (see (3) below).

例えば、いま、第8図に示すように、主記憶1上にSY
MIなるシンボルへの参照が未定義状態で存在するもの
とする。この状態に対して、第9図に示すように、シン
ボルSYMIの定義を有するオブジェクトモジュール3
を主記憶1にロードすると、動的リンク手段4は、未定
義参照チェイン9の各エントリの参照箇所アドレス92
が指示するアドレスにシンボルSYMIの先頭アドレス
を記入する。次に、シンボルSYMIに対する外部シン
ボル管理表6の参照解決用エントリ62にもシンボルS
YMIの先頭アドレスを記入する。続いて、種別標識6
3を定義済である舌に更新する。
For example, as shown in FIG.
Assume that a reference to the symbol MI exists in an undefined state. For this state, as shown in FIG. 9, the object module 3 having the definition of the symbol SYMI
When loaded into the main memory 1, the dynamic linking means 4 loads the reference point address 92 of each entry of the undefined reference chain 9.
Write the start address of symbol SYMI at the address indicated by . Next, the symbol S is also added to the reference resolution entry 62 of the external symbol management table 6 for the symbol SYMI.
Enter the starting address of YMI. Next, type indicator 6
3 is updated to the defined tongue.

■ 主記憶1上にすでにロードされているオブジェクト
モジュール3にシンボルに対する参照があり、新しくロ
ードされたオブジェクトモジュール3内でもシンボルが
参照されている場合。
■ When there is a reference to the symbol in the object module 3 that has already been loaded into the main memory 1, and the symbol is also referenced in the newly loaded object module 3.

この場合には、動的リンク手段4は、後続する再配置処
理においてシンボルに対する未定義参照チェイン9を延
長するので(後記(3)参照)、ステップ43では何も
処理を行わない。
In this case, the dynamic linking means 4 extends the undefined reference chain 9 for the symbol in the subsequent relocation process (see (3) below), so no processing is performed in step 43.

続いて、動的リンク手段4は、オブジェクトモジュール
格納ファイル30に静的リンカの人力情報となる再配置
のための情報が記録されているので、この情報を基に主
記憶1上のオブジェクトモジュール3に対して再配置処
理を行う(ステップ44)。
Subsequently, the dynamic linking means 4 links the object modules in the main memory 1 based on the information for relocation, which is the manual information of the static linker, recorded in the object module storage file 30. A relocation process is performed on the data (step 44).

再配置が必要になるのは、次の参照箇所の場合fil〜
(3)に対してである。
Relocation is required in the following reference locations: fil~
Regarding (3).

+11  新しくロードされたオブジェクトモジュール
3自身内での参照の場合。
+11 For references within the newly loaded object module 3 itself.

この場合には、動的リンク手段4は、オブジェクトモジ
ュール3の先頭アドレスを参照箇所に記入されている値
、すなわちオブジェクトモジュール3からのオフセント
値に加えて参照箇所に再記入する。
In this case, the dynamic linking means 4 re-enters the start address of the object module 3 into the reference location in addition to the value entered in the reference location, that is, the offset value from the object module 3.

(2)参照解決処理の結果、新しくロードされたオブジ
ェクトモジュール3からの参照が主記憶1内に存在する
外部シンボルを用いて解決された場合(前記■参照)。
(2) As a result of the reference resolution process, the reference from the newly loaded object module 3 is resolved using an external symbol existing in the main memory 1 (see (2) above).

この場合には、動的リンク手段4は、参照箇所がどの外
部シンボルを参照しているのかをオブジェクトモジュー
ル格納ファイル30に記録されている再配置のための情
報から判定して対応する外部シンボル管理表6の種別標
1l163を調べると外部シンボルが定義済であるので
、参照箇所に参照解決用エントリ62の内容を転記する
In this case, the dynamic linking means 4 determines which external symbol the reference location refers to from the information for relocation recorded in the object module storage file 30, and manages the corresponding external symbol. When the type mark 1l163 in Table 6 is examined, the external symbol is already defined, so the contents of the reference resolution entry 62 are transferred to the reference location.

(3)参照解決処理の結果、新しくロードされたオブジ
ェクトモジュール3からの参照が主記憶1内に存在する
外部シンボルを用いても依然として未解決のままであり
、未定義参照チェイン9を延長する必要がある場合(前
記■参照)。
(3) As a result of the reference resolution processing, the reference from the newly loaded object module 3 remains unresolved even if an external symbol existing in the main memory 1 is used, and it is necessary to extend the undefined reference chain 9. If there is (see ■ above).

この場合には、動的リンク手段4は、参照箇所がどの外
部シンボルを参照しているのかをオブジェクトモジュー
ル格納ファイル30に記録されている再配置のための情
報から判定して対応する外部シンボル管理表6の種別標
@63を調べると外部シンボルが未定義であるので、未
定義参照チェイン9の1エントリを主記憶1上に割り付
け、次エントリアドレス91に外部シンボル管理表6の
参照解決用エントリ62の内容を転記し、参照箇所アド
レス92に外部シンボルの参照箇所のアドレスを記入し
、外部シンボル管理表6の参照解決用エントリ62に未
定義参照チェイン9のエントリのアドレスを記入する。
In this case, the dynamic linking means 4 determines which external symbol the reference location refers to from the information for relocation recorded in the object module storage file 30, and manages the corresponding external symbol. Examining the type index @63 in Table 6, the external symbol is undefined, so one entry of undefined reference chain 9 is allocated on main memory 1, and the reference resolution entry of external symbol management table 6 is set to the next entry address 91. 62, enter the address of the reference location of the external symbol in the reference location address 92, and enter the address of the entry of the undefined reference chain 9 in the reference resolution entry 62 of the external symbol management table 6.

以上により、動的リンク手段4の動作が完了する。With the above steps, the operation of the dynamic linking means 4 is completed.

動的リンク手段4によって主記憶1上にロードされたオ
ブジェクトモジュール3は、参照の解決および再配置は
完了しているが、ロードモジュール2にはオブジェクト
モジュール3に対するパラメータの受は渡し方法等が確
立されていない、このため、動的リンク手段4の動作が
完了した直後の状態においては、ロードモジュール2は
オブジェクトモジュール3を自ロードモジュール2の1
モジュールとして実行することは不可能である。
The object module 3 loaded onto the main memory 1 by the dynamic linking means 4 has completed reference resolution and relocation, but the load module 2 has an established method for passing parameters to the object module 3. Therefore, in the state immediately after the operation of the dynamic linking means 4 is completed, the load module 2 transfers the object module 3 to one of its own load modules 2.
It is not possible to run it as a module.

このため、動的リンク手段4の動作の完了に続いて入口
名登録手段7が起動される。
Therefore, following the completion of the operation of the dynamic linking means 4, the entrance name registration means 7 is activated.

入口名登録手段7は、まず、利用者からオブジェクトモ
ジュール3の外部シンボル名、記述言語者、返却データ
タイプおよびパラメータデータタイプを人力する(ステ
ップ71)。なお、オブジェクトモジュール3の記述言
語に応じてパラメータの受は渡しの方法が異なるので(
例えば、C言語ではパラメータ渡しは値渡しで行われ、
FORTRAN言語ではアドレス渡しで行われる)、イ
ンタフェースルーチン8はオブジェクトモジュール3の
記述言語に対応した呼出しを行う必要があり、このため
に記述言語を情報として得ることは必須である。
The entrance name registration means 7 first inputs the external symbol name, description language, return data type, and parameter data type of the object module 3 from the user (step 71). Note that the method of passing parameters differs depending on the description language of object module 3 (
For example, in C language, parameter passing is done by value,
In the FORTRAN language, the interface routine 8 needs to make a call corresponding to the description language of the object module 3, and for this purpose, it is essential to obtain the description language as information.

次に、入口名登録手段7は、第1図に示すように、イン
タフェースルーチン8を主記憶1上に出力しくステップ
72)、ロードモジュール2から先頭アドレスをポイン
トすることによりロードモジュール2にインタフェース
ルーチン8を記録する(ステップ73)。
Next, as shown in FIG. 1, the entrance name registration means 7 outputs the interface routine 8 onto the main memory 1 (step 72), and by pointing the start address from the load module 2, the interface routine is output to the load module 2. 8 is recorded (step 73).

次に、オブジェクトモジュール3をロードモジュール2
を形成する1モジュールとして実行する場合の動作につ
いて説明する。
Next, load object module 3 into module 2
The operation when executed as one module that forms the following will be explained.

実行中のロードモジュール2からオブジェクトモジュー
ル3の起動がかかると、インタフェースルーチン8に制
御が渡される。インタフェースルーチン8は、ロードモ
ジュール2から渡されたパラメータをもとに呼出しパラ
メータを作成しくステップ81)、オブジェクトモジュ
ール3をサブルーチン呼出しする(ステップ82)、オ
ブジェクトモジュール3の動作が終了してインタフェー
スルーチン8に制御が戻ってくると、インタフェースル
ーチン8は、オブジェクトモジエール3から返されたデ
ータをもとにロードモジュール2への返却値を作成しく
ステップ83)、ロードモジュール2に制御を戻す。
When the load module 2 that is being executed starts the object module 3, control is passed to the interface routine 8. The interface routine 8 creates call parameters based on the parameters passed from the load module 2 (step 81), calls the object module 3 as a subroutine (step 82), and when the operation of the object module 3 is completed, the interface routine 8 When control returns to step 83, the interface routine 8 creates a return value to the load module 2 based on the data returned from the object module 3 (step 83), and returns control to the load module 2.

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

以上説明したように本発明は、オブジェクトモジュール
格納ファイル内に存在するオブジェクトモジュールを動
的に主記憶内のロードモジュールにリンクすることによ
り、利用者は呼び出される外部モジュールをオブジェク
トモジュールにしておくのみでよく、静的リンカを動作
させる必要がなく、その結果、必要なファイル資源はオ
ブジェクトモジュール格納ファイルのみで済むという効
果がある。
As explained above, the present invention dynamically links the object module existing in the object module storage file to the load module in the main memory, so that the user can simply make the external module to be called an object module. Often, there is no need to run a static linker, and as a result, the only file resource required is the object module storage file.

また、各モジュール間の参照が動的に解決されるので、
主ロードモジュールで足義された外部シンボルを呼び出
された外部モジュールで参照することが可能となり、そ
の結果、例えばメモリ管理モジュールを共有して動作す
ることにより同一プロセス空間で複数のモジエールが動
的なメモリ管理を行うことが可能になるという効果があ
る。
Also, references between each module are resolved dynamically, so
External symbols defined by the main load module can be referenced by the called external module, and as a result, multiple modules can dynamically operate in the same process space by, for example, sharing a memory management module. This has the effect of making it possible to perform memory management.

さらに、インタフェースルーチンを介してロードされた
外部モジュールを呼び出すようにしたことにより、利用
者は外部モジュールを呼び出す際の呼出し手順を一切考
慮する必要がないという効果がある。
Furthermore, by calling the external module loaded via the interface routine, the user does not have to consider the calling procedure at all when calling the external module.

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

第1図は本発明の一実施例の外部モジュール獲得方式の
構成を示すブロック図、 第2図は第1図中の外部シンボル管理表の構成を示す図
、 第3図は未定義参照チェインの1エントリの構成を示す
図、 第4図は第1図中の動的リンク手段の処理を示す流れ図
、 第5図は第1図中の入口名登録手段の処理を示す流れ図
、 第6図は第1図中のインタフェースルーチンの処理を示
す流れ図、 第7図は第1図中の動的リンク手段による初期化処理を
説明するための図、 第8図は未定義な外部シンボルが存在する主記憶におけ
る未定義参照チェインの一例を示す図、第9図は第8図
に示した未定義な外部シンボルが再配置処理により解消
された状態を示す図である。 図において、 1・・・主記憶、 2・・・ロードモジュール、 3・・・オブジェクトモジュール、 4・・・動的リンク手段、 5・・・ハフシュ表、 6・・・外部シンボル管理表、 7・・・入口名登録手段、 8・・・インタフェースルーチン、 9・・・未定義参照チェイン、 21・・・メモリ管理モジュール、 22・・・I10モジュール、 30・・・オブジェクトモジュール格納ファイル、61
・・・シンボル名アドレス、 62・・・参照解決用エントリ、 63・・・種別標識、 64・・・ハツシュチェインエントリ、91・・・次エ
ントリアドレス、 92・・・参照箇所アドレスである。
FIG. 1 is a block diagram showing the configuration of an external module acquisition method according to an embodiment of the present invention. FIG. 2 is a diagram showing the configuration of the external symbol management table in FIG. 1. FIG. FIG. 4 is a flowchart showing the processing of the dynamic linking means in FIG. 1; FIG. 5 is a flowchart showing the processing of the entrance name registration means in FIG. 1; FIG. 6 is a flowchart showing the processing of the entrance name registration means in FIG. A flowchart showing the processing of the interface routine in Fig. 1, Fig. 7 is a diagram for explaining the initialization processing by the dynamic link means in Fig. 1, and Fig. 8 is a flowchart showing the processing of the interface routine in Fig. 1. FIG. 9 is a diagram showing an example of an undefined reference chain in storage, and is a diagram showing a state in which the undefined external symbols shown in FIG. 8 have been eliminated by relocation processing. In the figure, 1... Main memory, 2... Load module, 3... Object module, 4... Dynamic link means, 5... Huffsh table, 6... External symbol management table, 7 ... Entrance name registration means, 8... Interface routine, 9... Undefined reference chain, 21... Memory management module, 22... I10 module, 30... Object module storage file, 61
...Symbol name address, 62...Entry for reference resolution, 63...Type indicator, 64...Hatsch chain entry, 91...Next entry address, 92...Reference location address.

Claims (1)

【特許請求の範囲】 主記憶上にロードされて実行中のロードモジュールが外
部記憶装置内に存在する外部モジュールを前記主記憶上
にロードしてこの外部モジュールを自ロードモジュール
を形成する1モジュールとして実行可能とする外部モジ
ュール獲得方式において、 前記外部モジュールとしてのオブジェクトモジュールを
格納するファイルが有する静的リンカのための情報を基
に前記主記憶内に存在する外部シンボルを記録する外部
シンボル管理表、この外部シンボル管理表を管理するハ
ッシュ表および未定義の外部シンボルにそれぞれ対応し
てこれら外部シンボルへの参照箇所をリスト形式につな
ぐ未定義参照チェインを用いて未定義の外部シンボルの
参照の解決を行い前記オブジェクトモジュールを前記主
記憶内に再配置する動的リンク手段と、この動的リンク
手段によって再配置された前記オブジェクトモジュール
を前記ロードモジュールを形成する1モジュールとして
実行可能とするためのインタフェースルーチンを出力す
る入口名登録手段と、 を有することを特徴とする外部モジュール獲得方式。
[Claims] A load module loaded onto the main memory and being executed loads an external module existing in an external storage device onto the main memory, and uses this external module as one module forming its own load module. an external symbol management table that records external symbols existing in the main memory based on information for a static linker included in a file storing an object module as the external module; References to undefined external symbols are resolved using a hash table that manages this external symbol management table and an undefined reference chain that connects references to these external symbols in a list format corresponding to each undefined external symbol. dynamic linking means for relocating the object module in the main memory; and an interface routine for making the object module relocated by the dynamic linking means executable as one module forming the load module. An external module acquisition method comprising: an entrance name registration means for outputting; and an external module acquisition method.
JP63015198A 1988-01-26 1988-01-26 External module acquisition method Expired - Lifetime JP2841363B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63015198A JP2841363B2 (en) 1988-01-26 1988-01-26 External module acquisition method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63015198A JP2841363B2 (en) 1988-01-26 1988-01-26 External module acquisition method

Publications (2)

Publication Number Publication Date
JPH01191232A true JPH01191232A (en) 1989-08-01
JP2841363B2 JP2841363B2 (en) 1998-12-24

Family

ID=11882168

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63015198A Expired - Lifetime JP2841363B2 (en) 1988-01-26 1988-01-26 External module acquisition method

Country Status (1)

Country Link
JP (1) JP2841363B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6363436B1 (en) 1997-01-27 2002-03-26 International Business Machines Corporation Method and system for loading libraries into embedded systems

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6238954A (en) * 1985-08-14 1987-02-19 Fujitsu Ltd Control system for address mode switching by dynamic link

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6238954A (en) * 1985-08-14 1987-02-19 Fujitsu Ltd Control system for address mode switching by dynamic link

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2841363B2 (en) 1998-12-24

Similar Documents

Publication Publication Date Title
US5930503A (en) System and method for on demand registration of tasks
US5146593A (en) Procedure call interface
US8074231B2 (en) Configuration of isolated extensions and device drivers
CN105723341B (en) Realization method and system for layout engine and the memory model of script engine
US6112025A (en) System and method for dynamic program linking
US7131115B2 (en) Unwinding instrumented program code
JPH01306923A (en) System for connecting different languages
US20140351804A1 (en) Generating and applying patches to computer program code concurrently with its execution
US9104804B2 (en) Method and system for invoking just-in-time debugger
JPH0836488A (en) Method and device for checking run-time error using dynamic patching
US20050149947A1 (en) Driver-specific context for kernel-mode shimming
US6901583B1 (en) Method for testing of a software emulator while executing the software emulator on a target machine architecture
JP5131563B2 (en) Computer, operation rule application method, operating system
US20040123308A1 (en) Hybird of implicit and explicit linkage of windows dynamic link labraries
JP2000010790A (en) System and method for unitary data structure for making global collision decision and computer program product
JPH07230386A (en) Data processor and method for calling control routine
US20110167415A1 (en) Language processing apparatus, language processing method, and computer program product
US5404531A (en) Method and apparatus for compiler processing on program related to data transfer and calculation, and method of managing memory
US8250589B2 (en) Method for simplifying interfaces having dynamic libraries
US6748503B1 (en) System and method facilitating unmanaged code participation in garbage collection
JPH01191232A (en) External module acquiring system
US5388263A (en) Procedure state descriptor system for digital data processors
CN110378081A (en) A kind of shell adding dynamic link library loading method and device
US11947532B2 (en) Lifecycle tracking of data objects
CN111190658A (en) System for supporting dynamic loading of application program on SoC (system on chip) without MMU (memory management unit) based on-chip execution