(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】2019145049
(43)【公開日】20190829
(54)【発明の名称】動的リンク管理装置、動的リンク管理方法、及びプログラム
(51)【国際特許分類】
   G06F 9/445 20180101AFI20190802BHJP
【FI】
   !G06F9/445 120
【審査請求】未請求
【請求項の数】15
【出願形態】OL
【全頁数】14
(21)【出願番号】2018031369
(22)【出願日】20180223
(71)【出願人】
【識別番号】000232092
【氏名又は名称】NECソリューションイノベータ株式会社
【住所又は居所】東京都江東区新木場一丁目18番7号
(74)【代理人】
【識別番号】110002044
【氏名又は名称】特許業務法人ブライタス
(72)【発明者】
【氏名】岡田 裕介
【住所又は居所】東京都江東区新木場一丁目18番7号 NECソリューションイノベータ株式会社内
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376EA15
5B376EA22
(57)【要約】
【課題】動的リンクによるオーバーヘッド発生を抑止しつつ、人手によることなく、副プログラムの解放指示を設定し得る、動的リンク管理装置、動的リンク管理方法、及びプログラムを提供する。
【解決手段】動的リンク管理装置10は、動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する、非稼働回数計測部11と、計測された前記回数が、予め設定された条件を満たすかどうかを判定する、設定条件判定部12と、設定条件判定部12によって、計測された前記回数が、予め設定された条件を満たすと判定された場合に、副プログラムを動的リンクから解放する、プログラム解放部13と、を備えている。
【選択図】図1
【特許請求の範囲】
【請求項1】
動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する、非稼働回数計測部と、
計測された前記回数が、予め設定された条件を満たすかどうかを判定する、設定条件判定部と、
前記設定条件判定部によって、計測された前記回数が、予め設定された条件を満たすと判定された場合に、前記副プログラムを前記動的リンクから解放する、プログラム解放部と、
を備えていることを特徴とする動的リンク管理装置。
【請求項2】
請求項1に記載の動的リンク管理装置であって、
前記副プログラムの状況に応じて、前記条件を設定する、条件設定部を更に備えている、
ことを特徴とする動的リンク管理装置。
【請求項3】
請求項2に記載の動的リンク管理装置であって、
前記条件設定部が、前記条件として、前記副プログラムが実行される論理空間で前記副プログラムが使用するセグメントの枚数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理装置。
【請求項4】
請求項2に記載の動的リンク管理装置であって、
前記条件設定部が、前記条件として、前記副プログラムが連結されている動的リンクの数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理装置。
【請求項5】
請求項2に記載の動的リンク管理装置であって、
前記条件設定部が、動的リンクから解放されたことがある前記副プログラムに対しては、前記条件として、前記副プログラムにおける解放されてからの経過時間に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理装置。
【請求項6】
(a)動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する、ステップと、
(b)前記(a)のステップで計測された前記回数が、予め設定された条件を満たすかどうかを判定する、ステップと、
(c)前記(b)のステップによって、前記(a)のステップで計測された前記回数が、予め設定された条件を満たすと判定された場合に、前記副プログラムを前記動的リンクから解放する、ステップと、
を有することを特徴とする動的リンク管理方法。
【請求項7】
請求項6に記載の動的リンク管理方法であって、
(d)前記副プログラムの状況に応じて、前記条件を設定する、ステップを更に有する、ことを特徴とする動的リンク管理方法。
【請求項8】
請求項7に記載の動的リンク管理方法であって、
前記(d)のステップにおいて、前記条件として、前記副プログラムが実行される論理空間で前記副プログラムが使用するセグメントの枚数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理方法。
【請求項9】
請求項7に記載の動的リンク管理方法であって、
前記(d)のステップにおいて、前記条件として、前記副プログラムが連結されている動的リンクの数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理方法。
【請求項10】
請求項7に記載の動的リンク管理方法であって、
前記(d)のステップにおいて、動的リンクから解放されたことがある前記副プログラムに対しては、前記条件として、前記副プログラムにおける解放されてからの経過時間に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理方法。
【請求項11】
コンピュータに、
(a)動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する、ステップと、
(b)前記(a)のステップで計測された前記回数が、予め設定された条件を満たすかどうかを判定する、ステップと、
(c)前記(b)のステップによって、前記(a)のステップで計測された前記回数が、予め設定された条件を満たすと判定された場合に、前記副プログラムを前記動的リンクから解放する、ステップと、
を実行させるプログラム。
【請求項12】
請求項11に記載のプログラムであって、
前記コンピュータに、
(d)前記副プログラムの状況に応じて、前記条件を設定する、ステップを更に実行させる、
ことを特徴とするプログラム。
【請求項13】
請求項12に記載のプログラムであって、
前記(d)のステップにおいて、前記条件として、前記副プログラムが実行される論理空間で前記副プログラムが使用するセグメントの枚数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とするプログラム。
【請求項14】
請求項12に記載のプログラムであって、
前記(d)のステップにおいて、前記条件として、前記副プログラムが連結されている動的リンクの数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とするプログラム。
【請求項15】
請求項12に記載のプログラムであって、
前記(d)のステップにおいて、動的リンクから解放されたことがある前記副プログラムに対しては、前記条件として、前記副プログラムにおける解放されてからの経過時間に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、主プログラムに副プログラムを連結させるための動的リンクを管理する、動的リンク管理装置、及び動的リンク管理方法に関し、更には、これらを実現するためのプログラムに関する。
【背景技術】
【0002】
従来から、プログラム間のリンクの方法としては、静的リンクと動的リンクとの2つの方法が知られている。このうち、静的リンクは、主プログラムと、その実行に必要な副プログラムとを、予め連結するリンクであり、主プログラムの開発の時点で設定される。一方、動的リンクは、主プログラムと、その実行に必要な副プログラムとを、実行時に連結するリンクである。
【0003】
ところで、これらのリンクのうち、動的リンクを採用した場合は、主プログラムが論理空間にロードされても、副プログラムはロードされないため、プロセス起動時のロード時間を短縮することもできる。また、動的リンクを採用した場合は、副プロラムは使用時にのみ呼び出され、処理終了後に解放され、その後、削除される(例えば、特許文献1及び2参照)。このため、動的リンクは、十分な論理空間が確保されていないシステムに有効である。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平7−114470号公報
【特許文献2】特開平7−182239号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、動的リンクにおいて、副プログラムを解放するためには、プログラマーが、主プログラムにおいて、解放指示をプログラミングする必要がある。しかしながら、特に、論理空間が十分に確保されていないシステムにおいては、プログラマーは、使用セグメント数、動的リンクによるオーバーヘッドを考慮して、解放指示をプログラミングする必要があり、動的リンクの使用はプログラマーにとって大きな負担となっている。
【0006】
本発明の目的の一例は、上記問題を解消し、動的リンクによるオーバーヘッド発生を抑止しつつ、人手によることなく、副プログラムの解放指示を設定し得る、動的リンク管理装置、動的リンク管理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明の一側面における動的リンク管理装置は、
動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する、非稼働回数計測部と、
計測された前記回数が、予め設定された条件を満たすかどうかを判定する、設定条件判定部と、
前記設定条件判定部によって、計測された前記回数が、予め設定された条件を満たすと判定された場合に、前記副プログラムを前記動的リンクから解放する、プログラム解放部と、
を備えていることを特徴とする。
【0008】
また、上記目的を達成するため、本発明の一側面における動的リンク管理方法は、
(a)動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する、ステップと、
(b)前記(a)のステップで計測された前記回数が、予め設定された条件を満たすかどうかを判定する、ステップと、
(c)前記(b)のステップによって、前記(a)のステップで計測された前記回数が、予め設定された条件を満たすと判定された場合に、前記副プログラムを前記動的リンクから解放する、ステップと、
を有することを特徴とする。
【0009】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、
コンピュータに、
(a)動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する、ステップと、
(b)前記(a)のステップで計測された前記回数が、予め設定された条件を満たすかどうかを判定する、ステップと、
(c)前記(b)のステップによって、前記(a)のステップで計測された前記回数が、予め設定された条件を満たすと判定された場合に、前記副プログラムを前記動的リンクから解放する、ステップと、
を実行させることを特徴とする。
【発明の効果】
【0010】
以上のように本発明によれば、動的リンクによるオーバーヘッド発生を抑止しつつ、人手によることなく、副プログラムの解放指示を設定することができる。
【図面の簡単な説明】
【0011】
【図1】図1は、本発明の実施の形態における動的リンク管理装置の概略構成を示すブロック図である。
【図2】図2は、本発明の実施の形態における動的リンク管理装置の具体的構成を示すブロック図である。
【図3】図3は、本発明の実施の形態で用いられる副プログラム監視テーブルの一例を示す図である。
【図4】図4は、本発明の実施の形態における動的リンク管理装置の解放条件設定時及び更新時の動作を示すフロー図である。
【図5】図5は、本発明の実施の形態における動的リンク管理装置の解放条件判定時の動作を示すフロー図である。
【図6】図6は、本発明の実施の形態における動的リンク管理装置を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【0012】
(実施の形態)
以下、本発明の実施の形態における、動的リンク管理装置、動的リンク管理方法、及びプログラムについて、図1〜図6を参照しながら説明する。
【0013】
[装置構成]
最初に、本実施の形態における動的リンク管理装置の概略構成について説明する。図1は、本発明の実施の形態における動的リンク管理装置の概略構成を示すブロック図である。
【0014】
図1に示す、本実施の形態における動的リンク管理装置10は、主プログラムに副プロ
グラムを連結させる動的リンクを管理するための装置である。図1に示すように、動的リンク管理装置10は、非稼働回数計測部11と、設定条件判定部12と、プログラム解放部13とを備えている。
【0015】
非稼働回数計測部11は、動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する。設定条件判定部12は、計測された回数が、予め設定された条件(以下「解放条件」と表記する。)を満たすかどうかを判定する。プログラム解放部13は、設定条件判定部12によって、計測された回数が、予め設定された解放条件を満たすと判定された場合に、副プログラムを動的リンクから解放する。
【0016】
このように、本実施の形態では、動的リンクによって主プログラムに連結されている副プログラムは、一定条件下で、自動的に動的リンクから解放される。このため、本実施の形態によれば、動的リンクによるオーバーヘッド発生を抑止すると同時に、人手によることなく、副プログラムの解放指示を行うことができる。
【0017】
続いて、図2を用いて、本実施の形態における動的リンク管理装置10の構成をより具体的に説明する。図2は、本発明の実施の形態における動的リンク管理装置の具体的構成を示すブロック図である。
【0018】
図2に示すように、本実施の形態における動的リンク管理装置10は、コンピュータ20のオペレーティングシステム21上に、プログラムによって構築されている。コンピュータ20は、例えば、サーバ装置である。また、オペレーティングシステム21上には、主プログラム22と副プログラム24とを動的にリンクする動的リンク23が構築されている。動的リンク23は、副プログラムを主プログラムに連結するための動的リンクを生成する機能と、副プログラムを解放して動的リンクを削除する機能とを備えている。
【0019】
また、図2に示すように、本実施の形態では、動的リンク管理装置10は、上述した、非稼働回数計測部11、設定条件判定部12、及びプログラム解放部13に加えて、条件設定部14と、監視テーブル格納部15とを備えている。
【0020】
条件設定部14は、副プログラムの状況に応じて、解放条件を設定する。条件設定部14は、例えば、解放条件として、副プログラムが実行される論理空間で副プログラムが使用するセグメントの枚数に応じて、非稼働回数計測部11によって計測された回数の上限となる閾値を設定する。また、条件設定部14は、解放条件として、副プログラムが連結されている動的リンクの数に応じて、非稼働回数計測部11によって計測された回数の上限となる閾値を設定することもできる。
【0021】
また、条件設定部14は、動的リンクから解放されたことがある副プログラムに対しては、解放条件として、副プログラムにおける解放されてからの経過時間に応じて、非稼働回数計測部11によって計測された回数の上限となる閾値を設定することもできる。
【0022】
監視テーブル格納部15は、副プログラム監視テーブル16を格納している。副プログラム監視テーブル16には、非稼働回数計測部11によって計測された、主プログラム22に連結されている副プログラム24が設定時間の間稼働しなかった回数(以下「動的リンク制御カウンタ」とも表記する)が、登録される。また、副プログラム監視テーブル16には、条件設定部14によって設定された、解放条件となる閾値(以下「動的リンク制御カウンタ閾値」とも表記する)も登録される。
【0023】
ここで、図3を用いて、副プログラム監視テーブル16の具体例について説明する。図
3は、本発明の実施の形態で用いられる副プログラム監視テーブルの一例を示す図である。
【0024】
図3に示すように、副プログラム監視テーブル16には、副プログラム毎に、動的リンクフラグ、実行カウンタ、稼働フラグ、動的リンク制御カウンタ、動的リンク制御カウンタ閾値、及び副プログラム解放時間が登録されている。
【0025】
このうち、動的リンクフラグは、対応する副プログラム24の主プログラムとの連結状態を示すフラグである。動的リンクフラグは、対応する副プログラム24が動的リンク23によって主プログラムに連結されると、「on」となり、解放されると、「off」となる。実行カウンタは、対応する副プログラムに連結されている主プログラムの数を示している。また、稼働フラグは、対応する副プログラムの稼働状態を示すフラグである。
【0026】
動的リンク制御カウンタは、上述した、非稼働回数計測部11によって計測された、副プログラム24が設定時間の間稼働しなかった回数である。動的リンク制御カウンタ閾値は、条件設定部14によって設定された閾値である。また、動的リンク制御カウンタ閾値は、条件設定部14によって閾値が設定される度に更新される。副プログラム解放時間は、副プログラムが動的リンクから解放されてからの経過時間である。
【0027】
[装置構成]
次に、本発明の実施の形態における動的リンク管理装置10の動作について図4及び図5を用いて説明する。以下の説明においては、適宜図1〜図3を参酌する。また、本実施の形態では、動的リンク管理装置10を動作させることによって、動的リンク管理方法が実施される。よって、本実施の形態における動的リンク管理方法の説明は、以下の動的リンク管理装置10の動作説明に代える。
【0028】
最初に、図4を用いて、解放条件(動的リンク制御カウンタ閾値)の設定処理及び更新処理について説明する。図4は、本発明の実施の形態における動的リンク管理装置の解放条件設定時及び更新時の動作を示すフロー図である。
【0029】
図4に示すように、最初に、条件設定部14は、オペレーティングシステム21上に用意されている副プログラム24のうちの1つを選択する(ステップA1)。次に、条件設定部14は、選択した副プログラム24のエントリが、副プログラム監視テーブル16に存在しているかどうかを判定する(ステップA2)。
【0030】
ステップA2の判定の結果、選択した副プログラム24のエントリが、副プログラム監視テーブル16に存在していない場合は、条件設定部14は、副プログラム監視テーブル16に、選択した副プログラム24のエントリを作成する(ステップA3)。
【0031】
次に、条件設定部14は、選択した副プログラム24が実行される論理空間でのセグメント使用枚数に応じて、動的リンク制御カウンタ閾値を設定する(ステップA4)。更に、条件設定部14は、選択した副プログラム24の実行カウンタを「0(ゼロ)」に設定し、次いで、動的リンクフラグをonとして(ステップA5)、処理を終了する。
【0032】
また、上述のステップA2の判定の結果、選択した副プログラム24のエントリが、副プログラム監視テーブル16に存在している場合は、条件設定部14は、選択した副プログラム24が動的リンク23によって主プログラム22に連結されているかどうかを判定する(ステップA6)。
【0033】
ステップA6の判定の結果、選択した副プログラム24が動的リンク23によって主プ
ログラム22に連結されている場合は、条件設定部14は、動的リンク制御カウンタ閾値を1増加させ(ステップA7)、処理を終了する。
【0034】
一方、ステップA6の判定の結果、選択した副プログラム24が動的リンク23によって主プログラム22に連結されていない場合は、条件設定部14は、ステップA8を実行する。ステップA8では、条件設定部14は、選択した副プログラム24が動的リンクから解放された時からの経過時間が、基準値より短いかどうかを判定する。
【0035】
ステップA8の判定の結果、選択した副プログラム24が動的リンク23から解放された時からの経過時間が、基準値より短い場合は、条件設定部14は、ステップA7を実行し、動的リンク制御カウンタ閾値を1増加させる。一方、ステップA8の判定の結果、選択した副プログラム24が動的リンクから解放された時からの経過時間が、基準値より短くない場合は、条件設定部14は、処理を終了する。
【0036】
ステップA1〜A8の実行により、副プログラム24に対して、動的リンク制御カウンタ閾値の設定又は更新が実行される。また、ステップA1〜A8は、全ての副プログラム24を対象にして繰り返し実行される。
【0037】
また、条件設定部14は、選択した副プログラム24が稼働した場合は、その稼働フラグをonに設定すると共に、実行カウンタを1増加させる。更に、条件設定部14は、主プログラム22が稼働して、処理が、稼働している副プログラム24から主プログラム22に戻ると、この副プログラム24の実行カウンタを1減少させる。
【0038】
続いて、図5を用いて、解放条件の判定処理について説明する。図5は、本発明の実施の形態における動的リンク管理装置の解放条件判定時の動作を示すフロー図である。
【0039】
図5に示すように、非稼働回数計測部11は、主プログラム22に動的リンク23によって連結されている副プログラム24の1つを選択する(ステップB1)。次に、非稼働回数計測部11は、副プログラム監視テーブル16に基づいて、選択した副プログラム24が稼働しているかどうかを判定する(ステップB2)
【0040】
ステップB2の判定の結果、選択した副プログラム24が稼働している場合は、非稼働回数計測部11は、副プログラム監視テーブル16において、選択した副プログラム24の動的リンク制御カウンタを「0(ゼロ)」に設定する(ステップB3)。次いで、非稼働回数計測部11は、副プログラム監視テーブル16において、選択した副プログラム24の稼働フラグをoffに設定し(ステップB4)、処理を終了する。
【0041】
ステップB2の判定の結果、選択した副プログラム24が稼働していない場合は、非稼働回数計測部11は、選択した副プログラム24が実行されているかどうかを判定する(ステップB5)。ステップB5の判定の結果、選択した副プログラム24が実行されている場合は、非稼働回数計測部11は、処理を終了する。
【0042】
一方、ステップB5の判定の結果、選択した副プログラム24が実行されていない場合は、非稼働回数計測部11は、副プログラム監視テーブル16において、選択した副プログラム24の動的リンク制御カウンタを1増加させる(ステップB6)。
【0043】
次に、ステップB6が実行されると、設定条件判定部12は、ステップB1で選択された副プログラム24において、動的リンク制御カウンタの値が、動的リンク制御カウンタ閾値を超えているかどうかを判定する(ステップB7)。即ち、設定条件判定部12は、解放条件が満たされているかどうかを判定する。
【0044】
ステップB7の判定の結果、動的リンク制御カウンタの値が、動的リンク制御カウンタ閾値を超えていない場合、即ち、解放条件が満たされていない場合は、設定条件判定部12は、処理を終了する。
【0045】
一方、ステップB7の判定の結果、動的リンク制御カウンタの値が、動的リンク制御カウンタ閾値を超えている場合、即ち、解放条件が満たされている場合は、設定条件判定部12は、そのことをプログラム解放部13に通知する。
【0046】
これにより、プログラム解放部13は、動的リンク23に対して、選択された副プログラム24を解放するように指示を与え、この副プログラム24を動的リンク23から解放する(ステップB8)。
【0047】
また、ステップB8の実行時においては、プログラム解放部13は、解放された副プログラム24の動的リンク制御カウンタを「0(ゼロ)」に設定し、稼働フラグ及び動的リンクフラグをoffに設定し、更に、この副プログラムの解放時からの経過時間の計測を開始する。
【0048】
ステップB1〜B8の実行により、解放条件を満たす副プログラム24は、人手によることなく、動的リンク23から解放される。また、ステップB1〜B8は、動的リンクによって主プログラム22に連結されている全ての副プログラム24を対象にして、繰り返し実行される。
【0049】
[実施の形態による効果]
以上のように、本実施の形態によれば、動的リンク23によって主プログラム22に連結されている副プログラム24は、解放条件を満たすと、自動的に動的リンクから解放される。本実施の形態によれば、人手によることなく、副プログラムの解放指示を行うことができる。また、この解放条件は、副プログラム24の状況に応じて、最適化されるので、動的リンクによるオーバーヘッドの発生をより確実に抑止することができる。
【0050】
[プログラム]
本実施の形態におけるプログラムは、コンピュータに、図4に示すステップA1〜A8、図5に示すステップB1〜B8を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における動的リンク管理装置10と動的リンク管理方法とを実現することができる。この場合、コンピュータのプロセッサは、非稼働回数計測部11、設定条件判定部12、プログラム解放部13、及び条件設定部14として機能し、処理を行なう。また、本実施の形態では、監視テーブル格納部15は、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって実現できる。
【0051】
また、本実施の形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、非稼働回数計測部11、設定条件判定部12、プログラム解放部13、及び条件設定部14のいずれかとして機能しても良い。また、監視テーブル格納部15は、本実施の形態におけるプログラムを実行するコンピュータとは別のコンピュータ上に構築されていても良い。
【0052】
ここで、本実施の形態におけるプログラムを実行することによって、動的リンク管理装置を実現するコンピュータ20について図6を用いて説明する。図6は、本発明の実施の形態における動的リンク管理装置を実現するコンピュータの一例を示すブロック図である
。また、図6は、図2示したコンピュータ20の物理的構成を示している。
【0053】
図6に示すように、コンピュータ20は、CPU(Central Processing Unit)111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。なお、コンピュータ20は、CPU111に加えて、又はCPU111に代えて、GPU(Graphics Processing Unit)、又はFPGA(Field-Programmable Gate Array)を備えていても良い。
【0054】
CPU111は、記憶装置113に格納された、本実施の形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
【0055】
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0056】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ20における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0057】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD−ROM(Compact Disk Read Only Memory)などの光学記録媒体が挙げられる。
【0058】
なお、本実施の形態における動的リンク管理装置10は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、動的リンク管理装置10は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【0059】
上述した実施の形態の一部又は全部は、以下に記載する(付記1)〜(付記15)によって表現することができるが、以下の記載に限定されるものではない。
【0060】
(付記1)
動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する、非稼働回数計測部と、
計測された前記回数が、予め設定された条件を満たすかどうかを判定する、設定条件判定部と、
前記設定条件判定部によって、計測された前記回数が、予め設定された条件を満たすと判定された場合に、前記副プログラムを前記動的リンクから解放する、プログラム解放部と、
を備えていることを特徴とする動的リンク管理装置。
【0061】
(付記2)
付記1に記載の動的リンク管理装置であって、
前記副プログラムの状況に応じて、前記条件を設定する、条件設定部を更に備えている、
ことを特徴とする動的リンク管理装置。
【0062】
(付記3)
付記2に記載の動的リンク管理装置であって、
前記条件設定部が、前記条件として、前記副プログラムが実行される論理空間で前記副プログラムが使用するセグメントの枚数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理装置。
【0063】
(付記4)
付記2に記載の動的リンク管理装置であって、
前記条件設定部が、前記条件として、前記副プログラムが連結されている動的リンクの数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理装置。
【0064】
(付記5)
付記2に記載の動的リンク管理装置であって、
前記条件設定部が、動的リンクから解放されたことがある前記副プログラムに対しては、前記条件として、前記副プログラムにおける解放されてからの経過時間に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理装置。
【0065】
(付記6)
(a)動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する、ステップと、
(b)前記(a)のステップで計測された前記回数が、予め設定された条件を満たすかどうかを判定する、ステップと、
(c)前記(b)のステップによって、前記(a)のステップで計測された前記回数が、予め設定された条件を満たすと判定された場合に、前記副プログラムを前記動的リンクから解放する、ステップと、
を有することを特徴とする動的リンク管理方法。
【0066】
(付記7)
付記6に記載の動的リンク管理方法であって、
(d)前記副プログラムの状況に応じて、前記条件を設定する、ステップを更に有する、ことを特徴とする動的リンク管理方法。
【0067】
(付記8)
付記7に記載の動的リンク管理方法であって、
前記(d)のステップにおいて、前記条件として、前記副プログラムが実行される論理空間で前記副プログラムが使用するセグメントの枚数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理方法。
【0068】
(付記9)
付記7に記載の動的リンク管理方法であって、
前記(d)のステップにおいて、前記条件として、前記副プログラムが連結されている動的リンクの数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理方法。
【0069】
(付記10)
付記7に記載の動的リンク管理方法であって、
前記(d)のステップにおいて、動的リンクから解放されたことがある前記副プログラムに対しては、前記条件として、前記副プログラムにおける解放されてからの経過時間に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理方法。
【0070】
(付記11)
コンピュータに、
(a)動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する、ステップと、
(b)前記(a)のステップで計測された前記回数が、予め設定された条件を満たすかどうかを判定する、ステップと、
(c)前記(b)のステップによって、前記(a)のステップで計測された前記回数が、予め設定された条件を満たすと判定された場合に、前記副プログラムを前記動的リンクから解放する、ステップと、
を実行させるプログラム。
【0071】
(付記12)
付記11に記載のプログラムであって、
前記コンピュータに、
(d)前記副プログラムの状況に応じて、前記条件を設定する、ステップを更に実行させる、
ことを特徴とするプログラム。
【0072】
(付記13)
付記12に記載のプログラムであって、
前記(d)のステップにおいて、前記条件として、前記副プログラムが実行される論理空間で前記副プログラムが使用するセグメントの枚数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とするプログラム。
【0073】
(付記14)
付記12に記載のプログラムであって、
前記(d)のステップにおいて、前記条件として、前記副プログラムが連結されている動的リンクの数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とするプログラム。
【0074】
(付記15)
付記12に記載のプログラムであって、
前記(d)のステップにおいて、動的リンクから解放されたことがある前記副プログラムに対しては、前記条件として、前記副プログラムにおける解放されてからの経過時間に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とするプログラム。
【産業上の利用可能性】
【0075】
以上のように本発明によれば、動的リンクによるオーバーヘッド発生を抑止しつつ、人手によることなく、副プログラムの解放指示を設定することができる。本発明は、動的リンクが利用される各種コンピュータシステムに有用である。
【符号の説明】
【0076】
10 動的リンク管理装置
11 非稼働回数計測部
12 設定条件判定部
13 プログラム解放部
14 条件設定部
15 監視テーブル格納部
16 副プログラム監視テーブル
20 コンピュータ
21 オペレーティングシステム
22 主プログラム
23 動的リンク
24 副プログラム
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】