(57)【特許請求の範囲】
【請求項１】
ＯＳメモリ管理手段が、アプリケーションプログラムやＯＳの別のサービス手段からの要求に応答して、自管理下のメモリ資源を要求元に割り付ける構成を採るデータ処理装置において、
ＯＳメモリ管理手段の管理下にあるメモリ資源の取得・開放要求が発行されるときに、該取得・開放要求を奪う形式で呼び出され、起動時に、ＯＳメモリ管理手段の管理下にある特定範囲のメモリ資源を獲得するとともに、該特定範囲部分の取得要求に対しては、該特定範囲部分の開放処理を実行してからＯＳメモリ管理手段の該当サービス手段を呼び出し、該特定範囲以外の部分の取得要求に対しては、該特定範囲にＯＳメモリ管理手段の管理下にある未使用部分があるときには、それの獲得処理を実行してからＯＳメモリ管理手段の該当サービス手段を呼び出し、未使用部分がないときには、直ちに該サービス手段を呼び出し、開放要求に対しては、ＯＳメモリ管理手段の該当サービス手段を呼び出すメモリ制御手段を備えることを、
特徴とするデータ処理装置。
【請求項２】
ＯＳメモリ管理手段が、アプリケーションプログラムやＯＳの別のサービス手段からの要求に応答して、自管理下のメモリ資源を要求元に割り付ける構成を採るデータ処理装置において、
ＯＳメモリ管理手段の管理下にあるメモリ資源の取得・開放要求が発行されるときに、該取得・開放要求を奪う形式で呼び出されるメモリ制御手段を備え、
かつ、そのメモリ制御手段が、
起動時に、ＯＳメモリ管理手段の管理下にある特定範囲のメモリ資源を獲得する獲得手段と、
上記要求が上記特定範囲部分の取得を指示するときに、上記特定範囲の該当部分を開放するとともに、上記特定範囲の開放履歴を記録してから、その要求を実行するＯＳメモリ管理手段の該当サービス手段を呼び出す第１の制御手段と、
上記要求が上記特定範囲部分の開放を指示するときに、上記特定範囲の開放履歴を記録してから、その要求を実行するＯＳメモリ管理手段の該当サービス手段を呼び出す第２の制御手段と、
上記要求が上記特定範囲以外の部分の取得を指示するときに、上記開放履歴が記録されているときには、上記特定範囲に含まれるＯＳメモリ管理手段の管理下にある未使用部分を獲得するとともに、該開放履歴をクリアしてから、その要求を実行するＯＳメモリ管理手段の該当サービス手段を呼び出し、記録されていないときには、直ちに該サービス手段を呼び出す第３の制御手段とを備えることを、
特徴とするデータ処理装置。
【請求項３】
請求項１又は２記載のデータ処理装置において、
上記メモリ制御手段は、上記特定範囲以外の部分の取得を指示する取得要求の発行については、特定の取得要求元の発行に限って呼び出されるよう構成されることを、
特徴とするデータ処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ＯＳのメモリ管理手段が、アプリケーションプログラムやＯＳの別のサービス手段からの要求に応答して、自管理下のメモリ資源を要求元に割り付ける構成を採るデータ処理装置に関し、特に、アプリケーションプログラムに対して、プログラムの変更を強いることなく、それが必要とするＯＳ管理下の特定範囲のメモリ資源を確実に割り付けることができるようにするデータ処理装置に関する。
【０００２】
【従来の技術】
データ処理装置では、ＯＳのメモリ管理手段が、アプリケーションプログラムやＯＳの別のサービス手段からの要求に応答して、自管理下のメモリ資源を要求元に割り付ける構成を採っている。
【０００３】
これから、従来のデータ処理装置では、アプリケーションプログラムは、ＯＳ管理下のメモリを取得する必要があるときには、ＯＳのメモリ管理手段に対して、必要とするメモリ資源のアドレスとその大きさとを指定してメモリ取得要求を発行することで、それを取得するという方法を採っている。
【０００４】
しかるに、この方法では、ＯＳ管理下のメモリ資源の使用権利が開放されていることから、アプリケーションプログラムがＯＳ管理下の特定範囲のメモリ資源を取得する必要がある場合に、その特定範囲のメモリ資源が別のプログラムにより取得されてしまうことでそれを取得できないことが起こるという不都合が発生する。
【０００５】
これから、このような場合には、起動時にアプリケーションプログラムの必要とするＯＳ管理下の特定範囲のメモリ資源を取得する常駐ソフトウェアを用意する構成を採って、その常駐ソフトウェアが、アプリケーションプログラムからの取得要求に応答して、その特定範囲のメモリ資源の中から要求のあるメモリ資源をアプリケーションプログラムに割り付けていくという方法を採っている。
【０００６】
【発明が解決しようとする課題】
しかしながら、このような従来技術に従っていると、アプリケーションプログラムを変更しなければならないという問題点があった。すなわち、アプリケーションプログラムは、ＯＳのメモリ管理手段を呼び出すのではなくて、常駐ソフトウェアを呼び出さなくてはならないことから、アプリケーションプログラムの持つＯＳメモリ管理手段の呼び出し部分の記述を変更しなければならないという問題点があった。
【０００７】
そして、アプリケーションプログラムは、その常駐ソフトウェアにより取得されたメモリ資源を使用するときに、ＯＳのファンクションを使用できないという問題点があった。すなわち、ＯＳ管理下のメモリ資源ではないことから、ＯＳのファンクションを使用できないという問題点があった。
【０００８】
本発明はかかる事情に鑑みてなされたものであって、ＯＳのメモリ管理手段が、アプリケーションプログラムやＯＳの別のサービス手段からの要求に応答して、自管理下のメモリ資源を要求元に割り付ける構成を採るときにあって、アプリケーションプログラムに対して、プログラムの変更を強いることなく、それが必要とするＯＳ管理下の特定範囲のメモリ資源を確実に割り付けることができるようにする新たなデータ処理装置の提供を目的とする。
【０００９】
【課題を解決するための手段】
図１に本発明の原理構成を図示する。
図中、１はＯＳの持つＯＳメモリ管理手段、２−ｉ（ｉ＝１〜ｎ）はＯＳの持つＯＳメモリ管理手段１以外のＯＳサービス手段、３はＯＳメモリ管理手段１により管理されるＯＳ管理下メモリ、４はＯＳ管理下メモリ３のメモリ資源の特定範囲、５−ｊ（ｊ＝１〜ｍ）はアプリケーションプログラム、６は本発明を実現すべく用意されるメモリ制御手段である。
【００１０】
このＯＳメモリ管理手段１は、アプリケーションプログラム５−ｊやＯＳサービス手段２−ｉからの要求に応答して、ＯＳ管理下メモリ３のメモリ資源を要求元に割り付けるよう処理するものであって、ＯＳ管理下メモリ３の持つ特定範囲４部分のメモリ資源を取得要求元に割り付ける第１のＯＳメモリサービス手段７と、ＯＳ管理下メモリ３の持つ特定範囲４部分のメモリ資源を開放する第２のＯＳメモリサービス手段８と、原則として、ＯＳ管理下メモリ３の持つ特定範囲４以外のメモリ資源を取得要求元に割り付ける第３のＯＳメモリサービス手段９とを備える。
【００１１】
ここで、この第３のＯＳメモリサービス手段９は、原則として、ＯＳ管理下メモリ３の持つ特定範囲４以外のメモリ資源を取得要求元に割り付けていくことになるが、この割り付け時に、メモリ資源の連続性から、特定範囲４のメモリ資源である必要がないのにもかかわらず、特定範囲４のメモリ資源まで割り付けてしまうことがある。
【００１２】
一方、本発明を実現すべく用意されるメモリ制御手段６は、ＯＳ管理下メモリ３のメモリ資源の取得・開放要求が発行されるときに呼び出されるものであって、起動時に、ＯＳ管理下メモリ３の持つ特定範囲４のメモリ資源を獲得する獲得手段１０と、発行要求が特定範囲４部分の取得指示であるときに、規定の処理を実行してから第１のＯＳメモリサービス手段７を呼び出す第１の制御手段１１と、発行要求が特定範囲４部分の開放指示であるときに、規定の処理を実行してから第２のＯＳメモリサービス手段８を呼び出す第２の制御手段１２と、発行要求が特定範囲４以外の部分の取得指示であるときに、規定の処理を実行してから第３のＯＳメモリサービス手段９を呼び出す第３の制御手段１３とを備える。
【００１３】
【作用】
本発明では、メモリ制御手段６は、起動されると、獲得手段１０に従って、ＯＳ管理下メモリ３の持つ特定範囲４のメモリ資源を獲得する。
【００１４】
そして、アプリケーションプログラム５−ｊが特定範囲４部分のメモリ資源の取得要求を発行すると、第１の制御手段１１に従って、獲得中の特定範囲４の該当部分を開放するとともに、特定範囲４の開放履歴を記録してから、第１のＯＳメモリサービス手段７を呼び出す。このようにして呼び出されると、第１のＯＳメモリサービス手段７は、メモリ制御手段６により開放された特定範囲４部分のメモリ資源を取得要求元のアプリケーションプログラム５−ｊに割り付ける。
【００１５】
一方、アプリケーションプログラム５−ｊが特定範囲４部分のメモリ資源の開放要求を発行すると、第２の制御手段１２に従って、特定範囲４の開放履歴を記録してから、第２のＯＳメモリサービス手段８を呼び出す。このようにして呼び出されると、第２のＯＳメモリサービス手段８は、開放要求元のアプリケーションプログラム５−ｊの使用していた特定範囲４部分のメモリ資源を開放する。
【００１６】
一方、アプリケーションプログラム５-jが特定範囲４以外の部分のメモリ資源の取得要求を発行すると、第３の制御手段１３に従って、特定範囲４の開放履歴が記録されているときには、特定範囲４に含まれるＯＳメモリ管理手段１の管理下にある未使用部分を獲得するとともに、その開放履歴をクリアしてから、第３のＯＳメモリサービス手段９を呼び出し、特定範囲４の開放履歴が記録されていないときには、直ちに第３のＯＳメモリサービス手段９を呼び出す。このようにして呼び出されると、第３のＯＳメモリサービス手段９は、メモリ制御手段６が獲得している特定範囲４の未使用部分については割り付け対象から除いて、それ以外の未使用部分（すなわち、特定範囲４以外の未使用部分）のメモリ資源を取得要求元のアプリケーションプログラム５-jに割り付ける。
【００１７】
このようにして、本発明では、アプリケーションプログラム５−ｊは、ＯＳメモリ管理手段１を呼び出す形式に従いつつ、ＯＳ管理下メモリ３の持つ特定範囲４のメモリ資源を、それを使用する必要のないプログラムの邪魔を受けずに取得できるようになる。これから、アプリケーションプログラム５−ｊは、プログラム記述の変更を強いられることなく、しかも、ＯＳのファンクションの使用が保証された状態で、自分の必要とするＯＳ管理下メモリ３の持つ特定範囲４のメモリ資源を確実に取得できるようになる。
【００１８】
【実施例】
以下、実施例に従って本発明を詳細に説明する。
図２に、本発明の一実施例を図示する。図中、図１で説明したものと同じものについては同一の記号で示してある。
【００１９】
６ａは図１のメモリ制御手段６に相当するメモリ制御常駐ソフトウェアであって、常駐ソフトウェアとして用意されるもの、１４はＯＳメモリ管理手段１に展開されるアプリケーションプログラム５−ｊ用のトラップ領域であって、メモリ制御常駐ソフトウェア６ａを呼び出すためのフックコードの設定領域として用意されるもの、１５−ｉ（ｉ＝１〜ｎ）はＯＳメモリ管理手段１に展開されるＯＳサービス手段２−ｉ用のトラップ領域であって、メモリ制御常駐ソフトウェア６ａを呼び出すためのフックコードの設定領域として用意されるものである。
【００２０】
アプリケーションプログラム５−ｊやＯＳサービス手段２−ｉの発行する本発明に関わるＯＳ管理下メモリ３に対しての要求には、特定範囲４部分のメモリ資源の取得要求と、特定範囲４部分のメモリ資源の開放要求と、特定範囲４以外の部分のメモリ資源の取得要求という３種類がある。但し、アプリケーションプログラム５−ｊは、これらの３種類の要求を発行することになるが、ＯＳサービス手段２−ｉによっては、これらの内の特定のものしか発行しないものもある。
【００２１】
これらのトラップ領域１４，１５−ｉに、特定範囲４部分のメモリ資源の取得要求に対応付けられるフックコードが設定されると、特定範囲４部分のメモリ資源の取得要求が発行されるときに、その取得要求は、特定範囲４部分のメモリ資源の取得要求を実行する第１のＯＳメモリサービス手段７へ飛ばずに、メモリ制御常駐ソフトウェア６ａへ飛んでそれを起動するという働きを行う。
【００２２】
また、これらのトラップ領域１４，１５−ｉに、特定範囲４部分のメモリ資源の開放要求に対応付けられるフックコードが設定されると、特定範囲４部分のメモリ資源の開放要求が発行されるときに、その開放要求は、特定範囲４部分のメモリ資源の開放要求を実行する第２のＯＳメモリサービス手段８へ飛ばずに、メモリ制御常駐ソフトウェア６ａへ飛んでそれを起動するという働きを行う。
【００２３】
また、これらのトラップ領域１４，１５−ｉに、特定範囲４以外の部分のメモリ資源の取得要求に対応付けられるフックコードが設定されると、特定範囲４以外の部分のメモリ資源の取得要求が発行されるときに、その取得要求は、特定範囲４以外の部分のメモリ資源の取得要求を実行する第３のＯＳメモリサービス手段９へ飛ばずに、メモリ制御常駐ソフトウェア６ａへ飛んでそれを起動するという働きを行う。
【００２４】
なお、特定範囲４以外の部分のメモリ資源の取得要求を発行しても、取得要求元は、処理の都合により、メモリ資源を全く使用しないこともある。また、上述したように、特定範囲４以外の部分のメモリ資源の取得要求を実行する第３のＯＳメモリサービス手段９は、特定範囲４のメモリ資源である必要がないのにもかかわらず、特定範囲４のメモリ資源まで割り付けてしまうことがある。
【００２５】
図３に、メモリ制御常駐ソフトウェア６ａが起動時に実行する処理フローの一実施例、図４に、メモリ制御常駐ソフトウェア６ａが特定範囲４部分のメモリ資源の取得要求の発行時に実行する処理フローの一実施例、図５に、メモリ制御常駐ソフトウェア６ａが特定範囲４部分のメモリ資源の開放要求の発行時に実行する処理フローの一実施例、図６に、メモリ制御常駐ソフトウェア６ａが特定範囲４以外の部分のメモリ資源の取得要求の発行時に実行する処理フローの一実施例を図示する。次に、これらの処理フローに従って、本発明を詳細に説明する。
【００２６】
メモリ制御常駐ソフトウェア６ａは、システム起動時に起動されて、図３の処理フローに示すように、先ず最初に、ステップ１で、ＯＳ管理下メモリ３の持つ特定範囲４のメモリ資源を獲得する。
【００２７】
続いて、ステップ２で、特定範囲４部分のメモリ資源の取得要求を発行するアプリケーションプログラム５−ｊ／ＯＳサービス手段２−ｉの指すトラップ領域１４，１５−ｉに対して、その取得要求に対応付けられるフックコードを設定し、更に、特定範囲４部分のメモリ資源の開放要求を発行するアプリケーションプログラム５−ｊ／ＯＳサービス手段２−ｉの指すトラップ領域１４，１５−ｉに対して、その開放要求に対応付けられるフックコードを設定し、更に、特定範囲４以外の部分のメモリ資源の取得要求を発行するアプリケーションプログラム５−ｊ／ＯＳサービス手段２−ｉの指すトラップ領域１４，１５−ｉに対して、その取得要求に対応付けられるフックコードを設定する。
【００２８】
そして、これらの処理を終了すると、常駐ソフトウェアとしてメモリ上に常駐する。
この常駐時に、アプリケーションプログラム５−ｊやＯＳサービス手段２−ｉが特定範囲４部分のメモリ資源の取得要求を発行すると、メモリ制御常駐ソフトウェア６ａは、その取得要求に対応付けられるフックコードを設定するトラップ領域１４，１５−ｉの働きにより起動されて、図４の処理フローに示すように、先ず最初に、ステップ１で、自分で獲得している特定範囲４のメモリ資源の中から、取得要求元の必要とする以上のメモリ資源を開放する。続いて、ステップ２で、特定範囲４のメモリ資源を開放したことを記録する。続いて、ステップ３で、第１のＯＳメモリサービス手段７を呼び出して処理を終了する。
【００２９】
このようにして呼び出されると、第１のＯＳメモリサービス手段７は、メモリ制御常駐ソフトウェア６ａにより開放された特定範囲４部分のメモリ資源を取得要求元に割り付ける。これにより、取得要求元は、必要とする特定範囲４部分のメモリ資源の取得を実現できることになる。
【００３０】
一方、この常駐時に、アプリケーションプログラム５−ｊやＯＳサービス手段２−ｉが特定範囲４部分のメモリ資源の開放要求を発行すると、メモリ制御常駐ソフトウェア６ａは、その開放要求に対応付けられるフックコードを設定するトラップ領域１４，１５−ｉの働きにより起動されて、図５の処理フローに示すように、先ず最初に、ステップ１で、特定範囲４のメモリ資源を開放したことを記録する。続いて、ステップ２で、第２のＯＳメモリサービス手段８を呼び出して処理を終了する。
【００３１】
このようにして呼び出されると、第２のＯＳメモリサービス手段８は、開放要求元の使用していた特定範囲４部分のメモリ資源を開放する。これにより、開放要求元は、使用済となった特定範囲４部分のメモリ資源の開放を実現できることになる。
【００３２】
一方、この常駐時に、アプリケーションプログラム５−ｊやＯＳサービス手段２−ｉが特定範囲４以外の部分のメモリ資源の取得要求を発行すると、メモリ制御常駐ソフトウェア６ａは、その取得要求に対応付けられるフックコードを設定するトラップ領域１４，１５−ｉの働きにより起動されて、図６の処理フローに示すように、先ず最初に、ステップ１で、特定範囲４のメモリ資源を開放したことが記録されているか否かをチェックし、このチェックにより開放記録がないことを判断するときには、自分が特定範囲４のメモリ資源を獲得していることを意味するので、ステップ４に進んで、直ちに第３のＯＳメモリサービス手段９を呼び出して処理を終了する。
【００３３】
これと反対に、開放記録があることを判断するとき、すなわち、自分が特定範囲４のメモリ資源を獲得していないこと（後述する具体例から分かるように、正確には、獲得していない可能性のあることになる）を判断するときには、ステップ２に進んで、特定範囲４の中に含まれる未使用部分のメモリ資源を獲得し、続くステップ３で、特定範囲４のメモリ資源を開放したことを記録してから、ステップ４に進んで、第３のＯＳメモリサービス手段９を呼び出して処理を終了する。
【００３４】
このようにして呼び出されると、第３のＯＳメモリサービス手段９は、メモリ制御常駐ソフトウェア６ａが獲得している特定範囲４の未使用部分については割り付け対象から除いて、それ以外の未使用部分（すなわち、特定範囲４以外の未使用部分）のメモリ資源を取得要求元に割り付ける。これにより、取得要求元は、特定範囲４のメモリ資源を浸食することなく、それ以外の部分のメモリ資源の取得を実現できることになる。
【００３５】
以上に説明したメモリ制御常駐ソフトウェア６ａの処理に従って、例えば、図７に示すように、特定範囲４部分のメモリ資源の取得要求が発行されると、メモリ制御常駐ソフトウェア６ａに特定範囲４のメモリ資源の開放が記録されるとともに、特定範囲４部分のメモリ資源が取得要求元に割り付けられて使用されることになる。ここで、図中の斜線部分は、メモリ制御常駐ソフトウェア６ａが獲得しているメモリ資源を表している。
【００３６】
その後で、特定範囲４部分のメモリ資源の開放要求が発行されると、メモリ制御常駐ソフトウェア６ａに特定範囲４のメモリ資源の開放が記録（この場合、重複して記録される）されるとともに、使用済となった特定範囲４部分のメモリ資源が開放されることで未使用となる。その後で、特定範囲４以外の部分のメモリ資源の取得要求を発行されると、メモリ制御常駐ソフトウェア６ａに記録されるメモリ資源の開放記録が削除されるとともに、特定範囲４の未使用部分のメモリ資源がメモリ制御常駐ソフトウェア６ａに獲得され、これにより、特定範囲４以外の部分のメモリ資源が取得要求元に割り付けられることになる。
【００３７】
図示実施例について説明したが、本発明はこれに限定されるものではない。例えば、実施例では、特定範囲４以外の部分のメモリ資源の取得要求に対応付けられるフックコードを、それが設定可能となる全てのトラップ領域１４，１５−ｉに設定する構成を採ることで、特定範囲４以外の部分のメモリ資源の取得要求が発行されるときには、常に、メモリ制御常駐ソフトウェア６ａに制御が渡る構成を開示した。しかし、この取得要求を実行する第３のＯＳメモリサービス手段９は、特定範囲４部分のメモリ資源を常に取得要求元に割り付けるのではないので、この取得要求に対応付けられるフックコードについては、それが設定可能となる全てのトラップ領域１４，１５−ｉに設定される必要はない。
【００３８】
【発明の効果】
以上説明したように、本発明では、アプリケーションプログラムは、ＯＳのメモリ管理手段を呼び出す形式に従いつつ、ＯＳ管理下のメモリの持つ特定範囲のメモリ資源を、それを使用する必要のないプログラムの邪魔を受けずに取得できるようになる。これから、アプリケーションプログラムは、プログラム記述の変更を強いられることなく、しかも、ＯＳのファンクションの使用が保証された状態で、自分の必要とするＯＳ管理下のメモリの持つ特定範囲のメモリ資源を確実に取得できるようになる。
【図面の簡単な説明】
【図１】本発明の原理構成図である。
【図２】本発明の一実施例である。
【図３】メモリ制御常駐ソフトウェアの実行する処理フローの一実施例である。
【図４】メモリ制御常駐ソフトウェアの実行する処理フローの一実施例である。
【図５】メモリ制御常駐ソフトウェアの実行する処理フローの一実施例である。
【図６】メモリ制御常駐ソフトウェアの実行する処理フローの一実施例である。
【図７】本発明の処理の一例である。
【符号の説明】
１    ＯＳメモリ管理手段
２    ＯＳサービス手段
３    ＯＳ管理下メモリ
４    特定範囲
５    アプリケーションプログラム
６    メモリ制御手段
７    第１のＯＳメモリサービス手段
８    第２のＯＳメモリサービス手段
９    第３のＯＳメモリサービス手段
１０  獲得手段
１１  第１の制御手段
１２  第２の制御手段
１３  第３の制御手段
【図１】
0003574498.tif 000002
【図２】
0003574498.tif 000003
【図３】
0003574498.tif 000004
【図４】
0003574498.tif 000005
【図５】
0003574498.tif 000006
【図６】
0003574498.tif 000007
【図７】
0003574498.tif 000008