(57)【特許請求の範囲】
【請求項１】
メモリ管理スーパバイザが管理しているメモリの確保済アドレスおよびサイズとメモリ管理スーパバイザへの要求元が管理している確保済アドレスおよびサイズとを比較し、該メモリ管理スーパバイザだけが管理しているメモリエリアをメモリ返却忘れとして検出することを特徴とする計算機システムにおけるメモリ返却忘れ検出方法。
【請求項２】
メモリ管理スーパバイザが管理しているメモリの空きアドレスおよびサイズのデータとメモリ管理スーパバイザへの要求元が管理している確保済アドレスおよびサイズのデータとからアドレス順に併合整列して作成される結合テーブルを作成し、該結合テーブルから該メモリ管理スーパバイザにも該要求元にも管理されていないメモリエリアを検索し、該検索したメモリエリアをメモリ返却忘れとして検出することを特徴とする計算機システムにおけるメモリ返却忘れ検出方法。
【請求項３】
請求項１または２記載の検出方法を、一定周期毎に行う計算機システムにおけるメモリ返却忘れ検出方法。
【請求項４】
請求項１または２記載の検出方法を、メモリの空き領域または使用領域が所定値に達したとき行う計算機システムにおけるメモリ返却忘れ検出方法。
【請求項５】
請求項１または２記載の検出方法を、メモリ管理スーパバイザが所定の期間内に所定値以上のメモリ量を確保または返却したとき行う計算機システムにおけるメモリ返却忘れ検出方法。
【請求項６】
検出されたメモリ返却忘れのメモリエリアを自動的に返却する請求項１乃至５の何れか１項記載の計算機システムにおけるメモリ返却忘れ検出方法。
【請求項７】
請求項１または２記載の検出方法は、計算機システムのシステムダウン時にメモリのダンプを採取し、採取したダンプを入力として検出を行う計算機システムにおけるメモリ返却忘れ検出方法。
【請求項８】
前記メモリ返却忘れとして検出されたメモリエリアを視覚的に表示する請求項１または２記載の計算機システムにおけるメモリ返却忘れ検出方法。
【請求項９】
メモリ管理スーパバイザが管理しているメモリの確保済アドレスおよびサイズのデータを格納する第１管理テーブルと、
メモリ管理スーパバイザへの要求元が管理している確保済アドレスおよびサイズのデータを格納する第２管理テーブルと、
第１管理テーブルと第２管理テーブルとを比較して前記メモリ管理スーパバイザだけが管理しているメモリエリアをメモリ返却忘れとして検出する検出手段と、
を備えたことを特徴とする計算機システムにおけるメモリ返却忘れ検出装置。
【請求項１０】
メモリ管理スーパバイザが管理しているメモリの空きアドレスおよびサイズのデータを格納する第１管理テーブルと、
メモリ管理スーパバイザへの要求元が管理している確保済アドレスおよびサイズのデータを格納する第２管理テーブルと、
第１管理テーブルと第２管理テーブルとからアドレス順に併合整列して作成される結合テーブルと、
前記結合テーブルから前記メモリ管理スーパバイザにも前記要求元にも管理されていないメモリエリアを検索し、該検索したメモリエリアをメモリ返却忘れとして検出する検出手段と、
を備えたことを特徴とする計算機システムにおけるメモリ返却忘れ検出装置。
【請求項１１】
前記検出手段は、一定周期毎に検出を行う請求項９または１０記載の計算機システムにおけるメモリ返却忘れ検出装置。
【請求項１２】
前記検出手段は、メモリの空き領域または使用領域が所定値に達したとき、検出を行う請求項９または１０記載の計算機システムにおけるメモリ返却忘れ検出装置。
【請求項１３】
前記検出手段は、メモリ管理スーパバイザが所定の期間内に所定値以上のメモリ量を確保または返却したとき、検出を行う請求項９または１０記載の計算機システムにおけるメモリ返却忘れ検出装置。
【請求項１４】
検出されたメモリ返却忘れのメモリエリアを自動的に返却するメモリ返却手段を備えた請求項９乃至１３の何れか１項記載の計算機システムにおけるメモリ返却忘れ検出装置。
【請求項１５】
前記検出手段は、計算機システムのシステムダウン時にメモリのダンプを採取し、採取したダンプを入力として検出を行う請求項９または１０記載の計算機システムにおけるメモリ返却忘れ検出装置。
【請求項１６】
前記メモリ返却忘れとして検出されたメモリエリアを視覚的に表示する表示手段を備えた請求項９または１０記載の計算機システムにおけるメモリ返却忘れ検出装置。
【請求項１７】
メモリ管理スーパバイザが管理しているメモリの確保済アドレスおよびサイズとメモリ管理スーパバイザへの要求元が管理している確保済アドレスおよびサイズとを比較し、該メモリ管理スーパバイザだけが管理しているメモリエリアをメモリ返却忘れとして検出する各ステップをコンピュータに実行させるプログラムを記録したことを特徴とするコンピュータ読取り可能な記録媒体。
【請求項１８】
メモリ管理スーパバイザが管理しているメモリの空きアドレスおよびサイズのデータとメモリ管理スーパバイザへの要求元が管理している確保済アドレスおよびサイズのデータとからアドレス順に併合整列して作成される結合テーブルを作成し、該結合テーブルから該メモリ管理スーパバイザにも該要求元にも管理されていないメモリエリアを検索し、該検索したメモリエリアをメモリ返却忘れとして検出する各ステップをコンピュータに実行させるプログラムを記録したことを特徴とするコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、計算機システムのメモリ管理方法に関し、更に詳しくは計算機システムおけるメモリ返却忘れ検出方法とその装置およびそのための記録媒体に関する。
【０００２】
【従来の技術】
近年、大規模な計算機システムが広く社会に利用されるにつれ、今まで以上に計算機システムの信頼性が要求されている。実社会に寄与する計算機システムは無停止で長時間連続運転させることが要求されている。ところで、一般的な計算機システムにおけるオペレーティングシステム（ＯＳ）ではメモリ管理機構を持っている。ＯＳ上で動作するアプリケーションプログラム（以下、単にアプリと記す）は、このメモリ管理機構に対して、メモリ割当要求とメモリ返却要求を行いながら処理を行っている。以下、図を用いて具体例を説明する。
【０００３】
図９は従来技術によるメモリ返却忘れ検出装置の説明図であり、（Ａ）は制御表ｔ２分離前のキューの状態を示す図であり、（Ｂ）は制御表ｔ２分離後のキューの状態を示す図である。図９において、メモリ管理スーパバイザが管理するキュー管理テーブルにはＯＳの立ち上げ後に最初にアプリが獲得したメモリエリアの先頭アドレスとメモリサイズ等のデータを格納した制御表ｔ１を指すポインタのアドレスデータが格納されている。制御表ｔ１、ｔ２、ｔ３は、同様にメモリ管理スーパバイザにより管理され、ＯＳの立ち上げ後、アプリによりメモリ獲得される毎にｔ１、ｔ２、ｔ３の順でＯＳにより作成される。メモリの返却忘れ（漏れ）は、例えば図９に示すようなケースのときに発生する。図９は、メモリ管理スーパバイザが制御表ｔ２をキュー（制御表ｔ１、ｔ２、…の集合）から分離しようとして制御表ｔ１からｔ２へのポインタをｔ１からｔ３へのポインタにつなぎかえたとき、アプリが分離された制御表ｔ２が占有していたメモリの全エリアを返却するための命令 (FREEMAINやmfree など) を発行しないケースを示している。なお、上記キュー管理テーブルは１つの計算機システム内に複数個設けることができる。例えば、アプリ毎に設けることができ、主記憶の分割単位、例えばメモリサイズ１０ＭＢ毎に設けることもできる。
【０００４】
一方、一般にはガーベージコレクションと称する機能があり、メモリの不要となったデータ領域を回収し、細分化された不連続域をまとめることができる。しかしながら、ガーベージコレクションはアプリが全ての処理の実行を終了した後でないとアプリが返却し忘れたメモリエリアをクリアしない。
【０００５】
【発明が解決しようとする課題】
ところで、従来技術による計算機システムは、アプリのコーディング誤りなどにより、不要になったメモリエリアを返却し忘れたまま処理を続行することがあり、それゆえメモリは無駄に使用されてしまう。また、上記アプリのジョブが終了しないまま後続の他のアプリからメモリ割当要求がＯＳに対し発行され、かつこの後続アプリの要求先のメモリエリアが先のアプリにより返却し忘れたメモリエリアと重なったとき、ガーベージコレクションは動作しないので先のアプリにより返却し忘れたメモリエリアはクリアされない。かかる状況下で、ＯＳは先のアプリにより該メモリエリアは使用中であると判断し、ＯＳは後続アプリからのメモリ割当要求を受け付けることができずシステムダウンとなり、計算機システムの運転に支障をきたすという問題を生ずる。この問題を避けては計算機システムを無停止で長時間連続運転させることはできない。
【０００６】
本発明は、計算機システムに対する長時間連続運転という時代要請に鑑み、計算機システムの信頼性をさらに向上させるためになされたものであり、上記問題を解決するため、アプリケーションプログラムにおけるメモリ返却忘れ（返却し忘れたメモリエリア）を自動的に検出し、システムダウンが生じる前に該メモリエリアを返却し、計算機システムにおけるトラブルを未然に防止し、さらに誤りが検出されたアプリケーションプログラムを自動的に修正する方法とその装置およびそのための記録媒体を提供することを目的とする。
【０００７】
【課題を解決するための手段】
前記目的を達成する本発明第１形態の計算機システムにおけるメモリ返却忘れ検出方法は、メモリ管理スーパバイザが管理しているメモリの確保済アドレスおよびサイズとメモリ管理スーパバイザへの要求元が管理している確保済アドレスおよびサイズとを比較し、該メモリ管理スーパバイザだけが管理しているメモリエリアをメモリ返却忘れとして検出することを特徴とする。
【０００８】
前記目的を達成する本発明第２形態の計算機システムにおけるメモリ返却忘れ検出方法は、メモリ管理スーパバイザが管理しているメモリの空きアドレスおよびサイズのデータとメモリ管理スーパバイザへの要求元が管理している確保済アドレスおよびサイズのデータとからアドレス順に併合整列して作成される結合テーブルを作成し、該結合テーブルから該メモリ管理スーパバイザにも該要求元にも管理されていないメモリエリアを検索し、該検索したメモリエリアをメモリ返却忘れとして検出することを特徴とする。
【０００９】
上記第１または第２形態の計算機システムにおけるメモリ返却忘れ検出方法は、一定周期毎に検出を行う。
上記第１または第２形態の計算機システムにおけるメモリ返却忘れ検出方法は、メモリの空き領域または使用領域が所定値に達したとき検出を行う。
上記第１または第２形態の計算機システムにおけるメモリ返却忘れ検出方法は、メモリ管理スーパバイザが所定の期間内に所定値以上のメモリ量を確保または返却したとき検出を行う。
【００１０】
上記第１または第２形態の計算機システムにおけるメモリ返却忘れ検出方法はまた、検出されたメモリ返却忘れのメモリエリアを自動的に返却する。
上記第１または第２形態の計算機システムにおけるメモリ返却忘れ検出方法は、計算機システムのシステムダウン時にメモリのダンプを採取し、採取したダンプを入力として検出を行う。
【００１１】
上記第１または第２形態の計算機システムにおけるメモリ返却忘れ検出方法はまた、メモリ返却忘れとして検出されたメモリエリアを視覚的に表示する。
前記目的を達成する本発明第１形態の計算機システムにおけるメモリ返却忘れ検出装置は、メモリ管理スーパバイザが管理しているメモリの確保済アドレスおよびサイズのデータを格納するキュー（第１）管理テーブルと、メモリ管理スーパバイザへの要求元が管理している確保済アドレスおよびサイズのデータを格納するデータ域（第２）管理テーブルと、前記キュー管理テーブルと前記データ域管理テーブルとを比較して前記メモリ管理スーパバイザだけが管理しているメモリエリアをメモリ返却忘れとして検出する検出手段と、を備えたことを特徴とする。
【００１２】
前記目的を達成する本発明第２形態の計算機システムにおけるメモリ返却忘れ検出装置は、メモリ管理スーパバイザが管理しているメモリの空きアドレスおよびサイズのデータを格納するキュー（第１）管理テーブルと、メモリ管理スーパバイザへの要求元が管理している確保済アドレスおよびサイズのデータを格納するデータ域（第２）管理テーブルと、前記キュー管理テーブルと前記データ域管理テーブルとからアドレス順に併合整列して作成される結合テーブルと、前記結合テーブルから前記メモリ管理スーパバイザにも前記要求元にも管理されていないメモリエリアを検索し、該検索したメモリエリアをメモリ返却忘れとして検出する検出手段と、を備えたことを特徴とする。
【００１３】
上記第１または第２形態の計算機システムにおけるメモリ返却忘れ検出装置において、前記検出手段は、一定周期毎に検出を行う。
上記第１または第２形態の計算機システムにおけるメモリ返却忘れ検出装置において、前記検出手段は、メモリの空き領域または使用領域が所定値に達したとき検出を行う。
【００１４】
上記第１または第２形態の計算機システムにおけるメモリ返却忘れ検出装置において、前記検出手段は、メモリ管理スーパバイザが所定の期間内に所定値以上のメモリ量を確保または返却したとき検出を行う。
上記第１または第２形態の計算機システムにおけるメモリ返却忘れ検出装置において、前記検出手段は、検出されたメモリ返却忘れのメモリエリアを自動的に返却するメモリ返却手段を備える。
【００１５】
上記第１または第２形態の計算機システムにおけるメモリ返却忘れ検出装置において、前記検出手段は、計算機システムのシステムダウン時にメモリのダンプを採取し、採取したダンプを入力として検出を行う。
上記第１または第２形態の計算機システムにおけるメモリ返却忘れ検出装置において、前記メモリ返却忘れとして検出されたメモリエリアを視覚的に表示する表示手段を備える。
【００１６】
前記目的を達成する本発明第１形態の計算機システムにおけるメモリ返却忘れ検出方法を実現するコンピュータ読取り可能な記録媒体は、メモリ管理スーパバイザが管理しているメモリの確保済アドレスおよびサイズとメモリ管理スーパバイザへの要求元が管理している確保済アドレスおよびサイズとを比較し、該メモリ管理スーパバイザだけが管理しているメモリエリアをメモリ返却忘れとして検出する各ステップをコンピュータに実行させるプログラムを記録したことを特徴とする。
【００１７】
前記目的を達成する本発明第２形態の計算機システムにおけるメモリ返却忘れ検出方法を実現するコンピュータ読取り可能な記録媒体は、メモリ管理スーパバイザが管理しているメモリの空きアドレスおよびサイズのデータとメモリ管理スーパバイザへの要求元が管理している確保済アドレスおよびサイズのデータとからアドレス順に併合整列して作成される結合テーブルを作成し、該結合テーブルから該メモリ管理スーパバイザにも該要求元にも管理されていないメモリエリアを検索し、該検索したメモリエリアをメモリ返却忘れとして検出する各ステップをコンピュータに実行させるプログラムを記録したことを特徴とする。
【００１８】
【発明の実施の形態】
以下、添付図面を参照しつつ本発明の実施の形態を詳細に説明する。
図１は本発明によるメモリ返却忘れ検出装置の説明図であり、（Ａ）はメモリ管理スーパバイザが管理するメモリ領域を示す図であり、（Ｂ）はアプリケーションプログラムが管理するメモリ領域を示す図である。計算機システムにおいて、ＯＳを起動した後にメモリ管理スーパバイザ（以下、単にスーパバイザと記す）が管理するキュー管理テーブル１がメモリ内に生成される。次に、アプリケーションプログラムが実行開始されると、アプリは自ら使用するデータ域（メモリエリア）を管理するためのデータ域管理テーブル２をメモリ内に作成するためにメモリ獲得要求を出す。スーパバイザはこのメモリ獲得要求に応じてデータ域管理テーブル２を格納するためのデータ域（メモリエリア）を割り当てるとともに制御表３−ａを作成する。スーパバイザは制御表３−ａの先頭アドレスをキュー管理テーブル１に設定し、制御表３−ａにデータ域管理テーブル２のアドレスを設定する。なお、キュー管理テーブル１は１つの計算機システム内に複数個設けることができる。例えば、アプリ毎に設けることができ、主記憶の分割単位、例えばメモリサイズ１０ＭＢ毎に設けることもできる。
【００１９】
アプリはデータ群を管理するための制御表を作成するためにメモリ獲得要求を出す。スーパバイザは制御表４−ａを割り当て、制御表３−ｂを作成し、制御表３−ｂのアドレスを格納するポインタを制御表３−ａに設定し、制御表３−ｂには制御表４−ａのアドレスを格納するポインタを設定する。アプリは制御表４−ａを指すポインタのアドレスをデータ域管理テーブル２に設定する。
【００２０】
次に、アプリはデータ群を格納するための領域を獲得するためにメモリ獲得要求を出す。スーパバイザは制御表（データ群）４−ｂを割り当て、制御表３−ｃを作成し、制御表３−ｃのアドレスを制御表３−ｂに設定し、制御表３−ｃには制御表４−ｂのアドレスを設定する。アプリは制御表４−ｂのアドレスを制御表４−ａに設定する。以下、同様に制御表４−ｄまでのテーブル連携（制御表３−ａ〜３−ｅおよび制御表４−ａ〜４−ｄ）を作成する。
【００２１】
その後、データ群を管理するための制御表としてメモリ獲得した制御表４−ａとデータ群を格納するための領域としてメモリ獲得した制御表４−ｂが不要になったので、アプリが制御表４−ａと制御表４−ｂとをキュー（制御表４−ａ〜４−ｄの集合）から外す処理を行ったとする。すなわち、データ域管理テーブル２から制御表４−ｃへポインタを差し換えたとする。ここで、アプリがメモリの返却要求をし忘れたとすると、制御表４−ａのデータ域と制御表４−ｂのデータ域とはスーパバイザによって制御表３−ｂと制御表３−ｃにより管理されたままとなり、他のアプリからメモリ獲得要求があってもこれら制御表４−ａと制御表４−ｂとに割り当てられたデータ域は再利用されない。このアプリ自身もこれらデータ域を自ら管理するキューから外してしまったので利用できない。このようにして、メモリが利用されない無駄なメモリエリアが発生することになる。
【００２２】
次に、本発明のメモリ返却忘れ検出方法の実施例について以下に説明する。
図２は本発明によるメモリ返却忘れ検出処理ルーチンのフローチャートである。ステップＳ１では、アプリ（要求元）が管理するメモリ割当情報を取得する。具体的には図３に示すアプリケーションプログラムが管理するデータ域管理テーブルに格納されたメモリ割当情報を得る。また、図２〜図８は２つのアプリ（モジュールＡとＢ）が同時に運転されている例を示す。テーブルは４個の欄を有し、各欄にはモジュール名（アプリが要求したデータ域のテーブル名）、そのモジュール名のメモリエリアの先頭アドレス（以下、単にアドレスと記す）、メモリエリアのサイズおよび用途に係るデータが格納される。図３−（Ａ）の第１具体例は、モジュール名 moduleAが1000番地から50バイト、モジュール名 moduleBが1100番地から50バイトと1150番地から40バイトのメモリ割り当て情報が得られていることを示す。図３−（Ｂ）の第２具体例は、モジュール名 moduleAが1000番地から50バイトとモジュール名 moduleBが1150番地から40バイトのメモリ割り当て情報が得られていることを示す。
【００２３】
ステップＳ２では、スーパバイザの管理状態を判別し、スーパバイザがアプリへの割当領域（アプリに割り当てられたメモリエリア）を管理している場合はステップＳ３に進み、空き領域を管理しているときはステップＳ１１へ進み、両方管理しているときはステップＳ３へ進む。
ステップＳ３では、スーパバイザが図４に示すメモリ割当情報を格納するキュー管理テーブルを得る。すなわち、スーパバイザがモジュール名 moduleAが1000番地から50バイト、モジュール名 moduleBが1050番地から 100バイトと1150番地から40バイトのメモリ割り当て情報を得る。
【００２４】
ステップＳ４では、スーパバイザの割当情報とアプリ（要求元）の割当情報のアドレスとサイズを１エントリずつ比較していく (両者をアドレス順にソートしてから比較する）。図４に示すスーパバイザが管理するメモリ割当情報と、図３−（Ａ）の第１具体例との比較結果を図５に示し、図３−（Ｂ）の第２具体例との比較結果を図６に示す。図５は moduleBに1050番地から50バイトの返却忘れがあることを示し、図６は moduleBに1050番地から 100バイトの返却忘れがあることを示す。ステップＳ４の比較結果、全てが一致した（返却忘れがなかった）ときは本ルーチンを終了し、一致しないものがあった（返却忘れがあった）ときはステップＳ５へ進む。
【００２５】
ステップＳ５では、一致しない全てのモジュール名、アドレス、サイズおよび用途を出力する。例えば、返却忘れ情報として具体例１は「moduleB 、1050、50、tbl2」、具体例２は「moduleB 、1050、100 、tbl2」と出力する。
また、システムダウンにより得られたダンプを入力して検出された（上記比較結果を得た）場合は、結果リストなどに出力し、システム稼働中に検出された（上記比較結果を得た）場合は、磁気ディスク等の補助記憶装置に格納される課金ファイルやＣＲＴ等の表示装置などに出力する。
【００２６】
ステップＳ６では、システム稼働中の検出かどうかを判断し、システム稼働中のときはステップＳ７へ進み、システム稼働中でないときは本ルーチンを終了する。
ステップＳ７では、検出結果の自動返却と要求元への通知を行い、検出された返却忘れ（一致しなかった全てのメモリエリアのアドレスとサイズ）を返却する。この自動返却はＯＳの中に組み込んでスーパバイザが代行して返却してもよいし、スーパバイザが要求元に通知して、要求元が返却してもよい。上記要求元への通知は、ＣＲＴによる表示、プリントアウトまたはアプリに予め設けられた検出フラグを立てることにより行う。
【００２７】
次に、ステップＳ２におけるスーパバイザの管理状態の判別結果、スーパバイザが空き領域を管理していると判別されたとき、ステップＳ１１では、図７に示すようにスーパバイザは1050番地から50バイトの空き情報を得る。
次いでステップＳ１２では、具体例２の場合、図３−（Ｂ）で示すデータ域管理テーブルと図７で示すスーパバイザが空き情報を管理するキュー管理テーブルとをアドレス順に併合整列する。すると図８に示すような結合テーブルが得られる。
【００２８】
ステップＳ１３では、各エントリ（行）のアドレスとサイズの和が各次エントリ（次の行）のアドレスと一致するか否かを各エントリに対しチェックし、全て一致したときは本ルーチンを終了し、一致しないものがあるときはステップＳ１４へ進む。具体的には、１エントリずつ順番に次のようなチェックを行う。
１行目: 1000＋50=1050 ……２行目の1050番地と等しいので問題なし。
【００２９】
２行目: 1050＋50=1100 ……３行目の1150番地と等しくないので問題あり。したがって、1100番地からサイズ1150-1100=50バイトが返却忘れと認識できる。
ステップＳ１４では、ステップＳ５同様に返却忘れ情報として「1100、50」を出力する。
ステップＳ１５、Ｓ１６では、ステップＳ６、Ｓ７と同様の処理を実行する。但し、要求元が不明のため、要求元への通知、要求元からの自動返却は除く。
【００３０】
図１０は本発明の計算機システムの一実施例を示す図である。図１０を用いて本発明の記録媒体に記録されたプログラムの処理について以下簡単に説明する。本発明の計算機システムにおけるメモリ返却忘れ検出装置において、計算機システム１１０は、モニタ表示部を含む中央処理装置１１１と、記録媒体である例えばＲＡＭからなる主記憶装置１１２と、記録媒体である例えば磁気ディスクからなる補助記憶装置１１３とを備える。中央処理装置（ＣＰＵ）１１１は、ＣＤ−ＲＯＭやフロッピーディスク等の可搬型の記録媒体１２０の読取装置を内蔵しており、所定の操作によりＣＤ−ＲＯＭやフロッピーディスク等の可搬型の記録媒体１２０に記録された本発明による方法に関する種々のプログラムをその読取装置を介して読取り、主記憶装置１１２にローディングする。もちろん、オペレータが計算機システム１１０の主記憶装置１１２にキーボードやマウス等の入力手段（図示せず）を介して直接上記プログラムを書き込んだ後、そのプログラムを補助記憶装置１１３にインストールしてもよい。あるいは、他のクライアントの計算機システム１３０等に設置された記録媒体である例えば磁気ディスクからなる補助記憶装置１３１に格納された上記プログラムをネットワーク（通信回線）を介して本発明の計算機システム１１０の補助記憶装置１１３にローディングする。その後、補助記憶装置１１３に格納されたプログラムは、計算機システム１１０の中央処理装置１１１の処理により必要に応じて主記憶装置１１２にローディングされ、中央処理装置１１１は要求に応じて主記憶装置１１２に書き込まれたプログラムを実行する。
【００３１】
以上のように稼働中のシステムでは、以上の検出処理を一定周期毎などに実行することにより、返却忘れがないか否かを監視でき、返却忘れが検出されたときは自動的に返却できる。
また、メモリの空き領域または使用領域が所定値に達したときに、上記検出処理を実行してもよい。
【００３２】
また、メモリ管理スーパバイザが所定の期間内に所定値以上のメモリ量を確保または返却したときに、上記検出処理を実行してもよい。
また、アプリが一度獲得したデータ域を一部のみ返却したが残りの部分は返却忘れでなく必要としている部分である場合がある。アプリの管理テーブルから外れていれば返却忘れと断定できるが、さらに返却してもよいか念を押すために、このような場合は、アプリ側に上記データ域内の返却し残した部分はまだ使用中であることを示すビジービットを設けておき、所定周期例えば５msec毎にこのビジービットの状態を調べビジービットがオフのときにのみ自動返却を実行可能とすればよい。これにより、長時間休業状態となるアプリに対して休業中にガーベージコレクションの処理は実行されないので上記データ域内の返却し残した部分はクリアされずに残る。したがって、システムダウン時に採取したダンプを入力してシステムダウンの原因を調査するときにガーベージコレクションの処理によりクリアされずに残された上記データ域内の返却し残した部分が原因でシステムがダウンしたか否かが調査でき、これによりシステムダウンの原因調査の時間短縮が図られる。
【００３３】
上述したように、本発明はガーベージコレクションと比して、メモリの管理側からみて不要とみなされていないメモリについても、不要であるかどうかが判断できる点が異なり、この点がシステムダウンの原因調査時に有利である。また、管理（メモリ管理スーパバイザ）側による一方的な回収は行なわず、要求（アプリ）側が言わば自己申告した情報と管理側の情報とを両者合意の上で比較し対処できることから、信頼性と安全性とを強化できる。
【００３４】
【発明の効果】
以上説明したように、本発明によれば、メモリの返却忘れを確実に検出でき、返却し忘れても自動的に安全に返却することができ、係る計算機システムの信頼性の向上に大きく寄与することができる。また、ダンプを入力としたシステムダウンの障害調査においては、調査時間の短縮を図ることができる。
【図面の簡単な説明】
【図１】本発明によるメモリ返却忘れ検出装置の説明図であり、（Ａ）はメモリ管理スーパバイザが管理するメモリ領域を示す図であり、（Ｂ）はアプリケーションプログラムが管理するメモリ領域を示す図である。
【図２】本発明によるメモリ返却忘れ検出処理ルーチンのフローチャートである。
【図３】アプリケーションプログラムが管理するメモリ割当情報を格納するデータ域管理テーブルを示す図であり、（Ａ）は第１具体例を示す図であり、（Ｂ）は第２具体例を示す図である。
【図４】メモリ管理スーパバイザが管理するメモリ割当情報を格納するキュー管理テーブルを示す図である。
【図５】メモリ返却忘れの第１具体例の説明図である。
【図６】メモリ返却忘れの第２具体例の説明図である。
【図７】メモリ管理スーパバイザが管理するメモリ空き情報を格納するキュー管理テーブルを示す図である。
【図８】併合整列させた場合のメモリ管理スーパバイザが管理するメモリ割当情報を格納するキュー管理テーブルを示す図である。
【図９】従来技術によるメモリ返却忘れ検出装置の説明図であり、（Ａ）は制御表ｔ２分離前のキューの状態を示す図であり、（Ｂ）は制御表ｔ２分離後のキューの状態を示す図である。
【図１０】本発明の計算機システムの一実施例を示す図である。
【符号の説明】
１…キュー管理テーブル（メモリ管理スーパバイザ側）
２…データ域管理テーブル（アプリケーションプログラム側）
３−ａ〜３−ｅ…制御表（メモリ管理スーパバイザ側）
４−ａ〜４−ｄ…制御表（アプリケーションプログラム側）
【図１】
0003805093.tif 000002
【図２】
0003805093.tif 000003
【図３】
0003805093.tif 000004
【図４】
0003805093.tif 000005
【図５】
0003805093.tif 000006
【図６】
0003805093.tif 000007
【図７】
0003805093.tif 000008
【図８】
0003805093.tif 000009
【図９】
0003805093.tif 000010
【図１０】
0003805093.tif 000011