トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 メモリ管理システム及びメモリ管理方法
【発明者】 【氏名】角田 広樹

【氏名】小林 洋

【要約】 【課題】プロセスが必要とするメモリ領域を誤って開放することなく、不必要なメモリを開放することができるメモリ管理システムを提供する。

【解決手段】プロセスが獲得したメモリ領域の最大生存時間を管理し、この時間を過ぎても開放されていないメモリ領域をメモリ管理プロセスが開放することで、確実にメモリリークを防止する。また、警告時間を管理することで、ユーザに対してメモリ領域の開放を促す。例えば、プロセスA12aがメモリ領域の獲得・開放を行い、このメモリ領域の最大生存時間を8分、警告時間を5分の時、警告時間を経過してもメモリ領域が開放されない場合、管理手段21は警告ログを出力し、通信手段22を介して報知手段14に警告ログを表示させる。また、メモリ獲得から8分経過してもメモリ領域の開放を行わない場合、メモリ管理プロセス13が、管理情報に基づいてメモリ11のメモリ領域を開放する。
【特許請求の範囲】
【請求項1】 処理内容を管理する第1の管理手段と、該処理内容を記憶する第1の記憶手段と、メモリ及び他のプロセスと情報のやり取りを行う第1の通信手段と、を備え、情報処理装置上で起動・動作する複数のプロセスと、該複数のプロセスが動的にメモリ領域を獲得するメモリと、該複数のプロセスが獲得したメモリ領域の情報を一元管理する第2の管理手段と、該一元管理するメモリ領域の情報を記憶する第2の記憶手段と、メモリ及び他のプロセスと情報のやり取りを行う第2の通信手段と、時刻を計時する計時手段と、を備えたメモリ管理プロセスと、を有するメモリ管理システムにおいて、該第2の管理手段は、該複数のプロセスがその時間を過ぎるとメモリ領域の内容を参照することがないメモリ領域の最大生存時間を管理し、該メモリ管理プロセスは、最大生存時間を過ぎても開放されていないメモリ領域が存在すると、そのメモリ領域を開放することを特徴とするメモリ管理システム。
【請求項2】 ユーザに報知を行う報知手段を備え、前記メモリ領域管理手段は、メモリ領域の消去をユーザに促す警告時間を管理し、前記メモリ管理プロセスは、該警告時間を過ぎても開放されていないメモリ領域が存在すると、前記報知手段はその旨を報知することを特徴とする請求項1に記載のメモリ管理システム。
【請求項3】 前記第2の管理手段は、前記各プロセスがメモリ領域で実行する関数名とその関数が使用する変数名、メモリ領域のサイズとアドレス及びメモリ領域を獲得した時刻を管理することを特徴とする請求項1または2に記載のメモリ管理システム。
【請求項4】 前記各プロセスは、メモリ領域が開放されるまでの生存時間が前記警告時間より長いと、該生存時間を前記警告時間とすることを特徴とする請求項2に記載のメモリ管理システム。
【請求項5】 複数のプロセスが獲得・開放するメモリ領域のメモリ管理方法であって、プロセスが獲得したメモリ領域の内容を参照しなくなる時間であるメモリ領域の最大生存時間を管理し、該最大生存時間を過ぎても開放されていないメモリ領域が存在すると、そのメモリ領域を開放することを特徴とするメモリ管理方法。
【請求項6】 プロセスが獲得したメモリ領域の消去をユーザに促す警告時間を管理し、該警告時間を過ぎても開放されていないメモリ領域が存在すると、警告を発することを特徴とする請求項5に記載のメモリ管理方法。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、複数のプロセスが動的に獲得するメモリ領域についての情報を管理するメモリ管理システムに関する。
【0002】
【従来の技術】UNIX(登録商標)などが動作する情報処理装置では、アプリケーションなどを動作させるために複数のプロセスが起動・動作している。各プロセスは処理を実行するために、情報処理装置が備えたメモリのメモリ領域を動的に獲得する。メモリ資源には限りがあるので、このように複数のプロセスがメモリを獲得する場合、プロセスがメモリを使用しなくなると、所定のタイミングでメモリを開放する必要がある。これを忘れると、メモリリークという不具合が発生する。メモリリークとは、獲得されたメモリ領域が徐々に増加していき、最終的にはメモリ領域が足りない状態となる現象である。多少のメモリリークでは大きな問題は発生しないが、メモリ領域の限界値を越えるとシステムダウンとなる。ほとんどの場合、メモリが足りなくなったプロセスのみがダウンするが、場合によっては、システム全体がダウンしてしまう。
【0003】そこで、図6に示したように、従来の情報処理装置では、メモリリークを検出するために、プロセスが獲得したメモリを一元管理するメモリ管理システム51を備えていた。メモリ管理システム51は、メモリ61、複数のプロセスであるプロセスA62a、プロセスB62b、プロセスC62c及びメモリ管理プロセス63によって構成される。
【0004】プロセスA62aは、第1の管理手段71a、第1の通信手段72a、第1の記憶手段73aを備えている。また、図示していないが、プロセスB62b及びプロセスC62cはプロセスA62aと同様の構成である。
【0005】第1の管理手段71aは、プロセスA62aがメモリ領域を獲得した際に、メモリ領域で実行する関数名、その関数が使用する変数名、獲得するメモリ領域のメモリサイズを管理する。第1の通信手段72aは、メモリ61のメモリ領域獲得・開放を行ったり、その際に第1の管理手段71aで管理している情報をメモリ管理プロセス63に送信したりするためのものである。第1の記憶手段73aは、第1の管理手段71aが管理している情報を記憶するためのものである。
【0006】メモリ管理プロセス63は、第2の管理手段81、第2の通信手段82、第2の記憶手段83及び計時手段84を備えている。第2の管理手段81は、各プロセスが獲得したメモリ11のメモリ領域を一元管理するためのものである。第2の通信手段82は、各プロセスがメモリ61に獲得したメモリ領域を開放したり、各プロセスから送信されたメモリ領域の管理情報を受信したりするためのものである。第2の記憶手段83は、第2の管理手段81が管理するメモリ領域の情報を記憶するためのものである。メモリ領域の情報は、例えば管理テーブルで管理される。計時手段84は、時刻を計時するためのものである。
【0007】このメモリ管理システム51では、各プロセス62a〜62cがメモリ61のメモリ領域の獲得、開放を行っている。また、メモリリークを防止するために、メモリ管理プロセス63は、メモリ領域が最近参照されているか否かを判断基準として、メモリ領域が最近参照されているか否かを示すフラグを確認することで、開放されていないメモリ領域の開放を行っている。
【0008】上記従来のメモリ管理システム51のメモリ管理方法について、その詳細を説明する。図7は、プロセスAがメモリの獲得を行う場合の従来のメモリ管理システムの処理を説明するためのフローチャートである。情報処理装置上では、プロセスA62a,プロセスB62b,プロセスC62cが動作しているが、一例としてプロセスA62aの場合について説明する。
【0009】プロセスA62aの第1の管理手段71aは、まずメモリ61のメモリ領域を獲得するために、第1の通信手段72aを介してメモリ61にアクセスする(ステップ201)。そして、メモリ領域の獲得が可能か否かを判断する(ステップ202)。メモリ領域の獲得が可能な場合は、メモリ領域の獲得を実行する(ステップ203)。そして、メモリ領域で使用する関数名・その関数で使用する変数名、獲得したメモリ領域のサイズ・アドレスをメモリ管理プロセスに通知して(ステップ204)、処理を終了する。一方、ステップ202において、メモリ領域の獲得が不可能な場合は、エラーをメモリ管理プロセス63に返信して処理を終了する(ステップ205)。
【0010】メモリ管理プロセス63の第2の管理手段81は、第2の通信手段82を介してプロセスA62aから通知を受けると、通知されてきた情報と、その情報を通知してきたプロセス名及び現在時刻と、を管理テーブルに追加して管理を行う(ステップ211)。なお、現在時刻は、計時手段84で確認され、メモリ獲得時刻として管理される。
【0011】次に、プロセス自身がメモリ開放を行う場合の処理を説明する。図8は、プロセスAがメモリ開放を行う場合の処理を説明するためのフローチャートである。プロセスA62aの第1の管理手段71aは、所定の処理を終了して不要になったメモリ領域の開放を第1の通信手段72aを介して実施する(ステップ221)。そして、開放するメモリ領域を使用していた関数名、及びその関数で使用した変数名をメモリ管理プロセス63に通知する(ステップ222)。
【0012】プロセスA62aから通知を受けたメモリ管理プロセス63は、第2の通信手段82を介して通知されてきた情報に基づいて、管理テーブルから開放したメモリ領域に関する情報を削除する(ステップ231)。
【0013】次に、メモリ管理プロセス63がメモリ開放を行う場合の処理を説明する。図9は、メモリ管理プロセスがメモリ開放を行う場合の処理を説明するためのフローチャートである。メモリ管理プロセス63の第2の管理手段81は、第2の記憶手段83に記憶させた管理テーブルを検索し、最近最も参照されていないメモリ領域を検索する(ステップ241)。例えば、所定の時間以上アクセスされていないメモリ領域を検索する。そして、そのメモリ領域の開放を実施する(ステップ242)。また、メモリ領域の管理テーブルから、開放したメモリの管理情報を削除し(ステップ243)、処理を終了する。
【0014】
【発明が解決しようとする課題】しかしながら、従来のメモリ管理システムの場合、プロセスによってメモリを参照する時間間隔が異なるため、最近参照されていないからといって、そのプロセスにとって今後不必要なメモリ領域であるという保証は無い。よって、従来の方法では、開放してはいけないメモリ領域を開放してしまうことがある。そのため、次にプロセスがそのメモリ領域を参照した場合は、そのメモリ領域には別の内容が記録されているために、意図したものと異なるデータをリードして、不具合が発生するという問題点があった。
【0015】そこで、本発明は、上記の問題を解決するために成されたものであり、その目的は、プロセスが必要とするメモリ領域を誤って開放することなく、不必要なメモリを開放することができるメモリ管理システムを提供することである。
【0016】
【課題を解決するための手段】この発明は、処理内容を管理する第1の管理手段と、該処理内容を記憶する第1の記憶手段と、メモリ及び他のプロセスと情報のやり取りを行う第1の通信手段と、を備え、情報処理装置上で起動・動作する複数のプロセスと、該複数のプロセスが動的にメモリ領域を獲得するメモリと、該複数のプロセスが獲得したメモリ領域の情報を一元管理する第2の管理手段と、該一元管理するメモリ領域の情報を記憶する第2の記憶手段と、メモリ及び他のプロセスと情報のやり取りを行う第2の通信手段と、時刻を計時する計時手段と、を備えたメモリ管理プロセスと、を有するメモリ管理システムにおいて、該第2の管理手段は、該複数のプロセスがその時間を過ぎるとメモリ領域の内容を参照することがないメモリ領域の最大生存時間を管理し、該メモリ管理プロセスは、最大生存時間を過ぎても開放されていないメモリ領域が存在すると、そのメモリ領域を開放することを特徴とする。
【0017】この構成においては、メモリ管理システムは、複数のプロセスと、メモリと、メモリ管理プロセスと、を備え、情報処理装置上で起動・動作する複数のプロセスは、処理内容を管理する第1の管理手段と、該処理内容を記憶する第1の記憶手段と、メモリ及び他のプロセスと情報のやり取りを行う第1の通信手段と、を備え、メモリは、複数のプロセスが動的にメモリ領域を獲得し、メモリ管理プロセスは、複数のプロセスが獲得したメモリ領域の情報を一元管理する第2の管理手段と、一元管理するメモリ領域の情報を記憶する第2の記憶手段と、メモリ及び他のプロセスと情報のやり取りを行う第2の通信手段と、時刻を計時する計時手段と、を備え、第2の管理手段は、複数のプロセスがその時間を過ぎるとメモリ領域の内容を参照することがないメモリ領域の最大生存時間を管理し、メモリ管理プロセスは、最大生存時間を過ぎても開放されていないメモリ領域が存在すると、そのメモリ領域を開放する。これにより、プロセスが獲得したメモリ領域の最大生存時間を過ぎても開放されていないメモリ領域は、メモリ管理プロセスによって開放されるので、確実にメモリリークを防止することが可能となる。
【0018】また、この発明は、ユーザに報知を行う報知手段を備え、前記メモリ領域管理手段は、メモリ領域の消去をユーザに促す警告時間を管理し、前記メモリ管理プロセスは、該警告時間を過ぎても開放されていないメモリ領域が存在すると、前記報知手段はその旨を報知することを特徴とする。
【0019】この構成においては、メモリ領域管理手段は、メモリ領域の消去をユーザに促す警告時間を管理し、メモリ管理プロセスは、警告時間を過ぎても開放されていないメモリ領域が存在すると、報知手段はその旨を報知する。これにより、ユーザに対してメモリ領域の開放を促すことが可能となり、ユーザによってメモリ領域が開放されると、メモリ管理プロセスの負荷を軽減することが可能となる。
【0020】さらに、この発明において、前記第2の管理手段は、前記各プロセスがメモリ領域で実行する関数名とその関数が使用する変数名、メモリ領域のサイズとアドレス及びメモリ領域を獲得した時刻を管理することを特徴とする。
【0021】この構成においては、各プロセスがメモリ領域で実行する関数名とその関数が使用する変数名、メモリ領域のサイズとアドレス及びメモリ領域を獲得した時刻を第2の管理手段は管理する。したがって、確実にメモリ領域の状態を管理することが可能となる。
【0022】加えて、この発明において、前記各プロセスは、メモリ領域が開放されるまでの生存時間が前記警告時間より長いと、該生存時間を前記警告時間とすることを特徴とする。
【0023】この構成においては、メモリ領域が開放されるまでの生存時間が警告時間より長いと、各プロセスは生存時間を警告時間とする。これにより、警告時間を適正な値にすることが可能となる。
【0024】また、この発明は、複数のプロセスが獲得・開放するメモリ領域のメモリ管理方法であって、プロセスが獲得したメモリ領域の内容を参照しなくなる時間であるメモリ領域の最大生存時間を管理し、該最大生存時間を過ぎても開放されていないメモリ領域が存在すると、そのメモリ領域を開放することを特徴とする。
【0025】この構成においては、プロセスが獲得したメモリ領域の内容を参照しなくなる時間であるメモリ領域の最大生存時間を過ぎても開放されていないメモリ領域が存在すると、そのメモリ領域を開放してメモリを管理する。したがって、プロセスが獲得したメモリ領域の最大生存時間を過ぎても開放されていないメモリ領域は開放され、確実にメモリリークを防止することが可能となる。
【0026】さらに、この発明は、プロセスが獲得したメモリ領域の消去をユーザに促す警告時間を管理し、該警告時間を過ぎても開放されていないメモリ領域が存在すると、警告を発することを特徴とする。
【0027】この構成においては、プロセスが獲得したメモリ領域の消去をユーザに促す警告時間を過ぎても開放されていないメモリ領域が存在すると、警告を発してメモリを管理する。したがって、警告を確認したユーザによってメモリが確実に消去され、メモリリークの発生を抑えることが可能となる。
【0028】
【発明の実施の形態】本発明の実施形態に係るメモリ管理システムの詳細について説明する。図1は、本発明の実施形態に係るメモリ管理システムの概略の構成図である。本発明のメモリ管理システム1は、メモリ11、プロセスA12a、プロセスB12b、プロセスC12c、メモリ管理プロセス13及び報知手段14によって構成される。なお、図示していないが、さらに複数のプロセスを備えた構成であってもよい。
【0029】プロセスA12a、プロセスB12b、プロセスC12cは、それぞれ情報処理装置上でアプリケーションなどを実行するためのプロセスである。メモリ11は、各プロセスが動的にメモリ領域を獲得して、関数などを実行するためのものである。メモリ管理プロセス13は、各プロセスにアロケートされたメモリ領域を管理するためのものである。報知手段14は、アプリケーションの実行結果や警告などをユーザに報知するためのものである。
【0030】プロセスA12aは、第1の管理手段21a、第1の通信手段22a、第1の記憶手段23aを備えている。また、図示していないが、プロセスB12b及びプロセスC12cはプロセスA12aと同様の構成である。
【0031】第1の管理手段21aは、プロセスA12aがメモリ領域を獲得した際に、メモリ領域で実行する関数名、その関数が使用する変数名、獲得するメモリ領域のメモリサイズ、複数のプロセスがその時間を過ぎてメモリ領域の内容を参照することがないメモリ領域の最大生存時間、メモリ領域の消去をユーザに促す警告時間を管理する。第1の通信手段22aは、メモリ11のメモリ領域獲得・開放を行ったり、その際に第1の管理手段21aで管理している情報をメモリ管理プロセス13に送信したりするためのものである。第1の記憶手段23aは、第1の管理手段21aが管理している情報を記憶するためのものである。
【0032】メモリ管理プロセス13は、第2の管理手段31、第2の通信手段32、第2の記憶手段33及び計時手段34を備えている。第2の管理手段31は、各プロセスが獲得したメモリ11のメモリ領域を一元管理するためのものである。第2の通信手段32は、各プロセスがメモリ11に獲得したメモリ領域を開放したり、各プロセスから送信されたメモリ領域の管理情報を受信したり、報知手段14に警告の情報を送信したりするためのものである。第2の記憶手段33は、第2の管理手段31が管理するメモリ領域の情報を記憶するためのものである。計時手段34は、時刻を計時するためのものである。
【0033】本発明では、各プロセス12a〜12cがメモリ11のメモリ領域を獲得した際に、従来のメモリ管理システムで各プロセスがメモリ管理プロセスに伝達していた情報に加えて、メモリ領域の最大生存可能時間及び警告時間を伝達する。メモリ管理プロセス13は、これらの情報と、プロセス名及びメモリ獲得時刻と、を管理するようにする。なお、メモリ管理プロセス13は、計時手段34で計時した情報を受信した際の現在時刻を、メモリ獲得時刻として管理する。また、メモリ領域の各管理情報は、例えば、表1に示したような管理テーブルによって、プロセスが獲得したメモリ領域の各情報を管理する。
【0034】
【表1】

【0035】表1に示したように、メモリ管理プロセス13は、プロセス名、関数名、その関数で使用する変数名、プロセスが確保したメモリ領域の物理アドレス、メモリ領域のサイズ、警告時間、最大生存可能時間及びメモリ獲得時刻を管理する。
【0036】また、通常は、各プロセス12a〜12cがメモリ領域の獲得・開放を行うようにする。しかし、最大生存可能時間を過ぎてもメモリ領域が存在する場合は、メモリ管理プロセス13が、メモリ領域の開放を行うように設定する。これにより、メモリリークを防止する。
【0037】さらに、メモリ領域を獲得してから警告時間を過ぎた場合には、ユーザまたはシステム管理者に対して報知手段で、その旨を報知する。例えば、報知手段が表示装置を具備している場合は、警告ログを表示するようにする。これにより、メモリリークを防止するために、ユーザに対してメモリ領域の開放を促す。
【0038】次に、メモリ管理システム1のメモリ管理の手順を、タイムチャートを用いて具体的に説明する。図2は、メモリ管理システム1のメモリ管理状態を示したタイムチャートである。例えば、プロセスA12aがメモリ領域の獲得・開放を行い、このメモリ領域の最大生存時間を8分、警告時間を5分とする。プロセスA12aがメモリ領域の獲得を行い(1回目)、3分後にプロセスA12aがメモリ領域の開放を行う。この場合は、警告時間に達していないので、報知手段14に警告ログは表示されない。
【0039】そして、その2分後にプロセスA12aがメモリ領域の獲得を行う(2回目)。この場合、警告時間の5分を経過してもメモリ領域が開放されないため、管理手段21は、警告ログを出力し、通信手段22を介して報知手段14に警告ログを表示させる。プロセスA12aは、ユーザに指示により、その1分後であるメモリ獲得から6分後にメモリ領域の開放を行う。
【0040】さらに、その3分後にプロセスA12aがメモリ領域の獲得を行う(3回目)。この場合、警告時間の5分を経過してもメモリ領域が開放されないため、管理手段21は、警告ログを出力し、通信手段22を介して報知手段14に警告ログを表示させる。プロセスA12aは、メモリ獲得から8分経過してもメモリ領域の開放を行わないので、メモリ管理プロセス13が、管理テーブルの情報に基づいてメモリ11のメモリ領域を開放する。
【0041】次に、メモリ管理システム1のメモリ管理の手順を、フローチャートを用いて説明する。図3は、プロセスAがメモリの獲得を行う場合のメモリ管理システムの処理を説明するためのフローチャートである。
【0042】情報処理システム1上では、プロセスA12a,プロセスB12b,プロセスC12cが動作しているが、プロセスA12aを一例として説明する。まず、プロセス自身がメモリ獲得を行う場合の処理を説明する。プロセスA12aの第1の管理手段21aは、メモリ領域を獲得するために、第1の通信手段22aを介してメモリ11にアクセスする(ステップ101)。そして、メモリ領域の獲得が可能か否かを判断する(ステップ102)。メモリ領域の獲得が可能な場合は、メモリ領域の獲得を実行する(ステップ103)。そして、メモリ領域で使用する関数名・その関数で使用する変数名、獲得したメモリ領域のサイズ・アドレス、警告時間・メモリ領域の最大生存時間を、第1の通信手段22aを介してメモリ管理プロセス13に通知して(ステップ104)、処理を終了する。一方、ステップ102において、メモリ獲得が不可能な場合は、エラーをメモリ管理プロセス13に返信して処理を終了する(ステップ105)。
【0043】メモリ管理プロセス13の第2の管理手段31は、第2の通信手段32を介してプロセスA12aからメモリ領域獲得の通知を受けると、通知とともに送られてきた情報と、さらにプロセス名及び現在時刻と、を管理テーブルに追加する(ステップ111)。なお、メモリ管理プロセス13は、現在時刻をメモリ獲得時刻として管理を行う。
【0044】次に、プロセス自身がメモリ開放を行う場合の処理を説明する。図4は、プロセスAがメモリ開放を行う場合の処理を説明するためのフローチャートである。プロセスA12aの第1の管理手段21aは、所定の処理を完了して不要になったメモリ領域の開放を実施する(ステップ121)。そして、開放するメモリ領域を使用していた関数名、変数名をメモリ管理プロセスに通知する(ステップ122)。
【0045】プロセスA12aから通知を受けたメモリ管理プロセス13の第2の管理手段31は、第2の通信手段32を介して通知されてきた情報に基づいて、開放したメモリ領域に関する情報を管理テーブルから削除する(ステップ131)。そして、メモリ領域の生存時間(メモリ領域を獲得してから開放されるまでの経過時間)を、通知を送ってきたプロセスA12aに返信する(ステップ132)。
【0046】メモリ領域の生存時間の通知を受けたプロセスA12aの第1の管理手段21aは、生存時間と警告時間とを比較し、生存時間の方が警告時間よりも長いか否かを判定する(ステップ123)。生存時間が警告時間より短いか等しい場合は、処理を終了する。一方、生存時間の方が警告時間よりも長い場合は、警告時間の設定時間が短かったとして、生存時間の長さを次回の警告時間の長さに設定して、処理を終了する。
【0047】次に、メモリ管理プロセス13がメモリ領域の開放を行う場合の処理を説明する。図5は、メモリ管理プロセスがメモリ開放を行う場合の処理を説明するためのフローチャートである。メモリ管理プロセス13は、管理テーブルを検索し、メモリ獲得してから警告時間を経過したか否かを判定する(ステップ141)。警告時間を経過していない場合は、プロセス自身がメモリ領域の開放を行っているか否かを判定する(ステップ146)。プロセス自身がメモリ領域の開放を行った場合は、処理を終了する。一方、プロセス自身がメモリ領域の開放を行っていない場合は、ステップ141の処理を行う。
【0048】ステップ141において警告時間を経過した場合、第2の管理手段31は警告ログを出力し、第2の通信手段32を介して報知手段14にその警告ログを表示させる(ステップ142)。
【0049】次に、メモリ管理プロセス13の第2の管理手段31は、第2の記憶手段33に記憶させた管理テーブルを検索し、メモリ領域を獲得してから最大生存時間を経過したか否かを判定する(ステップ143)。最大経過時間を経過していない場合は、プロセス自身がメモリ領域の開放を行っているか否かを判定する(ステップ147)。プロセス自身がメモリ領域の開放を行った場合は、処理を終了する。一方、プロセス自身がメモリ領域の開放を行っていない場合は、ステップ143の処理を行う。
【0050】ステップ143において、メモリ領域の最大生存時間を経過した場合は、第2の管理手段31は、メモリ領域の開放を行う(ステップ144)。また、第2の管理手段31は、管理テーブルから開放したメモリ領域の情報を削除する(ステップ145)。そして、処理を終了する。
【0051】上記のように、プロセスが獲得したメモリ領域の最大生存時間を管理し、この時間を過ぎても開放されていないメモリ領域をメモリ管理プロセスが開放することで、確実にメモリリークを防止することができる。また、警告時間を管理することで、ユーザに対してメモリ領域の開放を促すことができる。
【0052】なお、警告時間経過後の警告ログを報知手段14に表示する構成としたが、音声によって、ユーザに警告するように音声警告手段を備えた構成であってもよい。また、警告時間は、最大生存可能時間の1/3〜1/2程度に設定するのが、望ましい。
【0053】
【発明の効果】本発明によれば、以下の効果が得られる。
【0054】メモリ管理システムは、複数のプロセスと、メモリと、メモリ管理プロセスと、を備え、情報処理装置上で起動・動作する複数のプロセスは、処理内容を管理する第1の管理手段と、該処理内容を記憶する第1の記憶手段と、メモリ及び他のプロセスと情報のやり取りを行う第1の通信手段と、を備え、メモリは、複数のプロセスが動的にメモリ領域を獲得し、メモリ管理プロセスは、複数のプロセスが獲得したメモリ領域の情報を一元管理する第2の管理手段と、一元管理するメモリ領域の情報を記憶する第2の記憶手段と、メモリ及び他のプロセスと情報のやり取りを行う第2の通信手段と、時刻を計時する計時手段と、備え、第2の管理手段は、複数のプロセスがその時間を過ぎるとメモリ領域の内容を参照することがないメモリ領域の最大生存時間を管理し、メモリ管理プロセスは、最大生存時間を過ぎても開放されていないメモリ領域が存在すると、そのメモリ領域を開放するため、プロセスが獲得したメモリ領域の最大生存時間を過ぎても開放されていないメモリ領域はメモリ管理プロセスによって開放されるので、確実にメモリリークを防止することができる。
【0055】また、メモリ領域管理手段は、メモリ領域の消去をユーザに促す警告時間を管理し、メモリ管理プロセスは、警告時間を過ぎても開放されていないメモリ領域が存在すると、報知手段はその旨を報知するので、ユーザに対してメモリ領域の開放を促すことが可能となり、ユーザによってメモリ領域が開放されると、メモリ管理プロセスの負荷を軽減することができる。
【0056】さらに、各プロセスがメモリ領域で実行する関数名とその関数が使用する変数名、メモリ領域のサイズとアドレス及びメモリ領域を獲得した時刻を第2の管理手段は管理するため、確実にメモリ領域の状態を管理することができる。
【0057】加えて、メモリ領域が開放されるまでの生存時間が警告時間より長いと、各プロセスは生存時間を警告時間とするので、警告時間を適正な値にすることができる。
【0058】また、プロセスが獲得したメモリ領域の内容を参照しなくなる時間であるメモリ領域の最大生存時間を過ぎても開放されていないメモリ領域が存在すると、そのメモリ領域を開放してメモリを管理するので、プロセスが獲得したメモリ領域の最大生存時間を過ぎても開放されていないメモリ領域は開放され、確実にメモリリークを防止することができる。
【0059】さらに、プロセスが獲得したメモリ領域の消去をユーザに促す警告時間を過ぎても開放されていないメモリ領域が存在すると、警告を発してメモリを管理するため、警告を確認したユーザによってメモリが確実に消去され、メモリリークの発生を抑えることができる。
【出願人】 【識別番号】000003942
【氏名又は名称】日新電機株式会社
【出願日】 平成12年10月4日(2000.10.4)
【代理人】 【識別番号】100084548
【弁理士】
【氏名又は名称】小森 久夫
【公開番号】 特開2002−108698(P2002−108698A)
【公開日】 平成14年4月12日(2002.4.12)
【出願番号】 特願2000−304406(P2000−304406)