JPS63626A - プログラム管理装置 - Google Patents

プログラム管理装置

Info

Publication number
JPS63626A
JPS63626A JP14371986A JP14371986A JPS63626A JP S63626 A JPS63626 A JP S63626A JP 14371986 A JP14371986 A JP 14371986A JP 14371986 A JP14371986 A JP 14371986A JP S63626 A JPS63626 A JP S63626A
Authority
JP
Japan
Prior art keywords
load module
address
program
subroutine
main
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
JP14371986A
Other languages
English (en)
Inventor
Takashi Kurihara
隆 栗原
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co 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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP14371986A priority Critical patent/JPS63626A/ja
Publication of JPS63626A publication Critical patent/JPS63626A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、プログラム管理装置に関し、特にロードモジ
ュールの実行中にこのロードモジュールにリンクされて
いないモジュールに対して呼び出しが行なわれたときに
、例えば外部サブルーチンに対しζ呼び出しが行ムわれ
たときにこの外部すブルーチンのロードモジュールをメ
モリにロードし、現在プログラム実行中のロードモジュ
ールと外部サブルーチンのロードモジュールとのリンク
処理をおこなうプログラム管理装置に関する。
〔発明の概要〕
本発明は、プログラム処理実行中のロードモジュールか
ら呼び出される他のロードモジュールが主記憶装置にロ
ードされていないときにエントリテーブルのエラーアド
レスをプログラム実行可能なアドレス空間外のアドレス
としてアドレス参照エラーを生じさせ割込みを発生させ
て、補助記憶装置から所定のロードモジュールをロード
しプログラム処理実行中のロードモジュールとリンクさ
せることにより、主記憶装置の容量を小さくすることが
できると同時にプログラムの修正、変更、削除等のバー
ジョンアンプ、プログラムの開発を極めて容易に行うこ
とができ更にプログラムの実行時間を短くすることがで
きる。
〔従来の技術〕
コンピュータに所定の作業を行なわせるために、コンピ
ュータのユーザは一般にユーザにとって容易な言語を用
いてプログラム(ソースプログラム)を作成する。この
ソースプログラムは、その量が多いときには、あるいは
同一の作業を度々行うときには、例えばメインルーチン
、サブルーチンという形式で分割しモジュール化して作
成される。
ユーザによりモジュール化して作成されたソースモジュ
ールは、コンピュータで実際に実行されるために、コン
パイラあるいはアセンブラ等によって言語翻訳されてオ
ブジェクトモジュールに変換される。このようにして作
成された複数のオブジェクトモジュールは互いにリンク
されていないので、この状態では全ての作業を実行する
ことはできない。このために複数のオブジェクトモジュ
ールを実行可能なロードモジュールに組込み、このリン
ク作業をロードモジュールの実行前に行うスタティック
リンカ(静的結合)が知られている。
しかしながら、スタティックリンカによれば、ロードモ
ジュールの実行前に全てのオブジェクトモジュールをリ
ンクしてロードモジュールとするので、コンピュータの
メモリの主記憶領域にロードモジュールが納まらず大き
なメモリ容量を必要とする。また実行前に全てのオブジ
ェクトモジュールをリンクする場合には、プログラムを
少し変更してバージョンアップをする場合にリンクされ
たロードモジュール全体を変更乙なければならないので
、プログラムの開発に膨大な時間を要することになる。
このような事態を解決するために、全てのオブジェクト
モジュールを予めロードモジュールに組込まずにロード
モジュール例えばメインルーチンロードモジュールの実
行中に必要となった別のロードモジュール、例えば外部
サブルーチンをロードし結合させるダイナミックリンカ
(動的結合)がしぼしぽ用いられる。従来のダイナミッ
クリンカを用いたプログラム管理装置では、例えばいま
実行中のロードモジュールに組込まれていない外部サブ
ルーチンに対してサブルーチンの名前(例えば5UB)
で例えば“CALL  SOB”として呼び出しを行う
。このときにサブルーチンの名前SUBはいま実行中の
ロードモジュールに登録されていないのでオペレーティ
ングシステムに制御が移りダイナミックリンカが働き始
める。ダイナミックリンカは特定のロードモジュールラ
イブラリを検索し対応した外部各SUBをもつロードモ
ジュールをメモリにロードし、現在実行中のロードモジ
ュールとロードモジュールSUBとの結合を行うように
なっている。このように、ダイナミックリンカを用いれ
ば、ロード泰ジュールに必要なメモリ容量を小さくする
ことができる。
〔発明が解決しようとする問題点〕
ところで、従来のダイナミックリンカを用いたプログラ
ム管理装置では、ロードモジュールに必要なメモリ容■
を小さくすることはできるが1.いま実行中のロードモ
ジュールに登録されておらずかつ結合されていない別の
ロードモジュール例えば外部サブルーチンを呼び出すと
きにダイナミックリンカは外部サブルーチンの名前SU
Bでロードモジュールライブラリを検索しなければなら
ないので、その検索に時間がががり、ト目当のオーバ−
ヘッドタイムを必要とし、また外部サブルーチンをロー
ドしてメインルーチンのロードモジュールに組込みリン
クしたときにメインルーチンからサブルーチンへの呼び
出しはサブルーチンの名前を参照してサブルーチンの名
前で行なわれていたので、サブルーチンの名前を変更し
た場合にはリンク構造全体を変更しなければならず、プ
ログラムのバージョンアンプに相当の時間を要するとい
う問題があった。
本発明は、ロードモジュールに必要なメモリ8澄を小さ
くし主記憶装置を効率良く使用すると同時にロードモジ
ュールをロードする際に必要な時間を短かくしてオーバ
ーヘッドタイムを短かくし、更にプログラムの開発が容
易でリンク構造を簡単に変更することの可能なダイナミ
ックリンカを用いたプログラム管理装置を提供すること
を目的としている。
〔問題点を解決するための手段〕
第1図は、本発明のブロンク図である。同図において、
1は主21.α装置12にすでにロードされ、プログラ
ム実行可能な状態となっているロードモジュールを起シ
」しプログラムを実行させるロードモジュール起動手段
、2はロードモジュール起動手段1によって起動されて
プログラムを実行しているロードモジュールから呼び出
される他のロードモジュールが主記憶装置にすでにロー
ドされているときにはエントリアドレスを収納しており
、主記憶装置にまだロードされていないときにはプログ
ラム実行可能なアドレス空間外のアドレスを格納してい
るエントリテーブル、3はエントリテーブルに格納され
ている他のロードモジュールのアドレスがプログラム実
行可能なアドレス空間内にないときにアドレス参照エラ
ー等を生じさせコンピュータに対して割込みを発生する
別込み発生手段、4は割込み発生手段3によって割込み
が発生したときに、主記憶装置にまだロードされていな
いロードモジュールを補助記憶装置13からロードして
主記憶装置に例えばリロケータブルな形式で格納し、エ
ントリテーブル2の内容をいまロードされたロードモジ
ュールの格納位置のエントリアドレスにする等してプロ
グラム実行中のロードモジュールとダイナミックリンク
させるリンク手段である。
〔作   用〕
本発明の作用について説明すると、ロードモジュール起
動手段1によって主記憶装置12にロードされているロ
ードモジュールを起動してこのロードモジュールのプロ
グラムを実行させる。このロードモジュールのプログラ
ム実行中に別のロードモジュールが呼び出されるときに
エントリテーブル2を参照して呼び出されたロードモジ
ュールのアドレスへアクセスする。この!l祭、呼び出
されたロードモジュールが主記憶装置12にまだロード
されていないときにはエントリテーブル2にはプログラ
ム実行可能なアドレス空間外のアドレスが格納されてい
るので、アドレス空間外のアドレスがアクセスされてア
ドレス参照エラー等が生じこれによって割込み発生手段
3によりコンピュータに対して割込みを発生させる。割
込み発生手段3によって割込みが発生すると、リンク手
段4は、補助記憶装置13から呼び出されたロードモジ
ュールを取出して、これを例えば主記憶装置12の所定
の格納位置ヘリロケータプルな形式でロードし、次いで
エントリテーブル2の内容をこのロードモジュールの格
納位置のアドレスすなわちエントリアドレスにする。こ
れによってプログラム実行中のロードモジュールといま
呼び出されたロードモジュールとをダイナミックにリン
クさせることができる。
〔実  施  例〕
(1)構 成 以下に本発明の一実施例を図面を用いて説明する。
第2図は、本発明のブロック管理装置のシステム構成図
である。第2図において、コンピュータ10には、内部
メモリとしての主記憶装置12と、外部メモリとしての
補助記憶装置13と、プログラムが所定のアドレス空間
を越えてアクセスしている場合にはコンピュータ10に
対してハードウェア割込み、すなわちメモリフォルト割
込みMFIRQをかけるメモリ管理ユニット14とがバ
ス(図示せず)により接続されている。
主記憶装置12は、高速のメモリ、例えばダイナミック
型半導体メモリあるいはスタティック型半導体メモリで
構成されているのが良い。−方、補助記憶装置13は、
記憶容量の大きな磁気ディスク、磁気ドラム等で構成さ
れている。
主記憶装置12は、第3図及び第4図に示すように、コ
ンピュータシステムの作動を管理するオペレーティング
システムの常駐するオペレーティングシステム領域○S
ARと、実行可能なメインプログラムのロードモジュー
ルが格納されるメイン領域MARと、メインプログラム
の実行中に呼び出され、ダイナミックロードされる実行
可能な外部サブルーチンのロードモジュールを計画的オ
ーバレイ構造で格納するオーバレイ領域0LARと、未
使用領域NUARとからなっている。コンピュータ10
は、オペレーティングシステム領域03ARに格納され
ているオペレーティングシステムの下でプログラムの実
行、入出力制御、コンパイル等の処理を行うようになっ
ている。
主記憶装置12のメイン領域MARは、第4図゛に詳細
に示すように、メインルーチンのロードモジュールを格
納するロードモジュール格納領域LMARと、メインル
ーチン実行中に呼び出されるサブルーチンロードモジュ
ールの格納領域先頭アドレスをポイントするエントリテ
ーブル領域ETARと、リンクテーブル領域ETARの
エラーアドレスによってポイントされるサブルーチンロ
ードモジュールの先頭アドレスが主記憶装置12の所定
のアドレス空間(プログラムの実行時に使用可能な記憶
域)の範囲を越えたアドレスであるときに、プロセッサ
10への割込み後サブルーチンオブジェクトモジュール
を補助記憶装置13がらロードしてメインルーチンロー
ドモジュールとダイナミックリンクさせるエラー処理ル
ーチンを格納するエラー処理ルーチン格納領域ERAR
とからなる。ここで主記憶装置12の使用可能なアドレ
ス空間は、ゼロ番地からオーバレイ領域0LARと未使
用領域MUARとの境界の番地までの範囲である。
また、エラー処理ルーチン格納領域ERARに格納され
ているエラー処理ルーチンは、コンパイル時にメインル
ーチンオブジェクトモジュールに組込まれリンクされる
ものとする。
メイン領域MARのエントリテーブル領域ETARに作
成されるエントリテーブルには、第5図に示すようにメ
インルーチンロードモジュール中で呼び出されるサブル
ーチンの種類毎にサブルーチンに対応させてエラーアド
レスが格納される。
すなわちサブルーチンがn+mある場合にはn個のサブ
ルーチンについてそれぞれエラーアドレスEADI、E
AD2.  ・・・EADnが設けられる。
最初サブルーチンロードモジュールは主記憶装置12に
ロードされておらず、これらのサブルーチンに対応する
エラーアドレスEADI、EAD2゜・・・EADnは
、主記憶装置12の未使用領域NUARのアドレスとな
っている。これによってメインルーチンからこれらのサ
ブルーチンロードモジュールのいずれかを呼び出すとき
、このサブルーチンに対応するエン[・リテーブル領域
ETARのエラーアドレスには未使用領域NUARの物
理アドレスが格納されているので、主記憶装置12の所
定のアドレス空間(プログラムの実行時に使用可能な記
憶域)の範囲を越えてアクセスすることによりメモリ管
理ユニット14がコンピュータ10に対してメモリフォ
ルトの割込みMFIRQをかける。コンピュータ10は
割込みMFIRQを受は付けると、エラーアドレスに対
応した所定のサブルーチンオブジェクトモジュールを補
助記憶装置13から主記憶装置12のオーバレイ領域0
LARにロードするために、エラー処理ルーチンを実行
するようになっている。後述のようにエラー処理ルーチ
ンによってメインルーチンがら呼び出されたサブルーチ
ンオブジェクトモジュールを主記憶袋r!!、12にロ
ードしたときに、エントリテーブルのエラーアドレスを
サブルーチンロードモジュ−ルの格納されるオーバレイ
領域oLARのアドレスにすなわちエントリアドレスに
する。これによってメインルーチンロードモジュールの
実行中にサブルーチンを呼び出すときにサブルーチンオ
ブジェクトモジュールを補助記憶装置13からロードし
てサブルーチンオブジェクトモジュールをメインルーチ
ンロードモジュールとダイナミックリンクさせることが
できる。メインルーチンが再度このサブルーチンを呼び
出すときには、エントリテーブル領域ETARのエラー
アドレスはプログラム使用可能なアドレス空間内のエン
トリアドレスとなっているので、すぐにサブルーチンを
実行することができる。なお、オーバレイ領域0LAR
にロードされたサブルーチンロードモジュールはりロケ
ータプル形式のものであり、メインルーチンロードモジ
ュールとサブルーチンロードモジュールとはエントリア
ドレスによってリンクされているので、リンク構造の変
更は単にエントリアドレスを変えるだけで良く、プログ
ラム全体を変更する必要はないので、プログラムのバー
ジョンアップを極めて容易に行いうるような構成になっ
ている。
なお、いまロードされたサブルーチンロードモジュール
の格納域に計画的オーバレイで他のサブルーチンロード
モジュールが格納されると、前のサブルーチンロードモ
ジュールは破壊され、メインルーチンロードモジュール
とのリンクを解除する必要があるので、前のサブルーチ
ンロードモジュールに対応するエラーアドレスは、再び
未使用領域NUARのアドレスとなるように変更される
第6図は、サブルーチンオブジェクトモジュールを補助
記1.α装置13から主記憶装置12へロードするのに
用いられるエラー処理ルーチンのテーブルと、このテー
ブルによって指定される補助記憶装置13の各領域とを
示している。
補助記憶装置13には、ユーザにより作成されたソース
プログラムをコンパイルあるいはアセンブルした結果の
オブジェクトプログラムのファイルが格納されている。
このオブジェクトプログラムは、ファイルにモジュール
化されて登録されている。すなわち、ファイルはメイン
領域のオブジェクトモジュールを格納するメイン領域オ
ブジェクトモジュール格納領域MOBJと、サブルーチ
ンのオブジェクトモジュールを格納するサブルーチンオ
ブジェクトモジュール格納領域5OBJと、リロケーシ
ョンテーブルRLTBLとから構成されている。
リロケーションテーブルには、補助記憶装置13に格納
されているメイン領域オブジェクトモジュール、サブル
ーチンオブジェクトモジュールのそれぞれに対応させて
、これらのモジュールの配置されるべき主記憶装置12
の物理アドレスがテーブルとして作成されている。これ
によって補助記憶装置13のファイルの論理アドレスを
主記憶装置12の物理アドレスにアドレス変換すること
ができる。
補助記憶装置13に作成されたファイルの先頭アドレス
は、ポインタFPTによってポイントされる。メイン領
域のオブジェクトモジュールを主記憶装置12のメイン
領域MARにロードする際に、ポインタFPTにはオペ
レーティングシステムによってファイルの先頭アドレス
が書込まれる。
エラー処理ルーチンは、現在実行中のメインルーチンか
ら呼び出されたサブルーチンオブジェクトモジュールを
補助記)、キ装五13のファイルから取出して主記憶装
置12のオーバレイ領域0LARにロードするのに第6
図に示すような割込み処理テーブルITBLを用いる。
第6図では簡単なため補助記憶装置13には1つのサブ
ルーチンオブジェクトモジュールだけが存在し、この1
つのサブルーチンオブジェクトモジュールに対応させて
、主記す、α装置12のメイン領域MARのエントリテ
ーブルには1つのエラーアドレスEADだけが登録され
ているものとする。割込み処理テーブルITBLには、
識別コードとしてのエラーアドレスEADと、ポインタ
FPTでポイントされるファイル先頭アドレスからのサ
ブルーチンオブジェクトモジュール格納領域5SBJの
相対アドレスすなわちオフセットfiltsUBOFと
、サブルーチンオブジェクトモジュール格納領域S’O
BJの長さ5UBLNGと、ファイル先頭アドレスから
のりロケーションテーブルRLTBLの相対アドレスす
なわちオフセットIRLOFと、リロケージョンテーブ
ルRLTBLの長さRLLNGとが格納されている。
エラー処理ルーチンは、この割込み処理テーブルITB
Lにより、主記憶装置12のオーバレイ領域にロードさ
れるべきサブルーチンオブジェクトモジュールの4納位
置及び大きさを検索することができ、更にリロケーショ
ンテーブルを検索することができて、リロケーションテ
ーブルで対応づけられている主記憶装置12の物理アド
レスへ検索されたサブルーチンオブジェクトモジュール
をロードすることが可能となる。
(2)動 作 以上のような構成のプログラム管理装置において、ダイ
ナミックリンクの動作を第7図のフローチャートを用い
て説明する。
プログラム管理装置は、ダイナミックリンクの動作を開
始する前にユーザの作成したソースモジュールをコンパ
イラあるいはアセンブラで言語翻訳して、その結果を補
助記憶装置13にファイルとして第6図に示すようにリ
ロケータブルな形式で格納する。そして、このファイル
の先頭アドレスをオペレーティングシステムによりポイ
ンタFPTに格納しておく。
第7図のフローチャートにおいて、ステップST1では
メインルーチンを実行するため補助記憶装置13のファ
イルに格納されているメイン領域オブジェクトモジュー
ルMOBJを主記憶装置12のメイン領域MARにロー
ドする。メイン領域M A Rへのロードが完了すると
、主記憶装置12のメイン領域MARには第4図に示す
ようにメインルーチンのロードモジュールとエントリテ
ーブルとエラー処理ルーチンとが格納される。このとき
にどのサブルーチンロードモジュールも主記憶装置12
にまだロードされておらずメインルーチンロードモジュ
ールにリンクされていないので、エントリテーブルのエ
ラーアドレスは主記憶装置12の未使用領域NUARの
アドレスとなっている。
次いで、いま主記憶装置12にロードされたメインルー
チンを実行しくステップ5T2) 、メインルーチンの
実行の途中でサブルーチンが呼び出される(ステップ5
T3)。本発明ではサブルーチンは、メインルーチンに
サブルーチンの名前でリンクしているのではなく、エン
トリテーブルを介してリロケータブルな形式のサブルー
チンロードモジュール格納域の物理アドレス(エラーア
ドレス)でリンクするようになっているので、メインル
ーチンからサブルーチンを呼び出すときにはサブルーチ
ンロードモジュールのエラーアドレスEADを格納して
いるエントリテーブルを参照する(ステップ5T4)。
次いで、サブルーチンの実行を開始するためにエントリ
テーブルのエラーアドレスEADで指示される物理アド
レスのところにアクセスする。エラーアドレスEADで
指示されたアドレスがプログラム実行時に使用可能な記
憶域すなわちアドレス空間内にあるときにはそのアドレ
スのところに直接アクセスすることができて、サブルー
チンの処理をすぐに実行することができる。本発明では
、プログラム実行時に使用可能なアドレス空間は主記憶
装置12のゼロ番地からオーバレイ領域0LARと未使
用領域NUARとの境界番地までの間であり、このアド
レス空間外へのアクセスはシステムで禁止されている。
このために、エントリテーブルを参照してエラーアドレ
スEADがアドレス空間外のアドレスをアクセスしてい
るか否かを調べる(ステップ5T5)。
いまの場合に、サブルーチンロードモジュールは1記1
,9装置12にロードされておらずエントリテーブルの
エラーアドレスEADは未使用領域NUARのアドレス
となっているので、エラーアドレスEΔDはアドレス空
間外のアドレスをポイントしていることになり、このア
ドレスをアクセスすると、アドレス参照エラーすなわち
システムエラーとなり制御はオペレーティングシステム
に移り、オペレーティングシステムは、メモリ管理ユニ
ット14を介してコンピュータ1oにメモリフォルト(
バウダリエラー)を通知すべくメモリフォルト割込みM
FI’RQを発生する(ステップ5T6)。コンピュー
タ10は、この割込みMFIRQを受付けてこの割込み
に対する処理をするためすなわちサブルーチンオブジェ
クトモジュールを補助記憶装置13から主記憶装置12
にロードするために、割込み処理ルーチンすわなちエラ
ー処理ルーチンを実行する(ステップ5T7)。
エラー処理ルーチンでは割込み処理テーブルITBLを
参照して、エラーアドレスEADに対応したサブルーチ
ンオブジェクトモジュールを補助記憶装置13のファイ
ルから検索して取り出す。
このときに、まずファイルの先頭アドレスをポインタF
PTから取出しテーブルITBLのファイル内のオフセ
ット5UBOFからサブルーチンオブジェクトモジュー
ルの格納領域5OBJのファイル先頭アドレスからの相
対アドレスを導き出して、補助記憶装置13内でのサブ
ルーチンオブジェクトモジュールの格納位置を割出す。
次いでテーブルITBL内のオブジェクトの長さ5UB
LNGからサブルーチンオブジェクトモジュールの大き
さを割出す。サブルーチンオブジェクトモジュールの補
助記憶装置13内での格納位置及び大きさがわかると、
テーブルITBLのリロケーションテーブルのオフセッ
トRLOFとりロケーションテーブルの長さRLLNG
から補助記憶装置内のりロケーションテーブルRLTB
Lを割出してこのテーブルRLTBLでサブルーチンオ
ブジェクトモジュールが再配置されるべき主記憶装置1
2内の位置を取り出し、エラー処理ルーチンはこれらの
情報に基づいて、サブルーチンオブジェクトモジュール
をリロケーションテーブルで示される主記憶装置12内
のアドレスのところにすなわちオーバレイ領域0LAR
にリロケータブルな形式でロードする。
次いで、いまロードされたリロケータブルなサブルーチ
ンオブジェクトモジュールをメインルーチンロードモジ
ュールとリンクしてサブルーチンロードモジュールとす
るためにエントリテーブルのエラーアドレスEADをサ
ブルーチンオブジェクトモジュールがロードされた主記
憶装置12内のアドレス、すなわちオーバレイ領域0L
ARのアドレスにする(ステップ5T8)。これによっ
てリロケータブルな形式のサブルーチンロードモジュー
ルはエラーアドレスEADによってメインルーチンロー
ドモジュールと間接的にリンクされる。またエラーアド
レスEADはアドレス空間内のエントリアドレスとなり
、メインルーチンの実行中にサブルーチンを呼び出すと
きに、メインルーチンからエントリテーブルを介してサ
ブルーチンをアクセスできてサブルーチンをすぐに実行
することができる(ステップ5T9)。
このサブルーチンの処理を終了しメインルーチンに戻り
、メインルーチンで再び同じサブルーチンが呼び出され
るときには、エン1〜リテーブルのエラーアドレスEA
Dはすでにアドレス空間内のエントリアドレスとなって
おり、このサブルーチンはメインルーチンとリンクされ
ているので、ステップST5の判別において直接ステッ
プST9に進み、サブルーチンがすぐに実行される。
なお、例えばメインルーチンで異なるサブルーチンが呼
び出して、いままでオーバレイ領域OLΔRにロードさ
れ格納されていたサブルーチンロードモジュールのとこ
ろに新たなザブルーチンロードモジュールを格納し、い
ままでのサブルーチンロードモジュールをキャンセルし
たい場合には、メインルーチンとのリンクを解除する必
要がある。
このために、いままでのサブルーチンに対応するエント
リテーブル内のエラーアドレスEADを再び未使用領域
NUARのアドレスに戻し、このサブルーチンを呼び出
すときには再度割込みを発生させ補助記憶装置13から
サブルーチンオブジェクトモジュールをロードしリンク
し直すようになっている。
以上の説明した本発明の実施例によると、サブルーチン
オブジェクトモジュールは、リロケータブルな形式で主
記憶装置12にロードされ、メインルーチンロードモジ
ュールとのリンクはエントリテーブルのエラーアドレス
すなわちエントリアドレスでなされるので、サブルーチ
ンのプログラムを変更、修正、削除したい場合には、リ
ロケータブルなサブルーチンロードモジュールを単体で
変更し、これに対応するエントリテーブルのエンドリア
ドレスを変更するだけで良く、メインルーチンあるいは
他のサブルーチンを何ら変更しなくても良いので、プロ
グラムのデバッグ、開発を極めて容易に行うことができ
、プログラムのバージョンアンプに必要な時間を短縮す
ることができる。
また、複数のサブルーチンロードモジュールは互いに異
なるエラーアドレスすわなちエントリアドレスで管理さ
れており、サブルーチンの名前で検索されるようにはな
っていないので、プログラムの実行時間を短かくしオー
バーヘッドタイムを短縮することができて、またサブル
ーチンの名前を変更したりしてもリンク構造には何らの
影響をも及ぼすことはない。
また、サブルーチンオブジェクトモジュールはメインル
ーチンロードモジュールの実行前にメインルーチンロー
ドモジュールにはリンクされておらず、メインルーチン
ロードモジュールの実行中に呼び出されたときにロード
されリンクされるようになっているので、プログラムの
実行に必要な主記憶装置の容量を小さくすることができ
る。
〔発明の効果〕
以上述べたように、本発明は、プログラム処理実行中の
ロードモジュールから呼び出される他のロードモジュー
ルが主記憶装置にロードされていないときにエントリテ
ーブルのエラーアドレスをプログラム実行可能なアドレ
ス空間外のアドレスとしてアドレス参照エラーを生じさ
せ割込みを発生させて、補助記憶装置から所定のロード
モジュールをロードしプログラム処理実行中のロードモ
ジュールとリンクさせたものであり、本発明によれば、
主記憶装置の容量を小さくすることができると同時に、
プログラムの修正、変更、削除等のバージョンアップ、
プログラムの開発を極めて容易に行うことができ更にプ
ログラムの実行時間を短くしたプログラム管理装置を得
ることができる。
【図面の簡単な説明】
第1図は本発明のプログラム管理装置のブロック図、 第2図は本発明のプログラム管理装置のシステム構成図
、 第3図は主犯1.α装置の各領域とメモリ管理テーブル
との関係を示す図、 第4図は主記憶装置の各領域を詳細に示す図、第5図は
エントリテーブルを示す図、 第6図はエラー処理ルーチンで用いられるテーブルと補
助記↑、α装置に作成されたファイルの構成との関係を
示す図、 第7図は本発明のプログラム管理装置の動作を示すフロ
ーチャートである。 1・・・ロードモジュール起動手段、 2・・・エントリテーブル、 3・・・割込み発生手段、 4・・・リンク手段、 12・・・上記↑、α装置、 13・・・補助記憶装置。 特許出願人  カシオ計W−機株式会社第2図 第4rlA 第5図

Claims (1)

  1. 【特許請求の範囲】 1)プログラム処理実行中のロードモジュールから呼び
    出される他のロードモジュールをダイナミックリンクさ
    せるプログラム管理装置において、主記憶装置にすでに
    ロードされているロードモジュールを起動するロードモ
    ジュール起動手段と、ロードモジュール起動手段によっ
    て起動されてプログラムを実行しているロードモジュー
    ルから呼び出される他のロードモジュールのアドレスを
    格納しているエントリテーブルと、 このエントリテーブルに格納されている他のロードモジ
    ュールのアドレスがプログラム実行可能なアドレス空間
    内にないときに割込みを発生する割込み発生手段と、 割込み発生手段によって割込みが発生したときに、前記
    呼び出された他のロードモジュールを補助記憶装置から
    ロードしプログラム実行中のロードモジュールとリンク
    させるリンク手段とを具備することを特徴とするプログ
    ラム管理装置。 2)前記エントリテーブルは、複数のサブルーチンの個
    々に対応したエラーアドレスが格納されており、これら
    のエラーアドレスは、他のロードモジュールが主記憶装
    置にすでにロードされリンクされているときには他のロ
    ードモジュールの格納位置を示すエントリアドレスであ
    り、他のロードモジュールが主記憶装置にロードされて
    おらずかつリンクされていないときにはプログラム実行
    可能なアドレス空間外のアドレスになっていることを特
    徴とする特許請求の範囲第1項記載のプログラム管理装
    置。
JP14371986A 1986-06-19 1986-06-19 プログラム管理装置 Pending JPS63626A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14371986A JPS63626A (ja) 1986-06-19 1986-06-19 プログラム管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14371986A JPS63626A (ja) 1986-06-19 1986-06-19 プログラム管理装置

Publications (1)

Publication Number Publication Date
JPS63626A true JPS63626A (ja) 1988-01-05

Family

ID=15345397

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14371986A Pending JPS63626A (ja) 1986-06-19 1986-06-19 プログラム管理装置

Country Status (1)

Country Link
JP (1) JPS63626A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4918257A (en) * 1988-07-15 1990-04-17 Quantum Chemical Corporation Catalytic conversion of methane to higher hydrocarbons
US5132481A (en) * 1989-06-30 1992-07-21 The Broken Hill Proprietary Company Limited Process of methane oxidative coupling with hydrogen activation of catalyst
WO1994023363A2 (en) * 1993-03-25 1994-10-13 Taligent, Inc. Loader system
JP2014157434A (ja) * 2013-02-15 2014-08-28 Mitsubishi Electric Corp プログラム生成方法、プログラム実行方法、プログラム生成装置、プログラム生成プログラム、プログラム実行装置およびプログラム実行プログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4918257A (en) * 1988-07-15 1990-04-17 Quantum Chemical Corporation Catalytic conversion of methane to higher hydrocarbons
US5132481A (en) * 1989-06-30 1992-07-21 The Broken Hill Proprietary Company Limited Process of methane oxidative coupling with hydrogen activation of catalyst
WO1994023363A2 (en) * 1993-03-25 1994-10-13 Taligent, Inc. Loader system
WO1994023363A3 (en) * 1993-03-25 1995-01-12 Taligent Inc Loader system
JP2014157434A (ja) * 2013-02-15 2014-08-28 Mitsubishi Electric Corp プログラム生成方法、プログラム実行方法、プログラム生成装置、プログラム生成プログラム、プログラム実行装置およびプログラム実行プログラム

Similar Documents

Publication Publication Date Title
JP3550151B2 (ja) ロード・リンキング装置および方法
US5353411A (en) Operating system generation method
US7263689B1 (en) Application program interface for dynamic instrumentation of a heterogeneous program in a distributed environment
US9015659B2 (en) Method, computer program product, and system for non-blocking dynamic update of statically typed class-based object-oriented software
US6094528A (en) Method and apparatus for system building with a transactional interpreter
US6876996B2 (en) Method and apparatus for using a shared library mechanism to facilitate sharing of metadata
US7784044B2 (en) Patching of in-use functions on a running computer system
US5768588A (en) Efficient method router that supports multiple simultaneous object versions
US5325531A (en) Compiler using clean lines table with entries indicating unchanged text lines for incrementally compiling only changed source text lines
US5201050A (en) Line-skip compiler for source-code development system
US7913243B2 (en) Method and system for generating and applying patches to a computer program concurrently with its execution
JPH07160483A (ja) 指定のプログラムイメージと関連ライブラリプログラムとを実行可能なアプリケーションプログラムイメージに動的にリンクする方法
JPH05197697A (ja) ソフトウエア・システム構築装置及び方法
US9411617B2 (en) System and method for matching synthetically generated inner classes and methods
KR20210057176A (ko) 함수 점프 구현 방법, 디바이스, 및 컴퓨터 저장 매체
CN102147743A (zh) 加快嵌入式系统应用程序启动速度的方法
KR19990064026A (ko) 컴퓨터 시스템 또는 그 프로그램이 중지될 필요가 없는 객체 지향형 메쏘드 유지 보수 메카니즘
JP2003526154A (ja) 仮想記憶管理プログラムを有していないデータ処理装置にクラスをプレロードするためのシステム及び方法
US4787034A (en) Program access system
US6438621B1 (en) In-memory modification of computer programs
US20060242491A1 (en) Method and system for applying patches to a computer program concurrently with its execution
US5062039A (en) Sharing of workspaces in interactive processing using workspace name tables for linking of workspaces
US20120222023A1 (en) Automatic runtime dependency lookup
JPS63626A (ja) プログラム管理装置
Lyu et al. A procedure-based dynamic software update