JPH021017A - プログラム結合制御方式 - Google Patents

プログラム結合制御方式

Info

Publication number
JPH021017A
JPH021017A JP14266088A JP14266088A JPH021017A JP H021017 A JPH021017 A JP H021017A JP 14266088 A JP14266088 A JP 14266088A JP 14266088 A JP14266088 A JP 14266088A JP H021017 A JPH021017 A JP H021017A
Authority
JP
Japan
Prior art keywords
module
name
library
program
branch
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
JP14266088A
Other languages
English (en)
Inventor
Teruo Yoshioka
吉岡 照雄
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 JP14266088A priority Critical patent/JPH021017A/ja
Publication of JPH021017A publication Critical patent/JPH021017A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概 要〕 データ処理装置におけるモジュール化して作成されたプ
ログラムの動的リンクを用いた結合制御方式に関し。
動的リンクの利点を損うことな(、操作性と実行性能の
改善を図ることを目的とし。
モジュール化されたプログラムを結合し、実行するデー
タ処理装置において、結合時に、あるモジュールから分
岐される他のモジュールの入口名と、その分岐先のモジ
ュールが格納されているライブラリの名前あるいは識別
名とをロードモジュール内に記録するとともに当該分岐
先のモジュールは予め主記憶上にロードしないでおき、
実行中のモジュールから分岐先のモジュールに制御を渡
す時点で、ロードモジュール内に記録されている入口名
とライブラリの名前あるいは識別名とを用いて1分岐先
のモジュールをファイルから主記憶上にロードし、制御
を渡す構成をもつ。
〔産業上の利用分野〕
本発明は、データ処理装置におけるモジュール化して作
成されたプログラムの結合制御方式に関するものであり
、特にメモリ資源の利用効率を上げるため分岐先モジュ
ールのロードを分岐実行時に行う動的リンクにおけるプ
ログラム結合制御方式に関する。
〔従来の技術〕
一般に、プログラムはモジュール化して作成し。
作成されたモジュールを結合して実行するのが普通であ
る。この結合の仕方には静的リンクと動的リンクの二つ
がある。
静的リンクでは、結合編集プログラムが予め複数のモジ
ュールを一つのロードモジュールに加工してファイルに
格納する。そして実行時には、プログラムフェッチ機構
が、結合された一つのロードモジュールをファイルから
主記憶にロードし。
制御を渡す。
他方、動的リンクの場合は、?j!数のモジュールを予
め一つにまとめず、結合編集プログラムの複数のモジュ
ールをそれぞれ一つのモジュールとしてばらばらにファ
イルに格納しておき、実行時にそのロードモジュールに
制御が渡る時点でプログラムフェッチ機構がファイルか
ら主記憶にロードする。
特に、動的リンクでは、どちらのリンク方法を採るかに
関係な(プログラムを作ることができるように、結合編
集プログラムが動的リンクテーブルと呼ばれる分岐のた
めの中継コードをロードモジュール中に挿入している。
第4図および第5図により、従来の動的リンクによるプ
ログラム結合方式について説明する。
第4図は従来方式による中継コードとプログラム結合制
御の説明図であり、lはロードモジュール、2はプログ
ラムPである。3はプログラムPの分岐先を参照するた
めにロードモジュール1内に作成された中継コードであ
り1分岐先モジュールがロードされていないときの初期
状態の内容を示す。3′は分岐先モジュールに対する1
回目の呼び出しの際にモジュールがロードされた結果に
したがって書き換えられた中継コードである。4は分岐
先のモジュールBである。
プログラムPにおいて、”Lt5.A’は、ラベルへの
アドレス定数を汎用レジスタ15に格納するロード命令
であり、“BALR14,15”は、汎用レジスタ14
に次の命令のアドレスを設定し、汎用レジスタ15に設
定されているアドレスに分岐するブランチ連係命令であ
る。ラベルAの“DCV(B)  ”は、■制御形式の
アドレス定数の定義命令であり、モジュールBの入口基
を参照する。
中継コード3は、ロードモジュールlの作成時に埋め込
まれる。1回目の呼び出しの際、命令″BF″でラベル
FのSVC<スーパーバイザコール)命令を実行し、動
的リンクを行う。すなわちモジュールBがロードされて
V制御形式のアドレス定数が解決され、中継コード3が
3′に書き換えられる。
このときラベルCのアドレス定数A(0)には。
入口基Bのアドレスβが設定される。これにより。
ラベルSの“Lt5.C”とBR15”とが実行され1
分岐先(モジュールB)に制御が渡される。
また中継コード3′では、中継コード3の命令“BF”
が“BS”に書き換えられており。
ラベルFのSVC命令の代りにラベルSの“Lis、 
c ”とBR15″が実行されるようにする。
これにより、2回目以降のモジュールBの呼び出しでは
、中継コード3′を用いて直ちに分岐できる。
第5図は、従来方式によるプログラム結合制御の実行手
順を具体例で示したものである。図において。
(a)は、プログラムPがモジュールBおよびモジュー
ルCをCALL (呼び出し)しており、モジュ−)L
t Bはライブラ’)”USERl、USERL!B(
B)”に格納され、モジュールCはライブラリ“5YS
1.C0BLrB (C)  ”に格納されていること
を示す。
Tblは、プログラムPのリンク(結合編集)時に動的
リンクの指定と、入力ファイル“USER1゜P、OB
J”および出力ファイル“USERI。
P、LOAD (P)  ”とが指定されたことを示す
ここでロードモジュールには、第4図で説明した中継コ
ードが挿入される。
(C)は、プログラムPの実行時に、利用者がモジュー
ルB、Cが格納されているライブラリ“USERI、U
SERLIB″″、“5YS1.C0BLIB”を指定
し1分岐時にそれらのライブラリが検索されることを示
す。
モジュールBの検索は、■のライブラリ″USER1,
USERLIB”から開始され、モジュールBが発見さ
れて、検索が終了する。
モジュールCの検索も■のライブラリ“USERl、U
SERLIB”で開始されるが発見されず、■のライブ
ラリ“5YS1.C0BLIB”で続行される。ここで
モジュールCが発見され。
検索が終了する。
検索されたモジュールは主記憶にロードされ。
制御が渡される。
〔発明が解決しようとする課題〕
従来の静的リンクによるプログラム結合方式では、複数
のプログラムによって共有される共通モジュールは、各
プログラムのロードモジュールにそれぞれ重複して取り
込まれ結合されるため、冗長となりDASDのスペース
効率を低下させる。
また共通モジュールを修正したときは、その共通モジュ
ールを含むロードモジュールを全て結合し直さなければ
ならず、プログラムの保守性が悪いという欠点がある。
この欠点を解決するために動的リンクが考え出された。
この動的リンクにより、共通モジュールは各プログラム
から呼び出されるときにのみ結合されるので、DASD
のスペース効率とプログラムの保守性は改善されたが、
その反面、実行時の操作性と性能が低下した。
つまり動的リンクでは、プログラムを実行するときに利
用者が分岐先のモジュールのライブラリを指定する操作
が必要であり、またモジュールに分岐する際にライブラ
リの検索が行われるが、モジュールの入口基とライブラ
リ名との対応情報がないため、複数のライブラリが指定
されていると無関係なライブラリについて検索する場合
があり。
オーバヘッドが大きくなる欠点があった。
本発明は、動的リンクの利点を損うことなく操作性と実
行性能の改善を図ることを目的とする。
〔課題を解決するための手段〕
本発明は、ロードモジュールに挿入される分岐のための
中継コードの中に分岐先のモジュールが格納されている
ライブラリの名前あるいは識別名を設定することにより
、前述した課題を解決する。
プログラムの実行時にこの中継コードに制御が渡ると、
このライブラリ名と分岐先入0名とから即座にプログラ
ムの格納されているファイルが確定する。これにより、
利用者がライブラリを指定することなく、不要なライブ
ラリの検索をすることもなく、ファイルから主記憶に分
岐先モジュールをロードすることができる。
第1図は0本発明の原理説明図であり1本発明による中
継コードの構成を具体例を用いて示している・。
図において、20は結合編集プログラム、21はロード
モジュール、22は他のモジュール(B)への分岐をも
つプログラムP523は結合編集プログラム20によっ
て挿入された中継コード、23aは分岐先モジュールの
入口基の指定部、23bは分岐先モジュールが格納され
ているライブラリのライブラリ名の指定部、23′ は
分岐実行時に書き換えられた中継コード、24は分岐先
のモジュールBである。
結合編集プログラム20は、オブジェクトの結合編集の
際動的リンクの指定および分岐先モジュールの格納、ラ
イブラリの指定があると3作成したロードモジュール2
1中に分岐ごとに中継コード23を挿入する。中継コー
ド23には9分岐先モジュールの入口基と格納ライブラ
リの名前あるいは識別名とを、それぞれの指定部23a
、23bにより設定する。
プログラムPの分岐先は、入口基Bで外部参照され、ブ
ランチ連係命令BALRを実行するとき中東コード23
に制御が渡される。
中継コード23では、最初にSVC命令が実行され、ス
ーパーバイザにより、指定部23 a 、 23 b 
(7)分岐先モジュールの入自宅と格納ライブラリの名
前あるいは識別名とに基づき、直ちに分岐先モジュール
がファイル検索されて主記憶ヘロードされる。この結果
分岐先人自宅のアドレスが確定するので中継コードが2
3′ に書き換えられるので次回の呼び出しからは直ち
に分岐することが可能となる。
〔作 用〕
本発明によれば、利用者は結合編集時に分岐先モジュー
ルの格納ライブラリ名を指定し、各プログラム実行時に
は指定が不要となる。
分岐先モジュールの入自宅と格納ライブラリ名とが中継
コードに設定されているため1分岐実行時にスーパーバ
イザは、該当するライブラリを直ちに選択して検索する
ことができ9分岐先モジュールを上記taにロードする
のに要する時間が短縮される。
〔実施例〕
次に1本発明によるプログラム結合制御方式の詳細を実
施例により説明する。
第2図は本発明方式によるプログラム結合制御の実行手
順の1実施例を示す。
図において、(a)はプログラムPにより呼び出される
モジュールS、Cの格納ライブラリの例を示す。
(blは、リンク(結合)E集)時の操作内容を示しL
INK  ’USER1,P、OBJ’  LOAD(
’USER1,P、LOAD (P)’)NEWDYN
AMICNCAL+DLIB(’USERI。
USERLIB’  “5YS1.C0BLIB”)の
第1項はプログラムPについての本発明による動的リン
クの指定、第2項は分岐先モジュールの格納ライブラリ
名の指定全表わしている。
(C1は、プログラムPの実行時の操作内容を示し。
CALL  ’LISER1,P、LOAD (P)’
によりプログラムPを呼び出すが1分岐先モジュールB
Cのライブラリ指定は不要である。これによりプログラ
ムPが実行されモジュールBあるいはCの呼び出しを行
うとき、第1図で説明した中継コードによりライブラリ
を検索する。
モジュールBの検索では、■のライブラリ“USERl
、USERLIB” を検索し、モジュールBを発見し
て検索を終了する。
モジュールCの検索では、■のライブラリ5YS1.C
0BLIB’ を検索し、モジュールCを発見して検索
を終了する。
このように3分岐先モジュールを検索する際そのモジュ
ールを含むライブラリ以外を検索する必要がないので無
駄な処理がない。
次に第3図により中継コードとプログラム結合制御の1
実施例を説明する。
第3図において、30は結合編集プログラムLINK、
31はロードモジュールLM、32はプログラムP、3
3は初期状態の中継コードDLC,33’ は1回目の
呼び出しの際に書き換えられた中継コードDLC,34
はモジュールBであり、これらは第1図に示されている
20ないし24の要素に対応している。
中継コードDLC33において、先頭の1語(4ハイド
)は後方にあるSVC命令に分岐する命令その次の1語
は主記憶にロードされたモジュールの入口点アドレスを
格納するための領域で、初期状態では二進数値の0とな
ってい7゜ 次の2語は分岐先の入自宅を設定する領域9次の11語
は分岐先モジュールの格納されているライブラリの名前
を設定する領域2次の半語はスーパーバイザを呼び出す
SvC命令である。
さらに次の語は先頭から2語目の領域から入口点アドレ
スを取り出す命令、そして次の半語は取り出した入口点
アドレスに分岐する命令である。
(11次に結合編集プログラム(名前はrLINK」と
する)がどのようにして中継コードを作り出すかを説明
する。
結合編集プログラムrL I NKJは、プログラムP
のオブジェクトが格納されているファイルrUsER1
,P、0BJJを入力にして。
ロートモシュー/I/31をrUsERl、P、LOA
DJにメンバrPJとして出力する。このとき、プログ
ラムPが呼び出しているモジュールBについて、中継コ
ードDLC33をロードモジュール31中に出力する。
中継コードDLC33の中には1分岐先入口名rBJと
モジュールBが格納されているライブラリの名前rUs
ER1゜USERLIBJが設定される。
ここで1分岐先人口名は、オブジェクトから得られ、モ
ジュールが格納されているライブラリの名前は、結合編
集プログラムに対するパラメタrDLIBJに指定され
たライブラリを順次メンバ名rBJで検索することによ
り得られる。
(2)  次に、プログラム実行時に分岐先モジュール
に制御が渡る手順を説明する。
■ニブログラムPにおいてモジュールBを呼び出すため
の外部参照アドレス定数は、結合編集プログラムによっ
て中継コードDLCを指すように設定されているため、
プログラムPがモジュールBを宛先として分岐すると、
中継コードDLCに制御が渡る。
■:中継コードDLCは、初期状態においてSVC命令
への分岐命令(B 60 (15))で始まっており、
中継コードDLCに始めて制御が渡るとSVC命令が実
行される。
■: SVC命令により呼び出されたスーパーバイザは
、SVC割り込み旧PSWから中継コードのアドレスを
知り、ライブラリrUsER1゜USERLIBJをオ
ーブンして、メンバrBJを主記憶にロードする。そし
てその入口点アドレスを中継コードの2語目の領域に設
定し、1語目の分岐命令をSVC命令の直後に分岐する
ように変位を書き換えて復帰する。
■:SVC命令から復帰すると、中継コードの2語目か
ら分岐先入口点アドレスを、汎用レジスフ15にロード
して1分岐する。
■:2回目の呼び出しからは、書き換えられた中継コー
ドD L C33’ が実行されるため、もはやSVC
命令は実行されず、中継コード内に設定された入口点ア
ドレスに基づいて即座に分岐が行われる。
〔発明の効果〕
本発明の動的リンクを用いたプログラム結合制御方式に
よれば、プログラム実行時にライブラリを指定する必要
がなくなるため操作性が向上し。
またプログラムから他のモジュールへの分岐の際に無用
なライブラリを検索することがないため実行性能が向上
する。
【図面の簡単な説明】
第1図は本発明の原理説明図、第2図は本発明方式によ
るプログラム結合制御の実行手順の1実施例の説明図、
第3図は本発明方式による中継コードとプログラム結合
制御の1実施例の説明図。 第4図は従来方式による中継コードとプログラム結合制
御の説明図、第5図は従来方式によるプログラム結合制
御の実行手順の説明図である。 第1図中。 20;結合編集プログラム 21:ロードモジュール 22:分岐元のプログラムP 23、23’  :中継コード 23a:分岐先モジュールの入自宅の指定部23b=分
岐先モジュールの格納ライブラリのライブラリ名の指定
部 24:分岐先のモジュールB

Claims (1)

  1. 【特許請求の範囲】 モジュール化されたプログラムを結合し、実行するデー
    タ処理装置において、 結合時に、あるモジュール(22)から分岐される他の
    モジュール(24)の入口名と、その分岐先のモジュー
    ル(24)が格納されているライブラリの名前あるいは
    識別名とをロードモジュール(21)内に記録するとと
    もに当該分岐先のモジュール(24)は予め主記憶上に
    ロードしないでおき、実行中のモジュールから分岐先の
    モジュール(24)に制御を渡す時点で、ロードモジュ
    ール(21)内に記録されている入口名とライブラリの
    名前あるいは識別名とを用いて、分岐先のモジュール(
    24)をファイルから主記憶上にロードし、制御を渡す
    ことを特徴とするプログラム結合制御方式。
JP14266088A 1988-06-09 1988-06-09 プログラム結合制御方式 Pending JPH021017A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14266088A JPH021017A (ja) 1988-06-09 1988-06-09 プログラム結合制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14266088A JPH021017A (ja) 1988-06-09 1988-06-09 プログラム結合制御方式

Publications (1)

Publication Number Publication Date
JPH021017A true JPH021017A (ja) 1990-01-05

Family

ID=15320532

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14266088A Pending JPH021017A (ja) 1988-06-09 1988-06-09 プログラム結合制御方式

Country Status (1)

Country Link
JP (1) JPH021017A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5170754A (en) * 1991-03-11 1992-12-15 Suehiro Urabe Intake system for V-type internal combustion engine

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5170754A (en) * 1991-03-11 1992-12-15 Suehiro Urabe Intake system for V-type internal combustion engine

Similar Documents

Publication Publication Date Title
US5339430A (en) System for dynamic run-time binding of software modules in a computer system
JP2666847B2 (ja) 異種言語間連絡方式
JPH0437927A (ja) プロセッサの処理方法
US5065400A (en) Method for editing and executing computer programs
US4787034A (en) Program access system
JPS63317828A (ja) マイクロコ−ド読み出し制御方式
JPH021017A (ja) プログラム結合制御方式
EP0417916B1 (en) Procedure state descriptor system for digital data processors
US5875337A (en) Modifier for a program executing parallel processes that reduces wait time for access to a shared resource
JPS6378231A (ja) 部分的プログラム結合方式
JP2993538B2 (ja) 多重プログラム機能を有する数値制御装置
JPH01258029A (ja) データ処理装置
JPS6356728A (ja) プログラム修正実行方式
JPH01207824A (ja) モジュール結合制御方式
JP2621898B2 (ja) 外部参照型アドレス定数の動的解決処理方式
JP2003076558A (ja) プログラム実行制御方法及びプログラム実行制御プログラム
JPS63106047A (ja) 動的サブル−チン呼び出し方式
JPS6238954A (ja) 動的リンクによるアドレスモ−ド切換え制御方式
JPH05143427A (ja) 情報処理システム
JPH0128414B2 (ja)
JPH01307825A (ja) インターフェイスモジュールを介する動的リンク実行方式
JPH083792B2 (ja) 関数呼び出し処理方法
JPH04147340A (ja) データ管理呼出方式
JPS6330938A (ja) マイクロプログラム制御装置
JPH1124939A (ja) プログラム変換方法