(57)【要約】【課題】動的リンクによるオーバーヘッド発生を抑止しつつ、人手によることなく、副プログラムの解放指示を設定し得る、動的リンク管理装置、動的リンク管理方法、及びプログラムを提供する。【解決手段】動的リンク管理装置１０は、動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する、非稼働回数計測部１１と、計測された前記回数が、予め設定された条件を満たすかどうかを判定する、設定条件判定部１２と、設定条件判定部１２によって、計測された前記回数が、予め設定された条件を満たすと判定された場合に、副プログラムを動的リンクから解放する、プログラム解放部１３と、を備えている。【選択図】図１
2019145049.tif 000002
【特許請求の範囲】
【請求項１】
動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する、非稼働回数計測部と、
計測された前記回数が、予め設定された条件を満たすかどうかを判定する、設定条件判定部と、
前記設定条件判定部によって、計測された前記回数が、予め設定された条件を満たすと判定された場合に、前記副プログラムを前記動的リンクから解放する、プログラム解放部と、
を備えていることを特徴とする動的リンク管理装置。
【請求項２】
請求項１に記載の動的リンク管理装置であって、
前記副プログラムの状況に応じて、前記条件を設定する、条件設定部を更に備えている、
ことを特徴とする動的リンク管理装置。
【請求項３】
請求項２に記載の動的リンク管理装置であって、
前記条件設定部が、前記条件として、前記副プログラムが実行される論理空間で前記副プログラムが使用するセグメントの枚数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理装置。
【請求項４】
請求項２に記載の動的リンク管理装置であって、
前記条件設定部が、前記条件として、前記副プログラムが連結されている動的リンクの数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理装置。
【請求項５】
請求項２に記載の動的リンク管理装置であって、
前記条件設定部が、動的リンクから解放されたことがある前記副プログラムに対しては、前記条件として、前記副プログラムにおける解放されてからの経過時間に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理装置。
【請求項６】
（ａ）動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する、ステップと、
（ｂ）前記（ａ）のステップで計測された前記回数が、予め設定された条件を満たすかどうかを判定する、ステップと、
（ｃ）前記（ｂ）のステップによって、前記（ａ）のステップで計測された前記回数が、予め設定された条件を満たすと判定された場合に、前記副プログラムを前記動的リンクから解放する、ステップと、
を有することを特徴とする動的リンク管理方法。
【請求項７】
請求項６に記載の動的リンク管理方法であって、
（ｄ）前記副プログラムの状況に応じて、前記条件を設定する、ステップを更に有する、ことを特徴とする動的リンク管理方法。
【請求項８】
請求項７に記載の動的リンク管理方法であって、
前記（ｄ）のステップにおいて、前記条件として、前記副プログラムが実行される論理空間で前記副プログラムが使用するセグメントの枚数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理方法。
【請求項９】
請求項７に記載の動的リンク管理方法であって、
前記（ｄ）のステップにおいて、前記条件として、前記副プログラムが連結されている動的リンクの数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理方法。
【請求項１０】
請求項７に記載の動的リンク管理方法であって、
前記（ｄ）のステップにおいて、動的リンクから解放されたことがある前記副プログラムに対しては、前記条件として、前記副プログラムにおける解放されてからの経過時間に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理方法。
【請求項１１】
コンピュータに、
（ａ）動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する、ステップと、
（ｂ）前記（ａ）のステップで計測された前記回数が、予め設定された条件を満たすかどうかを判定する、ステップと、
（ｃ）前記（ｂ）のステップによって、前記（ａ）のステップで計測された前記回数が、予め設定された条件を満たすと判定された場合に、前記副プログラムを前記動的リンクから解放する、ステップと、
を実行させるプログラム。
【請求項１２】
請求項１１に記載のプログラムであって、
前記コンピュータに、
（ｄ）前記副プログラムの状況に応じて、前記条件を設定する、ステップを更に実行させる、
ことを特徴とするプログラム。
【請求項１３】
請求項１２に記載のプログラムであって、
前記（ｄ）のステップにおいて、前記条件として、前記副プログラムが実行される論理空間で前記副プログラムが使用するセグメントの枚数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とするプログラム。
【請求項１４】
請求項１２に記載のプログラムであって、
前記（ｄ）のステップにおいて、前記条件として、前記副プログラムが連結されている動的リンクの数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とするプログラム。
【請求項１５】
請求項１２に記載のプログラムであって、
前記（ｄ）のステップにおいて、動的リンクから解放されたことがある前記副プログラムに対しては、前記条件として、前記副プログラムにおける解放されてからの経過時間に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主プログラムに副プログラムを連結させるための動的リンクを管理する、動的リンク管理装置、及び動的リンク管理方法に関し、更には、これらを実現するためのプログラムに関する。
【背景技術】
【０００２】
従来から、プログラム間のリンクの方法としては、静的リンクと動的リンクとの２つの方法が知られている。このうち、静的リンクは、主プログラムと、その実行に必要な副プログラムとを、予め連結するリンクであり、主プログラムの開発の時点で設定される。一方、動的リンクは、主プログラムと、その実行に必要な副プログラムとを、実行時に連結するリンクである。
【０００３】
ところで、これらのリンクのうち、動的リンクを採用した場合は、主プログラムが論理空間にロードされても、副プログラムはロードされないため、プロセス起動時のロード時間を短縮することもできる。また、動的リンクを採用した場合は、副プロラムは使用時にのみ呼び出され、処理終了後に解放され、その後、削除される（例えば、特許文献１及び２参照）。このため、動的リンクは、十分な論理空間が確保されていないシステムに有効である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−１１４４７０号公報
【特許文献２】特開平７−１８２２３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、動的リンクにおいて、副プログラムを解放するためには、プログラマーが、主プログラムにおいて、解放指示をプログラミングする必要がある。しかしながら、特に、論理空間が十分に確保されていないシステムにおいては、プログラマーは、使用セグメント数、動的リンクによるオーバーヘッドを考慮して、解放指示をプログラミングする必要があり、動的リンクの使用はプログラマーにとって大きな負担となっている。
【０００６】
本発明の目的の一例は、上記問題を解消し、動的リンクによるオーバーヘッド発生を抑止しつつ、人手によることなく、副プログラムの解放指示を設定し得る、動的リンク管理装置、動的リンク管理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の一側面における動的リンク管理装置は、
動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する、非稼働回数計測部と、
計測された前記回数が、予め設定された条件を満たすかどうかを判定する、設定条件判定部と、
前記設定条件判定部によって、計測された前記回数が、予め設定された条件を満たすと判定された場合に、前記副プログラムを前記動的リンクから解放する、プログラム解放部と、
を備えていることを特徴とする。
【０００８】
また、上記目的を達成するため、本発明の一側面における動的リンク管理方法は、
（ａ）動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する、ステップと、
（ｂ）前記（ａ）のステップで計測された前記回数が、予め設定された条件を満たすかどうかを判定する、ステップと、
（ｃ）前記（ｂ）のステップによって、前記（ａ）のステップで計測された前記回数が、予め設定された条件を満たすと判定された場合に、前記副プログラムを前記動的リンクから解放する、ステップと、
を有することを特徴とする。
【０００９】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、
コンピュータに、
（ａ）動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する、ステップと、
（ｂ）前記（ａ）のステップで計測された前記回数が、予め設定された条件を満たすかどうかを判定する、ステップと、
（ｃ）前記（ｂ）のステップによって、前記（ａ）のステップで計測された前記回数が、予め設定された条件を満たすと判定された場合に、前記副プログラムを前記動的リンクから解放する、ステップと、
を実行させることを特徴とする。
【発明の効果】
【００１０】
以上のように本発明によれば、動的リンクによるオーバーヘッド発生を抑止しつつ、人手によることなく、副プログラムの解放指示を設定することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の実施の形態における動的リンク管理装置の概略構成を示すブロック図である。
【図２】図２は、本発明の実施の形態における動的リンク管理装置の具体的構成を示すブロック図である。
【図３】図３は、本発明の実施の形態で用いられる副プログラム監視テーブルの一例を示す図である。
【図４】図４は、本発明の実施の形態における動的リンク管理装置の解放条件設定時及び更新時の動作を示すフロー図である。
【図５】図５は、本発明の実施の形態における動的リンク管理装置の解放条件判定時の動作を示すフロー図である。
【図６】図６は、本発明の実施の形態における動的リンク管理装置を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【００１２】
（実施の形態）
以下、本発明の実施の形態における、動的リンク管理装置、動的リンク管理方法、及びプログラムについて、図１〜図６を参照しながら説明する。
【００１３】
［装置構成］
最初に、本実施の形態における動的リンク管理装置の概略構成について説明する。図１は、本発明の実施の形態における動的リンク管理装置の概略構成を示すブロック図である。
【００１４】
図１に示す、本実施の形態における動的リンク管理装置１０は、主プログラムに副プロ
グラムを連結させる動的リンクを管理するための装置である。図１に示すように、動的リンク管理装置１０は、非稼働回数計測部１１と、設定条件判定部１２と、プログラム解放部１３とを備えている。
【００１５】
非稼働回数計測部１１は、動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する。設定条件判定部１２は、計測された回数が、予め設定された条件（以下「解放条件」と表記する。）を満たすかどうかを判定する。プログラム解放部１３は、設定条件判定部１２によって、計測された回数が、予め設定された解放条件を満たすと判定された場合に、副プログラムを動的リンクから解放する。
【００１６】
このように、本実施の形態では、動的リンクによって主プログラムに連結されている副プログラムは、一定条件下で、自動的に動的リンクから解放される。このため、本実施の形態によれば、動的リンクによるオーバーヘッド発生を抑止すると同時に、人手によることなく、副プログラムの解放指示を行うことができる。
【００１７】
続いて、図２を用いて、本実施の形態における動的リンク管理装置１０の構成をより具体的に説明する。図２は、本発明の実施の形態における動的リンク管理装置の具体的構成を示すブロック図である。
【００１８】
図２に示すように、本実施の形態における動的リンク管理装置１０は、コンピュータ２０のオペレーティングシステム２１上に、プログラムによって構築されている。コンピュータ２０は、例えば、サーバ装置である。また、オペレーティングシステム２１上には、主プログラム２２と副プログラム２４とを動的にリンクする動的リンク２３が構築されている。動的リンク２３は、副プログラムを主プログラムに連結するための動的リンクを生成する機能と、副プログラムを解放して動的リンクを削除する機能とを備えている。
【００１９】
また、図２に示すように、本実施の形態では、動的リンク管理装置１０は、上述した、非稼働回数計測部１１、設定条件判定部１２、及びプログラム解放部１３に加えて、条件設定部１４と、監視テーブル格納部１５とを備えている。
【００２０】
条件設定部１４は、副プログラムの状況に応じて、解放条件を設定する。条件設定部１４は、例えば、解放条件として、副プログラムが実行される論理空間で副プログラムが使用するセグメントの枚数に応じて、非稼働回数計測部１１によって計測された回数の上限となる閾値を設定する。また、条件設定部１４は、解放条件として、副プログラムが連結されている動的リンクの数に応じて、非稼働回数計測部１１によって計測された回数の上限となる閾値を設定することもできる。
【００２１】
また、条件設定部１４は、動的リンクから解放されたことがある副プログラムに対しては、解放条件として、副プログラムにおける解放されてからの経過時間に応じて、非稼働回数計測部１１によって計測された回数の上限となる閾値を設定することもできる。
【００２２】
監視テーブル格納部１５は、副プログラム監視テーブル１６を格納している。副プログラム監視テーブル１６には、非稼働回数計測部１１によって計測された、主プログラム２２に連結されている副プログラム２４が設定時間の間稼働しなかった回数（以下「動的リンク制御カウンタ」とも表記する）が、登録される。また、副プログラム監視テーブル１６には、条件設定部１４によって設定された、解放条件となる閾値（以下「動的リンク制御カウンタ閾値」とも表記する）も登録される。
【００２３】
ここで、図３を用いて、副プログラム監視テーブル１６の具体例について説明する。図
３は、本発明の実施の形態で用いられる副プログラム監視テーブルの一例を示す図である。
【００２４】
図３に示すように、副プログラム監視テーブル１６には、副プログラム毎に、動的リンクフラグ、実行カウンタ、稼働フラグ、動的リンク制御カウンタ、動的リンク制御カウンタ閾値、及び副プログラム解放時間が登録されている。
【００２５】
このうち、動的リンクフラグは、対応する副プログラム２４の主プログラムとの連結状態を示すフラグである。動的リンクフラグは、対応する副プログラム２４が動的リンク２３によって主プログラムに連結されると、「ｏｎ」となり、解放されると、「ｏｆｆ」となる。実行カウンタは、対応する副プログラムに連結されている主プログラムの数を示している。また、稼働フラグは、対応する副プログラムの稼働状態を示すフラグである。
【００２６】
動的リンク制御カウンタは、上述した、非稼働回数計測部１１によって計測された、副プログラム２４が設定時間の間稼働しなかった回数である。動的リンク制御カウンタ閾値は、条件設定部１４によって設定された閾値である。また、動的リンク制御カウンタ閾値は、条件設定部１４によって閾値が設定される度に更新される。副プログラム解放時間は、副プログラムが動的リンクから解放されてからの経過時間である。
【００２７】
［装置構成］
次に、本発明の実施の形態における動的リンク管理装置１０の動作について図４及び図５を用いて説明する。以下の説明においては、適宜図１〜図３を参酌する。また、本実施の形態では、動的リンク管理装置１０を動作させることによって、動的リンク管理方法が実施される。よって、本実施の形態における動的リンク管理方法の説明は、以下の動的リンク管理装置１０の動作説明に代える。
【００２８】
最初に、図４を用いて、解放条件（動的リンク制御カウンタ閾値）の設定処理及び更新処理について説明する。図４は、本発明の実施の形態における動的リンク管理装置の解放条件設定時及び更新時の動作を示すフロー図である。
【００２９】
図４に示すように、最初に、条件設定部１４は、オペレーティングシステム２１上に用意されている副プログラム２４のうちの１つを選択する（ステップＡ１）。次に、条件設定部１４は、選択した副プログラム２４のエントリが、副プログラム監視テーブル１６に存在しているかどうかを判定する（ステップＡ２）。
【００３０】
ステップＡ２の判定の結果、選択した副プログラム２４のエントリが、副プログラム監視テーブル１６に存在していない場合は、条件設定部１４は、副プログラム監視テーブル１６に、選択した副プログラム２４のエントリを作成する（ステップＡ３）。
【００３１】
次に、条件設定部１４は、選択した副プログラム２４が実行される論理空間でのセグメント使用枚数に応じて、動的リンク制御カウンタ閾値を設定する（ステップＡ４）。更に、条件設定部１４は、選択した副プログラム２４の実行カウンタを「０（ゼロ）」に設定し、次いで、動的リンクフラグをｏｎとして（ステップＡ５）、処理を終了する。
【００３２】
また、上述のステップＡ２の判定の結果、選択した副プログラム２４のエントリが、副プログラム監視テーブル１６に存在している場合は、条件設定部１４は、選択した副プログラム２４が動的リンク２３によって主プログラム２２に連結されているかどうかを判定する（ステップＡ６）。
【００３３】
ステップＡ６の判定の結果、選択した副プログラム２４が動的リンク２３によって主プ
ログラム２２に連結されている場合は、条件設定部１４は、動的リンク制御カウンタ閾値を１増加させ（ステップＡ７）、処理を終了する。
【００３４】
一方、ステップＡ６の判定の結果、選択した副プログラム２４が動的リンク２３によって主プログラム２２に連結されていない場合は、条件設定部１４は、ステップＡ８を実行する。ステップＡ８では、条件設定部１４は、選択した副プログラム２４が動的リンクから解放された時からの経過時間が、基準値より短いかどうかを判定する。
【００３５】
ステップＡ８の判定の結果、選択した副プログラム２４が動的リンク２３から解放された時からの経過時間が、基準値より短い場合は、条件設定部１４は、ステップＡ７を実行し、動的リンク制御カウンタ閾値を１増加させる。一方、ステップＡ８の判定の結果、選択した副プログラム２４が動的リンクから解放された時からの経過時間が、基準値より短くない場合は、条件設定部１４は、処理を終了する。
【００３６】
ステップＡ１〜Ａ８の実行により、副プログラム２４に対して、動的リンク制御カウンタ閾値の設定又は更新が実行される。また、ステップＡ１〜Ａ８は、全ての副プログラム２４を対象にして繰り返し実行される。
【００３７】
また、条件設定部１４は、選択した副プログラム２４が稼働した場合は、その稼働フラグをｏｎに設定すると共に、実行カウンタを１増加させる。更に、条件設定部１４は、主プログラム２２が稼働して、処理が、稼働している副プログラム２４から主プログラム２２に戻ると、この副プログラム２４の実行カウンタを１減少させる。
【００３８】
続いて、図５を用いて、解放条件の判定処理について説明する。図５は、本発明の実施の形態における動的リンク管理装置の解放条件判定時の動作を示すフロー図である。
【００３９】
図５に示すように、非稼働回数計測部１１は、主プログラム２２に動的リンク２３によって連結されている副プログラム２４の１つを選択する（ステップＢ１）。次に、非稼働回数計測部１１は、副プログラム監視テーブル１６に基づいて、選択した副プログラム２４が稼働しているかどうかを判定する（ステップＢ２）
【００４０】
ステップＢ２の判定の結果、選択した副プログラム２４が稼働している場合は、非稼働回数計測部１１は、副プログラム監視テーブル１６において、選択した副プログラム２４の動的リンク制御カウンタを「０（ゼロ）」に設定する（ステップＢ３）。次いで、非稼働回数計測部１１は、副プログラム監視テーブル１６において、選択した副プログラム２４の稼働フラグをｏｆｆに設定し（ステップＢ４）、処理を終了する。
【００４１】
ステップＢ２の判定の結果、選択した副プログラム２４が稼働していない場合は、非稼働回数計測部１１は、選択した副プログラム２４が実行されているかどうかを判定する（ステップＢ５）。ステップＢ５の判定の結果、選択した副プログラム２４が実行されている場合は、非稼働回数計測部１１は、処理を終了する。
【００４２】
一方、ステップＢ５の判定の結果、選択した副プログラム２４が実行されていない場合は、非稼働回数計測部１１は、副プログラム監視テーブル１６において、選択した副プログラム２４の動的リンク制御カウンタを１増加させる（ステップＢ６）。
【００４３】
次に、ステップＢ６が実行されると、設定条件判定部１２は、ステップＢ１で選択された副プログラム２４において、動的リンク制御カウンタの値が、動的リンク制御カウンタ閾値を超えているかどうかを判定する（ステップＢ７）。即ち、設定条件判定部１２は、解放条件が満たされているかどうかを判定する。
【００４４】
ステップＢ７の判定の結果、動的リンク制御カウンタの値が、動的リンク制御カウンタ閾値を超えていない場合、即ち、解放条件が満たされていない場合は、設定条件判定部１２は、処理を終了する。
【００４５】
一方、ステップＢ７の判定の結果、動的リンク制御カウンタの値が、動的リンク制御カウンタ閾値を超えている場合、即ち、解放条件が満たされている場合は、設定条件判定部１２は、そのことをプログラム解放部１３に通知する。
【００４６】
これにより、プログラム解放部１３は、動的リンク２３に対して、選択された副プログラム２４を解放するように指示を与え、この副プログラム２４を動的リンク２３から解放する（ステップＢ８）。
【００４７】
また、ステップＢ８の実行時においては、プログラム解放部１３は、解放された副プログラム２４の動的リンク制御カウンタを「０（ゼロ）」に設定し、稼働フラグ及び動的リンクフラグをｏｆｆに設定し、更に、この副プログラムの解放時からの経過時間の計測を開始する。
【００４８】
ステップＢ１〜Ｂ８の実行により、解放条件を満たす副プログラム２４は、人手によることなく、動的リンク２３から解放される。また、ステップＢ１〜Ｂ８は、動的リンクによって主プログラム２２に連結されている全ての副プログラム２４を対象にして、繰り返し実行される。
【００４９】
［実施の形態による効果］
以上のように、本実施の形態によれば、動的リンク２３によって主プログラム２２に連結されている副プログラム２４は、解放条件を満たすと、自動的に動的リンクから解放される。本実施の形態によれば、人手によることなく、副プログラムの解放指示を行うことができる。また、この解放条件は、副プログラム２４の状況に応じて、最適化されるので、動的リンクによるオーバーヘッドの発生をより確実に抑止することができる。
【００５０】
［プログラム］
本実施の形態におけるプログラムは、コンピュータに、図４に示すステップＡ１〜Ａ８、図５に示すステップＢ１〜Ｂ８を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における動的リンク管理装置１０と動的リンク管理方法とを実現することができる。この場合、コンピュータのプロセッサは、非稼働回数計測部１１、設定条件判定部１２、プログラム解放部１３、及び条件設定部１４として機能し、処理を行なう。また、本実施の形態では、監視テーブル格納部１５は、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって実現できる。
【００５１】
また、本実施の形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、非稼働回数計測部１１、設定条件判定部１２、プログラム解放部１３、及び条件設定部１４のいずれかとして機能しても良い。また、監視テーブル格納部１５は、本実施の形態におけるプログラムを実行するコンピュータとは別のコンピュータ上に構築されていても良い。
【００５２】
ここで、本実施の形態におけるプログラムを実行することによって、動的リンク管理装置を実現するコンピュータ２０について図６を用いて説明する。図６は、本発明の実施の形態における動的リンク管理装置を実現するコンピュータの一例を示すブロック図である
。また、図６は、図２示したコンピュータ２０の物理的構成を示している。
【００５３】
図６に示すように、コンピュータ２０は、ＣＰＵ（Central Processing Unit）１１１と、メインメモリ１１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。なお、コンピュータ２０は、ＣＰＵ１１１に加えて、又はＣＰＵ１１１に代えて、ＧＰＵ（Graphics Processing Unit）、又はＦＰＧＡ（Field-Programmable Gate Array）を備えていても良い。
【００５４】
ＣＰＵ１１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであっても良い。
【００５５】
また、記憶装置１１３の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス１１４は、ＣＰＵ１１１と、キーボード及びマウスといった入力機器１１８との間のデータ伝送を仲介する。表示コントローラ１１５は、ディスプレイ装置１１９と接続され、ディスプレイ装置１１９での表示を制御する。
【００５６】
データリーダ／ライタ１１６は、ＣＰＵ１１１と記録媒体１２０との間のデータ伝送を仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ２０における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１１と、他のコンピュータとの間のデータ伝送を仲介する。
【００５７】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記録媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記録媒体が挙げられる。
【００５８】
なお、本実施の形態における動的リンク管理装置１０は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、動的リンク管理装置１０は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【００５９】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記１５）によって表現することができるが、以下の記載に限定されるものではない。
【００６０】
（付記１）
動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する、非稼働回数計測部と、
計測された前記回数が、予め設定された条件を満たすかどうかを判定する、設定条件判定部と、
前記設定条件判定部によって、計測された前記回数が、予め設定された条件を満たすと判定された場合に、前記副プログラムを前記動的リンクから解放する、プログラム解放部と、
を備えていることを特徴とする動的リンク管理装置。
【００６１】
（付記２）
付記１に記載の動的リンク管理装置であって、
前記副プログラムの状況に応じて、前記条件を設定する、条件設定部を更に備えている、
ことを特徴とする動的リンク管理装置。
【００６２】
（付記３）
付記２に記載の動的リンク管理装置であって、
前記条件設定部が、前記条件として、前記副プログラムが実行される論理空間で前記副プログラムが使用するセグメントの枚数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理装置。
【００６３】
（付記４）
付記２に記載の動的リンク管理装置であって、
前記条件設定部が、前記条件として、前記副プログラムが連結されている動的リンクの数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理装置。
【００６４】
（付記５）
付記２に記載の動的リンク管理装置であって、
前記条件設定部が、動的リンクから解放されたことがある前記副プログラムに対しては、前記条件として、前記副プログラムにおける解放されてからの経過時間に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理装置。
【００６５】
（付記６）
（ａ）動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する、ステップと、
（ｂ）前記（ａ）のステップで計測された前記回数が、予め設定された条件を満たすかどうかを判定する、ステップと、
（ｃ）前記（ｂ）のステップによって、前記（ａ）のステップで計測された前記回数が、予め設定された条件を満たすと判定された場合に、前記副プログラムを前記動的リンクから解放する、ステップと、
を有することを特徴とする動的リンク管理方法。
【００６６】
（付記７）
付記６に記載の動的リンク管理方法であって、
（ｄ）前記副プログラムの状況に応じて、前記条件を設定する、ステップを更に有する、ことを特徴とする動的リンク管理方法。
【００６７】
（付記８）
付記７に記載の動的リンク管理方法であって、
前記（ｄ）のステップにおいて、前記条件として、前記副プログラムが実行される論理空間で前記副プログラムが使用するセグメントの枚数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理方法。
【００６８】
（付記９）
付記７に記載の動的リンク管理方法であって、
前記（ｄ）のステップにおいて、前記条件として、前記副プログラムが連結されている動的リンクの数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理方法。
【００６９】
（付記１０）
付記７に記載の動的リンク管理方法であって、
前記（ｄ）のステップにおいて、動的リンクから解放されたことがある前記副プログラムに対しては、前記条件として、前記副プログラムにおける解放されてからの経過時間に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とする動的リンク管理方法。
【００７０】
（付記１１）
コンピュータに、
（ａ）動的リンクによって主プログラムに連結されている副プログラムが、設定時間の間、稼働しなかった回数を計測する、ステップと、
（ｂ）前記（ａ）のステップで計測された前記回数が、予め設定された条件を満たすかどうかを判定する、ステップと、
（ｃ）前記（ｂ）のステップによって、前記（ａ）のステップで計測された前記回数が、予め設定された条件を満たすと判定された場合に、前記副プログラムを前記動的リンクから解放する、ステップと、
を実行させるプログラム。
【００７１】
（付記１２）
付記１１に記載のプログラムであって、
前記コンピュータに、
（ｄ）前記副プログラムの状況に応じて、前記条件を設定する、ステップを更に実行させる、
ことを特徴とするプログラム。
【００７２】
（付記１３）
付記１２に記載のプログラムであって、
前記（ｄ）のステップにおいて、前記条件として、前記副プログラムが実行される論理空間で前記副プログラムが使用するセグメントの枚数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とするプログラム。
【００７３】
（付記１４）
付記１２に記載のプログラムであって、
前記（ｄ）のステップにおいて、前記条件として、前記副プログラムが連結されている動的リンクの数に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とするプログラム。
【００７４】
（付記１５）
付記１２に記載のプログラムであって、
前記（ｄ）のステップにおいて、動的リンクから解放されたことがある前記副プログラムに対しては、前記条件として、前記副プログラムにおける解放されてからの経過時間に応じて、計測された前記回数の上限となる閾値を設定する、
ことを特徴とするプログラム。
【産業上の利用可能性】
【００７５】
以上のように本発明によれば、動的リンクによるオーバーヘッド発生を抑止しつつ、人手によることなく、副プログラムの解放指示を設定することができる。本発明は、動的リンクが利用される各種コンピュータシステムに有用である。
【符号の説明】
【００７６】
１０  動的リンク管理装置
１１  非稼働回数計測部
１２  設定条件判定部
１３  プログラム解放部
１４  条件設定部
１５  監視テーブル格納部
１６  副プログラム監視テーブル
２０  コンピュータ
２１  オペレーティングシステム
２２  主プログラム
２３  動的リンク
２４  副プログラム
１１１  ＣＰＵ
１１２  メインメモリ
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
【図１】
2019145049.tif 000003
【図２】
2019145049.tif 000004
【図３】
2019145049.tif 000005
【図４】
2019145049.tif 000006
【図５】
2019145049.tif 000007
【図６】
2019145049.tif 000008