JPH11232103A - プログラムリンク方式及びメソッドサーチ方式 - Google Patents

プログラムリンク方式及びメソッドサーチ方式

Info

Publication number
JPH11232103A
JPH11232103A JP10030084A JP3008498A JPH11232103A JP H11232103 A JPH11232103 A JP H11232103A JP 10030084 A JP10030084 A JP 10030084A JP 3008498 A JP3008498 A JP 3008498A JP H11232103 A JPH11232103 A JP H11232103A
Authority
JP
Japan
Prior art keywords
program
information
execution
link
memory
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
JP10030084A
Other languages
English (en)
Inventor
Mitsuko Fujita
光子 藤田
Shinji Inoue
信治 井上
Satoru Hayama
悟 葉山
Hiroyuki Wake
裕之 和氣
Akira Ishikawa
亮 石川
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP10030084A priority Critical patent/JPH11232103A/ja
Publication of JPH11232103A publication Critical patent/JPH11232103A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 メモリの有効利用の要求と、プログラムの高
速実行の要求とのバランスの変化に応じたきめ細かな制
御を可能にするプログラムリンク方式等を提供する。 【解決手段】 実行管理情報記憶部1030に格納され
ている情報であって、プログラムを構成する複数のプロ
グラムモジュールそれぞれについてのアンロードを当該
プログラムモジュール実行終了時に行うか又は当該プロ
グラム全体が終了するまで行わないかを示す情報を、プ
ログラム記憶部1040にロードされたプログラムの実
行中において入力受付部1010を介して受け付ける操
作者の指定等により変更可能とし、前記プログラム中に
含まれプログラムモジュールの実行終了を意味するRE
TURNコードの解読実行により起動されるRETUR
N処理部1140は、前記情報に基づいてアンロードす
べきか否かを判断する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プログラムのメモ
リへのロードを制御するプログラムリンク方式、及び動
的オブジェクト指向システムにおいてメソッドを検索す
るメソッドサーチ方式に関する。
【0002】
【従来の技術】まず、従来のプログラムのリンクに関す
る技術について説明する。コンピュータ上で動作させる
プログラムが、複数の部分的なプログラムモジュールで
構成されている場合に、それぞれのプログラムモジュー
ルをメモリにロードして実行に必要なアドレスの解決を
する制御の方式として、静的リンク方式と動的リンク方
式がある。
【0003】静的リンク方式とは、プログラムモジュー
ル間のアドレス解決を予め行っている方式であり、静的
にリンクされたプログラムは、主メモリ中に一体として
ロードされ実行される。また、動的リンク方式とは、コ
ンピュータにおける有限なメモリ資源を有効活用するた
めに、実行過程において必要となったプログラムモジュ
ールを動的にアドレス解決して実行するものであり、一
般には、必要なプログラムモジュールを必要時に外部記
憶装置から主メモリにロードし、アドレス解決を行い、
これを実行する方式である。
【0004】一般に動的リンク方式は、静的リンク方式
と比較して、メモリ資源の有効利用を可能とするという
長所を有するが、外部記憶装置へのI/Oやアドレス解
決のための実行時間を必要とするため、プログラムの実
行速度が遅くなるという短所を有する。この短所を克服
し高速にリンクすることを目的としたプログラムモジュ
ールの動的リンクの方式として、必要時に外部記憶装置
から直接ロードするのではなく、予め仮想記憶空間に対
象となるプログラムモジュールをロードしておき当該プ
ログラムモジュールを必要とする時にアドレスを解決す
る方式等が考えられている。
【0005】例えば、特開昭61−160135号公報
に記載されている技術がある。この方式は、プログラム
モジュールの管理テーブルを使用して、プログラムモジ
ュールのロード状態を管理するものである。即ち、実行
しているプログラムからあるプログラムモジュールのリ
ンク要求があった場合には、ローダがプログラムモジュ
ールの管理テーブルを参照して、当該プログラムモジュ
ールを既にメモリにロードしている場合には、そのプロ
グラムモジュールのアドレスを返し、ロードしていない
場合は、メモリにロードした後にアドレスを返すという
方式である。
【0006】ここで、仮想記憶空間とは、物理的な主メ
モリに加えて物理的に実在する大容量の補助記憶装置を
用いて、オペレーティングシステムの管理の下に実現さ
れる論理的なメモリ空間をいう。なお、仮想記憶空間を
実現するためにオペレーティングシステムの仮想記憶制
御としては、例えば、物理空間と論理空間の変換をペー
ジと呼ばれるブロック単位で行い、必要なページを補助
記憶装置から主メモリに移す方式であるページングが行
われる。ページングにおいて、主メモリのどのページを
補助記憶装置に追い出すかについては、最も長い間使用
されていないページを選択するLRU方式が一般に用い
られる。
【0007】次に、従来の動的オブジェクト指向システ
ムにおけるメソッドサーチの技術について説明する。動
的オブジェクト指向システムにおいては、オブジェクト
が特定のメソッドを起動すべき旨のメッセージを受信し
たときに、当該メソッドのアドレスを求めてメソッドを
起動するのであるが、メッセージを受信したオブジェク
トに目的とするメソッドが定義されておらず、継承を利
用して当該オブジェクトのスーパーオブジェクトの有す
るメソッドを起動する場合があり、この場合には、継承
の上位階層にあたるスーパーオブジェクトに向けて、目
的とするメソッドをサーチし、検出したメソッドを起動
する。
【0008】ここで、動的オブジェクト指向システムと
は、コンパイル時にメソッドやデータのアドレス解決が
なされるC++等の静的なオブジェクト指向システムと
異なり、実行時にメソッド等のアドレス解決を行うオブ
ジェクト指向システムである。また、スーパーオブジェ
クトとは、あるオブジェクトからみて継承関係の階層構
造において上位階層にあるオブジェクトをいう。なお、
動的オブジェクト指向システムにおいて継承関係の階層
構造は、あるオブジェクトから1つ上位の階層のオブジ
ェクトへのポインタとして実装される。
【0009】このメソッドサーチに関し、継承の階層構
造が深い場合に目的のメソッドの検索にかかる計算負荷
を少なくするための方式として、特開平9−6616号
公報に記載のメソッドサーチ方法がある。この方法は、
各オブジェクト内にキャッシュ領域を設け、初回に起動
したメソッドの名前と該当メソッドへのリンク情報をキ
ャッシュ領域に記憶しておき、次回のメソッド起動時に
は、キャッシュ領域を検索してキャッシュしたリンク情
報を取得し、取得したリンク情報を用いてメソッドを起
動する方法であり、過去に行ったメソッドサーチ時の情
報を各オブジェクト内に保持しておくことにより、メソ
ッドサーチにかかる計算負荷を少なくし、メソッドサー
チを高速化することを目的とした技術である。
【0010】この技術と、前述のプログラムの動的リン
クを高速化する技術とは、いずれもアドレス解決を高速
化するために、一度取得した情報を保存しておき再度利
用する点において共通する。
【0011】
【発明が解決しようとする課題】しかしながら、上述の
ようなプログラムのリンクに関する技術では、メモリの
有効利用の要求とプログラムの高速実行の要求とのバラ
ンスの変化に応じたきめ細かな制御を行うことができな
い。例えば、それぞれのプログラムモジュールが呼び出
される頻度は、プログラムの内容によって異なり、デー
タの状況等に応じて様々に変化するものであるが、従来
のプログラムのリンクに関する技術では、この変化に対
応して何らかの制御を行うことができない。
【0012】また、複数のプログラムを全てロードする
には主メモリの容量が不足する状況下で、動的リンク方
式を用いて複数のプログラムを同時に実行している場合
において、ある時間帯においては、第1のプログラムを
高速に動作させる必要があり、また別の時間帯において
は第2のプログラムを高速に動作させる必要があるとい
った高速実行要求の変動に対しても従来のプログラムリ
ンク技術では対応できない。
【0013】また、上述のような高速にメソッドサーチ
を行うための技術にも前記のプログラムリンク技術の問
題と同様に、メモリの有効利用の要求とメソッドサーチ
の高速実行の要求とのバランスの変化に応じたきめ細か
な制御を行うことができないという問題がある。即ち、
従来の高速にメソッドサーチを行うための技術は、キャ
ッシュ領域を用いることにより高速なメソッドサーチを
行うものであるため、高速性よりもメモリの有効活用を
重視する状況となった場合には有用ではない。
【0014】そこで、本発明はかかる問題点に鑑みてな
されたものであり、有限なメモリ容量を効率よく使用す
るといったメモリの有効利用の要求と、プログラムを高
速に実行するという要求とのバランスの変化に応じたき
め細かな制御を可能にするプログラムリンク方式及びメ
ソッドサーチ方式を提供することを目的とする。
【0015】
【課題を解決するための手段】上記課題を解決するため
に本発明に係るプログラムリンク方式は、メモリを含
み、複数のプログラムモジュールで構成されるプログラ
ムの実行過程において前記プログラムモジュールそれぞ
れの前記メモリへのロード及び前記メモリからのアンロ
ードを実行制御するプログラムリンク方式であって、前
記メモリは、複数の前記プログラムモジュールそれぞれ
について当該プログラムモジュールの実行終了時に当該
プログラムモジュールをアンロードをするか否かを示す
即時アンロード可否情報を含むプログラム管理情報を格
納しており、前記プログラムモジュールを格納するため
の領域を有し、複数の前記プログラムモジュールを格納
する外部記憶装置と、前記プログラムモジュールを外部
記憶装置から前記メモリにロードするロード手段と、前
記プログラムモジュールを前記メモリからアンロードす
るためのアンロード手段と、前記メモリに格納されたプ
ログラム中の各コードを解読して実行するプログラム実
行制御手段とを備え、前記プログラム実行制御手段は、
プログラムモジュールの実行終了を示すコードを解読す
ると当該プログラムモジュールに対応する前記即時アン
ロード可否情報を参照して、当該プログラムモジュール
をアンロードするか否かを判断し、前記判断に基づき前
記アンロード手段を起動するプログラムモジュール実行
終了処理部を有することを特徴とする。
【0016】プログラムモジュールを必要になった都度
メモリにロードすることは、プログラムモジュールが格
納されている外部記憶装置のアクセスタイムの影響によ
りプログラムの実行速度を低下させる要因となり、一
方、プログラムモジュールを不要な時にもメモリにロー
ドしておくと、同時に動作可能なプログラムの数が減少
するので、メモリの有効活用とプログラム実行の高速性
とのバランスを調整する必要があるのだが、本発明によ
れば、プログラム管理情報を変更することによって、そ
れぞれのプログラムモジュールが実行終了時にメモリか
らアンロードされるか否かを制御することが可能となる
ため、メモリの有効利用を図るか、プログラム実行の高
速性を図るかの調整をすることができるようになる。
【0017】例えば、それぞれのプログラムモジュール
が呼び出される頻度を考慮した調整として、プログラム
管理情報の変更等により、一度しか実行されない或いは
実行頻度の低いプログラムモジュールについて実行終了
時にアンロードするように制御でき、合理的にメモリの
無駄な使用を防ぐことができる。また、主メモリの容量
が不足する状況下で、動的リンク方式を用いて第1のプ
ログラムと第2のプログラムとを同時に実行している場
合において、第1のプログラムを第2のプログラムより
優先的に実行させたいときには、第2のプログラムを構
成するプログラムモジュールの多くを実行終了時にアン
ロードすることとして、第1のプログラムを構成するプ
ログラムモジュールについては少しを実行終了時にアン
ロードすることとしておくことにより、これが実現でき
る。
【0018】また、本発明に係るメソッドサーチ方法
は、動的オブジェクト指向システムにおいてあるオブジ
ェクトからスーパーオブジェクトの有するメソッドを実
行するために当該メソッドの所在を検索するメソッドサ
ーチ方式であって、複数のオブジェクトを格納し、メソ
ッド名と当該メソッドの所在を示すリンク情報との組で
あるメソッド情報を複数格納し得るメモリと、実行すべ
きメソッド名を受け付けるメソッド名受付手段と、前記
メソッド名受付手段により受け付けたメソッド名で示さ
れるメソッドのリンク情報を、前記メモリ中に前記メソ
ッド情報が格納されている場合は、前記メソッド情報か
ら検索し、検索できないとき又は前記メモリ中に前記メ
ソッド情報が格納されていない場合は、前記リンク情報
を前記のあるオブジェクトと継承関係にあるオブジェク
トのメソッドスロットから検索して取得した上、前記メ
ソッド名と取得した前記リンク情報とをメソッド情報と
して前記メモリに格納するメソッドサーチ手段と、特定
のメソッド情報を前記メモリから削除する削除手段とを
備えることを特徴とする。
【0019】これにより、メモリ有効利用の観点からの
要求に応え得る動的オブジェクト指向システムが実現で
きる。即ち、メソッドをサーチした後に蓄積するデータ
の量が増加した場合等において、このデータをメモリか
ら削除しメモリを開放することにより、メモリの有効利
用を図ることができる。
【0020】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を用いて詳細に説明する。 <実施の形態1>以下、本発明の実施の形態1における
プログラムリンク方式について説明する。
【0021】<プログラムコード作成装置>図1は、本
発明の実施の形態1におけるプログラムリンク方式を実
現するためのソースプログラムの例を示す図である。ソ
ースプログラム100は、mainプログラムからpr
ogA、progB、progCの3つのプログラムモ
ジュールが呼び出される構造となっている。
【0022】ソースプログラム中のcallは、プログ
ラムモジュールの呼び出しを意味する。ソースプログラ
ム中のstaticは、プログラム全体の実行開始前に
指定するプログラムモジュールをメモリに割り付け、当
該プログラムモジュールを永続的リンクモジュールとし
て扱うことを意味する。ここで、永続的リンクモジュー
ルとは、一度メモリにロードされたらプログラム全体が
実行終了するまで、メモリに割り付けられたままで開放
されないプログラムモジュールをいう。
【0023】このプログラムが実行された場合において
は、progAというプログラムモジュールは、基本的
にはmainプログラムの実行開始前にメモリに割り付
けられ、その後mainプログラムの終了まではメモリ
に割り付けられたままとなり、そのメモリは開放され
ず、mainプログラムの終了時点でメモリが開放され
る。
【0024】また、ソースプログラム中のdynami
cは、指定するプログラムモジュールを必要時に動的に
メモリに割り付け、当該プログラムモジュールを一時的
リンクモジュールとして扱うことを意味する。ここで、
一時的リンクモジュールとは、当該プログラムモジュー
ルの実行が終了すれば、プログラム全体が実行終了して
いなくても当該プログラムモジュールをアンロードすべ
きモジュールをいう。なお、アンロードとは、ロードに
よりプログラムモジュールが割り付けられていたメモリ
を開放することをいい、アンロードにより開放されたメ
モリは新たなロードに利用可能となる。
【0025】このプログラムが実行された場合において
は、progBとprogCというプログラムモジュー
ルは、基本的にはcallが実行されて呼び出された時
点で、メモリに割り付けられ、その後当該プログラムモ
ジュールの実行終了時に割り付けられたメモリが開放さ
れる。図2は、ソースプログラム100を参照してプロ
グラムコード作成装置によって作成される実行形式のプ
ログラムコードのイメージを示す図である。
【0026】プログラムコード210は、メインプログ
ラムに関するコードであり、プログラムモジュールのリ
ンクに関する制御情報となるモジュール属性定義部21
1と、機械語である実行コード212とで構成される。
また、プログラムコード220、230、240は、そ
れぞれソースプログラム100のprogA、prog
B、progCのプログラムモジュールに対応するもの
である。
【0027】なお、これらのプログラムコード210、
220、230、240は、それぞれ外部記憶装置に別
のファイルとして記録されるものである。モジュール属
性定義部211は、プログラムモジュールが永続的リン
クモジュールであるか一時的リンクモジュールであるか
を示す情報であり、プログラムが起動された時点でオペ
レーティングシステムによってメモリに読み込まれる部
分である。
【0028】実行コード212や各プログラムモジュー
ルの実行コードは、実際は機械語で記述されているが、
図中ではわかりやすく文字列で表現している。MCAL
L、EXIT、RETURNは、いずれもオペレーティ
ングシステムが提供するサービスを呼び出すための機械
語コードであり、MCALLはプログラムモジュールに
実行の制御を移す意味、EXITはプログラム全体の終
了の意味、RETURNはプログラムモジュールから呼
び元に制御を戻す意味である。なお、これらの機械語コ
ードは、例えばオペレーティングシステムのサービスを
呼び出すスーパーバイザコール命令(SVC命令)等を
含む1以上の機械語からなる。
【0029】これらの機械語コードをプロセッサが解読
した場合には、当該プロセッサは、オペレーティングシ
ステムにおける所定のサービスを実現するためのプログ
ラムのアドレスに制御を移す。また、オペレーティング
システムは本発明に係るプログラムリンク方式実現のた
めにこれらのサービスを行うが、その処理内容について
は後述する。
【0030】図3は、本発明の実施の形態1におけるプ
ログラムコード作成装置の機能ブロック図である。プロ
グラムコード作成装置300は、ソースプログラムを参
照して実行形式のプログラムコードを作成するものであ
り、ソースプログラムを解読するソースプログラム解読
部310と、その解読結果に応じてプログラムコード中
のリンク制御用情報であるモジュール属性定義部を生成
するモジュール属性定義生成部320と、その解読結果
に応じてプログラムコード中の実行コードを生成する実
行コード生成部330とを備える。
【0031】図4は、プログラムコード作成装置300
の動作を示すフローチャートである。以下、図4のフロ
ーチャートに基づいてプログラムコード作成装置300
がソースプログラム100を参照してプログラムコード
210等を作成する手順について説明する。
【0032】まず、プログラムコード作成装置300
は、ソースプログラム解読部310により、ソースプロ
グラム100を解読し、static又はdynami
cというプログラムモジュールの属性定義文に基づい
て、モジュール属性定義部211を生成する(ステップ
S410、S420)。次に、ソースプログラムの処理
内容部分を解読し、処理内容に対応するように機械語の
実行コードを生成する(ステップS430)。この処理
ステップS430は、基本的に通常のコンパイラ及びリ
ンカの翻訳・連携編集処理と同等である。但し、プログ
ラムモジュールの呼び出し記述については、MCALL
というオペレーティングシステムのサービスに制御を移
すための機械語コードに翻訳し、また、プログラムのメ
イン処理であるmainの処理の後尾にはEXITとい
うサービスに制御を移すための機械語コードを付加し、
その他のプログラムモジュールとなる処理の後尾にはR
ETURNというサービスに制御を移すための機械語コ
ードを付加し、また、それぞれのプログラムモジュール
は固定的なアドレスに配置されることを前提としない再
配置可能なコードとする。
【0033】<プログラム実行制御装置>以下、本発明
のプログラムリンク方式を実現するためにプログラムの
実行を制御するプログラム実行制御装置について説明す
る。図5は、本発明の実施の形態1におけるプログラム
実行制御装置の機能ブロック図である。
【0034】プログラム実行制御装置1000は、入力
受付部1010と、出力部1020と、実行制御部11
00と、実行管理情報記憶部1030と、プログラム記
憶部1040と、外部記憶装置1050とを備える。入
力受付部1010は、キーボードやポインティングデバ
イス等の装置からなり、操作者からのプログラム起動の
指示やリンク変更の指示等各種の指示を受けつけ、実行
制御部1100に通知する機能を有する。
【0035】出力部1020は、実行制御部の制御を受
けて情報を出力するディスプレイやプリンタ等である。
実行管理情報記憶部1030は、RAMの領域であり、
実行管理情報を格納する。ここで、実行管理情報とは、
プログラムがロードされるメモリに関する情報であるメ
モリ管理情報と、メモリ開放を制御するための情報であ
りプログラムの呼び出し状況に関する情報であるCAL
L情報とをいう。
【0036】プログラム記憶部1040は、RAMの領
域であり、実行するためのプログラムやデータ等を格納
するものであり、オペレーティングシステムの管理下に
あり、指定した量のメモリ確保や開放をオペレーティン
グシステムが実現することは通常のコンピュータシステ
ムと同様である。外部記憶装置1050は、実行可能な
プログラムコードを格納するハードディスク装置等の二
次記憶装置である。図5中では、図2に示したプログラ
ムコードを格納している様子を示している。
【0037】実行制御部1100は、複数プログラムの
実行を制御しうるオペレーティングシステムにおける一
機能部分であり、プログラムの実行制御及びメモリ管理
に関する機能を司り、リンク変更制御部1110と、実
行管理情報作成部1120と、MCALL処理部113
0と、RETURN処理部1140と、EXIT処理部
1150とを有する。
【0038】リンク変更制御部1110は、実行管理情
報記憶部1030に格納されているメモリ管理情報を更
新することにより、所定のプログラムモジュールを永続
的リンクモジュールから一時的リンクモジュールに変更
したり、一時的リンクモジュールから永続的リンクモジ
ュールに変更したりする制御を行うものである。実行管
理情報作成部1120は、プログラムを起動する際に、
外部起動装置にアクセスしてプログラムコードを参照
し、実行管理情報を作成し、実行管理情報記憶部103
0に格納するものである。
【0039】MCALL処理部1130は、実行中のプ
ログラムから呼び出される処理であり、プログラムモジ
ュールのロードに関する処理を行うものである。RET
URN処理部1140は、実行中のプログラムから呼び
出される処理であり、プログラムモジュールをアンロー
ドする処理を行うものである。EXIT処理部1150
は、プログラムの終了に際してのメモリ開放処理等を行
うものである。
【0040】図6は、メモリ管理情報のイメージを示す
図である。メモリ管理情報は、プログラム毎に1単位存
在するものであり、図6では、mainを中心としたプ
ログラムについての1単位のメモリ管理情報1200の
みを示している。同図に示すように、メモリ管理情報
は、メインプログラム名とアドレスとサイズとの組を1
つと、プログラム単位を構成する複数のプログラムモジ
ュールそれぞれについて、プログラムモジュール名とリ
ンク属性とアドレスとサイズとの組とで構成される。
【0041】ここで、アドレスとは、プログラムをロー
ドするために割り当てるメモリのアドレスをいう。な
お、同図に示す値は、mainプログラム起動直後の状
態を示しており、一時的リンクモジュールについては未
だロードされていない状態でありアドレス値とサイズは
意味を持たない。図7は、CALL情報のイメージを示
す図である。
【0042】CALL情報も、プログラム毎に1単位存
在するものであり、図7では、mainを中心としたプ
ログラムについての1単位のCALL情報1210のみ
を示している。同図に示すように、CALL情報は、プ
ログラムモジュール名とMCALL戻りアドレスとの組
で構成されており、最後尾に終端マークが付加されてい
る。プログラムモジュール名とMCALL戻りアドレス
との組は、プログラムモジュールの呼び出し毎にCAL
L情報の最後尾に追加され、プログラムモジュールの実
行が終了して呼び元に戻る毎に削除されるものであり、
この追加、削除についてはそれぞれ後述するMCALL
処理、RETURN処理により行われる。
【0043】ここで、MCALL戻りアドレスとは、プ
ログラムの実行中にプログラムモジュールを呼び出すた
めにMCALLが実行されるために、呼び出されたプロ
グラムモジュールの実行終了後にはMCALLの次ぎの
命令に制御を戻さなければならないが、その戻るべきア
ドレスをいう。また、CALL情報の要素数はプログラ
ムモジュールの呼び出し状況によって変動するため、そ
の終わりを示す意味で、終端マークを付しているが、こ
の終端マークは、0等のプログラムモジュール名ではな
いことを示すコードであればよい。
【0044】なお、図7は、progAというプログラ
ムモジュールが呼び出された後の状態を示している。以
下、上述の構成及びデータ構造を備えるプログラム実行
制御装置1000の動作について、図2に示すmai
n、progA、progB、progCからなるプロ
グラムの実行を例にして説明する。
【0045】図8は、実行制御部1100によるプログ
ラム起動の動作を示すフローチャートである。操作者が
mainプログラムの実行を指示したときに、実行制御
部1100は、入力受付部1010を介して指示を受け
付け、実行管理情報作成部1120によって、外部記憶
装置1050からmainのプログラムコード210を
読み出し、モジュール属性定義部211を参照しメモリ
管理情報1200を作成して実行管理情報記憶部103
0に格納する(ステップS1311)。
【0046】但し、メモリ管理情報1200中のアドレ
ス及びサイズについては、この段階では格納しないがそ
の他の情報についての値は格納される。次に、実行制御
部1100は、プログラムコード210の実行コード2
12をプログラム記憶部1040にロードし、メモリ管
理情報1200中のアドレス及びサイズに値を設定する
(ステップS1312)。このプログラムのロードにつ
いてのメモリ割当は、通常のオペレーティングシステム
における制御と同様であり、メモリの一領域を確保し、
当該メモリ領域に外部記憶装置からmainプログラム
の実行コードを読み込む。この確保したメモリ領域のア
ドレスとサイズが前述のメモリ管理情報1200の値と
なる。
【0047】mainプログラムをロードした後、実行
制御部1100は、メモリ管理情報を参照してリンク属
性が永続的リンクであるプログラムモジュールの実行コ
ードをプログラム記憶部1040にロードし、メモリ管
理情報1200中のアドレス及びサイズに値を設定する
(ステップS1313)。この結果として、progA
というプログラムモジュールのプログラムコード220
がプログラム記憶部1040にロードされ、メモリ管理
情報1200の各値は、図6に示す状態となる。この例
では、永続的リンクモジュールはprogAのみである
ので、一時的リンクモジュールであるprogBやpr
ogCはまだロードされない。
【0048】progAのロードの後、実行制御部11
00は、mainプログラムを実行する(ステップS1
314)。以下、mainプログラムの実行に即してプ
ログラム実行制御装置の各処理について各説明する。図
2に示すように、mainプログラムの実行コードにM
CALL progAがあり、これを実行する段階で、
MCALL処理部1130に制御が移される。
【0049】図9は、MCALL処理部1130の動作
を示すフローチャートである。MCALL処理部113
0は、CALL情報1210にprogAという呼び出
すべきプログラムモジュール名とMCALL戻りアドレ
スとの組を追加する(ステップS1321)。このとき
のCALL情報1210の値は図7に示したようにな
る。
【0050】MCALL戻りアドレスは、MCALLの
直前に当該アドレスを所定のレジスタに格納する機械語
命令が配置される等してあり、これによりMCALL処
理部1130では、MCALL戻りアドレスを取得する
ことができるものとする。次に、MCALL処理部11
30は、メモリ管理情報1200を参照し、呼び出すプ
ログラムモジュールのリンク属性を得て(ステップS1
322)、一時的リンクであれば当該プログラムモジュ
ールをロードするが(ステップS1324)、永続的リ
ンクならばステップS1324はスキップして、呼び出
すプログラムモジュールのアドレスを所定のレジスタに
格納し(ステップS1325)、当該プログラムモジュ
ールを実行する(ステップS1326)。
【0051】即ち、永続的リンクモジュールは、プログ
ラム全体の起動時にロードされているために新たにロー
ドはしないが、一時的リンクモジュールは必要時にのみ
ロードするものであるために、ステップS1324によ
りロードするのである。progAは、永続的リンクモ
ジュールであるため、MCALL処理部1130は、新
たにロードは行わずに、メモリ管理情報1200を参照
してアドレス値を所定のレジスタに格納して、prog
Aを実行する。なお、プログラムモジュールは再配置可
能な構造であるため、所定のレジスタに自らが配置され
たアドレスを得ることにより実行可能となる。
【0052】この後、progAのRETURN(図2
参照)を実行する段階で、RETURN処理部1140
に制御が移される。図10は、RETURN処理部11
40の動作を示すフローチャートである。RETURN
処理部1140は、CALL情報1210の最後尾を参
照しプログラムモジュール名とMCALL戻りアドレス
とを取得する(ステップS1331)。これにより、R
ETURN処理部1140は、どのプログラムモジュー
ルの実行が終了したのかを知り、CALL情報から当該
プログラムモジュールについての情報を削除する(ステ
ップS1332)。この場合は、progAの実行終了
を意味するRETURNであるため、progAについ
ての情報がCALL情報から削除される。
【0053】CALL情報からprogAについての情
報を削除した後、RETURN処理部1140は、メモ
リ管理情報1200を参照し、実行が終了したプログラ
ムモジュールのリンク属性を得て(ステップS133
3)、永続的リンクでなければ実行が終了したプログラ
ムモジュールをロードしたメモリを開放し(ステップS
1335)、永続的リンクであれば、ステップS133
5の処理をスキップして、MCALL戻りアドレスへ制
御を戻す(ステップS1336)。
【0054】即ち、永続的リンクモジュールについて
は、プログラム全体が終了するまでは、アンロードせ
ず、一時的リンクモジュールについては、当該プログラ
ムモジュールの実行が終了した時点で、割り当てている
メモリを開放することになる。progAは永続的リン
クモジュールであるため、RETURN処理部1140
は、progAをロードしているメモリの開放は行わ
ず、mainプログラムのMCALL progAの次
のアドレスに制御を戻し、MCALL progBが実
行されることになる(図2参照)。
【0055】従って、MCALL処理部1130は、p
rogBというプログラムモジュールを呼び出す処理を
行う(図9参照)。CALL情報への情報追加(ステッ
プS1321)は、progAの場合と同様であるが、
progBは一時的リンクモジュールであるため、MC
ALL処理部1130は、プログラムモジュールのロー
ド処理と、ロード時に割り当てるメモリのアドレス、サ
イズの値をメモリ管理情報1200に設定する処理を行
う(ステップS1322、S1323、S1324)。
【0056】これにより、progBというプログラム
モジュールのプログラムコード230が外部記憶装置1
050からプログラム記憶部1040に読み込まれる。
progBのロード後、MCALL処理部1130は、
progBを割り当てたメモリのアドレスを所定のレジ
スタに格納し、progBを実行する(ステップS13
25、S1326)。
【0057】この後、progBのRETURN(図2
参照)を実行する段階で、RETURN処理部1140
に制御が移される。RETURN処理部1140がCA
LL情報を参照しプログラムモジュール名とMCALL
戻りアドレスとを取得し(ステップS1331)、CA
LL情報から当該プログラムモジュールの情報を削除し
(ステップS1332)、メモリ管理情報を参照して、
当該プログラムモジュールのリンク属性を得る(ステッ
プS1333)までは、progAのRETURNを処
理する場合と同様であるが、progBは一時的リンク
モジュールであるため、progBをロードしたメモリ
を開放する処理がなされる点で異なる(ステップS13
34、S1335)。
【0058】メモリの開放は、アドレス、サイズを指定
して行うものであり、通常のオペレーティングシステム
におけるメモリ開放の処理と同様である。メモリ開放の
後に、MCALL戻りアドレスへ制御を戻す(ステップ
S1336)。このようにして、mainプログラムは
実行され、最後にEXITが実行されることになる(図
2参照)。
【0059】EXITが実行されると、EXIT処理部
1150に制御が移される。図11は、EXIT処理部
1150の動作を示すフローチャートである。EXIT
処理部1150は、メモリ管理情報1200を参照し、
メインプログラムであるmainをロードしたメモリ
を、アドレス、サイズ指定により開放する(ステップS
1341)。
【0060】メインプログラムのメモリ開放の後、EX
IT処理部1150は、メモリ管理情報1200を参照
し、リンク属性が永続的リンクであるプログラムモジュ
ールをロードしたメモリをすべて開放する(ステップS
1342)。メモリの開放の後、EXIT処理部115
0は、メモリ管理情報1200及びCALL情報121
0を削除する(ステップS1343)。即ち、EXIT
処理部1150により、実行管理情報記憶部1030に
格納されていたmainをメインプログラムとするプロ
グラム全体に関する情報はすべて削除される。
【0061】このように、プログラム実行制御装置10
00は、永続的リンクモジュールは、プログラム起動時
にメモリにロードしプログラム全体の実行が終了するま
でメモリに割り付けているが、一時的リンクモジュール
については、当該一時的リンクモジュールの実行が必要
になった時点でメモリにロードし、当該一時的リンクモ
ジュールの実行が終了した時点で、ロードしたメモリを
開放する。
【0062】従って、プログラム実行制御装置1000
配下では、呼び出す頻度の低いプログラムモジュールを
一時的リンクモジュールとなるように定義しておくこと
により、有限なメモリを有効に活用することができる。
以下、プログラム実行制御装置1000のリンク変更制
御について説明する。図12は、プログラム実行制御装
置1000におけるリンク変更制御動作を示すフローチ
ャートである。
【0063】操作者は、実行中のプログラムモジュール
の一覧表示要求、或いは、特定のプログラムモジュール
のリンク属性の変更指示を行うことができる。リンク変
更制御部1110は、入力受付部1010を介して操作
者の入力を受け付け(ステップS1351)、それが実
行中のプログラムモジュールの一覧表示要求であれば
(ステップS1352)、実行管理情報記憶部1030
に格納されている現在実行中のプログラムに関するメモ
リ管理情報を参照して、プログラムモジュール名及びリ
ンク属性の一覧であるプログラムモジュールリストを出
力部1020を介して出力する(ステップS135
3)。なお、現在実行中のプログラムが複数あればメモ
リ管理情報は複数単位存在する。
【0064】図13は、プログラムモジュールリストの
イメージを示す図である。プログラムモジュールリスト
は、操作者がこれを参照してリンク属性を変更するため
の指示をするために出力されるものであり、同図は、上
述のmainプログラムが実行中である状況におけるプ
ログラムモジュールリストを示しており、progA、
progB、progCについての現在のリンク属性が
表示されている。
【0065】このプログラムモジュールリストを参照す
る等して操作者が、特定のプログラムモジュールを指定
してリンク属性の変更指示を入力したならば、リンク変
更制御部1110は、入力受付部1010を介して操作
者の入力を受け付け(ステップS1351)、それがリ
ンク属性の変更指示であることを判断し(ステップS1
354)、変更すべきモジュール名を取得する(ステッ
プS1355)。
【0066】ここで、操作者によりprogA(図13
参照)が指定されたとする。リンク変更制御部1110
は、progAのリンク属性が現在永続的リンクである
か否かをメモリ管理情報を参照して判断し、永続的リン
クであったとすると、以後は一時的リンクに変更する処
理を行うことになり、まずprogAが実行中か否かを
判断する(ステップS1360)。プログラムモジュー
ルが実行中か否かの判断は、実行管理情報記憶部103
0中のCALL情報の最後尾に当該プログラムモジュー
ルの名称が格納されているか否かによって行う。
【0067】プログラムモジュールが実行中でなけれ
ば、次にリンク変更制御部1110は、メモリ管理情報
を参照してアドレス、サイズを指定して当該プログラム
モジュールがロードされていたメモリを開放し(ステッ
プS1361)、メモリ管理情報のリンク属性の値を一
時的リンクに変更する(ステップS1362)。また、
プログラムモジュールが実行中であれば、リンク変更制
御部1110は、メモリ開放の処理ステップS1361
はスキップして、メモリ管理情報のリンク属性の値を一
時的リンクに変更する(ステップS1362)。
【0068】これにより、progAは、永続的リンク
モジュールから一時的リンクモジュールに変更されるこ
とになる。また、操作者にprogB(図13参照)が
指定されたとする(ステップS1351、S1354、
S1355)。リンク変更制御部1110は、prog
Bのリンク属性が現在永続的リンクであるか否かをメモ
リ管理情報を参照して判断し(ステップS1356)、
永続的リンクでなかったとすると、以後は永続的リンク
に変更する処理を行うことになる。従って、リンク変更
制御部1110は、progBが実行中か否かを判断し
(ステップS1357)、実行中でなければ、prog
Bをロードし、メモリ管理情報の値としてprogBを
格納したプログラム記憶部1040の領域のアドレス、
サイズを設定し(ステップS1358)、リンク属性の
値を永続的リンクに変更する(ステップS1359)。
また、progBが実行中であれば、リンク変更制御部
1110は、プログラムモジュールロードの処理ステッ
プS1358はスキップして、メモリ管理情報のリンク
属性の値を永続的リンクに変更する(ステップS135
9)。
【0069】上述のように、プログラム実行制御装置1
000は、プログラムモジュールについてのメモリ管理
情報中のリンク属性を操作者の指示に基づいて変更し、
このリンク属性をプログラム中のMCALL、RETU
RN、EXITの処理過程において参照することによ
り、永続的リンクモジュールについてはプログラム全体
が終了するまでメモリに割り付け、一時的リンクモジュ
ールについては必要時以外はメモリに割り付けないよう
にする。
【0070】従って、操作者は、プログラムの実行状況
及びメモリ資源の使用率等に応じて臨機応変にプログラ
ムモジュールのメモリ使用形態を変更することができ
る。 <プログラム実行制御装置の変形例1>以下、上述のプ
ログラム実行制御装置1000に、プログラムモジュー
ルの呼び出された頻度を計測して、出力する呼出頻度管
理機能を付加した変形例であるプログラム実行制御装置
2000について説明する。
【0071】プログラム実行制御装置2000は、プロ
グラム実行制御装置1000と基本的に同様の構成要素
を備えるが、実行管理情報記憶部1030に代えて実行
管理情報記憶部2030を、リンク変更制御部1110
に代えてリンク変更制御部2110を、MCALL処理
部1130に代えてMCALL処理部2130を備える
(図5参照)。
【0072】実行管理情報記憶部2030は、基本的に
実行管理情報記憶部1030と同様であるが、メモリ管
理情報1200と構造の異なるメモリ管理情報2200
を格納する点でのみ実行管理情報記憶部1030と異な
る。図14は、実行管理情報記憶部2030に格納され
たメモリ管理情報2200のイメージを示す図である。
【0073】メモリ管理情報2200がメモリ管理情報
1200と異なる点は、各プログラムモジュールについ
ての呼出頻度の情報が付加されている点である。同図に
示す例では、progAというプログラムモジュールの
呼出頻度は10であり、progBについては6であ
り、progCについては1である。これは、プログラ
ム実行中の状態を示している。
【0074】MCALL処理部2130は、基本的にM
CALL処理部1130と同様であるが、MCALL処
理部1130におけるMCALL処理のステップS13
21とステップS1322との間に、メモリ管理情報の
呼出頻度値を1だけカウントアップする処理が加わった
ものである。これにより、メモリ管理情報中の呼出頻度
の値は、プログラムモジュールが呼び出される毎に増加
することになる。
【0075】リンク変更制御部2110は、リンク変更
制御部1110と同様の動作(図12)を行うが、出力
するプログラムモジュールリスト(ステップS1353
参照)は、メモリ管理情報中の呼出頻度を加えたもので
ある。図15は、リンク変更制御部2110が出力部1
020を介して出力するプログラムモジュールリストの
イメージを示す図である。
【0076】同図に示す例では、progAは呼出頻度
が10、progBは呼出頻度が2、progCは呼び
出し頻度が1となっている。このようにプログラム実行
制御装置2000は、操作者の指示に応じて、プログラ
ムモジュールの呼出頻度に関する情報を出力するので、
これを参照して操作者は適切にリンク属性変更の指示を
行うことができる。
【0077】<プログラム実行制御装置の変更例2>以
下、上述のプログラム実行制御装置2000に、操作者
の入力を受けなくても自動的にリンク属性を変更する機
能を付加した変形例であるプログラム実行制御装置30
00について説明する。プログラム実行制御装置300
0は、プログラム実行制御装置2000と基本的に同様
の構成要素を備えるが、リンク変更制御部2110に代
えてリンク変更制御部3110を備える。
【0078】リンク変更制御部3110は、リンク変更
制御部2110の機能に加えて、自動リンク変更制御の
機能を備えたものである。図16は、リンク変更制御部
3110の自動リンク変更制御の動作を示すフローチャ
ートである。リンク変更制御部3110は、コンピュー
タの備える計時機能等を用いて定期的に同図に示す自動
リンク変更制御を開始し、実行管理情報記憶部2030
に格納されているすべてのメモリ管理情報を参照して、
複数のプログラムモジュールそれぞれについて自動的に
一時的リンクモジュール又は永続的リンクモジュールに
変更する。
【0079】即ち、リンク変更制御部3110は、呼出
頻度の情報を参照し、所定数以上の呼出頻度で使用され
ているプログラムモジュールについては永続的リンクモ
ジュールに変更し、所定数未満の呼出頻度で使用されて
いるプログラムモジュールについては一時的リンクモジ
ュールに変更する。以下、図14に示すメモリ管理情報
の値を前提にして、自動リンク変更制御の動作を説明す
る。
【0080】まず、リンク変更制御部3110は、メモ
リ管理情報を参照し1つのプログラムモジュールの情報
に着目し(ステップS3301)、呼出頻度が所定数以
上か否か判断する(ステップS3302)。ここで、p
rogAに着目したとし(図14参照)、所定数は5で
あるとする。呼出頻度が10であるprogAは、所定
数より呼出頻度が高いため、以後永続的リンクモジュー
ルにするための処理を行う。
【0081】リンク変更制御部3110は、リンク属性
が永続的リンクであるか否かを判断し(ステップS33
07)、永続的リンクでない場合には、着目しているプ
ログラムモジュールが実行中のときは(ステップS33
08)、当該プログラムモジュールをメモリにロードし
(ステップS3309)てリンク属性を永続的リンクに
変更し(ステップS3310)、実行中でないときは、
ステップS3309をスキップして、リンク属性を永続
的リンクに変更する(ステップS3310)。なお、ロ
ードした場合には、リンク変更制御部3110は、メモ
リ管理情報にアドレス、サイズの値を設定する。
【0082】また、既に永続的リンクである場合には
(ステップS3307)、永続的リンクに特に変更する
処理はスキップする。この結果、progAはもとから
永続的リンクモジュールであったため、リンク属性の変
更はなされない。リンク変更制御部3110は、すべて
のプログラムモジュールに着目して処理が完了したなら
ば自動リンク変更制御の処理は終了するが、まだ未処理
のプログラムモジュールがあれば(ステップS331
1)、次のプログラムモジュールに着目して同様に処理
を行う(ステップS3312、S3302)。
【0083】次に、progBに着目したとすると、呼
出頻度は6であり所定数より呼出頻度が高いため、以後
progBを永続的リンクモジュールにするための処理
を行う。リンク変更制御部3110は、progBのリ
ンク属性が永続的リンクでないため(ステップS330
7)、progBのリンク属性を永続的リンクに変更す
る(ステップS3308〜S3310)。なお、pro
gBが実行中でなければ、メモリへのロードも行われる
(ステップS3308、S3309)。
【0084】この結果として、一時的リンクモジュール
であったprogBは、永続的リンクモジュールに変更
される。また、次にprogCに着目したとすると、呼
出頻度は1であり所定数より呼出頻度が低いため、以後
progCを一時的リンクモジュールにするための処理
を行う。
【0085】progCは、もとから一時的リンクモジ
ュールであったため、リンク属性の変更はなされない
(ステップS3303)。仮に、progCが永続的リ
ンクモジュールであったとした場合には、リンク変更制
御部3110は、progCが実行中のときは(ステッ
プS3304)、progCがロードされていたメモリ
を開放し(ステップS3305)、リンク属性を一時的
リンクに変更し(ステップS3306)、progCが
実行中でないときはメモリ開放のステップS3305を
スキップしてリンク属性を一時的リンクに変更する(ス
テップS3306)。
【0086】こうしてすべてのプログラムモジュールに
着目し、リンク属性の変更をした後、リンク変更制御部
3110の1回の自動リンク変更制御は終了する。この
ように、プログラム実行制御装置3000は、プログラ
ムモジュールの呼出頻度に応じて自動的にプログラムモ
ジュールのリンク属性を変更するので、プログラム実行
の高速性確保とメモリ資源の有効活用とのバランスを合
理的なものとすることができる。
【0087】<プログラム実行制御装置の変形例3>以
下、上述のプログラム実行制御装置1000のリンク属
性変更に関する方式を部分的に変更したプログラム実行
制御装置4000について説明する。プログラム実行制
御装置4000は、プログラム実行制御装置1000と
基本的に同様の構成要素を備えるが、実行管理情報記憶
部1030に代えて実行管理情報記憶部4030を、実
行制御部1100に代えて実行制御部4100を備える
(図5参照)。即ち、プログラム実行制御装置4000
は、リンク変更制御部1110に代えてリンク変更制御
部4110を、実行管理情報作成部1120に代えて実
行管理情報作成部4120を、MCALL処理部113
0に代えてMCALL処理部4130を、RETURN
処理部1140に代えてRETURN処理部4140
を、EXIT処理部1150に代えてEXIT処理部4
150を備える。
【0088】以下、プログラム実行制御装置4000が
プログラム実行制御装置1000と相違する点について
順次説明する。実行管理情報記憶部4030は、基本的
に実行管理情報記憶部1030と同様であるが、メモリ
管理情報1200と構造の異なるメモリ管理情報420
0を格納する点でのみ実行管理情報記憶部1030と異
なる。
【0089】図17は、実行管理情報記憶部4030に
格納されたメモリ管理情報4200のイメージを示す図
である。メモリ管理情報4200がメモリ管理情報12
00と異なる点は、各プログラムモジュールについてア
ドレス有効フラグが付加されている点である。ここで、
アドレス有効フラグとは、メモリ管理情報中のアドレス
値が有効であればON、無効であればOFFを示すもの
である。
【0090】なお、プログラム実行制御装置4000
は、プログラムモジュールをメモリ中にロード済みであ
る場合には、当該プログラムモジュールについてのアド
レス有効フラグがONとなるように制御する。従って、
アドレス有効フラグが既にONであるプログラムモジュ
ールを呼び出す必要が生じた場合には、新たにロードす
る必要はない。
【0091】実行管理情報作成部4120は、プログラ
ムを起動する際に、外部起動装置にアクセスしてプログ
ラムコードを参照し、実行管理情報を作成し、実行管理
情報記憶部4030に格納するものであるものであり、
実行管理情報作成部1120と基本的に同様であるが、
メモリ管理情報を作成するときにすべてのプログラムモ
ジュールについてアドレス有効フラグをOFFにする点
が異なる。
【0092】以下、実行制御部4100によるプログラ
ム起動の動作について図2に示すプログラムの実行例に
基づいて説明する。図18は、実行制御部4100によ
るプログラム起動の動作を示すフローチャートである。
操作者がmainプログラムの実行を指示したときに、
実行制御部4100は、入力受付部1010を介して指
示を受け付け、実行管理情報作成部4120によって、
外部記憶装置1050からmainのプログラムコード
210を読み出し、モジュール属性定義部211を参照
しメモリ管理情報4200を作成して実行管理情報記憶
部1030に格納する(ステップS4311)。
【0093】但し、メモリ管理情報4200中のアドレ
ス及びサイズについては、この段階では格納しないがそ
の他の情報についての値は格納される。次に、実行制御
部4100は、プログラムコード210の実行コード2
12をプログラム記憶部1040にロードし、メモリ管
理情報4200中のアドレス及びサイズに値を設定する
(ステップS4312)。
【0094】次に、実行制御部4100は、mainプ
ログラムを実行する(ステップS4313)。このよう
に、実行制御部4100は、プログラム実行制御装置1
000における実行制御部1100と異なり、リンク属
性が永続的リンクのプログラムモジュールをメインプロ
グラムの実行前にロードしない。
【0095】以下、MCALL処理部4130、RET
URN処理部4140、EXIT処理部4150につい
て説明する。図19は、MCALL処理部4130の動
作を示すフローチャートである。MCALL処理部41
30は、MCALL処理部1130の動作(図9参照)
におけるステップS1322、ステップS1323、ス
テップS1324について、MCALL処理部1130
と異なる動作を行う。
【0096】即ち、MCALL処理部4130は、リン
ク属性を参照するステップS1322に代えてアドレス
有効フラグを参照するステップS4322の処理を行
い、永続的リンクか判断するステップS1323に代え
て、アドレス有効フラグがONか否かを判断するステッ
プS4323の処理を行う。従って、MCALL処理部
4130は、アドレス有効フラグがOFFであれば、プ
ログラムモジュールをロードし(ステップS432
4)、アドレス有効フラグがONであれば、新たにロー
ドは行わない。但し、ロードしたときに、アドレス有効
フラグをONにする。
【0097】換言すれば、プログラムモジュールの呼び
出しの指示を受け付けるMCALL処理部4130は、
当該プログラムモジュールが既にロードされていれば新
たにロードはしないが、ロードされていなければ新たに
ロードするのである。図20は、RETURN処理部4
140の動作を示すフローチャートである。RETUR
N処理部4140は、RETURN処理部1140の動
作(図10参照)におけるステップS1335につい
て、RETURN処理部1140と異なる動作を行う。
【0098】即ち、RETURN処理部4140は、永
続的リンクでない場合に(ステップS1334)、プロ
グラムモジュールをロードしたメモリを開放するステッ
プS1335に代えて、プログラムモジュールをロード
したメモリを開放してアドレス有効フラグをOFFにす
るステップS4335の処理を行う。図21は、EXI
T処理部4150の動作を示すフローチャートである。
【0099】EXIT処理部4150は、EXIT処理
部1150の動作(図11参照)におけるステップS1
342について、EXIT処理部1150と異なる動作
を行う。即ち、EXIT処理部4150は、リンク属性
が永続的リンクであるプログラムモジュールをロードし
たメモリを開放するステップS1342に代えて、アド
レス有効フラグがONであるプログラムモジュールをロ
ードしたメモリを開放するステップS4342の処理を
行う。
【0100】上述のようなアドレス有効フラグを用いた
制御により、操作者の指示等に基づくリンク属性の変更
がなされていない間においては、プログラム実行制御装
置4000は、永続的リンクモジュールの呼び出しが必
要な時は、当該永続的リンクモジュールを最初の1度だ
けメモリにロードをし、それ以後は新たにロードするこ
となく呼び出しを行い、一時的リンクモジュールの呼び
出しが必要な時は、その都度新たにロードして呼び出
す。
【0101】以下、プログラム実行制御装置4000の
リンク変更制御機能を司るリンク変更制御部4110の
動作について説明する。図22は、リンク変更制御部4
110の動作を示すフローチャートである。リンク変更
制御部4110は、リンク変更制御部1110の動作
(図12参照)におけるステップS1357、ステップ
S1358、ステップS1360、ステップS1361
を削除したのと同様の動作を行う。
【0102】即ち、リンク変更制御部4110は、操作
者が変更すべきと指示したプログラムモジュールが永続
的リンクモジュールであれば、これを一時的リンクモジ
ュールに変更するために、メモリ管理情報の当該プログ
ラムモジュールに関するリンク属性を一時的リンクとす
るだけであり、操作者が変更すべきと指示したプログラ
ムモジュールが一時的リンクモジュールであれば、これ
を永続的リンクモジュールに変更するために、メモリ管
理情報の当該プログラムモジュールに関するリンク属性
を永続的リンクとするだけである。
【0103】従って、プログラム実行制御装置4000
におけるプログラムモジュールについてのリンク属性の
変更の効果は、当該プログラムモジュールが呼び出され
てそのプログラムモジュールの実行が終了した時点での
扱いに現れ、メモリに割り付けたままとするか、割り付
けているメモリを開放するかという点においてリンク属
性の変更前と異なった扱いがなされる。 <実施の形態2>以下、本発明の実施の形態2における
メソッドサーチ方式を実現する動的オブジェクト指向シ
ステムについて説明する。
【0104】図23は、動的オブジェクト指向システム
5000における各オブジェクトの構造のイメージを示
す図である。動的オブジェクト指向システム5000
は、CPU、メモリ、入力装置、出力装置等を備える一
般的なコンピュータと、このコンピュータ上で動作する
オブジェクト指向のプログラム群とからなる。
【0105】オブジェクト5100、5200、530
0は継承関係を持つオブジェクトであり、Super
Objectというスロットによって親となるスーパー
オブジェクトを、Sub Objectというスロット
によって子となるサブオブジェクトを指し示している。
即ち、ObjectAは、ObjectB及びObje
ctCのスーパーオブジェクトであり、ObjectB
は、ObjectCのスーパーオブジェクトである。
【0106】ここで、スロットとは、オブジェクトの内
部でデータを保持する領域をいい、コンピュータのメモ
リ上に割り当てられたデータを示すポインタとして実現
される。なお、ObjectAのSuper Obje
ctスロット及びObjectCのSub Objec
tスロットは、空リンクであり、それぞれ、スーパーオ
ブジェクト、サブオブジェクトが存在しないことを示し
ている。また、動的オブジェクト指向システム5000
は、ObjectA〜Cの他にも操作者の入力受け付け
等を行う様々な制御用オブジェクトを有する。
【0107】また、ObjectA、ObjectB、
ObjectCは、それぞれ過去に起動したメソッドに
ついてのリンク情報を記憶するため、メソッドリスト5
110、5210、5310を有する。Methods
スロットは、各オブジェクトに定義されたメソッドを管
理している。
【0108】同図では、ObjectAはMethod
Aを有し、ObjectBはMethodBを有してお
り、これらのメソッドは、継承関係にあるObject
Cから利用することができる。図24は、メソッドリス
トの内容のイメージを示す図である。メソッドリスト
は、メソッド名とメソッドへのポインタと呼出頻度との
組を1セットとして、メソッドサーチしたメソッドにつ
いて格納するリストである。
【0109】このメソッドリストは、メソッド毎に1セ
ットの情報が追加、又は削除されるものであり、例え
ば、メソッド毎の1セットの情報をポインタチェーンで
連結したいわゆるリスト構造等のデータ構造をとる。 <メソッドリストを用いたメソッドサーチ機構>以下、
メソッドリストを用いたメソッドサーチ機構について説
明する。
【0110】まず、ObjectCに対してMetho
dAを起動すべきメッセージが送られてきた場合を例に
してメソッドサーチの手順について説明する。但し、ま
だ1度もMethodAの起動がなされていないとし、
メソッドリスト5310及びメソッドリスト5210に
はMethodAに関する情報は格納されていないもの
とする。
【0111】(1)ObjectCにMethodAを
起動すべきメッセージが送られる。 (2)ObjectCは、自己のMethodsスロッ
トを検索し、MethodAを探す。 (3)ObjectCには、MethodAが定義され
ていないので、メソッドリスト5310内を検索する。
【0112】(4)メソッドリスト5310に、Met
hodAの情報が格納されていないので、Super
Objectスロットを介してスーパーオブジェクトで
あるObjectBのMethodsスロットを検索す
る。 (5)ObjectBのMethodsスロットにも、
MethodAが定義されていないので、メソッドリス
ト5210内を検索する。
【0113】(6)メソッドリスト5210にも、Me
thodAの情報が格納されていないので、さらにスー
パーオブジェクトであるObjectAのMethod
sスロットを検索する。 (7)ObjectAには、MethodAが定義され
ているので、MethodAのポインタを得て、Met
hodAの名称及びポインタをメソッドリスト5310
に追加登録し、メソッドリスト中の呼出頻度には1を設
定する。
【0114】(8)MethodAを起動する。 (9)この後、ObjectCに、再度MethodA
を起動すべきメッセージが送られた場合には、Obje
ctCは、上述の手順で自己のメソッドリスト5310
を検索した段階で、MethodAのポインタを得るこ
とができるため、即時にMethodAを起動すること
ができる。なお、起動の都度メソッドリスト中の呼出頻
度の数値を1だけカウントアップする。
【0115】次に、それぞれのオブジェクトに関しての
メソッド呼出処理に着目して説明する。図25は、それ
ぞれのオブジェクトについて行うメソッド呼出処理の動
作を示すフローチャートである。オブジェクトに対して
メソッド起動要求のメッセージが送られると、オブジェ
クトは、自己のMethodsスロットに起動すべきメ
ソッドが格納されているか判断し(ステップS550
1)、もし格納されているならば、当該メソッドを実行
する(ステップS5502)。
【0116】また、自己のMethodsスロットに起
動すべきメソッドが格納されていなければ、オブジェク
トは、自己のメソッドリストに当該メソッドに関する情
報が登録されているかを判断し(ステップS550
3)、登録されている場合ば、メソッドリスト中の当該
メソッドに関する呼出頻度の値を1増加し(ステップS
5507)、メソッドリスト中の当該メソッドに関する
リンク情報、即ち当該メソッドのポインタを用いて当該
メソッドを実行する(ステップS5508)。
【0117】また、自己のメソッドリストに当該メソッ
ドに関する情報が登録されていない場合は(ステップS
5503)、オブジェクトは、Super Objec
tスロットを介してスーパーオブジェクトについてメソ
ッドサーチを行い、当該メソッドのリンク情報を得る
(ステップS5504)。起動すべきメソッドのリンク
情報を得たオブジェクトは、メソッドの名称と、メソッ
ドへのリンク情報であるポインタとを自己のメソッドリ
ストに登録し(ステップS5505)、呼出頻度として
は1を設定し(ステップS5506)、リンク情報に基
づきメソッドを実行する(ステップS5508)。
【0118】<メソッドリスト削除機構>以下、メソッ
ドリストから1又は複数のメソッドに関する情報を削除
する機構について説明する。動的オブジェクト指向シス
テム5000に対し、操作者は、メソッドリストの出力
指示或いはメソッドリストの削除指示をすることができ
る。なお、メソッドリストの削除指示については、削除
すべきメソッドリストを保持するオブジェクトの指定に
加えて、メソッド名又は削除基準となる呼出頻度値を指
定することを要する。
【0119】ここで、メソッドリストの削除とは、メソ
ッドリストから1セットのメソッドに関する情報を削除
することをいい、削除することによりリスト構造のチェ
ーンから1セット分のデータが取り外され、その1セッ
トの情報分のメモリが開放される。図26は、動的オブ
ジェクト指向システム5000におけるメソッドリスト
削除制御の動作を示すフローチャートである。
【0120】動的オブジェクト指向システム5000
は、操作者の入力を受け付ける制御用オブジェクトを介
して、操作者からの指示を受けつけ(ステップS551
1)、それがメソッドリストの出力指示であれば(ステ
ップS5512)、存在する各オブジェクトのメソッド
リストを参照し、これらのメソッドリストの内容を出力
する(ステップS5513)。
【0121】図27は、メソッドリストの内容の出力イ
メージを示す図である。同図に示すように、オブジェク
ト名とメソッド名と呼出頻度との組が一覧形式でディス
プレイ、プリンタ等に出力される。また、動的オブジェ
クト指向システム5000は、操作者からの指示がメソ
ッド削除指示であれば(ステップS5514)、操作者
により入力されたメソッド削除指示を解読し、削除対象
のメソッドリストを有するオブジェクトに対して、操作
者からの指示をパラメータに含む削除メッセージを送る
(ステップS5515)。
【0122】この結果、削除メッセージを受けたオブジ
ェクトは、削除メッセージのパラメータの内容に応じ
て、メソッドリストの削除動作を行うことになる。図2
8は、削除メッセージを受けたオブジェクトにおけるメ
ソッドリスト削除の動作を示すフローチャートである。
削除メッセージを受けたオブジェクトは、パラメータに
着目し(ステップS5521)、削除メッセージがメソ
ッド名指定の削除指示であれば(ステップS552
2)、自己の有するメソッドリストから当該メソッド名
のメソッドに関する情報の1セットを削除する(ステッ
プS5523)。
【0123】また、当該オブジェクトは、削除メッセー
ジが呼出頻度指定によるメソッドリストからのメソッド
の削除指示であれば(ステップS5524)、指定され
た呼出頻度を取得し(ステップS5525)、自己の有
するメソッドリスト中の呼出頻度が、指定された呼出頻
度未満であるメソッドの情報を検索し、検索したメソッ
ドの情報をすべて削除する(ステップS5526)。
【0124】例えば、操作者によりObjectCを対
象として呼出頻度として5を指定された削除指示を受け
た場合には、ObjectCは、呼出頻度が5未満であ
るメソッドの情報をすべて削除する。ObjectCの
有するメソッドリストが図24に示すようであれば、呼
出頻度が10であるMethodAに関する情報は削除
されないが、呼出頻度が1であるMethodBに関す
る情報は削除されることになる。
【0125】このように、動的オブジェクト指向システ
ム5000は、操作者の指示に応じて、メソッドリスト
を削除して、メモリの有効活用を図る機能を有する。以
上、本発明に係るプログラムリンク方式及びメソッドサ
ーチ方式について、実施形態に基づいて説明したが、本
発明はこれら実施形態に限られないことは勿論である。
即ち、 (1)実施の形態1では、プログラムコード作成装置3
00は、プログラムモジュールの後尾にRETURNと
いうサービスに制御を移すための機械語コードを付加す
ることとしたが、これに限定されることはなく、プログ
ラムモジュールの最後尾でなくても、プログラムモジュ
ール名指定等によりどのプログラムモジュールの実行終
了かを判別可能とする情報を付加するならば、前記RE
TURNをプログラムモジュールの呼び出し元その他の
部分に付加することとしてもよい。 (2)実施の形態1では、プログラムコード210、2
20、230、240はそれぞれ別ファイルに分割され
て記憶装置に格納されることとしたが、プログラムコー
ド210におけるモジュール属性定義部211とmai
nの実行コード212とは別のファイルとしてもよく、
またプログラムコード210、220、230、240
をまとめて1つのファイルとしてもよい。即ち、実行制
御部1100が、モジュール属性定義部211と実行コ
ード212とプログラムコード220、230、240
とをそれぞれ識別して内容に応じてアクセスできれば、
ファイル格納形態はいかなる形式であってもよい。 (3)実施の形態1では、ソースプログラム100は、
C言語に似た独自言語で記述した例であり、プログラム
コード作成装置300は、ソースプログラム100中の
関数構造を1つのプログラムモジュールとして扱ってい
るが、他の形式の言語等で記述されたソースプログラム
であっても、プログラムモジュールを区分する情報と、
それぞれのプログラムモジュールとなる部分が永続的リ
ンクモジュールとして扱われるべきか一時的リンクモジ
ュールとして扱われるべきかを示す情報と、プログラム
モジュールの呼出命令に相当する情報とが備わっていれ
ば、これらの情報を参照して、プログラムコード作成装
置300はプログラムコードを生成することとしてもよ
い。また、プログラムコード作成装置は、ソースプログ
ラム中にstaticやdinamic等の永続的リン
クモジュールか一時的リンクモジュールかについての指
定がなされていない場合にも、いずれかが指定されたと
みなして扱うこととしてもよい。 (4)実施の形態1では、プログラムコード作成装置3
00は、ソースプログラム100を入力としており、各
プログラムモジュールの後尾にはRETURNというサ
ービスに制御を移すための機械語コードを付加し、プロ
グラムのメイン処理の後尾にはEXITというサービス
に制御を移すための機械語コードを付加し、プログラム
モジュールを呼び出す記述の箇所についてはMCALL
というサービスに制御を移すための機械語コードを付加
することとしているが、例えば一般のリンカのように、
オブジェクトプログラムの集合を入力することとして、
オブジェクトプログラムに既に含まれている機械語を変
更することにより上述と同様のことを実現してもよい。
即ち、オブジェクトプログラム中に呼び元への復帰命令
が格納されている場合は、これをRETURNというサ
ービスに制御を移すためのコードに変えるといったよう
な変更を施すことで、最終的に、プログラムモジュール
を呼び出す部分についてはMCALL、プログラムモジ
ュールの後尾はRETURN、メインプログラムの後尾
はEXITというサービスを呼び出す機械語コードにす
ればよい。 (5)実施の形態1では、プログラムコード作成装置
は、ソースプログラム中にstaticやdinami
c等のプログラムモジュールを永続的リンクモジュール
とするか一時的リンクモジュールとするかについての情
報が記述されていることを前提として、これを参照する
ことによりモジュール属性定義部211の情報を作成す
ることとしたが、それぞれのプログラムモジュールが呼
び出される頻度をプログラム全体を解析することにより
予測し、その結果に応じて、呼び出される頻度が高いプ
ログラムモジュールについては永続的リンクモジュール
とし、呼び出される頻度が低いプログラムモジュールに
ついては一時的リンクモジュールとすることとして、モ
ジュール属性定義部211の情報を作成することとして
もよい。 (6)実施の形態1では、プログラム実行制御装置がプ
ログラムモジュールをメモリにロードした後、ロードし
たメモリアドレスをメモリ管理情報等に保持して利用し
ているが、このアドレスは、メモリの物理アドレスであ
ることとしてもよいし、オペレーティングシステムによ
り定めた論理アドレスであることとしてもよい。 (7)実施の形態1では、操作者によるリンク属性の変
更指示は、プログラムモジュール名のみの指定としてい
たが(ステップS1355参照)、操作者が、プログラ
ムモジュール名に加えて、いかなるリンク属性に変更し
たいかの指定をもすることができることとして、リンク
変更制御部1110は、ステップS1356の判断に代
えて、操作者による変更後のリンク属性の指示を参照し
て永続的リンクにするか一時的リンクにするかを判断す
ることとしてもよい。 (8)実施の形態1におけるリンク変更制御部2110
は、メモリ管理情報中の呼出頻度の値を、メモリ中の所
定領域にコピーした後に、メモリ管理情報中の呼出頻度
の値を0にする処理を定期的に行うこととしてもよい。
これにより、リンク変更制御部2110の出力するプロ
グラムモジュールリストには、最近における各プログラ
ムモジュールの呼び出された頻度が表示されることにな
る。また、リンク変更制御部3110についても同様と
すると、リンク変更制御部3110は、最近における各
プログラムモジュールの呼び出された状況に応じて自動
的に各プログラムモジュールのリンク属性を変更するこ
ととなる。 (9)実施の形態1では、リンク変更制御部3110は
自動リンク変更制御を定期的に行うこととしたが、自動
リンク変更制御の開始タイミングは操作者に指定させる
こととしてもよい。また、永続的リンクモジュールとす
るか否かの判断基準である所定数(ステップS3302
参照)についてを操作者に指定させることとしてもよ
い。 (10)実施の形態1では、リンク変更制御部1110
は、プログラムモジュールのリンク属性を永続的リンク
モジュールに変更する際に、当該プログラムモジュール
がロードされていなければロードし(ステップS135
8)、一時的リンクモジュールに変更する際に、当該プ
ログラムモジュールがアンロードされていなければアン
ロードすることとしていたが(ステップS1361)、
リンク変更制御部4110では、プログラムモジュール
のリンク属性の変更に際してのロード或いはアンロード
はしないこととしていた(図22参照)。しかし、リン
ク変更制御部4110についても、リンク変更制御部1
110のステップS1358又はステップS1361の
いずれか一方と同等な処理を行うこととしてもよい。 (11)実施の形態2では、動的オブジェクト指向シス
テム5000は、操作者から削除対象のメソッドリスト
を有するオブジェクトの指定を受け付けることとしてい
たが(図26参照)、操作者により呼出頻度指定はされ
たがオブジェクトの指定がなされなかった場合に、すべ
てのオブジェクトに呼出頻度指定の削除メッセージを送
ることとしてもよい。また、動的オブジェクト指向シス
テム5000は、操作者の指示を受けつけなくても定期
的に所定数の頻度指定をした削除メッセージをすべての
オブジェクトに送ることとしてもよい。また、動的オブ
ジェクト指向システム5000は、メモリ使用率を監視
する機構を備えて、メモリ使用率が所定割合より高くな
ったことを契機に、前記の頻度指定をした削除メッセー
ジをすべてのオブジェクトに送ることとしてもよい。こ
こで、頻度指定における前記所定数は、メモリ使用率に
応じて適当な値を動的に決定することとしてもよい。 (12)実施の形態1におけるプログラムリンク方式の
処理手順(図4、図8〜図12、図16、図18〜図2
2のフローチャートの手順等)又は実施の形態2におけ
るメソッドサーチ方式の処理手順(図25、図26、図
28のフローチャートの手順等)を機械語プログラムに
より実現し、これを記録媒体に記録して流通・販売の対
象にしても良い。このような記録媒体には、ICカー
ド、光ディスク、フレキシブルディスク、ROM等があ
るが、これらに記録された機械語プログラムは汎用のハ
ードウェアにインストールされることにより利用に供さ
れる。ここでいう汎用ハードウェアは、一般のパーソナ
ルコンピュータ等であり、インストールした上記機械語
プログラムを逐次実行して、実施の形態1に示したプロ
グラムリンク方式又は実施の形態2に示したメソッドサ
ーチ方式の諸機能を実現するものである。
【0126】
【発明の効果】以上の説明から明らかなように、本発明
に係るプログラムリンク方式は、メモリを含み、複数の
プログラムモジュールで構成されるプログラムの実行過
程において前記プログラムモジュールそれぞれの前記メ
モリへのロード及び前記メモリからのアンロードを実行
制御するプログラムリンク方式であって、前記メモリ
は、複数の前記プログラムモジュールそれぞれについて
当該プログラムモジュールの実行終了時に当該プログラ
ムモジュールをアンロードをするか否かを示す即時アン
ロード可否情報を含むプログラム管理情報を格納してお
り、前記プログラムモジュールを格納するための領域を
有し、複数の前記プログラムモジュールを格納する外部
記憶装置と、前記プログラムモジュールを外部記憶装置
から前記メモリにロードするロード手段と、前記プログ
ラムモジュールを前記メモリからアンロードするための
アンロード手段と、前記メモリに格納されたプログラム
中の各コードを解読して実行するプログラム実行制御手
段とを備え、前記プログラム実行制御手段は、プログラ
ムモジュールの実行終了を示すコードを解読すると当該
プログラムモジュールに対応する前記即時アンロード可
否情報を参照して、当該プログラムモジュールをアンロ
ードするか否かを判断し、前記判断に基づき前記アンロ
ード手段を起動するプログラムモジュール実行終了処理
部を有することを特徴とする。
【0127】これにより、プログラム管理情報を変更す
ることによって、それぞれのプログラムモジュールが実
行終了時にメモリからアンロードされるか否かを制御す
ることが可能となるため、メモリの有効利用を図るか、
プログラム実行の高速性を図るかの調整をすることがで
きるようになる。ここで、前記プログラムリンク方式は
さらに、前記メモリに格納されている前記即時アンロー
ド可否情報を前記プログラムの実行過程において変更す
る即時アンロード可否情報変更手段を備えることとする
こともできる。
【0128】これにより、プログラム実行中にプログラ
ム管理情報を変更する機構が実現されるため、その時々
に状況に応じた制御をすることができるようになる。ま
た、前記プログラムリンク方式はさらに、操作者による
前記即時アンロード可否情報の変更の指示を受け付ける
入力受付手段を備え、前記即時アンロード可否情報変更
手段は前記入力受付手段の受け付けた指示に基づいて前
記アンロード可否情報の変更を行うこととすることもで
きる。
【0129】これにより、操作者の意図どおりに、メモ
リの有効利用とプログラムの高速実行の要求のバランス
をタイムリーに調整することができる。即ち、プログラ
ムはデータ次第で実行ルートが異なり、頻繁に呼び出さ
れるプログラムモジュールがいずれであるかは変化する
ため、データの変化を操作者が知ることができたとし
て、プログラムモジュールのリンク属性を柔軟に変更す
ることができれば、最適な調整を図ることが可能とな
る。
【0130】また、前記プログラム管理情報はさらに、
前記プログラムモジュールそれぞれについて当該プログ
ラムモジュールがプログラム実行過程において呼び出さ
れた回数を示す呼出頻度情報を含み、前記プログラムリ
ンク方式はさらに、前記プログラムモジュールそれぞれ
がプログラム実行過程において呼び出された回数を計測
して前記呼出頻度情報を更新する呼出頻度計測手段とを
備えることとすることもできる。
【0131】これにより、各プログラムモジュールが呼
び出される頻度に応じた制御が可能となる。また、前記
即時アンロード可否情報変更手段は、前記プログラムモ
ジュールそれぞれについて、前記呼出頻度情報が所定回
数未満を示す場合は当該プログラムモジュールについて
の前記即時アンロード可否情報を当該プログラムモジュ
ールの実行終了時に当該プログラムモジュールをアンロ
ードする旨を示すようにし、前記呼出頻度情報が所定回
数以上を示す場合は当該プログラムモジュールについて
の前記即時アンロード可否情報を当該プログラムモジュ
ールの実行終了時に当該プログラムモジュールをアンロ
ードしない旨を示すようにすることとすることもでき
る。
【0132】これにより、各プログラムモジュールが呼
び出される頻度に応じて合理的にメモリの有効利用とプ
ログラムの高速実行の要求のバランスを調整することが
できる。また、前記プログラムリンク方式はさらに、操
作者による前記プログラム管理情報の出力指示を受け付
ける第2入力受付手段と、第2入力受付手段から前記出
力指示を受け付けた旨の通知を受けたときに前記プログ
ラム管理情報を参照してその内容を出力する出力手段と
を備えることとすることもできる。
【0133】これにより、操作者は、現在の各プログラ
ムモジュールのリンク属性等を、出力情報を確認するこ
とで正確に把握した上で調整を図ることができるように
なる。また、前記即時アンロード可否情報変更手段は、
あるプログラムモジュールについての前記即時アンロー
ド可否情報が当該プログラムモジュールの実行終了時に
当該プログラムモジュールをアンロードしない旨を示す
ようにする場合において、当該プログラムモジュールが
前記メモリに格納されていないときは、前記ロード手段
を介して当該プログラムモジュールをロードし、前記即
時アンロード可否情報が当該プログラムモジュールの実
行終了時に当該プログラムモジュールをアンロードする
旨を示すようにする場合において、当該プログラムモジ
ュールが前記メモリに格納されているときは、前記アン
ロード手段を介して当該プログラムモジュールをアンロ
ードすることとすることもできる。
【0134】これにより、即時的にメモリ使用状況の変
更が可能となる。また、前記外部記憶装置はさらに、こ
れが格納する複数の前記プログラムモジュールそれぞれ
についての前記即時アンロード可否情報を作成するため
の情報である初期情報を格納し、前記プログラムリンク
方式はさらに、あるプログラムの起動時に当該プログラ
ムを構成する複数のプログラムモジュールそれぞれにつ
いて前記初期情報に基づき前記即時アンロード可否情報
を作成して前記メモリ中へ格納をする即時アンロード可
否情報作成手段を備え、プログラム中には、プログラム
の実行終了を示す1つのコードと、複数のプログラムモ
ジュールそれぞれを呼び出す旨を示す複数のコードと、
複数のプログラムモジュールそれぞれの実行終了を示す
複数のコードとが含まれており、前記プログラム実行制
御手段はさらに、プログラムの実行終了を示すコードを
解読すると当該プログラムを構成する複数のプログラム
モジュールのうちメモリに格納されているものすべてを
前記アンロード手段を介してアンロードするプログラム
実行終了処理部と、プログラムモジュールを呼び出す旨
を示すコードを解読すると当該プログラムモジュールが
メモリに格納されていないときには当該プログラムモジ
ュールを前記ロード手段を介してロードするプログラム
モジュール呼出処理部とを有することとし、前記プログ
ラムリンク方式はさらに、プログラムを構成する複数の
プログラムモジュールそれぞれについて前記初期情報を
生成して前記外部記憶装置に格納する初期情報生成手段
と、前記複数のプログラムモジュールそれぞれを呼び出
す旨のコードと、前記複数のプログラムモジュールそれ
ぞれの実行終了を示すコードとを含む実行可能なコード
列からなるプログラムを生成するプログラムコード生成
手段と、前記プログラムコード生成手段によって生成し
たプログラムを複数のプログラムモジュールに分割し
て、前記プログラムモジュールそれぞれを前記外部記憶
装置に格納することとすることもできる。
【0135】これにより、プログラムモジュールのロー
ド、アンロードに関わる制御一切を実現することができ
る。また、前記初期情報生成手段は、前記プログラムを
構成する複数のプログラムモジュールそれぞれについ
て、当該プログラムモジュールを呼び出す旨のコードの
個数を合計した値が所定数以上の場合には、当該プログ
ラムモジュールの実行終了時に当該プログラムモジュー
ルをアンロードする旨の前記初期情報を生成し、所定数
未満の場合には、当該プログラムモジュールの実行終了
時に当該プログラムモジュールをアンロードしない旨の
前記初期情報を生成することとすることもできる。
【0136】これにより、各プログラムモジュールの実
行される頻度は現実にある程度実行した後でなければ情
報として利用できないという問題が解決され、予めある
程度合理的なメモリ有効利用とプログラム高速実行の調
整が図られる。また、本発明に係るメソッドサーチ方法
は、動的オブジェクト指向システムにおいてあるオブジ
ェクトからスーパーオブジェクトの有するメソッドを実
行するために当該メソッドの所在を検索するメソッドサ
ーチ方式であって、複数のオブジェクトを格納し、メソ
ッド名と当該メソッドの所在を示すリンク情報との組で
あるメソッド情報を複数格納し得るメモリと、実行すべ
きメソッド名を受け付けるメソッド名受付手段と、前記
メソッド名受付手段により受け付けたメソッド名で示さ
れるメソッドのリンク情報を、前記メモリ中に前記メソ
ッド情報が格納されている場合は、前記メソッド情報か
ら検索し、検索できないとき又は前記メモリ中に前記メ
ソッド情報が格納されていない場合は、前記リンク情報
を前記のあるオブジェクトと継承関係にあるオブジェク
トのメソッドスロットから検索して取得した上、前記メ
ソッド名と取得した前記リンク情報とをメソッド情報と
して前記メモリに格納するメソッドサーチ手段と、特定
のメソッド情報を前記メモリから削除する削除手段とを
備えることを特徴とする。
【0137】これにより、メモリ有効利用の観点からの
要求に応え得る動的オブジェクト指向システムが実現で
きる。即ち、メソッドをサーチした後に蓄積するデータ
の量が増加した場合等において、このデータをメモリか
ら削除しメモリを開放することにより、メモリの有効利
用を図ることができる。ここで、前記メソッドサーチ方
式はさらに、削除すべきメソッド情報を特定するための
メソッド情報特定情報を受け付ける削除メソッド受付手
段を備え、前記削除手段は、前記削除メソッド受付手段
により受け付けたメソッド情報特定情報で示されるメソ
ッド情報を前記メモリから削除することとすることもで
きる。
【0138】これにより、動的オブジェクト指向システ
ムの利用者は意図どおりにメモリ有効利用とメソッドサ
ーチ高速実行との要求のバランスの調整を図ることがで
きる。また、前記メソッド情報はさらに、それが含むメ
ソッド名に対応するメソッドになされた実行要求の回数
に関する情報である頻度値を含み、前記メソッド名受付
手段はさらに、受け付けたメソッド名を含むメソッド情
報が前記メモリ中に存在する場合にはメソッド情報中の
頻度値をカウントアップし、前記削除手段は、所定の要
因により起動されるものであり、所定頻度より小さい頻
度値を含むメソッド情報をすべて前記メモリから削除す
ることとすることもできる。
【0139】これにより、高頻度で実行されるメソッド
についてのリンク情報のみをメモリに残し、ほとんど実
行されないメソッドについてのリンク情報については開
放することで、最適なメモリ利用が図れる。
【図面の簡単な説明】
【図1】本発明の実施の形態1におけるプログラムリン
ク方式を実現するためのソースプログラムの例を示す図
である。
【図2】ソースプログラム100を参照してプログラム
コード作成装置によって作成される実行形式のプログラ
ムコードのイメージを示す図である。
【図3】本発明の実施の形態1におけるプログラムコー
ド作成装置の機能ブロック図である。
【図4】プログラムコード作成装置300の動作を示す
フローチャートである。
【図5】本発明の実施の形態1におけるプログラム実行
制御装置の機能ブロック図である。
【図6】メモリ管理情報のイメージを示す図である。
【図7】CALL情報のイメージを示す図である。
【図8】実行制御部1100によるプログラム起動の動
作を示すフローチャートである。
【図9】MCALL処理部1130の動作を示すフロー
チャートである。
【図10】RETURN処理部1140の動作を示すフ
ローチャートである。
【図11】EXIT処理部1150の動作を示すフロー
チャートである。
【図12】プログラム実行制御装置1000におけるリ
ンク変更制御動作を示すフローチャートである。
【図13】プログラムモジュールリストのイメージを示
す図である。
【図14】実行管理情報記憶部2030に格納されたメ
モリ管理情報2200のイメージを示す図である。
【図15】リンク変更制御部2110が出力部1020
を介して出力するプログラムモジュールリストのイメー
ジを示す図である。
【図16】リンク変更制御部3110の自動リンク変更
制御の動作を示すフローチャートである。
【図17】実行管理情報記憶部4030に格納されたメ
モリ管理情報4200のイメージを示す図である。
【図18】実行制御部4100によるプログラム起動の
動作を示すフローチャートである。
【図19】MCALL処理部4130の動作を示すフロ
ーチャートである。
【図20】RETURN処理部4140の動作を示すフ
ローチャートである。
【図21】EXIT処理部4150の動作を示すフロー
チャートである。
【図22】リンク変更制御部4110の動作を示すフロ
ーチャートである。
【図23】動的オブジェクト指向システム5000にお
ける各オブジェクトの構造のイメージを示す図である。
【図24】メソッドリストの内容のイメージを示す図で
ある。
【図25】メソッド呼出処理の動作を示すフローチャー
トである。
【図26】動的オブジェクト指向システム5000にお
けるメソッドリスト削除制御の動作を示すフローチャー
トである。
【図27】メソッドリストの内容の出力イメージを示す
図である。
【図28】削除メッセージを受けたオブジェクトにおけ
るメソッドリスト削除の動作を示すフローチャートであ
る。
【符号の説明】
100 ソースプログラム 210 プログラムコード 211 モジュール属性定義部 212 実行コード 220 プログラムコード 230 プログラムコード 300 プログラムコード作成装置 310 ソースプログラム解読部 320 モジュール属性定義生成部 330 実行コード生成部 1000、2000、3000、4000 プログラ
ム実行制御装置 1010 入力受付部 1020 出力部 1030、2030、4030 実行管理情報記憶部 1040 プログラム記憶部 1050 外部記憶装置 1100、4100 実行制御部 1110、2110、3110、4110 リンク変
更制御部 1120、4120 実行管理情報作成部 1130、2130、4130 MCALL処理部 1140、4140 RETURN処理部 1150、4150 EXIT処理部 1200、2200、4200 メモリ管理情報 1210 CALL情報 5000 動的オブジェクト指向システム 5100、5200、5300 オブジェクト 5110、5210、5310 メソッドリスト
───────────────────────────────────────────────────── フロントページの続き (72)発明者 和氣 裕之 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 石川 亮 大阪府門真市大字門真1006番地 松下電器 産業株式会社内

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 メモリを含み、複数のプログラムモジュ
    ールで構成されるプログラムの実行過程において前記プ
    ログラムモジュールそれぞれの前記メモリへのロード及
    び前記メモリからのアンロードを実行制御するプログラ
    ムリンク方式であって、 前記メモリは、複数の前記プログラムモジュールそれぞ
    れについて当該プログラムモジュールの実行終了時に当
    該プログラムモジュールをアンロードをするか否かを示
    す即時アンロード可否情報を含むプログラム管理情報を
    格納しており、前記プログラムモジュールを格納するた
    めの領域を有し、 複数の前記プログラムモジュールを格納する外部記憶装
    置と、 前記プログラムモジュールを外部記憶装置から前記メモ
    リにロードするロード手段と、 前記プログラムモジュールを前記メモリからアンロード
    するためのアンロード手段と、 前記メモリに格納されたプログラム中の各コードを解読
    して実行するプログラム実行制御手段とを備え、 前記プログラム実行制御手段は、プログラムモジュール
    の実行終了を示すコードを解読すると当該プログラムモ
    ジュールに対応する前記即時アンロード可否情報を参照
    して、当該プログラムモジュールをアンロードするか否
    かを判断し、前記判断に基づき前記アンロード手段を起
    動するプログラムモジュール実行終了処理部を有するこ
    とを特徴とするプログラムリンク方式。
  2. 【請求項2】 前記プログラムリンク方式はさらに、前
    記メモリに格納されている前記即時アンロード可否情報
    を前記プログラムの実行過程において変更する即時アン
    ロード可否情報変更手段を備えることを特徴とする請求
    項1記載のプログラムリンク方式。
  3. 【請求項3】 前記プログラムリンク方式はさらに、 操作者による前記即時アンロード可否情報の変更の指示
    を受け付ける入力受付手段を備え、 前記即時アンロード可否情報変更手段は前記入力受付手
    段の受け付けた指示に基づいて前記アンロード可否情報
    の変更を行うことを特徴とする請求項2記載のプログラ
    ムリンク方式。
  4. 【請求項4】 前記プログラム管理情報はさらに、前記
    プログラムモジュールそれぞれについて当該プログラム
    モジュールがプログラム実行過程において呼び出された
    回数を示す呼出頻度情報を含み、 前記プログラムリンク方式はさらに、 前記プログラムモジュールそれぞれがプログラム実行過
    程において呼び出された回数を計測して前記呼出頻度情
    報を更新する呼出頻度計測手段とを備えることを特徴と
    する請求項2又は3記載のプログラムリンク方式。
  5. 【請求項5】 前記即時アンロード可否情報変更手段
    は、前記プログラムモジュールそれぞれについて、前記
    呼出頻度情報が所定回数未満を示す場合は当該プログラ
    ムモジュールについての前記即時アンロード可否情報を
    当該プログラムモジュールの実行終了時に当該プログラ
    ムモジュールをアンロードする旨を示すようにし、前記
    呼出頻度情報が所定回数以上を示す場合は当該プログラ
    ムモジュールについての前記即時アンロード可否情報を
    当該プログラムモジュールの実行終了時に当該プログラ
    ムモジュールをアンロードしない旨を示すようにするこ
    とを特徴とする請求項4記載のプログラムリンク方式。
  6. 【請求項6】 前記プログラムリンク方式はさらに、操
    作者による前記プログラム管理情報の出力指示を受け付
    ける第2入力受付手段と、 第2入力受付手段から前記出力指示を受け付けた旨の通
    知を受けたときに前記プログラム管理情報を参照してそ
    の内容を出力する出力手段とを備えることを特徴とする
    請求項2〜5のいずれか1項に記載のプログラムリンク
    方式。
  7. 【請求項7】 前記即時アンロード可否情報変更手段
    は、あるプログラムモジュールについての前記即時アン
    ロード可否情報が当該プログラムモジュールの実行終了
    時に当該プログラムモジュールをアンロードしない旨を
    示すようにする場合において、当該プログラムモジュー
    ルが前記メモリに格納されていないときは、前記ロード
    手段を介して当該プログラムモジュールをロードし、前
    記即時アンロード可否情報が当該プログラムモジュール
    の実行終了時に当該プログラムモジュールをアンロード
    する旨を示すようにする場合において、当該プログラム
    モジュールが前記メモリに格納されているときは、前記
    アンロード手段を介して当該プログラムモジュールをア
    ンロードすることを特徴とする請求項2〜6のいずれか
    1項に記載のプログラムリンク方式。
  8. 【請求項8】 前記外部記憶装置はさらに、これが格納
    する複数の前記プログラムモジュールそれぞれについて
    の前記即時アンロード可否情報を作成するための情報で
    ある初期情報を格納し、 前記プログラムリンク方式はさらに、 あるプログラムの起動時に当該プログラムを構成する複
    数のプログラムモジュールそれぞれについて前記初期情
    報に基づき前記即時アンロード可否情報を作成して前記
    メモリ中へ格納をする即時アンロード可否情報作成手段
    を備え、 プログラム中には、プログラムの実行終了を示す1つの
    コードと、複数のプログラムモジュールそれぞれを呼び
    出す旨を示す複数のコードと、複数のプログラムモジュ
    ールそれぞれの実行終了を示す複数のコードとが含まれ
    ており、 前記プログラム実行制御手段はさらに、 プログラムの実行終了を示すコードを解読すると当該プ
    ログラムを構成する複数のプログラムモジュールのうち
    メモリに格納されているものすべてを前記アンロード手
    段を介してアンロードするプログラム実行終了処理部
    と、 プログラムモジュールを呼び出す旨を示すコードを解読
    すると当該プログラムモジュールがメモリに格納されて
    いないときには当該プログラムモジュールを前記ロード
    手段を介してロードするプログラムモジュール呼出処理
    部とを有することを特徴とする請求項1〜7のいずれか
    1項に記載のプログラムリンク方式。
  9. 【請求項9】 前記プログラムリンク方式はさらに、 プログラムを構成する複数のプログラムモジュールそれ
    ぞれについて前記初期情報を生成して前記外部記憶装置
    に格納する初期情報生成手段と、 前記複数のプログラムモジュールそれぞれを呼び出す旨
    のコードと、前記複数のプログラムモジュールそれぞれ
    の実行終了を示すコードとを含む実行可能なコード列か
    らなるプログラムを生成するプログラムコード生成手段
    と、 前記プログラムコード生成手段によって生成したプログ
    ラムを複数のプログラムモジュールに分割して、前記プ
    ログラムモジュールそれぞれを前記外部記憶装置に格納
    することを特徴とする請求項1〜8のいずれか1項に記
    載のプログラムリンク方式。
  10. 【請求項10】 複数のプログラムモジュールで構成さ
    れるプログラムの実行過程において、前記プログラムモ
    ジュールそれぞれのメモリへのロード及びメモリからの
    アンロードを実行制御するために用いられる情報を生成
    するプログラムリンク方式であって、 プログラムを構成する複数のプログラムモジュールそれ
    ぞれについて当該プログラムモジュールの実行終了時に
    当該プログラムモジュールをアンロードをするか否かを
    示す情報である初期情報を生成する初期情報生成手段
    と、 前記複数のプログラムモジュールそれぞれを呼び出す旨
    のコードと、前記複数のプログラムモジュールそれぞれ
    の実行終了を示すコードとを含む実行可能なコード列か
    らなるプログラムを生成するプログラムコード生成手段
    とを備えることを特徴とするプログラムリンク方式。
  11. 【請求項11】 前記初期情報生成手段は、前記プログ
    ラムを構成する複数のプログラムモジュールそれぞれに
    ついて、当該プログラムモジュールを呼び出す旨のコー
    ドの個数を合計した値が所定数以上の場合には、当該プ
    ログラムモジュールの実行終了時に当該プログラムモジ
    ュールをアンロードする旨の前記初期情報を生成し、所
    定数未満の場合には、当該プログラムモジュールの実行
    終了時に当該プログラムモジュールをアンロードしない
    旨の前記初期情報を生成することを特徴とする請求項1
    〜10記載のプログラムリンク方式。
  12. 【請求項12】 動的オブジェクト指向システムにおい
    てあるオブジェクトからスーパーオブジェクトの有する
    メソッドを実行するために当該メソッドの所在を検索す
    るメソッドサーチ方式であって、 複数のオブジェクトを格納し、メソッド名と当該メソッ
    ドの所在を示すリンク情報との組であるメソッド情報を
    複数格納し得るメモリと、 実行すべきメソッド名を受け付けるメソッド名受付手段
    と、 前記メソッド名受付手段により受け付けたメソッド名で
    示されるメソッドのリンク情報を、前記メモリ中に前記
    メソッド情報が格納されている場合は、前記メソッド情
    報から検索し、検索できないとき又は前記メモリ中に前
    記メソッド情報が格納されていない場合は、前記リンク
    情報を前記のあるオブジェクトと継承関係にあるオブジ
    ェクトのメソッドスロットから検索して取得した上、前
    記メソッド名と取得した前記リンク情報とをメソッド情
    報として前記メモリに格納するメソッドサーチ手段と、 特定のメソッド情報を前記メモリから削除する削除手段
    とを備えることを特徴とするメソッドサーチ方式。
  13. 【請求項13】 前記メソッドサーチ方式はさらに、削
    除すべきメソッド情報を特定するためのメソッド情報特
    定情報を受け付ける削除メソッド受付手段を備え、 前記削除手段は、前記削除メソッド受付手段により受け
    付けたメソッド情報特定情報で示されるメソッド情報を
    前記メモリから削除することを特徴とする請求項12記
    載のメソッドサーチ方式。
  14. 【請求項14】 前記メソッド情報はさらに、それが含
    むメソッド名に対応するメソッドになされた実行要求の
    回数に関する情報である頻度値を含み、 前記メソッド名受付手段はさらに、受け付けたメソッド
    名を含むメソッド情報が前記メモリ中に存在する場合に
    はメソッド情報中の頻度値をカウントアップし、 前記削除手段は、所定の要因により起動されるものであ
    り、所定頻度より小さい頻度値を含むメソッド情報をす
    べて前記メモリから削除することを特徴とする請求項1
    2記載のメソッドサーチ方式。
  15. 【請求項15】 複数のプログラムモジュールで構成さ
    れるプログラムの実行過程において前記プログラムモジ
    ュールそれぞれについて外部記憶装置からメモリへのロ
    ード及びメモリからのアンロードを実行制御するプログ
    ラムリンク処理を、前記メモリを備えるコンピュータに
    実行させるためのプログラムを記録した記録媒体であっ
    て、 前記メモリは、複数の前記プログラムモジュールそれぞ
    れについて当該プログラムモジュールの実行終了時に当
    該プログラムモジュールをアンロードをするか否かを示
    す即時アンロード可否情報を含むプログラム管理情報を
    格納しており、前記プログラムモジュールを格納するた
    めの領域を有し、 前記プログラムリンク処理は、 前記プログラムモジュールを前記外部記憶装置から前記
    メモリにロードするロードステップと、 前記プログラムモジュールを前記メモリからアンロード
    するためのアンロードステップと、 前記メモリに格納されたプログラム中の各コードを解読
    して実行するプログラム実行制御ステップとを含み、 前記プログラム実行制御ステップは、プログラムモジュ
    ールの実行終了を示すコードを解読すると当該プログラ
    ムモジュールに対応する前記即時アンロード可否情報を
    参照して、当該プログラムモジュールをアンロードする
    か否かを判断し、前記判断に基づき前記アンロードステ
    ップを実行するプログラムモジュール実行終了サブステ
    ップを含むことを特徴とする記録媒体。
  16. 【請求項16】 前記プログラムリンク処理はさらに、
    前記メモリに格納されている前記即時アンロード可否情
    報を前記プログラムの実行過程において変更する即時ア
    ンロード可否情報変更ステップを含むことを特徴とする
    請求項15記載の記録媒体。
  17. 【請求項17】 動的オブジェクト指向システムにおい
    て、メモリ中に存在するあるオブジェクトからスーパー
    オブジェクトの有するメソッドを実行するために当該メ
    ソッドの所在を検索するメソッドサーチ処理を、前記メ
    モリを備えるコンピュータに実行させるためのプログラ
    ムを記録した記録媒体であって、 前記メモリは、複数のオブジェクトを格納し、メソッド
    名と当該メソッドの所在を示すリンク情報との組である
    メソッド情報を複数格納し得るものであり、 前記メソッドサーチ処理は、 実行すべきメソッド名を受け付けるメソッド名受付ステ
    ップと、 前記メソッド名受付ステップにより受け付けたメソッド
    名で示されるメソッドのリンク情報を、前記メモリ中に
    前記メソッド情報が格納されている場合は、前記メソッ
    ド情報から検索し、検索できないとき又は前記メモリ中
    に前記メソッド情報が格納されていない場合は、前記リ
    ンク情報を前記のあるオブジェクトと継承関係にあるオ
    ブジェクトのメソッドスロットから検索して取得した
    上、前記メソッド名と取得した前記リンク情報とをメソ
    ッド情報として前記メモリに格納するメソッドサーチス
    テップと、 特定のメソッド情報を前記メモリから削除する削除ステ
    ップとを含むことを特徴とする記録媒体。
JP10030084A 1998-02-12 1998-02-12 プログラムリンク方式及びメソッドサーチ方式 Pending JPH11232103A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10030084A JPH11232103A (ja) 1998-02-12 1998-02-12 プログラムリンク方式及びメソッドサーチ方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10030084A JPH11232103A (ja) 1998-02-12 1998-02-12 プログラムリンク方式及びメソッドサーチ方式

Publications (1)

Publication Number Publication Date
JPH11232103A true JPH11232103A (ja) 1999-08-27

Family

ID=12293940

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10030084A Pending JPH11232103A (ja) 1998-02-12 1998-02-12 プログラムリンク方式及びメソッドサーチ方式

Country Status (1)

Country Link
JP (1) JPH11232103A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334869A (ja) * 2006-05-16 2007-12-27 Matsushita Electric Ind Co Ltd プログラム起動装置、プログラム起動方法、起動処理プログラム及び集積回路
US7805758B2 (en) 2003-10-31 2010-09-28 Fujitsu Limited Information processing apparatus
US7865961B2 (en) 2004-02-23 2011-01-04 Fujitsu Limited Computer system, central unit, and program execution method
JP2012120115A (ja) * 2010-12-03 2012-06-21 Fuji Xerox Co Ltd 画像処理装置及び画像処理プログラム
JP2019145049A (ja) * 2018-02-23 2019-08-29 Necソリューションイノベータ株式会社 動的リンク管理装置、動的リンク管理方法、及びプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7805758B2 (en) 2003-10-31 2010-09-28 Fujitsu Limited Information processing apparatus
US7865961B2 (en) 2004-02-23 2011-01-04 Fujitsu Limited Computer system, central unit, and program execution method
JP2007334869A (ja) * 2006-05-16 2007-12-27 Matsushita Electric Ind Co Ltd プログラム起動装置、プログラム起動方法、起動処理プログラム及び集積回路
JP2012120115A (ja) * 2010-12-03 2012-06-21 Fuji Xerox Co Ltd 画像処理装置及び画像処理プログラム
JP2019145049A (ja) * 2018-02-23 2019-08-29 Necソリューションイノベータ株式会社 動的リンク管理装置、動的リンク管理方法、及びプログラム

Similar Documents

Publication Publication Date Title
US7315871B2 (en) Method, system and program product for interning invariant data objects in dynamic space constrained systems
US7203941B2 (en) Associating a native resource with an application
US6662274B2 (en) Method for using cache prefetch feature to improve garbage collection algorithm
JP3219826B2 (ja) 情報処理装置
EP0924611A2 (en) Method and apparatus for a coprocessor
JP4376181B2 (ja) プログラム実行処理端末装置
US20080229299A1 (en) Adaptive class loading
US8650537B2 (en) Optimizing an object-oriented program by transforming invocations of synthetic accessor methods
JP2004127205A (ja) 不揮発性メモリへのデータ貯蔵方法及び装置
JPH0644085A (ja) アクセスを実行する方法及び装置並びにコンピュータシステム
US9189300B2 (en) Dynamic service discovery
US10558439B2 (en) Automatic reference counting
US11016886B2 (en) Multi-ring shared, traversable, and dynamic advanced database
US20130297881A1 (en) Performing zero-copy sends in a networked file system with cryptographic signing
EP2511820A1 (en) Bypassing user mode redirection
US8839272B2 (en) Method and system for the support of application specific policies for conventional operating systems
JPH11232103A (ja) プログラムリンク方式及びメソッドサーチ方式
JP2004171258A (ja) パーミッショントークン管理システム及びプログラム
US20010025370A1 (en) Method and system for protecting resource central programs
US8171067B2 (en) Implementing an ephemeral file system backed by a NFS server
JP7025104B2 (ja) 情報処理装置、方法およびプログラム
CN114625410A (zh) 一种请求消息处理方法、装置及设备
JP4504756B2 (ja) Java(登録商標名)実行環境におけるメモリ管理方法及びメモリ管理プログラム
WO2022088711A1 (zh) 程序执行方法、程序处理方法以及相关设备
KR19990032182A (ko) 가변길이 파일의 버퍼 관리 장치 및 그 방법