JP2006134136A - アプリケーション処理装置、ガーベージコレクション実行方法、記憶領域管理方法及びガーベージコレクション実行プログラム - Google Patents
アプリケーション処理装置、ガーベージコレクション実行方法、記憶領域管理方法及びガーベージコレクション実行プログラム Download PDFInfo
- Publication number
- JP2006134136A JP2006134136A JP2004323548A JP2004323548A JP2006134136A JP 2006134136 A JP2006134136 A JP 2006134136A JP 2004323548 A JP2004323548 A JP 2004323548A JP 2004323548 A JP2004323548 A JP 2004323548A JP 2006134136 A JP2006134136 A JP 2006134136A
- Authority
- JP
- Japan
- Prior art keywords
- garbage collection
- application
- execution
- storage area
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
【解決手段】 記憶部140は、データを記憶するメモリ領域を有する。メモリ管理部110は、記憶部140の有するメモリ領域を複数のブロックに分割し、分割したブロックを単位としてアプリケーションプログラムにメモリ領域を割り当てる。ガーベージコレクション実行対象選択部130は、メモリ管理部110がブロックを単位として記憶領域を割り当てたアプリケーションプログラムの中から、ガーベージコレクションを実行するアプリケーションプログラムを選択する。ガーベージコレクション実行部120は、ガーベージコレクション実行対象選択部130が選択したアプリケーションプログラムに対し、ブロックを対象としてガーベージコレクションを実行する。
【選択図】 図1
Description
日比野靖:「ごみ集めの基本アルゴリズム」情報処理(情報処理学会学会誌)第35巻 第11号 1994年11月 p.992−999
アプリケーションプログラムのデータが自己の有する記憶領域を占有する場合に、記憶領域を占有するデータの少なくとも一部を回収して回収したデータが占有していた記憶領域を解放するガーベージコレクションを実行するアプリケーション処理装置において、
データを記憶する記憶領域を有する記憶部と、
前記記憶部の有する記憶領域を複数のブロックに分割し、分割したブロックを単位としてアプリケーションプログラムに記憶領域を割り当てる記憶領域管理部と、
前記記憶領域管理部がアプリケーションプログラムに割り当てた記憶領域を示すブロックを対象としてガーベージコレクションを実行するガーベージコレクション実行部と
を備えたことを特徴とする。
図1〜図10を用いて実施の形態1について説明する。図1は、本実施の形態1のアプリケーション処理装置100のブロック図である。図2は、ブロック管理情報141を示す図である。図3は、アプリケーション処理装置100の動作を示すフローチャートである。図4は、アプリケーションの動作を示すフローチャートである。図5は、アプリケーション1を選択するフローチャートである。図6は、アプリケーション1に対するガーベージコレクションを説明するフローチャートである。図7は、ガーベージコレクション実行前のメモリ領域の状態を示す図である。図8は、不要データを回収した後のメモリ領域の状態を示す図である。図9は、ガーベージコレクション実行後のメモリ領域の状態を示す図である。図10は、本実施の形態1のアプリケーション処理装置101のブロック図である。
(1)メモリ管理部110は、記憶部140のメモリ領域をブロックで分割し、ブロック管理情報141を初期化する(S101)。
(2)メモリ管理部110はアプリケーション処理装置100を終了する場合(S102のYes)は終了する。アプリケーション処理装置100を終了しない場合(S102のNo)、メモリ管理部110は、アプリケーションからブロックの要求があるかどうかを判定する(S103)。アプリケーションは、その実行中にデータ生成等によりメモリを消費する。このため、割り当てられているブロック(記憶領域)の空き領域が枯渇した場合や、空き領域が予め設定した閾値を下回った場合には、メモリ管理部110に新たなブロックをS103において要求する。
(3)アプリケーションからブロックの要求がない場合(S103のNo)、S102に戻る。
(4)アプリケーションからブロックの要求がある場合(S103のYes)、メモリ管理部110は、ブロック管理情報141を参照し、未使用ブロックがあるかどうかを判定する(S104)。
(5)未使用ブロックがある場合(S104のYes)、メモリ管理部110は、アプリケーションに未使用ブロックを割り当て(S110)、アプリケーションにブロックを割り当てたことをブロック管理情報141に登録する(S111)。
(6)未使用ブロックがない場合(S104のNo)、ガーベージコレクション実行対象選択部130は、ガーベージコレクションを実行する対象となるアプリケーションを選択する(S105)。
(7)ガーベージコレクション実行部120は、S105でガーベージコレクション実行対象選択部130により選択されたアプリケーションが使用するブロック内に存在するデータを必要データと不要データに振り分ける(S106)。
(8)ガーベージコレクション実行部120は、不要データを回収し空き領域とし(S107)、必要データ(残存データ)をアプリケーションに割り当てられたブロック内に再配置する(S108)。
(9)メモリ管理部110は、未使用ブロックが出来たことをブロック管理情報141に登録し(S109)、S104に戻る。
(1)アプリケーションが起動し(S201)、処理を開始する(S202)。
(2)データ生成等の新たにメモリを必要とする処理でない場合(S203のNo)、S202に戻る。
(3)アプリケーションは、データ生成等の新たにメモリを必要とする処理の場合(S203のYes)、アプリケーションに割り当てられたブロックに空き領域があるかどうかを判定する(S204)。
(4)空き領域がない場合(S204のNo)、メモリ管理部110にブロックを要求する(S205、図3のS103のyesに対応)。そして、アプリケーションは、図3のS103以降の過程によりブロックを取得し、データを取得したブロックに配置する(S206)。そして、アプリケーションは終了判定を行い(S207)、終了するか(S207のYes)、S202に戻る(S207のNo)。
(1)図2のブロック管理情報141は、メモリ管理部110がメモリ領域を6つのブロックに分割(S101に対応)した様子を示している。メモリ管理部110はアプリケーション1の起動時に、まずブロック1をアプリケーション1に割り当てる。
(2)また、メモリ管理部110はアプリケーション2の起動時に、ブロック2をアプリケーション2に割り当てる。
(3)その後、メモリ管理部110は、アプリケーション1とアプリケーション2の実行中に、アプリケーション1にブロック3、ブロック4、ブロック6を割り当て、アプリケーション2にブロック5を割り当てる(S110,S111に対応)。図2は、メモリ管理部110がブロックの割り当を「アプリケーション識別子」によって管理している様子を示している。例えば、図2において、「ブロック識別子」が1の場合に「アプリケーション識別子」が1とは、ブロック1をアプリケーション1が使用していることを示している。
(4)図7は、ガーベージコレクション実行前の記憶部140のメモリ領域の状態を示しており、図2のブロック管理情報141に対応している。図7において「アプリ1」とあるのはアプリケーション1用のデータであり、「アプリ2」とあるのはアプリケーション2用のデータであること示す(以下、図8、図9等の場合も同様)。上記のように、メモリ管理部110は、記憶部140の有するメモリ領域を複数のブロックに分割し、分割したブロックを単位としてアプリケーションプログラムにメモリ領域を割り当てる。従って、図7に示すように、一つのブロックには同じアプリケーションのデータが記憶されている。
(1)図2のブロック管理情報141に示すように、未使用ブロックのない状態でアプリケーション1がメモリ管理部110にブロックを要求すると(S103のyes)、未使用ブロックが存在しないため、メモリ管理部110はアプリケーション1に対する未使用ブロックの割り当てに失敗する(S301、S302、S104のNOに対応)。
(2)ガーベージコレクション実行対象選択部130は、ガーベージコレクションを実行する対象としてアプリケーション1を選択する(S303、S105に対応)。
(3)そして、ガーベージコレクション実行部120が、アプリケーション1に対するガーベージコレクション処理を開始する(S304、S106〜S108に対応)。
(1)ガーベージコレクション実行部120は、ブロック管理情報141を参照し、アプリケーション1に割り当てられている記憶部140のメモリ領域が、ブロック1、ブロック3、ブロック4、ブロック6であるという情報を得る(S401)。この情報から、ガーベージコレクション実行部120は、メモリ管理部110がアプリケーション1に割り当てた記憶領域を示すブロック1、ブロック3、ブロック4、ブロック6を対象として、ガーベージコレクションの実行を開始する。
(2)まず、ガーベージコレクション実行部120は、アプリケーション1がメモリ領域の各ブロックに配置しているデータが、必要データであるか不要データであるかを振り分ける。これにより、アプリケーション1の全ての必要データにはマークが付けられ、不要データにはマークが付けられていない状態となる(S402)。図8には、必要データとしてマークが付けられたデータを「アプリ1−1」〜「アプリ1−16」の16のデータとして示した。
(3)次に、ガーベージコレクション実行部120は、マークが付けられていないデータを不要データとして回収し、不要データが配置されていた領域を空き領域とする(S403)。図8は、不要データを回収した後のメモリ領域の状態を示している。図8において、「アプリ1−1」〜「アプリ1−16」の16個のデータが必要データとして残存する。「破線の空白」は、不要データが回収された空き領域を示している。
(4)最後に、ガーベージコレクション実行部120は、マークが付けられているデータを必要データとして再配置する(S404)。図9は、ガーベージコレクション実行後のメモリ領域の状態を示している。再配置の対象となるブロックは、アプリケーション1に割り当てられているメモリ領域であるブロック1、ブロック3、ブロック4、ブロック6である。図9では、図8に示した「アプリ1−1」〜「アプリ1−16」の必要データが、ガーベージコレクション実行部120により、ブロック1、ブロック2に再配置されている様子を示している。この結果、アプリケーション1のデータは、ブロック1とブロック3に再配置される。そして、ブロック4とブロック6には、アプリケーション1のデータが存在しない状態となる。
(5)ガーベージコレクション実行部120は、ブロック4とブロック6が空き領域になったことをメモリ管理部110に通知する(S405)。
(6)メモリ管理部110は、ブロック4とブロック6を未使用ブロックとしてブロック管理情報141に登録する。
(7)以上により、アプリケーション2のメモリ領域の使用状況に関係なく、アプリケーション1に対してガーベージコレクション処理を実行し、空き領域を作ることができる。
(a)未使用ブロックの残り数が予め設定した閾値を下回った場合に、そのガーベージコレクションを実行する。
(b)新たにアプリケーションが起動された場合に、ガーベージコレクションを実行する。
(c)実行中のアプリケーションが休眠した場合に、ガーベージコレクションを実行する。
次に、図11〜15を用いて実施の形態2について説明する。図11は、実施の形態2のアプリケーション処理装置200のブロック図である。図12は、アプリケーション処理装置200のガーベージコレクション実行対象選択部130の動作を示すフローチャートである図13は、アプリケーションにブロックを割り当てた時刻を追加したブロック管理情報220を示す図である。図14は、アプリケーションにガーベージコレクションを実行した時刻を有するガーベージコレクション管理情報231を示す図である。図15は、GC許可フラグを追加したガーベージコレクション管理情報232を示す図である。
(1)まず、状態管理タイプ1の場合を説明する。実施の形態1と同様にアプリケーション1とアプリケーション2が実行中とする。
(2)メモリ管理部110は、図7のように、アプリケーション1にブロック1、ブロック3、ブロック4、ブロック6を割り当て、アプリケーション2にブロック2、ブロック5を割り当てている状態とする。
(3)この状態において、ユーザの要求等によりアプリケーション1の実行を停止し、休眠状態に遷移させる場合を想定する。
(4)休眠状態へ遷移させる場合に、ガーベージコレクション実行対象選択部130が、アプリケーション状態管理部210の管理するアプリケーションの状態(遷移状態)に基づき、アプリケーション1をガーベージコレクション対象として選択し、ガーベージコレクションを実行する場合を説明する。
(1)ガーベージコレクション実行対象選択部130には、ガーベージコレクション対象を選択する条件として、実行状態から休眠状態に遷移するアプリケーションを予め設定しておく(S501)。
(2)アプリケーション状態管理部210は、実行中のアプリケーションの状態を監視し、実行中のアプリケーションが休眠状態に遷移するのを待つ(S502)。
(3)ユーザの要求等によりアプリケーション1の実行が停止され、アプリケーション1が休眠状態すると、アプリケーション状態管理部210は、監視の結果、アプリケーション1が実行中から休眠に遷移したことを確認する。そして、アプリケーション状態管理部210は、休眠に遷移したことをガーベージコレクション実行対象選択部130に通知する(S503)。
(4)ガーベージコレクション実行対象選択部130は、この通知を受けることにより、アプリケーション1がガーベージコレクション対象アプリケーションとして選択される条件に適合したことを検知する。そして、ガーベージコレクション実行対象選択部130は、アプリケーション1をガーベージコレクション対象アプリケーションとして選択する(S504)。
(5)ガーベージコレクション実行対象選択部130は、ガーベージコレクション実行部120にアプリケーション1に対するガーベージコレクション実行を要求する(S505)。
(6)ガーベージコレクション実行部120は、アプリケーション1に対して、記憶領域である各ブロックを対象にガーベージコレクションを実行する。
(1)アプリケーション状態管理部210は、「アプリケーションの状態」として、すでに休眠中のアプリケーションが存在するかを監視し、休眠中のアプリケーションをガーベージコレクション実行対象選択部130に通知する。
(2)ガーベージコレクション実行対象選択部130は、休眠中のアプリケーションをガーベージコレクション対象として選択するように予め設定されている。ガーベージコレクション実行対象選択部130は、アプリケーション状態管理部210からの通知により、該当するアプリケーションを選択する。
(3)ガーベージコレクション実行部120は、ガーベージコレクション実行対象選択部130が選択したアプリケーションに対してガーベージコレクションを実行する。
(4)以上の状態管理タイプ2により、メモリ領域の枯渇等が原因となりガーベージコレクションが必要になった場合に、休眠中のアプリケーションをガーベージコレクション対象として選択させ、空き領域を作ることができる。また、これにより、実行中のアプリケーションのメモリ利用に影響を与えることなく、ガーベージコレクションを実行することができる。
(1)アプリケーション状態管理部210は、「アプリケーションの状態」として、アプリケーションに割り当てられているメモリ領域の大きさを監視し、メモリ領域の多いアプリケーションをガーベージコレクション実行対象選択部130に通知する。
(2)ガーベージコレクション実行対象選択部130は、割り当てられているメモリ領域の多いアプリケーションをガーベージコレクション対象として選択するように予め設定されている。ガーベージコレクション実行対象選択部130は、アプリケーション状態管理部210からの通知により、該当するアプリケーションを選択する。
(3)ガーベージコレクション実行部120は、ガーベージコレクション実行対象選択部130が選択したアプリケーションに対してガーベージコレクションを実行する。
(4)以上の状態管理タイプ3により、メモリ領域の枯渇等が原因となりガーベージコレクションが必要になった場合に、多くのメモリ領域を使用しているアプリケーションをガーベージコレクション対象として選択し、空き領域を作ることができる。これにより少数のアプリケーションに対するガーベージコレクションの処理により、効率的にメモリの空き領域を作ることができる。
(1)メモリ管理部110は図13に示すように、ブロック管理情報220において、メモリ管理部110がアプリケーションにブロックを割り当てた「ブロック割当時刻」を記録する。
(2)アプリケーション状態管理部210は、「アプリケーションの状態」として、ブロック管理情報220に記録された「ブロック割当時刻」を監視し、「ブロック割当時刻」が新しいアプリケーションをガーベージコレクション実行対象選択部130に通知する。図13では、ブロック4が一番新しく割り当てられたブロックである。よって、アプリケーション状態管理部210は、アプリケーション1の「ブロック割当時刻」が一番新しいことをガーベージコレクション実行対象選択部130に通知する。
(3)ガーベージコレクション実行対象選択部130は、「ブロック割当時刻」が新しいアプリケーションをガーベージコレクション対象として選択するように予め設定されている。ガーベージコレクション実行対象選択部130は、アプリケーション状態管理部210からの通知により、該当するアプリケーション1を選択する。
(4)以上の状態管理タイプ4により、メモリ領域の枯渇等が原因となりガーベージコレクションが必要になった場合に、新しいデータを多く含むアプリケーションをガーベージコレクション対象として選択させ、空き領域を作ることができる。このため、少数のアプリケーションに対するガーベージコレクションの処理により、効率的に空き領域を作ることができる。
(1)アプリケーション状態管理部210は、図14に示すような、アプリケーションに対するガーベージコレクション処理の実行時刻が登録されているガーベージコレクション管理情報231を備えている。ガーベージコレクション実行部120は、ガーベージコレクションを実行した場合に、アプリケーションごとにそのGC実行時刻をガーベージコレクション管理情報231に登録する。
(2)アプリケーション状態管理部210は、「アプリケーションの状態」として、ガーベージコレクション管理情報231に登録された「GC実行時刻」を監視し、前回の「GC実行時刻」のより古いアプリケーションをガーベージコレクション実行対象選択部130に通知する。図14では、アプリケーション1が前回のGC実行から最も時間が経過している。よって、アプリケーション状態管理部210は、アプリケーション1の「GC実行時刻」が最も古いことをガーベージコレクション実行対象選択部130に通知する。
(3)ガーベージコレクション実行対象選択部130は、前回ガーベージコレクションを実行した時刻が古いアプリケーションをガーベージコレクション実行対象として選択するように予め設定されている。ガーベージコレクション実行対象選択部130は、アプリケーション状態管理部210からの通知により、該当するアプリケーション1を選択する。
(4)以上の状態管理タイプ5により、メモリ領域の枯渇等が原因となりガーベージコレクションが必要になった場合に、不要なデータを多く含むアプリケーションをガーベージコレクション対象として選択させ、空き領域を作ることができる。
(5)以上のように、GC実行時刻をガーベージコレクション管理情報231に登録することにより、次回にガーベージコレクション実行対象選択部130がガーベージコレクション対象を選択する場合に、前回のガーベージコレクションから最も時間が経過しているアプリケーションを選択することができる。これにより少数のアプリケーションに対するガーベージコレクションの処理により、効率的に空き領域を作ることができる。
(6)また、アプリケーションによっては、できるだけガーベージコレクションを実行させたくない場合も存在する。そこで、図15に示すように、ガーベージコレクション管理情報232に、さらに「GC許可フラグ」を付加し、アプリケーション状態管理部210は「GC許可フラグ」が「GC許可」のアプリケーションだけを通知するようにしてもよい。
次に、図16、図17を用いて実施の形態3について説明する。図16は、実施の形態3のアプリケーション処理装置300のブロック図である。図17は、低速メモリへのデータの移動を示す図である。実施の形態3は、実施の形態1のアプリケーション処理装置100に対して、さらに、記憶部140とは異なる低速メモリ310(第2記憶部の一例)を備えたアプリケーション処理装置200に関する。ガーベージコレクション実行後に必要データとして残存するデータを低速メモリ310に移動する実施形態である。この低速メモリ310は、記憶部140よりもアクセス速度が遅い。
(1)実施の形態2の状態管理タイプ1の場合と同様に、アプリケーション1とアプリケーション2が実行中であるとする。図2、図7の場合と同様に、メモリ管理部110は、アプリケーション1に対してブロック1、ブロック3、ブロック4、ブロック6を割り当て、アプリケーション2に対してブロック2、ブロック5を割り当てている状態である。
(2)この状態において、実施の形態2の状態管理タイプ1の場合と同様に、ユーザの要求等によりアプリケーション1の実行を停止し、休眠状態へと遷移させる。この場合に、ガーベージコレクション実行対象選択部130が休眠へと遷移するアプリケーション1をガーベージコレクション対象として選択し、ガーベージコレクション実行部120によりガーベージコレクションを実行する。アプリケーション1のガーベージコレクションが完了すると、図9と同様に、アプリケーション1のデータは、ブロック1とブロック3だけに存在する状態となる(「アプリ1−1」〜「アプリ1−16」)。
(3)ガーベージコレクション実行後、メモリ管理部110は、図17に示すように、ブロック1とブロック3の残存データ(「アプリ1−1」〜「アプリ1−16」)を低速メモリ310に転送(移動)する。この結果、図17の記憶部140のブロック1、ブロック3は空き領域になる。
(4)そして、メモリ管理部110は、ブロック1とブロック3を未使用ブロックとしてブロック管理情報141に登録する。
次に、図18〜図20を用いて実施の形態4を説明する。図18は、実施の形態4のアプリケーション処理装置400のブロック図である。図19は、アプリケーション状態管理情報421を示す図である。図20は、アプリケーション状態管理情報422を示す図である。
次に、図21〜図33を用いて実施の形態5について説明する。図21は、実施の形態5のアプリケーション処理装置500の構成図である。図22は、アプリケーション1とアプリケーション2へのブロックの割り当て状況を示す図である。図23は、1回目の新世代ガーベージコレクション実行前のメモリ領域の状態を示す図である。図24は、1回目の新世代ガーベージコレクション実行後のメモリ領域の状態を示す図である。図25は、2回目の新世代ガーベージコレクション実行前のメモリ領域の状態を示す図である。図26は、2回目の新世代ガーベージコレクション実行後のメモリ領域の状態を示す図である。図27は、3回目の新世代ガーベージコレクション実行前のメモリ領域の状態を示す図である。図28は、3回目の新世代ガーベージコレクション実行後のメモリ領域の状態を示す図である。図29は、旧世代ガーベージコレクション実行前のメモリ領域の状態を示す図である。図30は、旧世代ガーベージコレクション実行後のメモリ領域の状態を示す図である。図31は、1回目の新世代ガーベージコレクションの実行のフローチャートである。図32は、2回目の新世代ガーベージコレクションの実行のフローチャートである。図33は、旧世代ガーベージコレクションの実行のフローチャートである。
(1)「データ生成領域」は、アプリケーションが新たに生成したデータを配置する領域である。
(2)「データ移動元領域」は、新世代ガーベージコレクションを実行する際に、データの移動元となる領域である。
(3)「データ移動先領域」は、新世代ガーベージコレクションを実行する際に、データの移動先となる領域である。
(1)アプリケーション1が実行中にデータを生成し、新世代領域内の「データ生成領域」を使い切るとする。図23は、「データ生成領域」を使い切った場合を示している。「データ生成領域」を使い切ると、世代別ガーベージコレクション実行部510は、アプリケーション1に対して1回目の新世代ガーベージコレクションの実行を開始する(S601)。
(2)世代別ガーベージコレクション実行部510は、ブロック管理情報を参照し、アプリケーション1の新世代領域がブロック1であるという情報を得る(S602)。
(3)世代別ガーベージコレクション実行部510は、新世代領域の「データ生成領域内」に存在するデータを、必要データと不要データに振り分ける(S603)。
(4)世代別ガーベージコレクション実行部510は、図24に示すように、必要データを「データ移動先領域」に再配置する一方、不要データを回収し空き領域として解放する。この結果、「データ生成領域内」の全ての必要データは「データ移動先領域」に再配置される。この結果、「データ生成領域」と「データ移動元領域」は空き領域となる(S604)。
(5)世代別ガーベージコレクション実行部510は、「データ移動先領域」に再配置したデータの年齢を1歳増加させる(S605)。図24では、1歳増加させた年齢を「(1)」と記載している。
(6)世代別ガーベージコレクション実行部510は、「データ移動先領域」を「データ移動元領域」に名称変更し、「データ移動元領域」を「データ移動先領域」に名称変更し、1回目の新世代ガーベージコレクションの処理を完了する(S606)。図24は、1回目の新世代ガーベージコレクションが終了した状態を示している。なお、図24は「データ移動先領域」と「データ移動元領域」との名称を変更する前の状態を示している。
(1)再び新世代領域内の「データ生成領域」を使い切ると、世代別ガーベージコレクション実行部510は、アプリケーション1に対して、2回目の新世代ガーベージコレクションを実行する(S701)。
(2)世代別ガーベージコレクション実行部510は、ブロック管理情報を参照し、アプリケーション1の新世代領域がブロック1であるという情報を得る(S702)。
(3)世代別ガーベージコレクション実行部510は、新世代領域の「データ生成領域内」に存在するデータ、及び「データ移動元領域内」に存在する年齢が「1歳」のデータについて、必要データと不要データに振り分ける(S703)。このように「データ移動元領域内」に存在するデータについても必要データ、不要データにデータを振り分ける点が、1回目の新世代ガーベージコレクションと相違している。
(4)世代別ガーベージコレクション実行部510は、図26に示すように、必要データを「データ移動先領域」に再配置する一方、不要データを回収して空き領域として解放する。なお図26では、この2回目の新世代ガーベージコレクションにおいて、「データ移動先領域」と「データ移動元領域」との名称を変更する「前」の状態を示している。最終的に全ての必要データは図26に示す「データ移動先領域」に再配置され、「データ生成領域」と「データ移動元領域」は空き領域となる(S704)。
(5)世代別ガーベージコレクション実行部510は、「データ移動先領域」に再配置されたデータの年齢を1歳増加させる(S705)。すなわち、「データ生成領域」から「データ移動先領域」に再配置されたデータは年齢が「1歳」となり、図26に「アプリ1(1)」と示している。また、「データ移動元領域」から「データ移動先領域」に再配置されたデータは、年齢が「2歳」となり、図26に「アプリ1(2)」と示している。
(6)世代別ガーベージコレクション実行部510は、「データ移動先領域」をデータ移動元領域に名称変更し、「データ移動元領域」を「データ移動先領域」に名称変更し、2回目の新世代ガーベージコレクションの処理を完了する(S706)。
(1)図29に示すように、旧世代データがブロック2の「旧世代領域内」のデータ生成領域を使い切ると、世代別ガーベージコレクション実行部510は、アプリケーション1に対して、旧世代のブロックのブロックを対象として、旧世代ガーベージコレクションを実行する(S801)。
(2)世代別ガーベージコレクション実行部510は、ブロック管理情報を参照し、アプリケーション1の旧世代領域が「ブロック2」であるという情報を得る(S802)。
(3)世代別ガーベージコレクション実行部510は、ブロック2における「旧世代領域」のデータ生成領域内に存在するデータについて、必要データと不要データに振り分ける(S803)。
(4)世代別ガーベージコレクション実行部510は、図30に示すように、不要データを回収して空き領域として解放した後、必要データをブロック2の「旧世代領域内」で再配置し、旧世代ガーベージコレクションの処理を完了する(S804)。
次に、図34〜図36を用いて実施の形態6を説明する。実施の形態6は、実施の形態1のアプリケーション処理装置100の動作を、方法、プログラム及びプログラムを記録した記録媒体により実施する実施形態である。
(1)S801において、記憶領域を複数のブロックに分割し、分割したブロックを単位としてアプリケーションプログラムに記憶領域を割り当てる。
(2)S802において、アプリケーションプログラムに割り当てた記憶領域を示すブロックを対象としてガーベージコレクションを実行する。
(1)S901において、記憶領域を複数のブロックに分割し、分割したブロックを単位として複数のアプリケーションプログラムに記憶領域を割り当てる。
(2)S902において、記憶領域を占有するアプリケーションプログラムのデータの少なくとも一部を回収して回収したデータが占有していた記憶領域を解放するガーベージコレクションを実行する場合に、ブロックを単位として記憶領域を割り当てた複数のアプリケーションプログラムの中からガーベージコレクションを実行するアプリケーションプログラムを選択する。
ガーベージコレクション実行プログラムの実施形態とすることができる。また、ガーベージコレクション実行プログラムをコンピュータ読み取り可能な記録媒体に記録させることで、ガーベージコレクション実行プログラムを記録したコンピュータ読み取り可能な記録媒体の実施の形態とすることができる。図35に工程を示した記憶領域管理方法についても同様である。
Claims (10)
- アプリケーションプログラムのデータが自己の有する記憶領域を占有する場合に、記憶領域を占有するデータの少なくとも一部を回収して回収したデータが占有していた記憶領域を解放するガーベージコレクションを実行するアプリケーション処理装置において、
データを記憶する記憶領域を有する記憶部と、
前記記憶部の有する記憶領域を複数のブロックに分割し、分割したブロックを単位としてアプリケーションプログラムに記憶領域を割り当てる記憶領域管理部と、
前記記憶領域管理部がアプリケーションプログラムに割り当てた記憶領域を示すブロックを対象としてガーベージコレクションを実行するガーベージコレクション実行部と
を備えたことを特徴とするアプリケーション処理装置。 - 前記記憶領域管理部は、
複数のアプリケーションプログラムの少なくとも2つに対して、分割したブロックを単位として記憶領域を割り当て、
前記アプリケーション処理装置は、さらに、
前記記憶領域管理部がブロックを単位として記憶領域を割り当てた少なくとも2つのアプリケーションプログラムの中から、ガーベージコレクションを実行するアプリケーションプログラムを選択するガーベージコレクション実行対象選択部を備え、
前記ガーベージコレクション実行部は、
前記ガーベージコレクション実行対象選択部が選択したアプリケーションプログラムに対してガーベージコレクションを実行することを特徴とする請求項1記載のアプリケーション処理装置。 - 前記アプリケーション処理装置は、さらに、
アプリケーションプログラムの状態を管理するアプリケーション状態管理部を備え、
前記ガーベージコレクション実行対象選択部は、
前記アプリケーション状態管理部が管理するアプリケーションプログラムの状態に基づいて、ガーベージコレクションを実行するアプリケーションプログラムを選択することを特徴とする請求項2記載のアプリケーション処理装置。 - 前記アプリケーション処理装置は、さらに、
ガーベージコレクションを実行する実行条件を受け付けて、受け付けた実行条件を設定する実行条件設定部と、
前記実行条件設定部が設定した実行条件に基づいてガーベージコレクションを実行するかどうかを判定する実行判定部とを備え、
前記ガーベージコレクション実行部は、
前記実行判定部の判定結果に従ってガーベージコレクションを実行することを特徴とする請求項1記載のアプリケーション処理装置。 - 前記アプリケーション処理装置は、さらに、
アプリケーションプログラムの状態を管理するアプリケーション状態管理部と、
前記アプリケーション状態管理部が管理するアプリケーションプログラムの状態に基づいて、前記ガーベージコレクション実行部がガーベージコレクションを実行する実行時間を制御する実行時間制御部と
を備えたことを特徴とする請求項1記載のアプリケーション処理装置。 - 前記アプリケーション処理装置は、さらに、
前記記憶部と異なる第2記憶部を備え、
前記記憶領域管理部は、
前記ガーベージコレクション実行部がガーベージコレクションを実行した後に回収されずに残存する残存データを前記第2記憶部に移動することを特徴とする請求項1記載のアプリケーション処理装置。 - 前記ガーベージコレクション実行部は、
ガーベージコレクションを実行した後に回収されずに残存する残存データをガーベージコレクションの実行を受けた回数に基づいて2以上の世代に分類し、分類した世代ごとにガーベージコレクションを実行することを特徴とする請求項1記載のアプリケーション処理装置。 - アプリケーションプログラムのデータが記憶領域を占有する場合に記憶領域を占有するデータの少なくとも一部を回収して回収したデータが占有していた記憶領域を解放するガーベージコレクションを実行するガーベージコレクション実行方法において、
記憶領域を複数のブロックに分割し、分割したブロックを単位としてアプリケーションプログラムに記憶領域を割り当てる工程と、
アプリケーションプログラムに割り当てた記憶領域を示すブロックを対象としてガーベージコレクションを実行する工程と
を備えたことを特徴とするガーベージコレクション実行方法。 - 複数のアプリケーションプログラムに記憶領域を割り当て、割り当てた記憶領域を管理する記憶領域管理方法において、
記憶領域を複数のブロックに分割し、分割したブロックを単位として複数のアプリケーションプログラムに記憶領域を割り当てる工程と、
記憶領域を占有するアプリケーションプログラムのデータの少なくとも一部を回収して回収したデータが占有していた記憶領域を解放するガーベージコレクションを実行する場合に、ブロックを単位として記憶領域を割り当てた複数のアプリケーションプログラムの中からガーベージコレクションを実行するアプリケーションプログラムを選択する工程と
を備えたことを特徴とする記憶領域管理方法。 - アプリケーションプログラムのデータが記憶領域を占有する場合に記憶領域を占有するデータの少なくとも一部を回収して回収したデータが占有していた記憶領域を解放するガーベージコレクションを実行するガーベージコレクション実行プログラムにおいて、
記憶領域を複数のブロックに分割し、分割したブロックを単位としてアプリケーションプログラムに記憶領域を割り当てる処理と、
アプリケーションプログラムに割り当てた記憶領域を示すブロックを対象としてガーベージコレクションを実行する処理と
をコンピュータに実行させることを特徴とするガーベージコレクション実行プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004323548A JP4641176B2 (ja) | 2004-11-08 | 2004-11-08 | アプリケーション処理装置及びアプリケーション処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004323548A JP4641176B2 (ja) | 2004-11-08 | 2004-11-08 | アプリケーション処理装置及びアプリケーション処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006134136A true JP2006134136A (ja) | 2006-05-25 |
JP4641176B2 JP4641176B2 (ja) | 2011-03-02 |
Family
ID=36727623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004323548A Expired - Fee Related JP4641176B2 (ja) | 2004-11-08 | 2004-11-08 | アプリケーション処理装置及びアプリケーション処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4641176B2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011058768A1 (ja) * | 2009-11-12 | 2011-05-19 | 株式会社日立製作所 | メモリ管理方法、計算機システム及びプログラム |
JP2016512362A (ja) * | 2013-03-11 | 2016-04-25 | アマゾン テクノロジーズ インク | コンピューティング環境での追跡アプリケーション使用法 |
KR20160071685A (ko) * | 2014-12-12 | 2016-06-22 | 국민대학교산학협력단 | 스크래치패드 메모리 관리 방법, 이를 수행하는 스크래치패드 메모리 관리 장치 및 이를 저장하는 기록매체 |
US9798657B2 (en) | 2014-10-15 | 2017-10-24 | Samsung Electronics Co., Ltd. | Data storage device including nonvolatile memory device and operating method thereof |
WO2020044671A1 (ja) * | 2018-08-30 | 2020-03-05 | ソニー株式会社 | ストレージコントローラ、ストレージシステムおよび情報処理システム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11212808A (ja) * | 1997-11-21 | 1999-08-06 | Omron Corp | プログラム制御装置とメモリ割当装置および方法 |
JP2000222281A (ja) * | 1998-06-30 | 2000-08-11 | Sun Microsyst Inc | マルチスレッド仮想マシン内におけるメモリ・アロケ―ションの方法及び装置 |
JP2001014215A (ja) * | 1999-07-01 | 2001-01-19 | Matsushita Electric Ind Co Ltd | プログラム実行装置 |
JP2002259146A (ja) * | 2000-05-15 | 2002-09-13 | Matsushita Electric Ind Co Ltd | アプリケーション実行装置及び方法 |
-
2004
- 2004-11-08 JP JP2004323548A patent/JP4641176B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11212808A (ja) * | 1997-11-21 | 1999-08-06 | Omron Corp | プログラム制御装置とメモリ割当装置および方法 |
JP2000222281A (ja) * | 1998-06-30 | 2000-08-11 | Sun Microsyst Inc | マルチスレッド仮想マシン内におけるメモリ・アロケ―ションの方法及び装置 |
JP2001014215A (ja) * | 1999-07-01 | 2001-01-19 | Matsushita Electric Ind Co Ltd | プログラム実行装置 |
JP2002259146A (ja) * | 2000-05-15 | 2002-09-13 | Matsushita Electric Ind Co Ltd | アプリケーション実行装置及び方法 |
Non-Patent Citations (1)
Title |
---|
CSNG200000041005, 高岡詠子 外1名, "セル消費監視プロセスの設置によるGeneration Scavenging GC", 情報処理学会研究報告, 19910913, 第91巻,第78号(91−SYM−61), p.1−7, JP, 社団法人情報処理学会 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011058768A1 (ja) * | 2009-11-12 | 2011-05-19 | 株式会社日立製作所 | メモリ管理方法、計算機システム及びプログラム |
JP2011107746A (ja) * | 2009-11-12 | 2011-06-02 | Hitachi Ltd | メモリ管理方法、計算機システム及びプログラム |
JP2016512362A (ja) * | 2013-03-11 | 2016-04-25 | アマゾン テクノロジーズ インク | コンピューティング環境での追跡アプリケーション使用法 |
US10440132B2 (en) | 2013-03-11 | 2019-10-08 | Amazon Technologies, Inc. | Tracking application usage in a computing environment |
US9798657B2 (en) | 2014-10-15 | 2017-10-24 | Samsung Electronics Co., Ltd. | Data storage device including nonvolatile memory device and operating method thereof |
US10133665B2 (en) | 2014-10-15 | 2018-11-20 | Samsung Electronics Co., Ltd. | Data storage device including nonvolatile memory device and operating method thereof |
US10671524B2 (en) | 2014-10-15 | 2020-06-02 | Samsung Electronics Co,. Ltd. | Data storage device including nonvolatile memory device and operating method thereof |
KR20160071685A (ko) * | 2014-12-12 | 2016-06-22 | 국민대학교산학협력단 | 스크래치패드 메모리 관리 방법, 이를 수행하는 스크래치패드 메모리 관리 장치 및 이를 저장하는 기록매체 |
KR101700315B1 (ko) * | 2014-12-12 | 2017-01-26 | 국민대학교산학협력단 | 스크래치패드 메모리 관리 방법, 이를 수행하는 스크래치패드 메모리 관리 장치 및 이를 저장하는 기록매체 |
WO2020044671A1 (ja) * | 2018-08-30 | 2020-03-05 | ソニー株式会社 | ストレージコントローラ、ストレージシステムおよび情報処理システム |
Also Published As
Publication number | Publication date |
---|---|
JP4641176B2 (ja) | 2011-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102206364B1 (ko) | 메모리 리클레임 방법 및 장치 | |
KR100725410B1 (ko) | 전원 상태에 따라 비휘발성 메모리의 블록 회수를 수행하는장치 및 그 방법 | |
US10241836B2 (en) | Resource management in a virtualized computing environment | |
WO2017022002A1 (ja) | ストレージ装置、ストレージシステム、ストレージシステムの制御方法 | |
US9361300B2 (en) | Controlling filling levels of storage pools | |
JPH0792775B2 (ja) | 外部記憶装置群のスペース管理方法 | |
US7836344B2 (en) | Method for automatic dump assurance | |
TW201250471A (en) | Managing data placement on flash-based storage by use | |
CN107239412B (zh) | 基于Thin-LUN的存储空间配置方法、数据写入方法及存储设备 | |
US20090150633A1 (en) | Apparatus for managing memory in real-time embedded system and method of allocating, deallocating and managing memory in real-time embedded system | |
US11842046B2 (en) | Storage fragment management method and terminal | |
WO2015058493A1 (zh) | 一种存储数据处理方法及装置 | |
JP4905810B2 (ja) | ストレージ装置、領域割り当て方法、及びプログラム | |
JP5218985B2 (ja) | メモリ管理方法計算機システム及びプログラム | |
CN103455433A (zh) | 内存管理方法及系统 | |
CN112631520A (zh) | 分布式块存储系统、方法、装置、设备和介质 | |
JP4641176B2 (ja) | アプリケーション処理装置及びアプリケーション処理プログラム | |
CN107329797B (zh) | 一种实例弹性伸缩方法、实例管理模块以及计算设备 | |
CN107111549B (zh) | 一种文件系统的管理方法及装置 | |
CN115543859A (zh) | 多分区ssd的磨损均衡优化方法、装置、设备及介质 | |
CN114153392A (zh) | 一种对象存储数据存储管理方法、装置及设备 | |
JP2008139907A (ja) | ジョブ割当プログラム及びジョブ割当方法 | |
JP2006039942A (ja) | 階層記憶システムにおけるファイル管理装置及びそのファイル管理方法 | |
WO2008044865A1 (en) | Device and method for allocating memory of terminal device | |
CN110199265B (zh) | 存储装置和存储区域管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070615 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100727 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100831 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101012 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101105 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20101124 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101126 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131210 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |