JPH04155443A - 実行時獲得領域のアドレス取得方法 - Google Patents

実行時獲得領域のアドレス取得方法

Info

Publication number
JPH04155443A
JPH04155443A JP28090790A JP28090790A JPH04155443A JP H04155443 A JPH04155443 A JP H04155443A JP 28090790 A JP28090790 A JP 28090790A JP 28090790 A JP28090790 A JP 28090790A JP H04155443 A JPH04155443 A JP H04155443A
Authority
JP
Japan
Prior art keywords
program
area
address
acquired
point code
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
JP28090790A
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 JP28090790A priority Critical patent/JPH04155443A/ja
Publication of JPH04155443A publication Critical patent/JPH04155443A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概要〕 C0BOLプログラムなどにおける動的プログラム構造
領域獲得型リエントラントの書込み領域アドレスを簡易
に取得できるようにした実行時獲得領域のアドレス取得
方法に関し。
動的プログラム構造で動作するプログラムの書込み領域
アドレスを、2回目以降の呼び出しでは簡易に取得でき
るようにし、処理効率を向上させることを目的とし。
1回目のプログラム呼び出しの際には、獲得領域管理用
実行時ライブラリによって、所要の書込み領域より大き
い領域を獲得するとともに、その書込み領域のアドレス
をレジスタに設定する命令を含む入口点コードを、獲得
した領域中に設定し。
2回目以降のプログラム呼び出しでは、呼び出し元から
獲得した領域中の入口点コードに分岐するようにし、2
回目以降のプログラム呼び出しにおいて、獲得領域管理
用実行時ライブラリを呼び出すことなく、入口点コード
の実行により、書込み領域のアドレスを取得するように
構成する。
〔産業上の利用分野〕
本発明は、C0BOLプログラムなどにおける動的プロ
グラム構造領域獲得型リエントラントの書込み領域アド
レスを簡易に取得できるようにした実行時獲得領域のア
ドレス取得方法に関する。
〔従来の技術〕
リエントラントプログラムを実現するための一つの方法
として、書込み領域を実行時に獲得する方法がある。プ
ログラム中の変数等の値の変更される領域は、獲得され
た書込み領域に割り付けられる。
ところで、C0BOL言語で記述されたプログラムでは
、プログラム中で使用される変数は、INITIAL句
の指定がない場合には、そのプログラムが最後に動作し
たときの値を保持するという仕様になっている。そのた
め、そのプログラムを含む実行単位が終了するか、また
はそのプログラムがCANCEL文によって消去される
まで。
獲得した書込み領域を解放することはできない。
すなわち、1回目に呼ばれて書込み領域に設定された値
を、同じ実行単位内で次に呼ばれた場合にも保証する必
要がある。これは、2回目以降の呼び出しに対して、同
じ書込み領域のアドレスを取得する必要があることを意
味する。
第6図は、このような動的プログラム構造を採る処理機
構における従来技術の例を示す。
第6図に示すC0BOLの実行単位20中には。
呼び出し元のプログラムAとそれに呼び出されるプログ
ラムBとが存在する。ロードモジュール作成時にそれら
の関係を解決/結合すると、呼び出されたプログラムB
が不要になっても、主記憶上に残るので、上記憶領域の
効率的利用ができなくなる。オペレーティング・システ
ムによるダイナミックリンク機構を使用して結合した場
合にも。
同様である。
そこで、固定的にプログラムA、Bを結合するのではな
く、実行時にプログラムBが必要になった時点で、これ
を主記憶上にローディングして。
呼び出す、また、不要になった時点で、主記憶上から削
除することにより、主記憶領域使用の効率化を図ってい
る。このようなプログラム呼び出しの構造を動的プログ
ラム構造と呼ぶ。
以下、第6図に従ってプログラム呼び出し時における書
込み領域獲得の処理について説明する。
■ C0BOLのロードモジエールであるプログラムA
は、プログラムBによる処理が必要になると、プログラ
ム呼び出し管理用実行時ライブラリ21に、プログラム
Bの呼び出しを依頼する。
■ プログラム呼び出し管理用実行時ライブラリ21は
、プログラム管理テーブルT1により、プログラムBが
既に主記憶上にローディングされているかどうかを調べ
る。r:J−ディングされていなければ9プログラム呼
び出し管理用実行時ライブラリ21は、プログラムBを
主記憶上にローディングし、プログラム管理テーブルT
1にプログラムBのプログラム名と入口アドレスなどを
登録し。
その後にプログラムBに制御を渡す、2回目以降の呼び
出しであって、プログラムBが既にローディングされて
いる場合には、プログラム管理テーブルTlからその入
口アドレスを得て、プログラムBに制御を渡す。
■ 呼び出されたプログラムBは、入口点にあるのプロ
ローグコニドにより、獲得領域管理用実行時ライブラリ
11に対して、或・要な書込み領域15Bの大きさを通
知し、その獲得を依頼する。
■ 獲得領域管理用実行時ライブラリ11は、獲得領域
管理テーブルT4を検索し、プログラムBの書込み領域
15Bのアドレスを得る。書込み領域15Bが、獲得領
域管理テーブルT4に登録されていない場合には、その
領域を獲得し、獲得領域管理テーブルT4に登録した後
、プログラムBに、書込み領域15Bのアドレスを通知
する。
プログラムBが2回目以降に動作する場合には。
獲得頭載管理用実行時ライブラリ11は、獲得領域管理
テーブルT4を検索することにより、書込み領域15B
のアドレスを得て、プログラムBに通知する。
〔発明が解決しようとする課題〕
従来技術では、第6図に示すように、プログラムBが呼
び出されると、毎回、獲得頭載管理用実行時ライブラリ
11を呼び出して、獲得領域管理テーブルT4を検索す
ることになる。したがって。
呼び出し回数が多くなると、そのオーバヘッドが大きく
なるという問題がある。
本発明は上記問題点の解決を図り、動的プログラム構造
で動作するプログラムの書込み領域アドレスを、2回目
以降の呼び出しでは簡易に取得できるようにし、処理効
率を向上させることを目的としている。
〔課題を解決、するための手段〕
第1図は本発明の原理説明図である。
プログラム10は動的プログラム構造によって呼び出さ
れるロードモジュールである。獲得領域管理用実行時ラ
イブラリ11は、プログラム10が使用する書込み領域
15を、プログラム10の依願によって獲得する処理機
能を持つ。
1回目のプログラム10の呼び出しの際には。
第1図(イ)に示すように、獲得領域管理用実行時ライ
ブラリ11によって、所要の書込み領域15より入口点
コード領域14の分だけ大きい獲得領域13の領域を獲
得する。プログラム10は。
獲得領域管理用実行時ライブラリ11から獲得領域13
のアドレスを通知されると、その中の入口点コード領域
14に、書込み領域15のアドレスをレジスタに設定す
る命令を含む入口点コードを設定する。また1次の2回
目以降の呼び出しでは。
呼び出し元から、獲得領域13中の入口点コード領域1
4に設定された入口点コードに分岐するように入口点の
変更を、動的プログラム構造の管理部(図示省略)に依
願する(■〜■)。
以下、プログラム10は、書込み領域15を使用して、
データの処理を実行する。
2回目以降のプログラム10の呼び出しでは。
第1図(ロ)に示すように、最初にプログラム10では
なく、入口点コード領域14中の入口点コードに制御が
渡される。この入口点コード領域14中の命令を実行す
ることにより、レジスタに書込み領域15のアドレスを
設定し、その後、プログラム10の第2のエントリに分
岐する(■〜■)、これにより、2回目以降のプログラ
ム10の呼び出しにおいて5獲得領域管理用実行時ライ
ブラリ11を呼び出すことなく、書込み領域15のアド
レスを取得する。
〔作用〕
最初に呼び出されたときに、獲得領域13の先頭部分に
2回目以降の呼び出し用の入口点コードを作成する。プ
ログラム10で使用する書込み領域15は、その後に続
く、書込み領域15のアドレスを、入口点コード内に保
持することにより。
獲得領域管理用実行時ライブラリ11の呼び出しを省略
し、従来技術のような獲得管理テーブルの検索を省(こ
とができる。
〔実施例〕
第2図は本発明の一実施例に係る1回目の呼び出し例、
第3図は本発明の一実施例で用いるテーブル構成例、第
4図は本発明の一実施例による入口点コードの例、第5
図は本発明の一実施例に係る2回目以降の呼び出し例を
示す。
以下、C0BOL言語で記述されてコンパイルされたプ
ログラムを例に9本発明の詳細な説明する。なお3本実
施例では、プログラムAがプログラムBを呼び出すとき
に、2回目以降の呼び出しを高速化するため1本発明者
が特願平2−178824号(発明の名称ニブログラム
呼び出し方法)において提案した技術を利用している。
この先願発明に係る技術を用いなくても1本発明の実施
は可能であるが、併用することにより、さらに実行性能
を向上させることが可能となる。
第2図において、プログラムAおよびプログラムBは、
同じC0BOLの実行単位20であり。
動的プログラム構造の関係にある。プログラム呼び出し
管理用実行時ライブラリ21は、プログラムの動的な呼
び出しを処理するものである。
プログラム管理テーブルT1は5例えば第3図(イ)に
示すような情報を管理するテーブルであり、呼び出され
るプログラムのプログラム名(またはプログラムを識別
するキー情報)、その入口アドレス、関連するエントリ
連鎖の情報、後述する中継テーブルT3の該当エントリ
のアドレスなどの情報を持つ、−度、プログラム呼び出
し管理用実行時ライブラリ21を介して呼び出されたプ
ログラムの情報は、このプログラム管理テーブルT1に
登録される。
プログラムAの書込み領域15内には、呼び出しテーブ
ルT2が設けられる。呼び出しテーブルT2は2例えば
第3図(ロ)に示すような情報を管理するテーブルであ
る。
この呼び出しテーブルT2は、プログラムAが呼び出す
プログラムごとに、レジスタの退避命令(a)1分岐命
令部)、呼び出すプログラムのプログラム名(C)の情
報を持つ。また、2回目以降の呼び出しに使用する分岐
命令(d)、  1回目の呼び出し先であるプログラム
呼び出し管理用実行時ライブラリ21の呼び出し命令(
e〕、レジスタ退避域(f)を持つ。
呼び出しテーブルT2における(alのフィールドは、
1回目の呼び出しが終わると、(d)への分岐命令に書
き換えられる。また、(ハ)のフィールドには。
(切で分岐する分岐先のアドレスが設定されるようにな
っている。
中継テーブルT3は、2回目以降のプログラムの呼び出
しを高速化するためのテーブルである。
この中継テーブルT3には、第3図(ハ)に示すように
1分岐命令((至)2分岐先の入口アドレス(ハ)。
呼び出されるプログラムのプログラム名(i)の情報が
、1回目の呼び出し時に設定される。
獲得領域管理テーブルT4は、獲得領域管理用実行時ラ
イブラリ11が獲得した領域を管理するテーブルであり
、第3図(ニ)に示すように、獲得領域の先頭アドレス
(j)、サイズまたは終了アドレス(ロ)、獲得したプ
ログラムのプログラム名またはその識別キー(1)など
の情報を持つ。
第2図に示す入口点コードI域14に設定される入口点
コードは、第4図に示すような命令およびアドレス情報
である。
(6)呼び出し元のプログラムのレジスタ退避域へレジ
スタを退避する命令。
(ロ)プログラムBの手続きアドレスおよび書込み領域
15Bのベースアドレスを、レジスタに設定する命令。
(C)  プログラムBの手続きへ分岐する命令。
(ロ)上記(ロ)でレジスタに設定するためのプログラ
ムBの手続きアドレスおよび書込み領域15Bのアドレ
ス情報。
第2図において、プログラムAがプログラムBを最初に
呼び出すときの動作は以下のとおりである。
■ プログラムAは、CALL文の実行により。
プログラムBを呼び出すため、呼び出しテーブルT2の
該当エントリを呼ぶ。
■ 呼び出しテーブルT2のエントリから、プログラム
呼び出し管理用実行時ライブラリ21に対し、プログラ
ムBの呼び出しを依軌する。
■ プログラム呼び出し管理用実行時ライブラリ21は
、プログラム管理テーブルTlをもとに。
必要ならば、プログラムBを主記憶上にローディングし
、各テーブルTl、T2.T3を、変更する。その後に
、プログラムBに制御を渡す。
■ プログラムBは、プロローグコードにより。
獲得領域管理用実行時ライブラリ11に領域の獲得を依
鎖する。この1回目の処理は、従来技術と同様であると
考えてよい。
■ 獲得領域管理用実行時ライブラリ11は、獲得領域
管理テーブルT4を検索し、プログラムBの獲得領域1
3のアドレスを得る。獲得領域13がない場合には、獲
得領域13を獲得する。
■ 獲得領域管理用実行時ライブラリ11は、獲得領域
13のアドレスをプログラムBに返却する。
■ プログラムBは、獲得領域13の人ロ点コド領域1
4に、2回目以降の呼び出しのだめの4図に示すような
入口点コードを設定する。そて、プログラム呼び出し管
理用実行時ライゲラ21に対し、中継テーブル構成例の
プログラムのエントリの入口アドレス領域(第3図(ハ
)1示すフィールド(ハ)の領域)に、入口点コーグ頷
」□14のアドレス設定を依願する。その後、プロ・ラ
ムBの通常の定められた処理を行う。
1回目の呼び出し時に以上のような処理を行・ことによ
って、2回目以降の呼び出しでは、第。
図に示すように、簡単にプログラムBの呼び出1および
書込み領域15Bのアドレスの取得を行・ことができる
以下、2回目以降にプログラムAがプロゲラ。
Bを呼び出すときの処理を、第5図に従って説Eする。
■ プログラムAは、CALL文の実行により。
プログラムBを呼び出すため、呼び出しテーブノT2の
該当エントリを呼ぶ。
−■ 2回目以降の呼び出しでは、呼び出しテープ鼾 
  ルT2のエントリから、中継テーブルT3のプロし
   グラムB用のエントリへ分岐する。
リ   ■ 第3図(ハ)に示す中継テーブルT3のプ
ロB   グラムB用のエントリには、入口アドレスと
して。
こ   人口点コード領域14のアドレスが設定されて
い成   る。そこで、中継テーブルT3から、入口点
コーグ   ド碩域14の入口点コードに分岐する。
■ 人口点コードでは、第4図に示す命令の実行う  
 により、レジスタの退避、書込み領域15Bの75 
  ドレス設定などのベースアドレスの設定を行い。
ノ   プログラムBの手続き部へ分岐する。
5    これによって1本実施例では、2回目以降の
プログラムBの呼び出しの際に。
−・プログラム呼び出し管理用実行時ライブラリ2月 
   1の呼び出し。
・プログラム管理テーブルTlの検索。
・獲得領域管理用実行時ライブラリ11の呼び出し  
        し。
・獲得領域管理用テーブルT4の検索。
が不要になり、実行性能が向上する。
〔発明の効果〕
以上説明したように9本発明によれば、動的プログラム
構造における2回目以降のプログラム呼び出し時に、そ
のプログラムが使用する書込み領域のアドレスを、実行
時ライブラリを呼び出すことなく、また獲得領域管理用
テーブルなどの検索を行うことなく取得することができ
るので、処理効率が上がり、実行性能が向上する。
【図面の簡単な説明】
第1図は本発明の原理説明図。 第2図は本発明の一実施例に係る1回目の呼び出し例。 第3図は本発明の一実施例で用いるテーブル構成例。 第4図は本発明の一実施例による入口点コードの例。 第5図は本発明の一実施例に係る2回目以降の呼び出し
例。 第6図は従来技術の例を示す。 図中、10はプログラム、11は獲得領域管理°   
用寞行時ライブラリ、13は獲得領域、14は入口点コ
ード領域、15は書込み領域を表す。

Claims (1)

  1. 【特許請求の範囲】 プログラム(10)が使用する書込み領域(15)を、
    獲得領域管理用実行時ライブラリ(11)によって実行
    時に獲得する機能を持つデータ処理システムにおける実
    行時獲得領域のアドレス取得方法において、 1回目のプログラム呼び出しの際には、前記獲得領域管
    理用実行時ライブラリ(11)によって、所要の書込み
    領域(15)より大きい領域(13)を獲得するととも
    に、その書込み領域のアドレスをレジスタに設定する命
    令を含む入口点コードを、獲得した領域中に設定し、 2回目以降のプログラム呼び出しでは、呼び出し元から
    前記獲得した領域中の入口点コードに分岐するようにし
    、 2回目以降のプログラム呼び出しにおいて、前記獲得領
    域管理用実行時ライブラリ(11)を呼び出すことなく
    、入口点コードの実行により、書込み領域(15)のア
    ドレスを取得するようにしたことを特徴とする実行時獲
    得領域のアドレス取得方法。
JP28090790A 1990-10-19 1990-10-19 実行時獲得領域のアドレス取得方法 Pending JPH04155443A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28090790A JPH04155443A (ja) 1990-10-19 1990-10-19 実行時獲得領域のアドレス取得方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28090790A JPH04155443A (ja) 1990-10-19 1990-10-19 実行時獲得領域のアドレス取得方法

Publications (1)

Publication Number Publication Date
JPH04155443A true JPH04155443A (ja) 1992-05-28

Family

ID=17631607

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28090790A Pending JPH04155443A (ja) 1990-10-19 1990-10-19 実行時獲得領域のアドレス取得方法

Country Status (1)

Country Link
JP (1) JPH04155443A (ja)

Similar Documents

Publication Publication Date Title
US4410940A (en) Transfer of control method and means among hierarchical cooperating sequential processes
US5530870A (en) Arrangement for efficiently transferring program execution between subprograms
US4476528A (en) Method and apparatus for controlling a data access in a data base management system
JPH06266563A (ja) 複数同時オブジェクト・バージョンをサポートする効率的ルータ
US6101326A (en) Method and apparatus for frame elimination for simple procedures with tail calls
JPH04155443A (ja) 実行時獲得領域のアドレス取得方法
JPS584445A (ja) 動作中ジョブに対するプログラム修正反映方式
JPH06222916A (ja) オンラインリアルタイム処理装置
JPH0465717A (ja) プログラム呼び出し方法
JPH0327439A (ja) プログラムの共有モジュール管理方式
JP2841363B2 (ja) 外部モジュール獲得方式
JPH0221610B2 (ja)
JPH086829A (ja) データベースの同時全件検索方法
JPH0452491B2 (ja)
JPH01258029A (ja) データ処理装置
JPS63630A (ja) プログラム呼出し方式
JPH03116261A (ja) マルチプロセッサ制御方式
JP2567111B2 (ja) マイクロプログラム制御装置
JP3018359B2 (ja) オンライン呼情報トレース方式
JPS58166455A (ja) 関係型デ−タベ−ス・システム
JP3293821B2 (ja) 動的リンクシステム
JP2907665B2 (ja) 獲得記憶領域の管理方式
JPH07244601A (ja) 関係データベースのアクセス方法および装置
JPH04107634A (ja) メモリデータバイパス制御方式
JPH01312634A (ja) データ処理装置