JPH0465717A - プログラム呼び出し方法 - Google Patents

プログラム呼び出し方法

Info

Publication number
JPH0465717A
JPH0465717A JP17882490A JP17882490A JPH0465717A JP H0465717 A JPH0465717 A JP H0465717A JP 17882490 A JP17882490 A JP 17882490A JP 17882490 A JP17882490 A JP 17882490A JP H0465717 A JPH0465717 A JP H0465717A
Authority
JP
Japan
Prior art keywords
program
call
called
entry
relay
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.)
Pending
Application number
JP17882490A
Other languages
English (en)
Inventor
Shigeyuki Hayashi
林 繁行
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 JP17882490A priority Critical patent/JPH0465717A/ja
Publication of JPH0465717A publication Critical patent/JPH0465717A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔概要〕 プログラムから他のプログラムを呼び出すプログラム呼
び出し方法に関し、 呼ばれるプログラムを一度主記憶上にローディングした
以降、実行時ライブラリLcの呼び出しおよびプログラ
ム管理テーブルT1の検索を不要とし、プログラム呼び
出しを高速化して実行性能を向上させることを目的とし
、 プログラムから他のプログラムを呼び出す文(例えばC
ALL文)を実行する際に呼び出されると共に、実行時
ライブラリLcあるいは呼び出し先のプログラムを呼び
出すための中継テーブルT3に分岐する情報を設定する
中継テーブル呼出テーブルT2と、この中継テーブル呼
出テーブルT2から分岐したエントリに、呼び出し先の
プログラムの入口アドレスなどを設定する中継テーブル
T3とを備え、呼び出し文を実行する際に、上記中継テ
ーブル呼出テーブルT2および中継テーブルT3を介し
て呼出先のプログラムに分岐、あるいは上記中継テーブ
ル呼出テーブルT2によって実行時ライブラリLcに分
岐してプログラム管理テーブルTIを検索し、主記憶上
に呼出先のプログラムが存在しないときにローディング
、上記中継テーブル呼出テーブルT2および中継テーブ
ルT3に情報を設定した後、呼出先のプログラムに分岐
するように構成する。
〔産業上の利用分野〕 本発明は、プログラムから他のプログラムを呼び出すプ
ログラム呼び出し方法に関するものである。
〔従来の技術と発明が解決しようとする課題〕従来、動
的プログラム構造の場合、第5図に示すように、呼ばれ
るプログラムBの名前1B”をプログラム呼び出し管理
用の実行時ライブラリLCに渡し、呼び出しを依願する
。呼び出しの依願を受けた実行時ライブラリLcは、主
記憶上にローディングしたプログラムを管理するプログ
ラム管理テーブルT1を検索し、既にプログラムBがロ
ーディングされていた場合、プログラム管理テーブルT
1から入口アドレスを求め、プログラムBに制御を渡す
、一方、プログラムBが主記憶上にローディングされて
いなかった場合、実行時ライプライLcはプログラムB
を主記憶上にローディングし、プログラム管理テーブル
T1にプログラム名“B”、入口アドレスなどを登録し
、その後にプログラムBに制御を渡す。このため、ある
プログラムから他のプログラムを呼び出す毎にプログラ
ム呼び出しを実行時ライブライLcに依願すると、当該
実行時ライブラリLcがその都度、プログラム管理テー
ブルT1を検索して入口アドレスを求める手間が必要と
なり、高速に呼び出し処理を行えないという問題があっ
た。
ここで、動的プログラム構造は、実行単位に呼ぶプログ
ラムAと呼ばれるプログラムBとが存在する場合、ロー
ドモジュール作成時にこれらの関係を解決/結合するの
ではなく、実行時に呼ばれるプログラムBが必要となっ
た時点で主記憶上にローディングして呼び出し、不要に
なった時点で主記憶上から削除して主記憶の使用効率の
効率化を図るようにしたものである。また、プログラム
は実行可能形式のロードモジュールを指す。
本発明は、呼ばれるプログラムを一度主記憶上にローデ
ィングした以降、実行時ライブラリLcの呼び出しおよ
びプログラム管理テーブルT1の検索を不要とし、プロ
グラム呼び出しを高速化して実行性能を向上させること
を目的としている。
〔課題を解決するための手段〕
第1図は、本発明の原理構成図を示す。
第1図において、プログラム管理テーブルTIは、主記
憶上にローディングしたプログラムの入口アドレスなど
を登録して管理するものである。
中継テーブル呼出テーブルT2は、実行時ライブラリL
cに分岐したり、あるいは呼び出し先のプログラムを呼
び出す中継テーブルT3に分岐したりする情報を設定す
るテーブルである。
中継テーブルT3は、呼出先のプログラムに分岐する情
報(人口アドレスなど)などを設定するテーブルである
〔作用〕
本発明は、第1図に示すように、プログラム中の呼び出
し文を実行する際に、中継テーブル呼出テーブルT2お
よび中継テーブルT3を介して呼出先のプログラムに分
岐、あるいは中継テーブル呼出テーブルT2によって実
行時ライブラリLcに分岐してプログラム管理テーブル
T1を検索し、主記憶上に呼出先のプログラムが存在し
ないときにローディング、中継テーブル呼出テーブルT
2および中継テーブルT3に情報を設定した後、呼出先
のプログラムに分岐するようにしている。
従って、呼ばれるプログラムを一度主記憶上にローディ
ングした以陣、実行時ライブラリLcの呼び出しおよび
プログラム管理テーブルTIの検索を行うことなく、呼
出先のプログラムに分岐することにより、プログラム呼
び出しを高速化して実行性能を同上させることが可能と
なる。
〔実施例〕
次に、第1図から第4図を用いて本発明の1実施例の構
成および動作を順次詳細に説明する。
第1図において、プログラムAは、呼出元の実行可能形
式のロードモジュールAである。このプログラムA中で
呼出文(ここではC0BOL言語で記述した“CALL
  B”)を実行する際に、図示矢印を用いて示すよう
に初回は分岐する。2回目以陣は、第2図に示すように
分岐する。
実行時ライブラリLcは、呼出元のプログラムから呼出
依願を受けたときに、プログラム管理テーブルT1を検
索して主記憶上にプログラムがローディングされており
、入口アドレスが見つかったときにこの入口アドレスの
プログラムに制御を渡したり、主記憶上にプログラムが
ローディングされていないときにローディングし、入口
アドレスなどを当該プログラム管理テーブルT1、中継
テーブル呼出テーブルT2、および中継テーブルT3な
どに登録/設定した後、入口アドレスのプログラムに制
御を渡したりなどするものである。
プログラム管理テーブルTIは、主記憶上にローディン
グしたプログラムの入口アドレスなどを登録して管理す
るものである。
中継テーブル呼出テーブルT2は、プログラムAの呼出
文の実行時に、実行時ライブラリLcに分岐したり、あ
るいは呼び出し先のプログラムを呼び出す中継テーブル
T3に分岐したりする情報を設定するテーブルである。
この中継テーブル呼出テーブルT2は、ロードモジュー
ル上に設け、CALL文からの該当するプログラム名の
エントリへの分岐をいわば固定的にして行い易くすると
共に固定的な領域(branchl 、addrlの領
域)の情報の設定(後述する第1図から第2図、あるい
は第2図から第1図への書き換えなど)を行い易くして
いる。
中継テーブルT3は、呼出先のプログラムに分岐する情
報(入口アドレスなど)を設定するテーブルである。こ
の中継テーブルT3は、複数のプログラムから1つのプ
ログラムが呼び出す構造のときに、主記憶上からこの1
つのプログラムを開瞼した場合に当該中継テーブルT3
のaddr2の“入口アドレス”を第3図“■のアドレ
ス”に変更するという**な操作によって可能にするよ
うにしたものである。また、削除後に再ローデイングし
た場合にも、簡単に操作によって複数のプログラムから
呼び出される1つのプログラムの入口アドレスを設定可
能にしたものである。
プログラムBは、呼出先のプログラムを主記憶上にロー
ディングしたロードモジュールである。
まず、第1図矢印の順番に従い、プログラムA中の“C
ALL  B″の実行時に、プログラムBを初めて呼び
出すときの動作を具体的に説明する。
(1)プログラムA中で“CALL  B″を実行する
。これに対応して、中継テーブル呼出テーブルT2の■
のBのエントリに分岐する。
(2)■のBのエントリのbranchl中の“■のレ
ジスタ退避” (Lcを呼び出すためにレジスタを使う
ために当該レジスタの内容を退避)を行った後、add
rl中の“■への分岐”を行う、この■のエントリ中の
“Lcの呼出(T2経由の呼出しであるという情報をパ
ラメタとする)を行う。
(3)  実行時ライブラリLcは、T2からの呼出し
であるという情報により、エントリ先頭から固定オフセ
ットにあるプログラム名Bを取り出す。
そして、プログラム管理テーブルT1を検索し、ここで
はプログラムBが主記憶上に存在しないのでコーディン
グし、プログラム管理テーブルTIにエントリを追加し
、入口アドレス、関連エントリ連鎖、T3エントリのア
ドレスなどを登録する。
また、中継テーブルT3のBのエントリを作成し、ad
dr2にBの入口アドレスおよびプログラム名Bを図示
のように設定する。更に、T2のBのエントリのbra
nchlに“■へ分岐” 、addrlに“T3のエン
トリアドレス°を設定する(第2図参照)。
尚、他のプログラムからBが呼び出されている場合は、
既にローディングされ、かつT1の主/副入口のエント
リおよびT3のBのエントリは、作成済になっている。
(4)実行ライブラリLcがプログラムAのレジスタを
復元し、呼出先のプログラムBに分岐する。
(5)  プログラムBが処理を終了した後、プログラ
ムAのCALL  Hの次に復帰する。
以上によって、プログラムAからプログラムBを初回呼
び出すときの処理を終了し、第2図に示すようにプログ
ラム管理テーブルT1、中継テーブル呼出テーブルT2
および中継データT3に設定される。
次に、第2図矢印の順番に従い、プログラムA中の“C
ALL  B”の実行時に、プログラムBを2回目以降
に呼び出すときの動作を具体的に説明する。
(1)プログラムA中で“CALL  B″を実行する
。これに対応して、中継テーブル呼出チーフルT2の■
のBのエントリに分岐する。
(2)■のBのエントリのbranchl中の1■へ分
岐2によって■へ分岐する。この■でaddrlのアド
レス(T3のエントリアドレス)を使用した分岐”で、
中継テーブルT3のBのエントリに分岐する。
(3)中継テーブルT3のBのエントリの″addr2
 (プログラムBの入口アドレス)を使用した分岐”に
よって、プログラムBに分岐する。
(4)プログラムBが処理を終了した後、プログラムA
のCALL  Bの次に復帰する。
以上によって、プログラムAからプログラムBを2回目
以降に呼び出すときの処理を終了する。
このように、2回目以降は、プログラムAからプログラ
ムBを呼び出すときに、ロードモジュール上に設けた中
継テーブル呼出テーブルT2から作業域などに設けた中
継テーブルT3に分岐し、この中継テーブルT3に設定
した入口アドレスをもとにプログラムB(ロードモジュ
ールB)に分岐するという簡単な手順により、行うこと
ができ、実行時ライブラリLcの呼び出しおよびプログ
ラム管理テーブルTIの検索が不要となり、高速に呼出
処理を行うことが可能となる。
第3図は、本発明の動作説明図(削除例)を示す、これ
は、第2図状態のもとで、主記憶上からプログラムBを
削除する場合の処理を示す。以下矢印の順番に従って具
体的に説明する。
(1)  プログラムAが削除文“CAMCEL B”
を実行する。これに対応して、プログラム名“B”CA
MCEL文”をパラメタに実行時ライブラリLcを呼び
出す。
(2)実行時ライブラリLcがプログラム管理テーブル
T1を検索してBのエントリを見つける。
プログラムBを主記憶上から削除し、T1のBのエント
リの入口アドレスおよび副入口であるB1のエントリの
入口アドレスを“0”に設定、および関連エントリ連鎖
を初期状態に設定する。ここで、T3のエントリアドレ
スはそのままとしておく。また、T3のaddr2に“
■のアドレス1 (■のLcへの分岐処理のアドレス)
を図示のように設定する。
以上の処理によって主記憶上からプログラムBの削除お
よびそれに対応する処理を終了する。
次に、第3図状態で、プログラムAからプログラムBを
呼び出す処理について、第4[!I矢印を用いて示す順
序に従って詳細に説明する。
(1)プログラムA中で“CALL  B”を実行する
。これに対応して、中継テーブル呼出テーブルT2の■
のBのエントリに分岐する。
(2)■のBのエントリのbranchl中の“■へ分
岐′によって■へ分岐する。更に、この■で“addr
lのアドレス(T3のエントリアドレス)を使用した分
岐2で、中継テーブルT3のBのエントリに分岐する。
(3)  中継テーブルT3のBのエントリの“add
r2 (■のアドレス)を使用した分岐”によって、■
に分岐する。
(4)  ■の“■へのレジスタの退避”によって現在
のレジスタの内容を■レジスタ退避域に退避した後、“
Lcへの分岐(T3経由の分岐であるという情報をパラ
メタとする)”によって実行時ライブラリLcに分岐す
る。
(5)  実行時ライブラリLcは、T3からの呼出で
あるという情報により、エントリ先頭から固定オフセッ
トにあるプログラム名Bを取り出す、プログラム管理テ
ーブルT1を検索して主記憶上に存在するか検査するが
、ここでは削除した後の呼出であって存在しないため、
ローディングし、T1のBのエントリに入口アドレスを
設定する。また、T3のB、Blのエントリのaddr
2に入口アドレスを設定する。
(6)  プログラムAのレジスタを復元し、プロブラ
ムBに分岐する。そして、プログラムBの実行終了後、
プログラムAのCALL  Bの次に復帰する。
以上によって、プログラムBを主記憶上から削除した状
態のもとで、プログラムAからプログラムBを呼び出す
ときの処理を終了する。これ以降のプロプラムAからプ
ログラムBの呼び出しは、第2図と同様である。
〔発明の効果〕
以上説明したように、本発明によれば、中継テーブル呼
出テーブルT2および中継テーブルT3を設け、最初の
呼出時に実行時ライブラリLcがプログラム管理テーブ
ルTlを検索してこれらT2、T3のテーブルに入口ア
ドレスなどを設定しておき、2回目以降の読み出し時に
これらT2、T3のテーブルを経由して直接に呼出先の
プログラムに分岐する構成を採用しているため、呼ばれ
るプログラムを一度主記憶上にローディングした以降、
実行時ライブラリLcの呼び出しおよびプログラム管理
テーブルT1の検索を行うことなく、呼出先のプログラ
ムに直接に分岐することができ、プログラム呼び出しを
高速化して実行性能を向上させることができる。これに
より、プログラムの呼出回数が多いプログラム構造程、
実行性能を向上させることができる。
【図面の簡単な説明】
第1図は本発明の1実施例構成図(初回)、第2図は本
発明の1実施例構成図(2回目板i)、第3図は本発明
の動作説明図(削除例)、第4図は本発明の動作説明図
(削除後の呼出例)、第5図は従来技術の説明図を示す
。 図中、A、Bはプログラム(ロードモジュール)、LC
は実行時ライブラリ、Tlはプログラム管理テーブル、
T2はロードモジュール上に設けた中継テーブル呼出テ
ーブル、T3は中継テーブルを表す。

Claims (2)

    【特許請求の範囲】
  1. (1)プログラムから他のプログラムを呼び出すプログ
    ラム呼び出し方法において、 プログラムから他のプログラムを呼び出す文(例えばC
    ALL文)を実行する際に呼び出されると共に、実行時
    ライブラリLcあるいは呼び出し先のプログラムを呼び
    出すための中継テーブルT3に分岐する情報を設定する
    中継テーブル呼出テーブルT2と、 この中継テーブル呼出テーブルT2から分岐したエント
    リに、呼び出し先のプログラムの入口アドレスなどを設
    定する中継テーブルT3とを備え、呼び出し文を実行す
    る際に、上記中継テーブル呼出テーブルT2および中継
    テーブルT3を介して呼出先のプログラムに分岐、ある
    いは上記中継テーブル呼出テーブルT2によって実行時
    ライブラリLcに分岐してプログラム管理テーブルT1
    を検索し、主記憶上に呼出先のプログラムが存在しない
    ときにローディング、上記中継テーブル呼出テーブルT
    2および中継テーブルT3に情報を設定した後、呼出先
    のプログラムに分岐するように構成したことを特徴とす
    るプログラム呼び出し方法。
  2. (2)上記中継テーブル呼出テーブルT2について、プ
    ログラムを実行可能形式にコンパイルしたロードモジュ
    ール上に設けたことを特徴とする請求項第(1)項記載
    のプログラム呼び出し方法。
JP17882490A 1990-07-05 1990-07-05 プログラム呼び出し方法 Pending JPH0465717A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17882490A JPH0465717A (ja) 1990-07-05 1990-07-05 プログラム呼び出し方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17882490A JPH0465717A (ja) 1990-07-05 1990-07-05 プログラム呼び出し方法

Publications (1)

Publication Number Publication Date
JPH0465717A true JPH0465717A (ja) 1992-03-02

Family

ID=16055307

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17882490A Pending JPH0465717A (ja) 1990-07-05 1990-07-05 プログラム呼び出し方法

Country Status (1)

Country Link
JP (1) JPH0465717A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0822393A (ja) * 1994-07-07 1996-01-23 Nec Corp 動的ローディング制御装置
JPH09511351A (ja) * 1995-01-28 1997-11-11 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ 遠隔通信装置内のソフトウェア構成
US6363436B1 (en) 1997-01-27 2002-03-26 International Business Machines Corporation Method and system for loading libraries into embedded systems

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0822393A (ja) * 1994-07-07 1996-01-23 Nec Corp 動的ローディング制御装置
JPH09511351A (ja) * 1995-01-28 1997-11-11 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ 遠隔通信装置内のソフトウェア構成
US6363436B1 (en) 1997-01-27 2002-03-26 International Business Machines Corporation Method and system for loading libraries into embedded systems

Similar Documents

Publication Publication Date Title
CN107436809A (zh) 数据处理器
US6101326A (en) Method and apparatus for frame elimination for simple procedures with tail calls
JPH0465717A (ja) プログラム呼び出し方法
JPH02211560A (ja) 情報処理システム
JP2555920B2 (ja) オンラインリアルタイム処理装置
JPH0552539B2 (ja)
JPH0221610B2 (ja)
JPS6116336A (ja) Fortran入出力制御処理方式
JPS60178539A (ja) 情報処理装置におけるバイパス制御方式
JPS63106053A (ja) デ−タベ−ス書込み/読出し方式
JPH01258029A (ja) データ処理装置
JPH0327439A (ja) プログラムの共有モジュール管理方式
JP2621898B2 (ja) 外部参照型アドレス定数の動的解決処理方式
JPH06131212A (ja) 他のプログラムによるターゲットプログラムの呼び出しに関してターゲットプログラムの実行を追跡するコンピュータ制御方法
JPH04181454A (ja) データアクセス制御装置
JPS6356746A (ja) 仮想計算機におけるペ−ジングバイパス方式
JP2601541B2 (ja) Fortran入出力並び処理方式
JPH0612302A (ja) ファイルアクセス処理方式
JPH0724030B2 (ja) デバック装置
JPH04107634A (ja) メモリデータバイパス制御方式
JPH04314130A (ja) 直接編成ファイルへの入出力方法
JPH01191232A (ja) 外部モジュール獲得方式
JPH04217027A (ja) 情報処理装置
JPS63178345A (ja) デ−タベ−スアクセス処理方式
JPS63136227A (ja) プログラム格納フアイルの検索方式