(57)【特許請求の範囲】
【請求項１】
記憶手段に格納される副プログラム管理テーブルと動的リンク解除要求副プログラム管理テーブルと、記憶手段に格納されているプログラムによって制御されたコンピュータによって実現される動的リンク解除要求副プログラム登録手段と動的リンク解除要求副プログラム選択手段と動的リンク解除要求副プログラムアンロード手段とを備え、
前記副プログラム管理テーブルが、動的リンクされている副プログラムを管理し、
前記動的リンク解除要求副プログラム管理テーブルが、動的リンク解除要求されたがアンロードされていない副プログラムを管理し、
前記動的リンク解除要求副プログラム登録手段が、副プログラムが動的リンク解除要求されたときに該副プログラムをアンロードさせずに前記動的リンク解除要求副プログラム管理テーブルに登録し、
前記動的リンク解除要求副プログラム選択手段が、副プログラムが動的リンク要求されたときに該副プログラムをロードする領域等の資源が不足する場合には前記動的リンク解除要求副プログラム管理テーブルからアンロードする副プログラムを選択し、
前記動的リンク解除要求副プログラムアンロード手段が、前記動的リンク解除要求副プログラム選択手段により選択された副プログラムをアンロードさせて前記動的リンク解除要求副プログラム管理テーブルから該選択された副プログラムの登録を削除することを特徴とする副プログラムの動的リンク要求／動的リンク解除要求処理方式。
【請求項２】
記憶手段に格納される副プログラム管理テーブルと動的リンク解除要求副プログラム管理テーブルと、記憶手段に格納されているプログラムによって制御されたコンピュータによって実現される動的リンク解除要求副プログラム登録手段と動的リンク解除要求副プログラム検索手段と動的リンク解除要求副プログラム削除手段と動的リンク解除要求副プログラム選択手段と動的リンク解除要求副プログラムアンロード手段とを備え、
前記副プログラム管理テーブルが、動的リンクされている副プログラムを管理し、
前記動的リンク解除要求副プログラム管理テーブルが、動的リンク解除要求されたがアンロードされていない副プログラムを管理し、
前記動的リンク解除要求副プログラム登録手段が、副プログラムが動的リンク解除要求されたときに該副プログラムをアンロードさせずに前記動的リンク解除要求副プログラム管理テーブルに登録し、
前記動的リンク解除要求副プログラム検索手段が、副プログラムが動的リンク要求されたときに該副プログラムが前記動的リンク解除要求副プログラム管理テーブルに登録されているか否かをチェックし、
前記動的リンク解除要求副プログラム削除手段が、前記動的リンク解除要求副プログラム検索手段により該副プログラムが前記動的リンク解除要求副プログラム管理テーブルに登録されていることが検索されたときに前記動的リンク解除要求副プログラム管理テーブルから該副プログラムの登録を削除し、
前記動的リンク解除要求副プログラム選択手段が、前記動的リンク解除要求副プログラム検索手段により該副プログラムが前記動的リンク解除要求副プログラム管理テーブルに登録されていないことが検索されたときに該副プログラムをロードする領域等の資源が不足する場合には前記動的リンク解除要求副プログラム管理テーブルからアンロードする副プログラムを選択し、
前記動的リンク解除要求副プログラムアンロード手段が、前記動的リンク解除要求副プログラム選択手段により選択された副プログラムをアンロードさせて前記動的リンク解除要求副プログラム管理テーブルから該選択された副プログラムの登録を削除することを特徴とする副プログラムの動的リンク要求／動的リンク解除要求処理方式。
【請求項３】
前記副プログラム管理テーブルが、副プログラム名および動的リンク解除要求副プログラム管理テーブルアドレスを含むエントリを複数格納することを特徴とする請求項１または請求項２記載の副プログラムの動的リンク要求／動的リンク解除要求処理方式。
【請求項４】
前記動的リンク解除要求副プログラム管理テーブルが、副プログラム管理テーブルアドレスおよび動的リンク解除要求副プログラム管理テーブルチェーンからなるエントリを複数格納することを特徴とする請求項１または請求項２記載の副プログラムの動的リンク要求／動的リンク解除要求処理方式。
【請求項５】
前記動的リンク解除要求副プログラム登録手段が、該副プログラムのプログラム名と同じ副プログラム名を持つ前記副プログラム管理テーブルのエントリを先頭からサーチし、前記副プログラム管理テーブルの該エントリが見つかった場合は、該エントリの動的リンク解除要求副プログラム管理テーブルアドレスが特定値か否かをチェックし、前記副プログラム管理テーブルの該エントリの動的リンク解除要求副プログラム管理テーブルアドレスが特定値である場合は、前記動的リンク解除要求副プログラム管理テーブルを先頭からサーチして空きエントリを取得し、前記動的リンク解除要求副プログラム管理テーブルの該エントリのアドレスを前記副プログラム管理テーブルの前記エントリの動的リンク解除要求副プログラム管理テーブルアドレスに設定し、前記副プログラム管理テーブルの前記エントリのアドレスを前記動的リンク解除要求副プログラム管理テーブルの該エントリの副プログラム管理テーブルアドレスに設定し、前記動的リンク解除要求副プログラム管理テーブルの動的リンク解除要求副プログラム管理テーブルチェーンを設定することを特徴とする請求項１，請求項２，請求項３または請求項４記載の副プログラムの動的リンク要求／動的リンク解除要求処理方式。
【請求項６】
前記動的リンク解除要求副プログラム検索手段が、該副プログラムのプログラム名と同じ副プログラム名を持つ前記副プログラム管理テーブルのエントリを先頭からサーチし、前記副プログラム管理テーブルの該エントリが見つかった場合は、該エントリの動的リンク解除要求副プログラム管理テーブルアドレスが特定値か否かをチェックすることを特徴とする請求項２記載の副プログラムの動的リンク要求／動的リンク解除要求処理方式。
【請求項７】
前記動的リンク解除要求副プログラム削除手段が、前記副プログラム管理テーブルの該エントリの動的リンク解除要求副プログラム管理テーブルアドレスが特定値でなかった場合は、前記副プログラム管理テーブルの該エントリの動的リンク解除要求副プログラム管理テーブルアドレスが示す前記動的リンク解除要求副プログラム管理テーブルのエントリを削除し、前記動的リンク解除要求副プログラム管理テーブルの動的リンク解除要求副プログラム管理テーブルチェーンを設定し、前記副プログラム管理テーブルの該エントリの動的リンク解除要求副プログラム管理テーブルアドレスに特定値を設定することを特徴とする請求項２記載の副プログラムの動的リンク要求／動的リンク解除要求処理方式。
【請求項８】
前記動的リンク解除要求副プログラム選択手段が、該副プログラムをロードする領域等の資源が不足するかどうかを判断し、該副プログラムをロードする領域等の資源が不足する場合には、前記動的リンク解除要求副プログラム管理テーブルの動的リンク解除要求副プログラム管理テーブルチェーンの先頭エントリを取得し、該エントリの副プログラム管理テーブルアドレスが示す前記副プログラム管理テーブルのエントリを取得することを特徴とする請求項１記載の副プログラムの動的リンク要求／動的リンク解除要求処理方式。
【請求項９】
前記動的リンク解除要求副プログラムアンロード手段が、前記副プログラム管理テーブルの該エントリの動的リンク解除要求副プログラム管理テーブルアドレスが示す前記動的リンク解除要求副プログラム管理テーブルのエントリを削除し、前記動的リンク解除要求副プログラム管理テーブルの動的リンク解除要求副プログラム管理テーブルチェーンを設定し、前記副プログラム管理テーブルの前記エントリの動的リンク解除要求副プログラム管理テーブルアドレスに特定値を設定することを特徴とする請求項１記載の副プログラムの動的リンク要求／動的リンク解除要求処理方式。
【請求項１０】
動的リンクされている副プログラムを管理する副プログラム管理テーブルと，動的リンク解除要求されたがアンロードされていない副プログラムを管理する動的リンク解除要求副プログラム管理テーブルとをコンピュータが有する記憶手段に格納するとともに、
副プログラムが動的リンク解除要求されたときに該副プログラムをアンロードさせずに前記動的リンク解除要求副プログラム管理テーブルに登録する処理を実行する動的リンク解除要求副プログラム登録手段，副プログラムが動的リンク要求されたときに該副プログラムをロードする領域等の資源が不足する場合には前記動的リンク解除要求副プログラム管理テーブルからアンロードする副プログラムを選択する処理を実行する動的リンク解除要求副プログラム選択手段，および前記動的リンク解除要求副プログラム選択手段により選択された副プログラムをアンロードさせて前記動的リンク解除要求副プログラム管理テーブルから該選択された副プログラムの登録を削除する処理を実行する動的リンク解除要求副プログラムアンロード手段として該コンピュータを動作させるプログラム。
【請求項１１】
動的リンクされている副プログラムを管理する副プログラム管理テーブルと，動的リンク解除要求されたがアンロードされていない副プログラムを管理する動的リンク解除要求副プログラム管理テーブルとをコンピュータが有する記憶手段に格納するとともに、
副プログラムが動的リンク解除要求されたときに該副プログラムをアンロードさせずに前記動的リンク解除要求副プログラム管理テーブルに登録する処理を実行する動的リンク解除要求副プログラム登録手段，副プログラムが動的リンク要求されたときに該副プログラムが前記動的リンク解除要求副プログラム管理テーブルに登録されているか否かをチェックする処理を実行する動的リンク解除要求副プログラム検索手段，前記動的リンク解除要求副プログラム検索手段により該副プログラムが前記動的リンク解除要求副プログラム管理テーブルに登録されていることが検索されたときに前記動的リンク解除要求副プログラム管理テーブルから該副プログラムの登録を削除する処理を実行する動的リンク解除要求副プログラム削除手段，前記動的リンク解除要求副プログラム検索手段により該副プログラムが前記動的リンク解除要求副プログラム管理テーブルに登録されていないことが検索されたときに該副プログラムをロードする領域等の資源が不足する場合には前記動的リンク解除要求副プログラム管理テーブルからアンロードする副プログラムを選択する処理を実行する動的リンク解除要求副プログラム選択手段，および前記動的リンク解除要求副プログラム選択手段により選択された副プログラムをアンロードさせて前記動的リンク解除要求副プログラム管理テーブルから該選択された副プログラムの登録を削除する処理を実行する動的リンク解除要求副プログラムアンロード手段として該コンピュータを動作させるプログラム。
【請求項１２】
前記副プログラム管理テーブルが、副プログラム名および動的リンク解除要求副プログラム管理テーブルアドレスを含むエントリを複数格納することを特徴とする請求項１０または請求項１１記載のプログラム。
【請求項１３】
前記動的リンク解除要求副プログラム管理テーブルが、副プログラム管理テーブルアドレスおよび動的リンク解除要求副プログラム管理テーブルチェーンからなるエントリを複数格納することを特徴とする請求項１０または請求項１１記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は副プログラムの動的リンク要求／動的リンク解除要求処理方式に関し、特に動的リンク要求および動的リンク解除要求（動的アンリンク要求）を受けて副プログラムのロードおよびアンロードを制御する動的リンカにおける副プログラムの動的リンク要求／動的リンク解除要求処理方式に関する。
【０００２】
【従来の技術】
従来の副プログラムの動的リンク要求／動的リンク解除要求処理方式においては、動的リンクされた副プログラムの動的リンク解除要求が行われた時点で、動的リンカは、該副プログラムをロードしたままにしておく領域等の資源に余裕があっても、該副プログラムがアンロード可能であれば、該副プログラムをアンロードしていた。
【０００３】
これに対して、特開平２−１９０９２９に開示された「外部モジュール管理方式」では、実行中のインタプリタシステムが動作中の外部モジュールへの戻りアドレスを有しているときには、再定義された外部モジュールのリンクロードを行うとともに、動作中の外部モジュールをそのまま主記憶上に保持して外部モジュール解放待ちリストに登録し、実行中のインタプリタシステムから動作中の外部モジュールの戻りアドレスへ移行して戻りアドレスが消滅し、移行した外部モジュールの動作が終了したときに、動作が終了した外部モジュールを解放することにより、何時でも動作中の外部モジュールの再定義を行って、直ちに再定義された外部モジュールを実行させることができるようにしていた。
【０００４】
しかし、このような従来の技術においても、外部モジュール（本発明の副プログラムに相当）の動作が終了したときには外部モジュールは解放されており、インタプリタシステム（本発明の主プログラムに相当）から外部モジュールの動的リンク解除要求が出された場合には、主記憶上に領域等の資源の余裕があったとしても、外部モジュールはアンロードされていた。
【０００５】
【発明が解決しようとする課題】
上述した従来の技術の第１の問題点は、主プログラムから動的リンク解除要求があったときに副プログラムをロードする領域等の資源が不足しないように副プログラムのアンロードを行う方式を採用する場合、動的リンク構造プログラムの作成の際に、副プログラムの動的リンク要求および動的リンク解除要求が頻繁に行われることによりプログラムの処理性能が劣化しないように考慮しなければならないということである。その理由は、動的リンクされた副プログラムの動的リンク解除要求が行われた時点で、該副プログラムがアンロード可能であれば、該副プログラムをロードしたままにしておく領域等の資源の余裕があっても、該副プログラムがアンロードされてしまうため、同じ副プログラムに対して動的リンク要求および動的リンク解除要求が繰り返しあったときに、該副プログラムのロードおよびアンロードが繰り返されて負荷が増大するからである。
【０００６】
第２の問題点は、主プログラムから動的リンク解除要求があったときに副プログラムをロードする領域等の資源が不足しないように副プログラムのアンロードを行う方式を採用する場合、動的リンク構造プログラムの作成の際に、副プログラムの動的リンク要求および動的リンク解除要求のタイミングによりプログラムの処理性能が劣化しないように考慮しなければならないということである。その理由は、動的リンクされた副プログラムの動的リンク解除要求が行われた時点で、該副プログラムがアンロード可能であれば、該副プログラムをロードしたままにしておく領域等の資源に余裕があっても、該副プログラムがアンロードされてしまうため、副プログラムのアンロードが短時間に集中的に繰り返される可能性があるからである。
【０００７】
本発明の目的は、動的リンク解除要求された副プログラムのアンロードを遅延して、同じ副プログラムに対して動的リンク要求および動的リンク解除要求が繰り返しあった場合に、該副プログラムのロードおよびアンロードが繰り返されることによる負荷を軽減できるようにした副プログラムの動的リンク要求／動的リンク解除要求処理方式を提供することにある。
【０００８】
また、本発明の他の目的は、副プログラムをロードする領域等の資源が不足した際にのみ、動的リンク解除要求された副プログラムのアンロードができるようにした副プログラムの動的リンク要求／動的リンク解除要求処理方式を提供することにある。
【０００９】
さらに、本発明の別の目的は、該副プログラムのロードおよびアンロードが繰り返されることによる負荷を軽減できるとともに、副プログラムをロードする領域等の資源が不足した際にのみ、動的リンク解除要求された副プログラムのアンロードができるようにした副プログラムの動的リンク要求／動的リンク解除要求処理方式を提供することにある。
【００１２】
【課題を解決するための手段】
本発明の副プログラムの動的リンク要求／動的リンク解除要求処理方式は、記憶手段に格納される副プログラム管理テーブルと動的リンク解除要求副プログラム管理テーブルと、記憶手段に格納されているプログラムによって制御されたコンピュータによって実現される動的リンク解除要求副プログラム登録手段と動的リンク解除要求副プログラム選択手段と動的リンク解除要求副プログラムアンロード手段とを備え、
前記副プログラム管理テーブルが、動的リンクされている副プログラムを管理し、
前記動的リンク解除要求副プログラム管理テーブルが、動的リンク解除要求されたがアンロードされていない副プログラムを管理し、
前記動的リンク解除要求副プログラム登録手段が、副プログラムが動的リンク解除要求されたときに該副プログラムをアンロードさせずに前記動的リンク解除要求副プログラム管理テーブルに登録し、
前記動的リンク解除要求副プログラム選択手段が、副プログラムが動的リンク要求されたときに該副プログラムをロードする領域等の資源が不足する場合には前記動的リンク解除要求副プログラム管理テーブルからアンロードする副プログラムを選択し、
前記動的リンク解除要求副プログラムアンロード手段が、前記動的リンク解除要求副プログラム選択手段により選択された副プログラムをアンロードさせて前記動的リンク解除要求副プログラム管理テーブルから該選択された副プログラムの登録を削除することを特徴とする。
【００１３】
また、本発明の副プログラムの動的リンク要求／動的リンク解除要求処理方式は、記憶手段に格納される副プログラム管理テーブルと動的リンク解除要求副プログラム管理テーブルと、記憶手段に格納されているプログラムによって制御されたコンピュータによって実現される動的リンク解除要求副プログラム登録手段と動的リンク解除要求副プログラム検索手段と動的リンク解除要求副プログラム削除手段と動的リンク解除要求副プログラム選択手段と動的リンク解除要求副プログラムアンロード手段とを備え、
前記副プログラム管理テーブルが、動的リンクされている副プログラムを管理し、
前記動的リンク解除要求副プログラム管理テーブルが、動的リンク解除要求されたがアンロードされていない副プログラムを管理し、
前記動的リンク解除要求副プログラム登録手段が、副プログラムが動的リンク解除要求されたときに該副プログラムをアンロードさせずに前記動的リンク解除要求副プログラム管理テーブルに登録し、
前記動的リンク解除要求副プログラム検索手段が、副プログラムが動的リンク要求されたときに該副プログラムが前記動的リンク解除要求副プログラム管理テーブルに登録されているか否かをチェックし、
前記動的リンク解除要求副プログラム削除手段が、前記動的リンク解除要求副プログラム検索手段により該副プログラムが前記動的リンク解除要求副プログラム管理テーブルに登録されていることが検索されたときに前記動的リンク解除要求副プログラム管理テーブルから該副プログラムの登録を削除し、
前記動的リンク解除要求副プログラム選択手段が、前記動的リンク解除要求副プログラム検索手段により該副プログラムが前記動的リンク解除要求副プログラム管理テーブルに登録されていないことが検索されたときに該副プログラムをロードする領域等の資源が不足する場合には前記動的リンク解除要求副プログラム管理テーブルからアンロードする副プログラムを選択し、
前記動的リンク解除要求副プログラムアンロード手段が、前記動的リンク解除要求副プログラム選択手段により選択された副プログラムをアンロードさせて前記動的リンク解除要求副プログラム管理テーブルから該選択された副プログラムの登録を削除することを特徴とする。
【００１４】
また、本発明の副プログラムの動的リンク要求／動的リンク解除要求処理方式は、前記副プログラム管理テーブルが、副プログラム名および動的リンク解除要求副プログラム管理テーブルアドレスを含むエントリを複数格納することを特徴とする。
【００１５】
さらに、本発明の副プログラムの動的リンク要求／動的リンク解除要求処理方式は、前記動的リンク解除要求副プログラム管理テーブルが、副プログラム管理テーブルアドレスおよび動的リンク解除要求副プログラム管理テーブルチェーンからなるエントリを複数格納することを特徴とする。
【００１６】
さらにまた、本発明の副プログラムの動的リンク要求／動的リンク解除要求処理方式は、前記動的リンク解除要求副プログラム登録手段が、該副プログラムのプログラム名と同じ副プログラム名を持つ前記副プログラム管理テーブルのエントリを先頭からサーチし、前記副プログラム管理テーブルの該エントリが見つかった場合は、該エントリの動的リンク解除要求副プログラム管理テーブルアドレスが特定値か否かをチェックし、前記副プログラム管理テーブルの該エントリの動的リンク解除要求副プログラム管理テーブルアドレスが特定値である場合は、前記動的リンク解除要求副プログラム管理テーブルを先頭からサーチして空きエントリを取得し、前記動的リンク解除要求副プログラム管理テーブルの該エントリのアドレスを前記副プログラム管理テーブルの前記エントリの動的リンク解除要求副プログラム管理テーブルアドレスに設定し、前記副プログラム管理テーブルの前記エントリのアドレスを前記動的リンク解除要求副プログラム管理テーブルの該エントリの副プログラム管理テーブルアドレスに設定し、前記動的リンク解除要求副プログラム管理テーブルの動的リンク解除要求副プログラム管理テーブルチェーンを設定することを特徴とする。
【００１７】
また、本発明の副プログラムの動的リンク要求／動的リンク解除要求処理方式は、前記動的リンク解除要求副プログラム検索手段が、該副プログラムのプログラム名と同じ副プログラム名を持つ前記副プログラム管理テーブルのエントリを先頭からサーチし、前記副プログラム管理テーブルの該エントリが見つかった場合は、該エントリの動的リンク解除要求副プログラム管理テーブルアドレスが特定値か否かをチェックすることを特徴とする。
【００１８】
さらに、本発明の副プログラムの動的リンク要求／動的リンク解除要求処理方式は、前記動的リンク解除要求副プログラム削除手段が、前記副プログラム管理テーブルの該エントリの動的リンク解除要求副プログラム管理テーブルアドレスが特定値でなかった場合は、前記副プログラム管理テーブルの該エントリの動的リンク解除要求副プログラム管理テーブルアドレスが示す前記動的リンク解除要求副プログラム管理テーブルのエントリを削除し、前記動的リンク解除要求副プログラム管理テーブルの動的リンク解除要求副プログラム管理テーブルチェーンを設定し、前記副プログラム管理テーブルの該エントリの動的リンク解除要求副プログラム管理テーブルアドレスに特定値を設定することを特徴とする。
【００１９】
さらにまた、本発明の副プログラムの動的リンク要求／動的リンク解除要求処理方式は、前記動的リンク解除要求副プログラム選択手段が、該副プログラムをロードする領域等の資源が不足するかどうかを判断し、該副プログラムをロードする領域等の資源が不足する場合には、前記動的リンク解除要求副プログラム管理テーブルの動的リンク解除要求副プログラム管理テーブルチェーンの先頭エントリを取得し、該エントリの副プログラム管理テーブルアドレスが示す前記副プログラム管理テーブルのエントリを取得することを特徴とする。
【００２０】
また、本発明の副プログラムの動的リンク要求／動的リンク解除要求処理方式は、前記動的リンク解除要求副プログラムアンロード手段が、前記副プログラム管理テーブルの該エントリの動的リンク解除要求副プログラム管理テーブルアドレスが示す前記動的リンク解除要求副プログラム管理テーブルのエントリを削除し、前記動的リンク解除要求副プログラム管理テーブルの動的リンク解除要求副プログラム管理テーブルチェーンを設定し、前記副プログラム管理テーブルの前記エントリの動的リンク解除要求副プログラム管理テーブルアドレスに特定値を設定することを特徴とする。
【００２３】
本発明のプログラムは、動的リンクされている副プログラムを管理する副プログラム管理テーブルと，動的リンク解除要求されたがアンロードされていない副プログラムを管理する動的リンク解除要求副プログラム管理テーブルとをコンピュータが有する記憶手段に格納するとともに、
副プログラムが動的リンク解除要求されたときに該副プログラムをアンロードさせずに前記動的リンク解除要求副プログラム管理テーブルに登録する処理を実行する動的リンク解除要求副プログラム登録手段，副プログラムが動的リンク要求されたときに該副プログラムをロードする領域等の資源が不足する場合には前記動的リンク解除要求副プログラム管理テーブルからアンロードする副プログラムを選択する処理を実行する動的リンク解除要求副プログラム選択手段，および前記動的リンク解除要求副プログラム選択手段により選択された副プログラムをアンロードさせて前記動的リンク解除要求副プログラム管理テーブルから該選択された副プログラムの登録を削除する処理を実行する動的リンク解除要求副プログラムアンロード手段として該コンピュータを動作させる。
【００２４】
また、本発明のプログラムは、動的リンクされている副プログラムを管理する副プログラム管理テーブルと，動的リンク解除要求されたがアンロードされていない副プログラムを管理する動的リンク解除要求副プログラム管理テーブルとをコンピュータが有する記憶手段に格納するとともに、
副プログラムが動的リンク解除要求されたときに該副プログラムをアンロードさせずに前記動的リンク解除要求副プログラム管理テーブルに登録する処理を実行する動的リンク解除要求副プログラム登録手段，副プログラムが動的リンク要求されたときに該副プログラムが前記動的リンク解除要求副プログラム管理テーブルに登録されているか否かをチェックする処理を実行する動的リンク解除要求副プログラム検索手段，前記動的リンク解除要求副プログラム検索手段により該副プログラムが前記動的リンク解除要求副プログラム管理テーブルに登録されていることが検索されたときに前記動的リンク解除要求副プログラム管理テーブルから該副プログラムの登録を削除する処理を実行する動的リンク解除要求副プログラム削除手段，前記動的リンク解除要求副プログラム検索手段により該副プログラムが前記動的リンク解除要求副プログラム管理テーブルに登録されていないことが検索されたときに該副プログラムをロードする領域等の資源が不足する場合には前記動的リンク解除要求副プログラム管理テーブルからアンロードする副プログラムを選択する処理を実行する動的リンク解除要求副プログラム選択手段，および前記動的リンク解除要求副プログラム選択手段により選択された副プログラムをアンロードさせて前記動的リンク解除要求副プログラム管理テーブルから該選択された副プログラムの登録を削除する処理を実行する動的リンク解除要求副プログラムアンロード手段として該コンピュータを動作させる。
【００２５】
また、本発明のプログラムは、前記副プログラム管理テーブルが、副プログラム名および動的リンク解除要求副プログラム管理テーブルアドレスを含むエントリを複数格納することを特徴とする。
【００２６】
さらに、本発明のプログラムは、前記動的リンク解除要求副プログラム管理テーブルが、副プログラム管理テーブルアドレスおよび動的リンク解除要求副プログラム管理テーブルチェーンからなるエントリを複数格納することを特徴とする。
【００２７】
このような構成により、本発明の副プログラムの動的リンク要求／動的リンク解除要求処理方式では、動的リンク解除要求された副プログラムのアンロードを遅延するように動作する。
【００２８】
また、本発明の副プログラムの動的リンク要求／動的リンク解除要求処理方式では、副プログラムをロードする領域等の資源が不足した際にのみ、動的リンク解除要求された副プログラムをアンロードさせるように動作する。
【００２９】
さらに、本発明の副プログラムの動的リンク要求／動的リンク解除要求処理方式では、動的リンク解除要求された副プログラムのアンロードを遅延するように動作するとともに、副プログラムをロードする領域等の資源が不足した際にのみ、動的リンク解除要求された副プログラムをアンロードさせるように動作する。
【００３０】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００３１】
［第１の実施の形態］
図１を参照すると、本発明の第１の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式は、主プログラム１３２に動的リンクされている副プログラム１３３を管理する副プログラム管理テーブル１０１と、動的リンク解除要求されたがアンロードされていない副プログラム１３３を管理する動的リンク解除要求副プログラム管理テーブル１０２と、動的リンク解除要求された副プログラム１３３をアンロードさせずに動的リンク解除要求副プログラム管理テーブル１０２に登録する動的リンク解除要求副プログラム登録手段１１１と、副プログラム管理テーブル１０１に登録されている副プログラム１３３が動的リンク要求された場合に動的リンク解除要求副プログラム管理テーブル１０２に該副プログラム１３３が登録されているか否かをチェックする動的リンク解除要求副プログラム検索手段１１２と、副プログラム管理テーブル１０１に登録されている副プログラム１３３が動的リンク要求された場合に動的リンク解除要求副プログラム管理テーブル１０２から該副プログラム１３３の登録を削除する動的リンク解除要求副プログラム削除手段１１３とから構成されている。なお、動的リンク解除要求副プログラム登録手段１１１，動的リンク解除要求副プログラム検索手段１１２，および動的リンク解除要求副プログラム削除手段１１３は、動的リンカ１３１に含まれている。
【００３２】
副プログラム管理テーブル１０１は、副プログラム名１２１および動的リンク解除要求副プログラム管理テーブルアドレス１２２を含むエントリを複数格納する。
【００３３】
動的リンク解除要求副プログラム管理テーブル１０２は、副プログラム管理テーブルアドレス１２３および動的リンク解除要求副プログラム管理テーブルチェーン１２４からなるエントリを複数格納する。
【００３４】
図２を参照すると、動的リンク要求時の動的リンカ１３１の処理は、副プログラム管理テーブル検索ステップＳ２０１と、動的リンク解除要求副プログラム管理テーブルアドレスＮＵＬＬ（特定値）判定ステップＳ２０２と、動的リンク解除要求副プログラム管理テーブル空きエントリ取得ステップＳ２０３と、動的リンク解除要求副プログラム管理テーブルアドレス設定ステップＳ２０４と、副プログラム管理テーブルアドレス設定ステップＳ２０５と、動的リンク解除要求副プログラム管理テーブルチェーン設定ステップＳ２０６とからなる。
【００３５】
図３を参照すると、動的リンク解除要求時の動的リンカ１３１の処理は、副プログラム管理テーブル検索ステップＳ３０１と、動的リンク解除要求副プログラム管理テーブルアドレスＮＵＬＬ判定ステップＳ３０２と、動的リンク解除要求副プログラム管理テーブルエントリ削除ステップＳ３０３と、動的リンク解除要求副プログラム管理テーブルチェーン設定ステップＳ３０４と、動的リンク解除要求副プログラム管理テーブルアドレスＮＵＬＬ設定ステップＳ３０５とからなる。
【００３６】
次に、このように構成された第１の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式の動作について、図１，図２および図３を参照して詳細に説明する。
【００３７】
まず、副プログラム１３３の動的リンクを解除する際に、主プログラム１３２が該副プログラム１３３のプログラム名を指定する動的リンク解除要求を動的リンカ１３１に出すと、動的リンカ１３１では、動的リンク解除要求副プログラム登録手段１１１が、該副プログラム１３３のプログラム名と同じ副プログラム名１２１を持つ副プログラム管理テーブル１０１のエントリを先頭からサーチする（ステップＳ２０１）。
【００３８】
副プログラム管理テーブル１０１の該エントリが見つらなかった場合は、動的リンク解除要求副プログラム登録手段１１１は、処理を終了する。
【００３９】
副プログラム管理テーブル１０１の該エントリが見つかった場合は、動的リンク解除要求副プログラム登録手段１１１は、該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２がＮＵＬＬ（特定値）か否かをチェックする（ステップＳ２０２）。
【００４０】
副プログラム管理テーブル１０１の該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２がＮＵＬＬでない場合は、動的リンク解除要求副プログラム登録手段１１１は、処理を終了する。
【００４１】
副プログラム管理テーブル１０１の該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２がＮＵＬＬである場合は、動的リンク解除要求副プログラム登録手段１１１は、動的リンク解除要求副プログラム管理テーブル１０２を先頭からサーチして、空きエントリを取得する（ステップＳ２０３）。
【００４２】
次に、動的リンク解除要求副プログラム登録手段１１１は、動的リンク解除要求副プログラム管理テーブル１０２の該エントリのアドレスを、副プログラム管理テーブル１０１の前記エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２に設定する（ステップＳ２０４）。
【００４３】
続いて、動的リンク解除要求副プログラム登録手段１１１は、副プログラム管理テーブル１０１の前記エントリのアドレスを、動的リンク解除要求副プログラム管理テーブル１０２の該エントリの副プログラム管理テーブルアドレス１２３に設定する（ステップＳ２０５）。
【００４４】
最後に、動的リンク解除要求副プログラム登録手段１１１は、動的リンク解除要求副プログラム管理テーブル１０２の動的リンク解除要求副プログラム管理テーブルチェーン１２４を設定する（ステップＳ２０６）。
【００４５】
一方、副プログラム１３３を動的リンクする際に、主プログラム１３２が該副プログラム１３３のプログラム名を指定する動的リンク要求を動的リンカ１３１に出すと、動的リンカ１３１では、動的リンク解除要求副プログラム検索手段１１２が、該副プログラム１３３のプログラム名と同じ副プログラム名１２１を持つ副プログラム管理テーブル１０１のエントリを先頭からサーチする（ステップＳ３０１）。
【００４６】
副プログラム管理テーブル１０１の該エントリが見つらなかった場合は、動的リンク解除要求副プログラム検索手段１１２は、処理を終了する。
【００４７】
副プログラム管理テーブル１０１の該エントリが見つかった場合は、動的リンク解除要求副プログラム検索手段１１２は、該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２がＮＵＬＬであるか否かをチェックする（ステップＳ３０２）。
【００４８】
副プログラム管理テーブル１０１の該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２がＮＵＬＬである場合は、動的リンク解除要求副プログラム検索手段１１２は、処理を終了する。
【００４９】
副プログラム管理テーブル１０１の該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２がＮＵＬＬでなかった場合は、動的リンク解除要求副プログラム削除手段１１３は、副プログラム管理テーブル１０１の該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２が示す動的リンク解除要求副プログラム管理テーブル１０２のエントリを削除する（ステップＳ３０３）。
【００５０】
次に、動的リンク解除要求副プログラム削除手段１１３は、動的リンク解除要求副プログラム管理テーブル１０２の動的リンク解除要求副プログラム管理テーブルチェーン１２４を設定する（ステップＳ３０４）。
【００５１】
最後に、動的リンク解除要求副プログラム削除手段１１３は、副プログラム管理テーブル１０１の該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２にＮＵＬＬを設定する（ステップＳ３０５）。
【００５２】
次に、第１の実施の形態の効果について説明する。
【００５３】
第１の実施の形態では、主プログラム１３２に動的リンクされている副プログラム１３３を管理する副プログラム管理テーブル１０１と、動的リンク解除要求されたがアンロードされていない副プログラム１３３を管理する動的リンク解除要求副プログラム管理テーブル１０２と、動的リンク解除要求された副プログラム１３３をアンロードさせずに動的リンク解除要求副プログラム管理テーブル１０２に登録する動的リンク解除要求副プログラム登録手段１１１と、副プログラム管理テーブル１０１に登録されている副プログラム１３３が動的リンク要求された場合に動的リンク解除要求副プログラム管理テーブル１０２に該副プログラム１３３が登録されているか否かをチェックする動的リンク解除要求副プログラム検索手段１１２と、副プログラム管理テーブル１０１に登録されている副プログラム１３３が動的リンク要求された場合に動的リンク解除要求副プログラム管理テーブル１０２から該副プログラム１３３の登録を削除する動的リンク解除要求副プログラム削除手段１１３とを設けたことにより、動的リンク解除要求された副プログラム１３３のアンロードを遅延でき、同一の副プログラム１３３に対して動的リンク要求と動的リンク解除要求とが繰り返し出される場合に、副プログラム１３３のアンロードおよび再ロードの負荷を軽減することができる。
【００５４】
［第２の実施の形態］
図４を参照すると、本発明の第２の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式は、主プログラム１３２に動的リンクされている副プログラム１３３を管理する副プログラム管理テーブル１０１と、動的リンク解除要求されたがアンロードされていない副プログラム１３３を管理する動的リンク解除要求副プログラム管理テーブル１０２と、動的リンク解除要求された副プログラム１３３をアンロードさせずに動的リンク解除要求副プログラム管理テーブル１０２に登録する動的リンク解除要求副プログラム登録手段１１１と、副プログラム１３３を動的リンクする際に副プログラム１３３をロードする領域等の資源が不足する場合に動的リンク解除要求副プログラム管理テーブル１０２からアンロードする副プログラム１３３を選択する動的リンク解除要求副プログラム選択手段１１４と、選択された副プログラム１３３の登録を動的リンク解除要求副プログラム管理テーブル１０２から削除して該副プログラム１３３をアンロードさせる動的リンク解除要求副プログラムアンロード手段１１５とから構成されている。なお、動的リンク解除要求副プログラム登録手段１１１，動的リンク解除要求副プログラム選択手段１１４，および動的リンク解除要求副プログラムアンロード手段１１５は、動的リンカ１３１に含まれている。
【００５５】
図５を参照すると、動的リンク解除要求時の動的リンカ１３１の処理は、副プログラム管理テーブル検索ステップＳ５０１と、動的リンク解除要求副プログラム管理テーブルアドレスＮＵＬＬ判定ステップＳ５０２と、動的リンク解除要求副プログラム管理テーブル空きエントリ取得ステップＳ５０３と、動的リンク解除要求副プログラム管理テーブルアドレス設定ステップＳ５０４と、副プログラム管理テーブルアドレス設定ステップＳ５０５と、動的リンク解除要求副プログラム管理テーブルチェーン設定ステップＳ５０６とからなる。
【００５６】
図６を参照すると、動的リンク要求時の動的リンカ１３１の処理は、資源不足判定ステップＳ６０１と、動的リンク解除要求副プログラム管理テーブル先頭エントリ取得ステップＳ６０２と、副プログラム管理テーブルエントリ取得ステップＳ６０３と、動的リンク解除要求副プログラム管理テーブルエントリ削除ステップＳ６０４と、動的リンク解除要求副プログラム管理テーブルチェーン設定ステップＳ６０５と、動的リンク解除要求副プログラム管理テーブルアドレスＮＵＬＬ設定ステップＳ６０６とからなる。
【００５７】
次に、このように構成された第２の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式の全体の動作について、図４，図５および図６を参照して詳細に説明する。
【００５８】
まず、副プログラム１３３の動的リンクを解除する際に、主プログラム１３２が該副プログラム１３３のプログラム名を指定する動的リンク解除要求を動的リンカ１３１に出すと、動的リンカ１３１では、動的リンク解除要求副プログラム登録手段１１１が、該副プログラム１３３のプログラム名と同じ副プログラム名１２１を持つ副プログラム管理テーブル１０１のエントリを先頭からサーチする（ステップＳ５０１）。
【００５９】
副プログラム管理テーブル１０１の該エントリが見つらなかった場合は、動的リンク解除要求副プログラム登録手段１１１は、処理を終了する。
【００６０】
副プログラム管理テーブル１０１の該エントリが見つかった場合は、動的リンク解除要求副プログラム登録手段１１１は、該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２がＮＵＬＬか否かをチェックする（ステップＳ５０２）。
【００６１】
副プログラム管理テーブル１０１の該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２がＮＵＬＬでない場合は、動的リンク解除要求副プログラム登録手段１１１は、処理を終了する。
【００６２】
副プログラム管理テーブル１０１の該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２がＮＵＬＬである場合は、動的リンク解除要求副プログラム登録手段１１１は、動的リンク解除要求副プログラム管理テーブル１０２を先頭からサーチして、空きエントリを取得する（ステップＳ５０３）。
【００６３】
次に、動的リンク解除要求副プログラム登録手段１１１は、動的リンク解除要求副プログラム管理テーブル１０２の該エントリのアドレスを、副プログラム管理テーブル１０１の前記エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２に設定する（ステップＳ５０４）。
【００６４】
続いて、動的リンク解除要求副プログラム登録手段１１１は、副プログラム管理テーブル１０１の前記エントリのアドレスを、動的リンク解除要求副プログラム管理テーブル１０２の該エントリの副プログラム管理テーブルアドレス１２３に設定する（ステップＳ５０５）。
【００６５】
最後に、動的リンク解除要求副プログラム登録手段１１１は、動的リンク解除要求副プログラム管理テーブル１０２の動的リンク解除要求副プログラム管理テーブルチェーン１２４を設定する（ステップＳ５０６）。
【００６６】
一方、副プログラム１３３を動的リンクする際に、主プログラム１３２が副プログラム１３３のプログラム名を指定する動的リンク要求を動的リンカ１３１に出すと、動的リンカ１３１は、該副プログラム１３３をロードする領域等の資源が不足するかどうかを判断する（ステップＳ６０１）。
【００６７】
該副プログラム１３３をロードする領域等の資源が不足しなければ、動的リンカ１３１は、従来からの図示しない手段により、該副プログラム１３３をロードし、副プログラム管理テーブル１０１の新たなエントリに副プログラム名１２１等を登録する。なお、このとき、動的リンク解除要求副プログラム管理テーブルアドレス１２２はＮＵＬＬとする。
【００６８】
該副プログラム１３３をロードする領域等の資源が不足する場合には、動的リンク解除要求副プログラム選択手段１１４は、動的リンク解除要求副プログラム管理テーブル１０２の動的リンク解除要求副プログラム管理テーブルチェーン１２４の先頭エントリを取得する（ステップＳ６０２）。
【００６９】
続いて、動的リンク解除要求副プログラム選択手段１１４は、該エントリの副プログラム管理テーブルアドレス１２３が示す副プログラム管理テーブル１０１のエントリを取得する（ステップＳ６０３）。
【００７０】
次に、動的リンカ１３１は、従来からの図示しない手段により、取得された副プログラム管理テーブル１０１のエントリに登録された副プログラム１３３をアンロードさせ、副プログラム１３３のアンロードに伴い、動的リンク解除要求副プログラムアンロード手段１１５は、副プログラム管理テーブル１０１の該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２が示す動的リンク解除要求副プログラム管理テーブル１０２のエントリを削除する（ステップＳ６０４）。
【００７１】
続いて、動的リンク解除要求副プログラムアンロード手段１１５は、動的リンク解除要求副プログラム管理テーブル１０２の動的リンク解除要求副プログラム管理テーブルチェーン１２４を設定する（ステップＳ６０５）。
【００７２】
最後に、動的リンク解除要求副プログラムアンロード手段１１５は、副プログラム管理テーブル１０１の前記エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２にＮＵＬＬを設定する（ステップＳ６０６）。
【００７３】
次に、第２の実施の形態の効果について説明する。
【００７４】
第２の実施の形態では、主プログラム１３２に動的リンクされている副プログラム１３３を管理する副プログラム管理テーブル１０１と、動的リンク解除要求されたがアンロードされていない副プログラム１３３を管理する動的リンク解除要求副プログラム管理テーブル１０２と、動的リンク解除要求されたがアンロードされていない副プログラム１３３を動的リンク解除要求副プログラム管理テーブル１０２に登録する動的リンク解除要求副プログラム登録手段１１１と、主プログラム１３２が副プログラム１３３の動的リンク要求を動的リンカ１３１に出した際に副プログラム１３３をロードする領域等の資源が不足する場合にアンロードする副プログラム１３３を動的リンク解除要求副プログラム管理テーブル１０２から選択する動的リンク解除要求副プログラム選択手段１１４と、選択された副プログラムをアンロードさせるとともに該副プログラムの登録を動的リンク解除要求副プログラム管理テーブル１０２から登録を削除する動的リンク解除要求副プログラムアンロード手段１１５とを設けたことにより、副プログラム１３３をロードする領域等の資源が不足した際にのみ、動的リンクされた副プログラム１３３をアンロードでき、アンロードの不要な実行を抑止することができる。
【００７５】
［第３の実施の形態］
図７を参照すると、本発明の第３の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式は、主プログラム１３２に動的リンクされている副プログラム１３３を管理する副プログラム管理テーブル１０１と、動的リンク解除要求されたがアンロードされていない副プログラム１３３を管理する動的リンク解除要求副プログラム管理テーブル１０２と、動的リンク解除要求された副プログラム１３３をアンロードさせずに動的リンク解除要求副プログラム管理テーブル１０２に登録する動的リンク解除要求副プログラム登録手段１１１と、副プログラム管理テーブル１０１に登録されている副プログラム１３３が動的リンク要求された場合に動的リンク解除要求副プログラム管理テーブル１０２に該副プログラム１３３が登録されているか否かをチェックする動的リンク解除要求副プログラム検索手段１１２と、副プログラム管理テーブル１０１に登録されている副プログラム１３３が動的リンク要求された場合に動的リンク解除要求副プログラム管理テーブル１０２から該副プログラム１３３の登録を削除する動的リンク解除要求副プログラム削除手段１１３と、副プログラム１３３を動的リンクする際に副プログラム１３３をロードする領域等の資源が不足する場合に動的リンク解除要求副プログラム管理テーブル１０２からアンロードする副プログラム１３３を選択する動的リンク解除要求副プログラム選択手段１１４と、選択された副プログラム１３３の登録を動的リンク解除要求副プログラム管理テーブル１０２から削除して該副プログラム１３３をアンロードさせる動的リンク解除要求副プログラムアンロード手段１１５とから構成されている。なお、動的リンク解除要求副プログラム登録手段１１１，動的リンク解除要求副プログラム検索手段１１２，動的リンク解除要求副プログラム削除手段１１３，動的リンク解除要求副プログラム選択手段１１４，および動的リンク解除要求副プログラムアンロード手段１１５は、動的リンカ１３１に含まれている。
【００７６】
図８を参照すると、動的リンク解除要求時の動的リンカ１３１の処理は、副プログラム管理テーブル検索ステップＳ８０１と、動的リンク解除要求副プログラム管理テーブルアドレスＮＵＬＬ判定ステップＳ８０２と、動的リンク解除要求副プログラム管理テーブル空きエントリ取得ステップＳ８０３と、動的リンク解除要求副プログラム管理テーブルアドレス設定ステップＳ８０４と、副プログラム管理テーブルアドレス設定ステップＳ８０５と、動的リンク解除要求副プログラム管理テーブルチェーン設定ステップＳ８０６とからなる。
【００７７】
図９を参照すると、動的リンカ１３１の動的リンク要求時の処理は、副プログラム管理テーブル検索ステップＳ９０１と、動的リンク解除要求副プログラム管理テーブルアドレスＮＵＬＬ判定ステップＳ９０２と、動的リンク解除要求副プログラム管理テーブルエントリ削除ステップＳ９０３と、動的リンク解除要求副プログラム管理テーブルチェーン設定ステップＳ９０４と、動的リンク解除要求副プログラム管理テーブルアドレスＮＵＬＬ設定ステップＳ９０５と、資源不足判定ステップＳ９０６と、動的リンク解除要求副プログラム管理テーブル先頭エントリ取得ステップＳ９０７と、副プログラム管理テーブルエントリ取得ステップＳ９０８と、動的リンク解除要求副プログラム管理テーブルエントリ削除ステップＳ９０９と、動的リンク解除要求副プログラム管理テーブルチェーン設定ステップＳ９１０と、動的リンク解除要求副プログラム管理テーブルアドレスＮＵＬＬ設定ステップＳ９１１とからなる。
【００７８】
次に、このように構成された第３の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式の全体の動作について、図７，図８および図９を参照して詳細に説明する。
【００７９】
まず、副プログラム１３３の動的リンクを解除する際に、主プログラム１３２が該副プログラム１３３のプログラム名を指定する動的リンク解除要求を動的リンカ１３１に出すと、動的リンカ１３１では、動的リンク解除要求副プログラム登録手段１１１が、該副プログラム１３３のプログラム名と同じ副プログラム名１２１を持つ副プログラム管理テーブル１０１のエントリを先頭からサーチする（ステップＳ８０１）。
【００８０】
副プログラム管理テーブル１０１の該エントリが見つらなかった場合は、動的リンク解除要求副プログラム登録手段１１１は、処理を終了する。
【００８１】
副プログラム管理テーブル１０１の該エントリが見つかった場合は、動的リンク解除要求副プログラム登録手段１１１は、該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２がＮＵＬＬか否かをチェックする（ステップＳ８０２）。
【００８２】
副プログラム管理テーブル１０１の該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２がＮＵＬＬでない場合は、動的リンク解除要求副プログラム登録手段１１１は、処理を終了する。
【００８３】
副プログラム管理テーブル１０１の該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２がＮＵＬＬである場合は、動的リンク解除要求副プログラム登録手段１１１は、動的リンク解除要求副プログラム管理テーブル１０２を先頭からサーチして、空きエントリを取得する（ステップＳ８０３）。
【００８４】
次に、動的リンク解除要求副プログラム登録手段１１１は、動的リンク解除要求副プログラム管理テーブル１０２の該エントリのアドレスを、副プログラム管理テーブル１０１の前記エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２に設定する（ステップＳ８０４）。
【００８５】
続いて、動的リンク解除要求副プログラム登録手段１１１は、副プログラム管理テーブル１０１の前記エントリのアドレスを、動的リンク解除要求副プログラム管理テーブル１０２の該エントリの副プログラム管理テーブルアドレス１２３に設定する（ステップＳ８０５）。
【００８６】
最後に、動的リンク解除要求副プログラム登録手段１１１は、動的リンク解除要求副プログラム管理テーブル１０２の動的リンク解除要求副プログラム管理テーブルチェーン１２４を設定する（ステップＳ８０６）。
【００８７】
一方、副プログラム１３３を動的リンクする際に、主プログラム１３２が副プログラム１３３のプログラム名を指定する動的リンク要求を動的リンカ１３１に出すと、動的リンカ１３１では、動的リンク解除要求副プログラム検索手段１１２が、該副プログラム１３３のプログラム名と同じ副プログラム名１２１を持つ副プログラム管理テーブル１０１のエントリを先頭からサーチする（ステップＳ９０１）。
【００８８】
副プログラム管理テーブル１０１の該エントリが見つかった場合は、動的リンク解除要求副プログラム検索手段１１２は、該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２がＮＵＬＬであるか否かをチェックする（ステップＳ９０２）。
【００８９】
副プログラム管理テーブル１０１の該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２がＮＵＬＬである場合は、動的リンク解除要求副プログラム検索手段１１２は、処理を終了する。
【００９０】
副プログラム管理テーブル１０１の該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２がＮＵＬＬでなかった場合は、動的リンク解除要求副プログラム削除手段１１３は、副プログラム管理テーブル１０１の該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２が示す動的リンク解除要求副プログラム管理テーブル１０２のエントリを削除する（ステップＳ９０３）。
【００９１】
次に、動的リンク解除要求副プログラム削除手段１１３は、動的リンク解除要求副プログラム管理テーブル１０２の動的リンク解除要求副プログラム管理テーブルチェーン１２４を設定する（ステップＳ９０４）。
【００９２】
最後に、動的リンク解除要求副プログラム削除手段１１３は、副プログラム管理テーブル１０１の該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２にＮＵＬＬを設定する（ステップＳ９０５）。
【００９３】
ステップＳ９０１で同じ副プログラム名１２１を持つ副プログラム管理テーブル１０１のエントリがなければ、動的リンク解除要求副プログラム選択手段１１４は、該副プログラム１３３をロードする領域等の資源が不足するかどうかを判断する（ステップＳ９０６）。
【００９４】
該副プログラム１３３をロードする領域等の資源が不足しなければ、動的リンカ１３１は、従来からの図示しない手段により、該副プログラム１３３をロードし、副プログラム管理テーブル１０１の新たなエントリに副プログラム名１２１等を登録する。なお、このとき、動的リンク解除要求副プログラム管理テーブルアドレス１２２はＮＵＬＬとする。
【００９５】
該副プログラム１３３をロードする領域等の資源が不足する場合には、動的リンク解除要求副プログラム選択手段１１４は、動的リンク解除要求副プログラム管理テーブル１０２の動的リンク解除要求副プログラム管理テーブルチェーン１２４の先頭エントリを取得する（ステップＳ９０７）。
【００９６】
続いて、動的リンク解除要求副プログラム選択手段１１４は、該エントリの副プログラム管理テーブルアドレス１２３が示す副プログラム管理テーブル１０１のエントリを取得する（ステップＳ９０８）。
【００９７】
次に、動的リンカ１３１は、従来からの図示しない手段により、取得された副プログラム管理テーブル１０１のエントリに登録された副プログラム１３３をアンロードさせ、副プログラム１３３のアンロードに伴い、動的リンク解除要求副プログラムアンロード手段１１５は、副プログラム管理テーブル１０１の該エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２が示す動的リンク解除要求副プログラム管理テーブル１０２のエントリを削除する（ステップＳ９０９）。
【００９８】
続いて、動的リンク解除要求副プログラムアンロード手段１１５は、動的リンク解除要求副プログラム管理テーブル１０２の動的リンク解除要求副プログラム管理テーブルチェーン１２４を設定する（ステップＳ９１０）。
【００９９】
最後に、動的リンク解除要求副プログラムアンロード手段１１５は、副プログラム管理テーブル１０１の前記エントリの動的リンク解除要求副プログラム管理テーブルアドレス１２２にＮＵＬＬを設定する（ステップＳ９１１）。
【０１００】
次に、第３の実施の形態の効果について説明する。
【０１０１】
第２の実施の形態では、主プログラム１３２に動的リンクされている副プログラム１３３を管理する副プログラム管理テーブル１０１と、動的リンク解除要求されたがアンロードされていない副プログラム１３３を管理する動的リンク解除要求副プログラム管理テーブル１０２と、動的リンク解除要求されたがアンロードされていない副プログラム１３３を動的リンク解除要求副プログラム管理テーブル１０２に登録する動的リンク解除要求副プログラム登録手段１１１と、副プログラム管理テーブル１０１に登録されている副プログラム１３３が動的リンク要求された場合に動的リンク解除要求副プログラム管理テーブル１０２に該副プログラム１３３が登録されているか否かをチェックする動的リンク解除要求副プログラム検索手段１１２と、副プログラム管理テーブル１０１に登録されている副プログラム１３３が動的リンク要求された場合に動的リンク解除要求副プログラム管理テーブル１０２から該副プログラム１３３の登録を削除する動的リンク解除要求副プログラム削除手段１１３と、主プログラム１３２が副プログラム１３３の動的リンク要求を動的リンカ１３１に出した際に副プログラム１３３をロードする領域等の資源が不足する場合にアンロードする副プログラム１３３を動的リンク解除要求副プログラム管理テーブル１０２から選択する動的リンク解除要求副プログラム選択手段１１４と、選択された副プログラムをアンロードさせるとともに該副プログラムの登録を動的リンク解除要求副プログラム管理テーブル１０２から登録を削除する動的リンク解除要求副プログラムアンロード手段１１５とを設けたことにより、動的リンク解除要求された副プログラム１３３のアンロードを遅延でき、同一の副プログラム１３３に対して動的リンク要求と動的リンク解除要求とが繰り返し出される場合に、副プログラム１３３のアンロードおよび再ロードの負荷を軽減することができるとともに、副プログラム１３３をロードする領域等の資源が不足した際にのみ、動的リンクされた副プログラム１３３をアンロードでき、アンロードの不要な実行を抑止することができる。
【０１０２】
［第４の実施の形態］
図１０は、本発明の第４の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式の構成を示すブロック図である。本実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式は、図１に示した第１の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式における動的リンカ１３１に対して、動的リンカプログラム７００を備える点だけが異なっている。
【０１０３】
動的リンカプログラム７００は、図示しないコンピュータに読み込まれ、同コンピュータの動作を、第１の実施の形態における動的リンク解除要求副プログラム登録手段１１１，動的リンク解除要求副プログラム検索手段１１２，および動的リンク解除要求副プログラム削除手段１１３を含む動的リンカ１３１の動作と全く同様に制御する。よって、第４の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式の詳しい動作の説明は割愛する。
【０１０４】
［第５の実施の形態］
図１１は、本発明の第５の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式の構成を示すブロック図である。本実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式は、図４に示した第２の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式における動的リンカ１３１に対して、動的リンカプログラム８００を備える点だけが異なっている。
【０１０５】
動的リンカプログラム８００は、図示しないコンピュータに読み込まれ、同コンピュータの動作を、第２の実施の形態における動的リンク解除要求副プログラム登録手段１１１，動的リンク解除要求副プログラム検索手段１１２，動的リンク解除要求副プログラム削除手段１１３，動的リンク解除要求副プログラム選択手段１１４，および動的リンク解除要求副プログラムアンロード手段１１５を含む動的リンカ１３１の動作と全く同様に制御する。よって、第５の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式の詳しい動作の説明は割愛する。
【０１０６】
［第６の実施の形態］
図１２は、本発明の第６の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式の構成を示すブロック図である。本実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式は、図７に示した第３の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式における動的リンカ１３１に対して、動的リンカプログラム９００を備える点だけが異なっている。
【０１０７】
動的リンカプログラム９００は、図示しないコンピュータに読み込まれ、同コンピュータの動作を、第３の実施の形態における動的リンク解除要求副プログラム登録手段１１１，動的リンク解除要求副プログラム検索手段１１２，動的リンク解除要求副プログラム削除手段１１３，動的リンク解除要求副プログラム選択手段１１４，および動的リンク解除要求副プログラムアンロード手段１１５を含む動的リンカ１３１の動作と全く同様に制御する。よって、第６の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式の詳しい動作の説明は割愛する。
【０１０８】
【発明の効果】
第１の効果は、動的リンク構造プログラムの作成の際に、副プログラムの動的リンク要求および動的リンク解除要求が頻繁に行われることによりプログラムの処理性能が劣化しないように考慮することなく、副プログラムの動的リンク要求および動的リンク解除要求を行うことができることである。その理由は、動的リンクされた副プログラムの動的リンク解除要求が行われた時点で、該副プログラムがアンロード可能であっても、該副プログラムのアンロードが遅延され、同一の副プログラムに対して動的リンク要求と動的リンク解除要求とが繰り返し出される場合に、副プログラムのアンロードおよび再ロードの負荷を軽減することができるためである。
【０１０９】
第２の効果は、動的リンク構造プログラム作成の際に、副プログラムの動的リンク解除要求によりプログラムの処理性能が劣化しないように考慮することなく、副プログラムの動的リンク解除要求を行うことができることである。その理由は、動的リンクされた副プログラムの動的リンク解除要求が行われた時点で、副プログラムをロードする領域等の資源に余裕があれば、該副プログラムがアンロード可能であっても、該副プログラムのアンロードが遅延され、アンロードの不要な実行が抑止されるからである。
【０１１０】
第３の効果は、動的リンク構造プログラムの作成の際に、副プログラムの動的リンク要求および動的リンク解除要求が頻繁に行われることによりプログラムの処理性能が劣化しないように考慮することなく、副プログラムの動的リンク要求および動的リンク解除要求を行うことができることである。その理由は、動的リンクされた副プログラムの動的リンク解除要求が行われた時点で、該副プログラムがアンロード可能であっても、該副プログラムのアンロードが遅延され、同一の副プログラムに対して動的リンク要求と動的リンク解除要求とが繰り返し出される場合に、副プログラムのアンロードおよび再ロードの負荷を軽減することができるとともに、アンロードの不要な実行が抑止されるからである。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式の構成を示すブロック図である。
【図２】第１の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式における動的リンク解除要求時の処理を示すフローチャートである。
【図３】第１の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式における動的リンク要求時の処理を示すフローチャートである。
【図４】本発明の第２の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式の構成を示すブロック図である。
【図５】第２の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式における動的リンク解除要求時の処理を示すフローチャートである。
【図６】第２の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式における動的リンク要求時の処理を示すフローチャートである。
【図７】本発明の第３の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式の構成を示すブロック図である。
【図８】第３の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式における動的リンク解除要求時の処理を示すフローチャートである。
【図９】第３の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式における動的リンク要求時の処理を示すフローチャートである。
【図１０】本発明の第４の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式の構成を示すブロック図である。
【図１１】本発明の第５の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式の構成を示すブロック図である。
【図１２】本発明の第６の実施の形態に係る副プログラムの動的リンク要求／動的リンク解除要求処理方式の構成を示すブロック図である。
【符号の説明】
１０１  副プログラム管理テーブル
１０２  動的リンク解除要求副プログラム管理テーブル
１１１  動的リンク解除要求副プログラム登録手段
１１２  動的リンク解除要求副プログラム検索手段
１１３  動的リンク解除要求副プログラム削除手段
１１４  動的リンク解除要求副プログラム選択手段
１１５  動的リンク解除要求副プログラムアンロード手段
１２１  副プログラム名
１２２  動的リンク解除要求副プログラム管理テーブルアドレス
１２３  副プログラム管理テーブルアドレス
１２４  動的リンク解除要求副プログラム管理テーブルチェーン
１３１  動的リンカ
１３２  主プログラム
１３３  副プログラム
７００，８００，９００  動的リンカプログラム
Ｓ２０１，Ｓ５０１，Ｓ８０１  副プログラム管理テーブル検索ステップ
Ｓ２０２，Ｓ５０２，Ｓ８０２  動的リンク解除要求副プログラム管理テーブルアドレスＮＵＬＬ判定ステップ
Ｓ２０３，Ｓ５０３，Ｓ８０３  動的リンク解除要求副プログラム管理テーブル空きエントリ取得ステップ
Ｓ２０４，Ｓ５０４，Ｓ８０４  動的リンク解除要求副プログラム管理テーブルアドレス設定ステップ
Ｓ２０５，Ｓ５０５，Ｓ８０５  副プログラム管理テーブルアドレス設定ステップ
Ｓ２０６，Ｓ５０６，Ｓ８０６  動的リンク解除要求副プログラム管理テーブルチェーン設定ステップ
Ｓ３０１，Ｓ９０１  副プログラム管理テーブル検索ステップ
Ｓ３０２，Ｓ９０２  動的リンク解除要求副プログラム管理テーブルアドレスＮＵＬＬ判定ステップ
Ｓ３０３，Ｓ９０３  動的リンク解除要求副プログラム管理テーブルエントリ削除ステップ
Ｓ３０４，Ｓ９０４  動的リンク解除要求副プログラム管理テーブルチェーン設定ステップ
Ｓ３０５，Ｓ９０５  動的リンク解除要求副プログラム管理テーブルアドレスＮＵＬＬ設定ステップ
Ｓ６０１，Ｓ９０６  資源不足判定ステップ
Ｓ６０２，Ｓ９０７  動的リンク解除要求副プログラム管理テーブル先頭エントリ取得ステップ
Ｓ６０３，Ｓ９０８  副プログラム管理テーブルエントリ取得ステップ
Ｓ６０４，Ｓ９０９  動的リンク解除要求副プログラム管理テーブルエントリ削除ステップ
Ｓ６０５，Ｓ９１０  動的リンク解除要求副プログラム管理テーブルチェーン設定ステップ
Ｓ６０６，Ｓ９１１  動的リンク解除要求副プログラム管理テーブルアドレスＮＵＬＬ設定ステップ
【図１】
0003775307.tif 000002
【図２】
0003775307.tif 000003
【図３】
0003775307.tif 000004
【図４】
0003775307.tif 000005
【図５】
0003775307.tif 000006
【図６】
0003775307.tif 000007
【図７】
0003775307.tif 000008
【図８】
0003775307.tif 000009
【図９】
0003775307.tif 000010
【図１０】
0003775307.tif 000011
【図１１】
0003775307.tif 000012
【図１２】
0003775307.tif 000013