JPH0675757A - 仮想空間常駐プログラムのリンク方式 - Google Patents
仮想空間常駐プログラムのリンク方式Info
- Publication number
- JPH0675757A JPH0675757A JP22690692A JP22690692A JPH0675757A JP H0675757 A JPH0675757 A JP H0675757A JP 22690692 A JP22690692 A JP 22690692A JP 22690692 A JP22690692 A JP 22690692A JP H0675757 A JPH0675757 A JP H0675757A
- Authority
- JP
- Japan
- Prior art keywords
- program
- address
- list
- linking
- name
- 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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
(57)【要約】
【目的】仮想記憶内に常駐するプログラムをリンクする
場合に、定型的な方法で各プログラム同一の少ないダイ
ナミックステップでリンクすることを目的とする。 【構成】仮想記憶内に常駐するプログラムのアドレスリ
スト及びアドレスリストと同一形式を持つプログラム名
称リストから構成される。プログラム名称リストは、コ
ンパイル時プログラム内に取り込み、被リンクプログラ
ムのアドレス定義として使用する。
場合に、定型的な方法で各プログラム同一の少ないダイ
ナミックステップでリンクすることを目的とする。 【構成】仮想記憶内に常駐するプログラムのアドレスリ
スト及びアドレスリストと同一形式を持つプログラム名
称リストから構成される。プログラム名称リストは、コ
ンパイル時プログラム内に取り込み、被リンクプログラ
ムのアドレス定義として使用する。
Description
【0001】
【産業上の利用分野】本発明は、プログラムのリンク方
式に関し、特に、コンピュータシステム上の仮想空間に
常駐するプログラムが多数有り、それぞれ互いにリンク
する構造をもっており、常駐プログラムの数が多いか、
又は、プログラム属性が異なるため、1つの実行形式と
してバインドはできないが、性能をあげるためにリンク
のダイナミックステップを少なくし、どのプログラムも
同一ステップでリンクする仮想空間常駐プログラムのリ
ンク方式に関するものである。
式に関し、特に、コンピュータシステム上の仮想空間に
常駐するプログラムが多数有り、それぞれ互いにリンク
する構造をもっており、常駐プログラムの数が多いか、
又は、プログラム属性が異なるため、1つの実行形式と
してバインドはできないが、性能をあげるためにリンク
のダイナミックステップを少なくし、どのプログラムも
同一ステップでリンクする仮想空間常駐プログラムのリ
ンク方式に関するものである。
【0002】
【従来の技術】複数のプログラムをリンクする方法とし
て、必要に応じて外部記憶装置から対象となるプログラ
ムをロードしてリンクする方式と、あらかじめ仮想空間
に対象となるプログラムをロードしておきアドレスを参
照する方式に大別される。
て、必要に応じて外部記憶装置から対象となるプログラ
ムをロードしてリンクする方式と、あらかじめ仮想空間
に対象となるプログラムをロードしておきアドレスを参
照する方式に大別される。
【0003】前者に対する性能向上はI/O回数を減ら
すことが重要な技術となっている。
すことが重要な技術となっている。
【0004】例えば、特開平2−60011号公報に記
載の一括ローディング処理方式では、モジュールロード
のI/O回数を1回に減少させる技術が開示されてい
る。すなわち、本方式では、ロードするモジュールテキ
スト群及びモジュールに関するリロケーションデータ群
の、直接アクセス装置内の位置及び大きさをディレクト
リ内に持っており、ディレクトリ読み込み後、ディレク
トリ情報にあわせCCWチェインを作成し、一回のI/
Oでモジュールロードを行う方式である。
載の一括ローディング処理方式では、モジュールロード
のI/O回数を1回に減少させる技術が開示されてい
る。すなわち、本方式では、ロードするモジュールテキ
スト群及びモジュールに関するリロケーションデータ群
の、直接アクセス装置内の位置及び大きさをディレクト
リ内に持っており、ディレクトリ読み込み後、ディレク
トリ情報にあわせCCWチェインを作成し、一回のI/
Oでモジュールロードを行う方式である。
【0005】一方、後者は、I/Oオーバヘッドをなく
すために、しばしば採用される技術である。例えば再利
用可能なプログラムを仮想空間に常駐し、そのアドレス
を定められた領域に設定し、プログラムをリンクする方
法である。その具体的な方法は、あらかじめ、アドレス
を設定するテーブルを決めておき、リンク側プログラム
コンパイル時、プログラム内で被リンクプログラムを定
義し、アドレスを確定しておき、リンク時に被リンクプ
ログラムの名称で参照するものである。これにより外部
装置からの入力を行わずに、ダイナミックステップを少
なくリンクすることが可能となる。
すために、しばしば採用される技術である。例えば再利
用可能なプログラムを仮想空間に常駐し、そのアドレス
を定められた領域に設定し、プログラムをリンクする方
法である。その具体的な方法は、あらかじめ、アドレス
を設定するテーブルを決めておき、リンク側プログラム
コンパイル時、プログラム内で被リンクプログラムを定
義し、アドレスを確定しておき、リンク時に被リンクプ
ログラムの名称で参照するものである。これにより外部
装置からの入力を行わずに、ダイナミックステップを少
なくリンクすることが可能となる。
【0006】又、高速にリンクすることを目的とした、
モジュールリンク方式として特開昭61−160135
号公報に記載の技術がある。本方式はモジュール管理テ
ーブルでモジュールのロード状態を管理するものであ
る。プログラムからモジュールのリンク要求があると、
ローダはモジュール管理テーブルを参照し、モジュール
がロード済の場合ロード済みのモジュールのアドレスを
返し、ロードしてない場合はロード後アドレスを返すよ
うになっている。但し、本方式は、あらかじめモジュー
ルがロードされているとは限らない場合に使用する方法
である。あらかじめロードされているプログラムに限定
した場合は、ロードしたプログラムのアドレスをテーブ
ルに設定しておき、プログラム内で必要に応じ、被リン
クプログラムを定義してリンクする前述の方式が一般的
である。
モジュールリンク方式として特開昭61−160135
号公報に記載の技術がある。本方式はモジュール管理テ
ーブルでモジュールのロード状態を管理するものであ
る。プログラムからモジュールのリンク要求があると、
ローダはモジュール管理テーブルを参照し、モジュール
がロード済の場合ロード済みのモジュールのアドレスを
返し、ロードしてない場合はロード後アドレスを返すよ
うになっている。但し、本方式は、あらかじめモジュー
ルがロードされているとは限らない場合に使用する方法
である。あらかじめロードされているプログラムに限定
した場合は、ロードしたプログラムのアドレスをテーブ
ルに設定しておき、プログラム内で必要に応じ、被リン
クプログラムを定義してリンクする前述の方式が一般的
である。
【0007】
【発明が解決しようとする課題】従来の技術で述べたよ
うに、常駐プログラムのアドレスを参照しリンクする方
式はダイナミックステップの減少に有効であるが、以下
の点で問題がある。すなわち、常駐するプログラムが多
く、プログラム間で何度もリンクしあう場合、リンク側
で、被リンクプログラムを全部定義しアドレスを確定し
ておく必要がある。リンク被リンクの関連が複雑な場
合、プログラム内の手続きが複雑化し生産性及び保守性
の低下を引き起こす。従って、プログラム内で定型的な
定義を行い、ダイナミックステップを少なく呼出しが行
える定型的で簡明な方式は、プログラムの生産性、保守
性、及び、性能の観点から有効である。本発明の目的
は、以上の点に関し改善を図るものとして、仮想空間常
駐プログラムの定形的で簡明なリンク方式を提供するも
のである。
うに、常駐プログラムのアドレスを参照しリンクする方
式はダイナミックステップの減少に有効であるが、以下
の点で問題がある。すなわち、常駐するプログラムが多
く、プログラム間で何度もリンクしあう場合、リンク側
で、被リンクプログラムを全部定義しアドレスを確定し
ておく必要がある。リンク被リンクの関連が複雑な場
合、プログラム内の手続きが複雑化し生産性及び保守性
の低下を引き起こす。従って、プログラム内で定型的な
定義を行い、ダイナミックステップを少なく呼出しが行
える定型的で簡明な方式は、プログラムの生産性、保守
性、及び、性能の観点から有効である。本発明の目的
は、以上の点に関し改善を図るものとして、仮想空間常
駐プログラムの定形的で簡明なリンク方式を提供するも
のである。
【0008】
【課題を解決するための手段】前記の課題を解決するた
めに、本発明では、仮想空間に常駐するプログラムが複
数ある場合は、それぞれのアドレスの設定領域を集めて
リスト形式にする。このリストをアドレスリストと呼
ぶ。次にアドレスリストと全く同一の形式を持つリスト
を定義する。本リストはアドレスリスト内のプログラム
のアドレス領域に対応する位置に、それぞれ対応する常
駐プログラムの名称を定義してある。本リストをプログ
ラム名称リストと呼ぶ。
めに、本発明では、仮想空間に常駐するプログラムが複
数ある場合は、それぞれのアドレスの設定領域を集めて
リスト形式にする。このリストをアドレスリストと呼
ぶ。次にアドレスリストと全く同一の形式を持つリスト
を定義する。本リストはアドレスリスト内のプログラム
のアドレス領域に対応する位置に、それぞれ対応する常
駐プログラムの名称を定義してある。本リストをプログ
ラム名称リストと呼ぶ。
【0009】各プログラムでは、コンパイル時プログラ
ム名称リストを取り込んでおく。この結果、被リンクプ
ログラムのアドレスは確定する。プログラムにリンクす
る場合は、リンク命令に、該当するプログラムの名称を
指定する。これにより、アドレスリストを参照するダイ
ナミックステップで、リンクが可能となる。またどのプ
ログラムのリンクステップも同一となる。
ム名称リストを取り込んでおく。この結果、被リンクプ
ログラムのアドレスは確定する。プログラムにリンクす
る場合は、リンク命令に、該当するプログラムの名称を
指定する。これにより、アドレスリストを参照するダイ
ナミックステップで、リンクが可能となる。またどのプ
ログラムのリンクステップも同一となる。
【0010】すなわち、各プログラム内で個別にリンク
プログラムのアドレスを定義する必要がなくなり、定型
的かつ簡略な記述が可能となる。
プログラムのアドレスを定義する必要がなくなり、定型
的かつ簡略な記述が可能となる。
【0011】
【作用】提供するマクロを使用する。プログラム名称リ
ストを取り込んだプログラムが、被リンクプログラムの
名称を指定して本マクロを使用すると、コンパイラが、
アドレスリストを基に命令を生成する。命令の内容は以
下の通りである。
ストを取り込んだプログラムが、被リンクプログラムの
名称を指定して本マクロを使用すると、コンパイラが、
アドレスリストを基に命令を生成する。命令の内容は以
下の通りである。
【0012】アドレスリストのベース設定を行ない、被
リンクプログラムの名称定義領域のプログラム名称リス
ト内の相対アドレスをそれに加え、ブランチをする。
リンクプログラムの名称定義領域のプログラム名称リス
ト内の相対アドレスをそれに加え、ブランチをする。
【0013】被リンクプログラムの名称定義領域の、プ
ログラム名称リスト内の相対アドレスと、アドレスリス
ト内の対応する被リンクプログラムのアドレス設定領域
の相対アドレスは同一のため、アドレスリストのベース
に加えた結果は、アドレスリスト内の指定被リンクプロ
グラムのアドレス設定領域のアドレスとなる。従って、
その値によりブランチをすれば目的とするプログラムへ
のリンクが可能となる。
ログラム名称リスト内の相対アドレスと、アドレスリス
ト内の対応する被リンクプログラムのアドレス設定領域
の相対アドレスは同一のため、アドレスリストのベース
に加えた結果は、アドレスリスト内の指定被リンクプロ
グラムのアドレス設定領域のアドレスとなる。従って、
その値によりブランチをすれば目的とするプログラムへ
のリンクが可能となる。
【0014】以上から、効果は次の通りである。
【0015】プログラムにはプログラム名称リストの定
義及び被リンクプログラムの名称を指定したリンクマク
ロを記述すればよいため、リンク指定の定型化、簡略化
を図ることができる。又、リンクに要するステップは数
ステップであり、更に、被リンクプログラムによらず、
一定であるため、プログラムに依らない性能向上に効果
がある。
義及び被リンクプログラムの名称を指定したリンクマク
ロを記述すればよいため、リンク指定の定型化、簡略化
を図ることができる。又、リンクに要するステップは数
ステップであり、更に、被リンクプログラムによらず、
一定であるため、プログラムに依らない性能向上に効果
がある。
【0016】
【実施例】本発明の一実施例を図面に従って具体的に説
明する。
明する。
【0017】図1はシステムの構成である。アドレスリ
スト及び仮想空間常駐プログラムが記憶装置内に存在し
ている。
スト及び仮想空間常駐プログラムが記憶装置内に存在し
ている。
【0018】図2は、プログラムのアドレスを設定する
アドレスリスト5と、それと同一形式及び同一の大きさ
を持つ、プログラム名称リスト1の関連を示している。
両者は同一形式であるが、設定情報は異なっている。す
なわち、アドレスリスト5内のプログラムアドレスの設
定領域6には仮想空間に常駐するプログラムのアドレス
が設定されている。一方、プログラム名称リスト1内の
同一位置のプログラム名称領域7には、プログラムアド
レスの設定領域6に設定した、対象となるプログラムの
名称が定義してある。したがって、アドレスリスト5に
アドレスを設定するプログラムの順序とプログラム名称
リスト1に定義するプログラムの順序は同一である。又
それぞれの領域の相対アドレスは同一になる。本例で
は、プログラムBは両方のリスト内の2番目にそれぞ
れ、アドレスと名称が設定されている。
アドレスリスト5と、それと同一形式及び同一の大きさ
を持つ、プログラム名称リスト1の関連を示している。
両者は同一形式であるが、設定情報は異なっている。す
なわち、アドレスリスト5内のプログラムアドレスの設
定領域6には仮想空間に常駐するプログラムのアドレス
が設定されている。一方、プログラム名称リスト1内の
同一位置のプログラム名称領域7には、プログラムアド
レスの設定領域6に設定した、対象となるプログラムの
名称が定義してある。したがって、アドレスリスト5に
アドレスを設定するプログラムの順序とプログラム名称
リスト1に定義するプログラムの順序は同一である。又
それぞれの領域の相対アドレスは同一になる。本例で
は、プログラムBは両方のリスト内の2番目にそれぞ
れ、アドレスと名称が設定されている。
【0019】図3はコンパイル及び実際のリンク処理時
の両リストの参照関係を示している。プログラムBをリ
ンクするプログラム8は、データ定義部81と、プログ
ラム実行部82から成っており、データ定義部81でプ
ログラム名称リスト1を取り込んでおく。又、プログラ
ム実行部82内で、リンクマクロ命令@LINK83に
よってプログラムBをリンクしている。Bの名称を指定
したリンクマクロ命令のステートメント@LINK83
を記述すると、図4に示すように、コンパイル時、仮想
空間常駐プログラムBリンク時のプログラム内処理フロ
ーに示す命令が生成される。本例では、図3に示すよう
に、プログラムBの名称がプログラム名称リスト1内の
2番目に定義されていることから、Bのアドレスはアド
レスリスト5内の2番目の領域にあることを基に命令が
生成がされる。
の両リストの参照関係を示している。プログラムBをリ
ンクするプログラム8は、データ定義部81と、プログ
ラム実行部82から成っており、データ定義部81でプ
ログラム名称リスト1を取り込んでおく。又、プログラ
ム実行部82内で、リンクマクロ命令@LINK83に
よってプログラムBをリンクしている。Bの名称を指定
したリンクマクロ命令のステートメント@LINK83
を記述すると、図4に示すように、コンパイル時、仮想
空間常駐プログラムBリンク時のプログラム内処理フロ
ーに示す命令が生成される。本例では、図3に示すよう
に、プログラムBの名称がプログラム名称リスト1内の
2番目に定義されていることから、Bのアドレスはアド
レスリスト5内の2番目の領域にあることを基に命令が
生成がされる。
【0020】プログラム8を実行し、プログラムBをリ
ンクすると、アドレスリスト5のアドレスに、プログラ
ム名称リスト1の2番目の領域の相対アドレス(=アド
レスリストのプログラムBのアドレスを格納した領域の
相対アドレス)が加えられ、プログラムBのアドレスが
求まり、プログラムBにリンクできることになる。
ンクすると、アドレスリスト5のアドレスに、プログラ
ム名称リスト1の2番目の領域の相対アドレス(=アド
レスリストのプログラムBのアドレスを格納した領域の
相対アドレス)が加えられ、プログラムBのアドレスが
求まり、プログラムBにリンクできることになる。
【0021】リンクのダイナミックステップは図4に示
すように数ステップであり、どのプログラムもプログラ
ム名称リスト1内の位置が変わるだけなので、コンパイ
ル時に生成されるリンクのステップ数は同一になる。
すように数ステップであり、どのプログラムもプログラ
ム名称リスト1内の位置が変わるだけなので、コンパイ
ル時に生成されるリンクのステップ数は同一になる。
【0022】
(1)簡略化 複数のプログラムをリンクする場合、それぞれプログラ
ムのアドレスを定義する必要が有った。これに反し、本
方式ではプログラム名称リストを定義すれば、個別定義
は不要となり、リンクマクロに被リンクプログラム名称
を指定するだけでよい。
ムのアドレスを定義する必要が有った。これに反し、本
方式ではプログラム名称リストを定義すれば、個別定義
は不要となり、リンクマクロに被リンクプログラム名称
を指定するだけでよい。
【0023】(2)性能の向上 外部記憶装置からの入力がない点で性能は向上している
が、更にどのプログラムに対しても数ステップかつ同一
のステップでリンクできる。
が、更にどのプログラムに対しても数ステップかつ同一
のステップでリンクできる。
【図1】システム構成図である。
【図2】アドレスリスト及びプログラム名称リストを示
す図である。
す図である。
【図3】コンパイル時及びプログラムリンクの例を示す
図である。
図である。
【図4】プログラムリンクの処理の流れを示すフローチ
ャートである。
ャートである。
1…プログラム名称リスト、 2…プログラムAの名称、 3…プログラムBの名称、 4…プログラムCの名称、 5…アドレスリスト、 6…プログラムアドレスの設定領域、 7…プログラム名称領域、 8…プログラムBをリンクするプログラム、 81…プログラム8のデータ定義部、 82…プログラム8のプログラム実行部、 83…プログラムBをリンクする@LINKマクロ命
令。
令。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 五十嵐 歳一 神奈川県横浜市中区尾上町6丁目81番地日 立ソフトウェアエンジニアリング株式会社 内 (72)発明者 塩谷 隆廣 神奈川県横浜市戸塚区戸塚町5030番地株式 会社日立製作所ソフトウェア開発本部内
Claims (1)
- 【請求項1】仮想空間に常駐するプログラムの、属性及
びアドレスの一覧からなるアドレスリストと、アドレス
リストと同一形式を持つプログラム名称リストの組によ
り、コンパイル時点で、リンクするプログラムのアドレ
スを確定し、少ないダイナミックステップかつ各プログ
ラム同一のダイナミックステップでリンクすることを特
徴とする仮想空間常駐プログラムのリンク方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22690692A JPH0675757A (ja) | 1992-08-26 | 1992-08-26 | 仮想空間常駐プログラムのリンク方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22690692A JPH0675757A (ja) | 1992-08-26 | 1992-08-26 | 仮想空間常駐プログラムのリンク方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0675757A true JPH0675757A (ja) | 1994-03-18 |
Family
ID=16852456
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP22690692A Pending JPH0675757A (ja) | 1992-08-26 | 1992-08-26 | 仮想空間常駐プログラムのリンク方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0675757A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007334869A (ja) * | 2006-05-16 | 2007-12-27 | Matsushita Electric Ind Co Ltd | プログラム起動装置、プログラム起動方法、起動処理プログラム及び集積回路 |
-
1992
- 1992-08-26 JP JP22690692A patent/JPH0675757A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007334869A (ja) * | 2006-05-16 | 2007-12-27 | Matsushita Electric Ind Co Ltd | プログラム起動装置、プログラム起動方法、起動処理プログラム及び集積回路 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH06223043A (ja) | 分散メモリ型プロセッサシステム | |
| JPH01118931A (ja) | プログラム変換方式 | |
| US5241634A (en) | Method of handling system calls to an operating system of a computer by system service routines stored as firmware | |
| JPH0675757A (ja) | 仮想空間常駐プログラムのリンク方式 | |
| US6772292B2 (en) | Two area stack | |
| JP3481268B2 (ja) | ライブラリのモジュール管理方式 | |
| JP2601541B2 (ja) | Fortran入出力並び処理方式 | |
| JPS63106047A (ja) | 動的サブル−チン呼び出し方式 | |
| JPH01207824A (ja) | モジュール結合制御方式 | |
| JPH0221610B2 (ja) | ||
| JP3293821B2 (ja) | 動的リンクシステム | |
| JP2004126739A (ja) | 名前解決方法 | |
| JPS583042A (ja) | プログラム実行方式 | |
| JPH07129408A (ja) | 言語処理プログラムの実行方式 | |
| JPH0327439A (ja) | プログラムの共有モジュール管理方式 | |
| JPH07141189A (ja) | オーバレイリンク方式 | |
| JPS63245722A (ja) | ロ−ドモジユ−ルリンク方式 | |
| JPH05204636A (ja) | ロードアドレス設定方法 | |
| JPH03164835A (ja) | インタプリタ型言語処理系における大域変数処理のコンパイル方法 | |
| JPH0553827A (ja) | ダイナミツクリンク最適化方式 | |
| JPH0792757B2 (ja) | 最適データ割付け方式 | |
| JPH02231639A (ja) | サービスプログラム呼出し方式 | |
| JPH04155443A (ja) | 実行時獲得領域のアドレス取得方法 | |
| JPH1196003A (ja) | 計算機の複数バンク制御方法 | |
| JPH0447337B2 (ja) |