JP2009266113A - メモリ管理方法およびシステム - Google Patents

メモリ管理方法およびシステム Download PDF

Info

Publication number
JP2009266113A
JP2009266113A JP2008117590A JP2008117590A JP2009266113A JP 2009266113 A JP2009266113 A JP 2009266113A JP 2008117590 A JP2008117590 A JP 2008117590A JP 2008117590 A JP2008117590 A JP 2008117590A JP 2009266113 A JP2009266113 A JP 2009266113A
Authority
JP
Japan
Prior art keywords
area
garbage collection
termination
endable
ending
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.)
Pending
Application number
JP2008117590A
Other languages
English (en)
Inventor
Hiroshi Inoue
拓 井上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2008117590A priority Critical patent/JP2009266113A/ja
Priority to US12/430,473 priority patent/US8126941B2/en
Publication of JP2009266113A publication Critical patent/JP2009266113A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0269Incremental or concurrent garbage collection, e.g. in real-time systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

【課題】終了メソッドを持つオブジェクトを含む場合にも、copying GCを効率良く行う手法を提供する。
【解決手段】メモリ領域に設けられたヒープ120が、オブジェクトの割り当てに使用されている使用領域(領域A)および次にオブジェクトの割り当てに使用されるTo領域(領域B)を含む複数の領域に分割されており、ガーベージ・コレクションにおいて、使用領域に割り当てられているオブジェクトのうち、ルートセット110から到達可能なオブジェクトをTo領域にコピーする。また、使用領域に割り当てられているオブジェクトのうち、ルートセット110から到達できず、かつ終了メソッドを持つオブジェクトである終了可能オブジェクトを、終了処理の対象とする。そして、ガーベージ・コレクションの終了後に、使用領域に割り当てられており、終了処理の対象である終了可能オブジェクトに対する終了処理を実行する。
【選択図】図2

Description

本発明は、メモリ管理方法およびシステムに関し、特に、ガーベージ・コレクションに関する。
Java(米国サン・マイクロシステムズ社の登録商標)言語等、メモリ管理機能としてガーベージ・コレクションを有する言語では、ガーベージ・コレクションを実行する際に、資源の解放などの処理を行うためのメソッド(例えば、Javaのfinalizeメソッド、以下「終了メソッド」と呼ぶ)を定義できるものがある。ガーベージ・コレクションにおいて回収可能(使用されない)と判断されたオブジェクト(以下「回収可能(unreachable)オブジェクト」と呼ぶ)が終了メソッドを持たない場合、この回収可能オブジェクトは直ちに回収される。一方、回収可能オブジェクトが終了メソッドを持つ場合(以下、この終了メソッドを持つ回収可能オブジェクトを「終了可能(finalizable)オブジェクト」と呼ぶ)、この終了可能オブジェクトを直ちに回収するのではなく、まず終了メソッドを実行する必要がある。そして、終了処理(finalize処理)を実行するスレッド(以下「終了処理スレッド」と呼ぶ)により終了メソッドが実行された後に(通常は次のガーベージ・コレクションの実行サイクルで)、終了可能オブジェクトが回収される。
ガーベージ・コレクションには、いくつかの種類が存在し、代表的なガーベージ・コレクションのひとつに、copying GCと呼ばれる手法がある(例えば、非特許文献1参照)。このcopying GCでは、ヒープ全体を2つ(もしくはそれ以上)の領域に分け、そのうち1つを使って新しいオブジェクトの割り当てが行われる。そして、使用している領域(以下「使用領域」と呼ぶ)の空きが無くなると、ガーベージ・コレクションが起動する。そして、ルートセットから到達可能(reachable)なオブジェクト(すなわち、使用される可能性のあるオブジェクト)が、これまで新しいオブジェクトの割り当てに使われていた使用領域以外の1つの領域(以下「To領域」と呼ぶ)にコピーされる。ガーベージ・コレクションの終了後は、To領域のうち、コピーされたオブジェクトの次の位置から新しいオブジェクトの割り当てが行われる。
C. J. Cheney, "A Nonrecursive List Compacting Algorithm", Communications of the ACM 13 (11), 1970.
上記のように、終了メソッドを持つ終了可能オブジェクトに対しては、終了メソッドが実行された後にオブジェクトの回収が行われる。このとき、終了メソッドを実行するためには、終了可能オブジェクトから到達可能(finalizer-reachable)な全てのオブジェクトの回収を、終了メソッドが終了するまで遅らせなければならない。したがって、ガーベージ・コレクションの実装においては、次のような手続が実行されることとなる。
1.ルートセット(スタックなど)から到達可能なオブジェクトを探索。
2.上記探索の結果から判別された終了可能オブジェクトを終了処理スレッドの処理待ちキュー(finalize queue)に追加。
3.終了可能オブジェクトから到達可能なオブジェクトを再度探索。
4.不要なオブジェクトを回収。
終了メソッドを持つオブジェクトを大量に生成するワークロードにおいては、大量の終了可能オブジェクトおよび終了可能オブジェクトから到達可能なオブジェクトによってメモリの回収率が低下する。そのため、ガーベージ・コレクションの頻度が増加し、さらにガーベージ・コレクションの実行時間が増大してしまう。
上記のように、copying GCでは、ガーベージ・コレクションの際にヒープが現在使用されている使用領域からTo領域へ移行する。そのため、ルートセットから到達できない回収可能オブジェクトであっても、それが終了メソッドを実行するために直ちに回収できない終了可能オブジェクトである場合は、一旦To領域へコピーする必要がある。そのため、ルートセットから到達可能なオブジェクト以外のオブジェクトをコピーする操作が行われることとなり、効率の低下を招く。
本発明は、これらの課題を解決し、終了メソッドを持つオブジェクトを含む場合にもガーベージ・コレクションを効率良く行う手法を提供することを目的とする。
上記の目的を達成するため、本発明は、次のようなメモリ管理方法として実現される。この方法は、copying GCによるガーベージ・コレクションを行うメモリ管理方法において、メモリ領域に設けられたヒープ領域が、オブジェクトの割り当てに使用されている第1領域およびガーベージ・コレクション後にオブジェクトの割り当てに使用される第2領域を含む複数の領域に分割されており、ガーベージ・コレクションにおいて、第1領域に割り当てられているオブジェクトのうち、ルートセットから到達可能なオブジェクトを第2領域にコピーするステップと、第1領域に割り当てられているオブジェクトのうち、ルートセットから到達できず、かつ終了メソッドを持つオブジェクトである終了可能オブジェクトを、終了処理の対象とするステップと、ガーベージ・コレクションの終了後に、第1領域に割り当てられており、終了処理の対象である終了可能オブジェクトに対する終了処理を実行するステップと、を含む。
第1領域における終了可能オブジェクトおよび終了可能オブジェクトからのみ到達可能なオブジェクトが割り当てられている領域は、終了処理が終了した後に解放される。
また、本発明による他のメモリ管理方法は、copying GCによるガーベージ・コレクションを行うメモリ管理方法において、メモリ領域に設けられたヒープ領域が、オブジェクトの割り当てに使用されている第1領域およびガーベージ・コレクション後にオブジェクトの割り当てに使用される第2領域を含む複数の領域に分割されており、ガーベージ・コレクションにおいて、第1領域に割り当てられているオブジェクトのうち、ルートセットから到達可能なオブジェクトを第2領域にコピーするステップと、第1領域に割り当てられているオブジェクトのうち、ルートセットから到達できず、かつ終了メソッドを持つオブジェクトである終了可能オブジェクトを、この終了可能オブジェクトの終了メソッドを実行する終了処理スレッドにより使用される終了処理用キューに登録するステップと、終了可能オブジェクトが持つ終了メソッドにおいて、第2領域にコピーされたオブジェクトへの参照がある場合に、この参照の参照先を第2領域におけるオブジェクトに更新するステップと、ガーベージ・コレクションの終了後に、第1領域に割り当てられており、終了処理用キューに登録されている終了可能オブジェクトに対する終了処理を実行するステップと、次のガーベージ・コレクションの起動時に、終了処理用キューに未処理の終了可能オブジェクトがあるか否かを確認するステップと、を含み、未処理の終了可能オブジェクトがある場合は、その終了可能オブジェクトに対する終了処理が終了するのを待って次のガーベージ・コレクションを実行する。
また、本発明は、コンピュータに上記のメモリ管理方法における各ステップに対応する処理を実行させるプログラムとしても実現される。このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供することができる。
さらに本発明は、次のように構成されたシステムとしても実現される。このシステムは、copying GCによるガーベージ・コレクションを行うメモリ管理システムにおいて、オブジェクトの割り当てに使用されている第1領域およびガーベージ・コレクション後にオブジェクトの割り当てに使用される第2領域を含む複数の領域に分割されたヒープ領域を持つメモリと、第1領域に割り当てられているオブジェクトのうち、ルートセットから到達可能なオブジェクトを第2領域にコピーし、ルートセットから到達できず、かつ終了メソッドを持つオブジェクトである終了可能オブジェクトを、終了処理の対象とするガーベージ・コレクション実行手段と、ガーベージ・コレクションの終了後に、第1領域に割り当てられており、終了処理の対象である終了可能オブジェクトに対する終了処理を実行する終了処理実行手段と、を備える。
以上のように構成された本発明によれば、終了メソッドを持つオブジェクトを含む場合にも、copying GCによるガーベージ・コレクションを効率良く行うことができる。
以下、添付図面を参照して、本発明の実施形態について詳細に説明する。
本実施形態は、copying GCによるガーベージ・コレクションを対象とする。本実施形態が適用されるコンピュータ・システムでは、大まかに次のような手順でガーベージ・コレクションが実行される。なお、以下の説明において、回収可能オブジェクト、終了可能オブジェクト、終了可能オブジェクトからのみ到達可能なオブジェクトは、いずれもルートセットから到達できないオブジェクトである。
1.まず、ルートセットから到達可能なオブジェクトをTo領域にコピーする。一方、終了可能オブジェクトおよび終了可能オブジェクトからのみ到達可能なオブジェクトはTo領域にコピーしない。
2.終了処理スレッドが、元の領域(それまで使用領域であった領域)に保持されているオブジェクトに対して終了処理を実行する。
3.次回のガーベージ・コレクションの起動時に、前回のガーベージ・コレクションにおいて認識された終了可能オブジェクトに対する終了処理が終了していることを確認する。
上記の手法により、従来のcopying GCと比べて、終了可能オブジェクトおよび終了可能オブジェクトからのみ到達可能なオブジェクトについては、To領域へコピーする操作が省略されることとなる。ただし、上記のようにシステムは、次にガーベージ・コレクションが起動して元の領域が再利用される前に終了可能オブジェクトおよび終了可能オブジェクトからのみ到達可能なオブジェクトが安全に回収されることを保証するために、終了処理が終了していることを確認する。ガーベージ・コレクションの起動時に前回のガーベージ・コレクションで終了処理の対象として認識された終了可能オブジェクトに対する終了処理が済んでいないときは、システムは、終了処理が終了するのを待ってガーベージ・コレクションを実行する。
次に、具体的なメモリ構造の例を示しながら、本実施形態によるガーベージ・コレクションについて詳細に説明する。
図1は、本実施形態によるガーベージ・コレクションが行われるメモリ構造の例を示す図である。
図1に示す例では、メモリ100のメモリ領域に、ルートセット110と、ヒープ120と、終了処理スレッドの処理待ちキューである終了処理用キュー130とが設けられている。ヒープ120は、領域Aと領域Bの二つの領域に分けられており、ガーベージ・コレクションが行われるたびに、使用領域が交互に入れ替わるものとする。
図1の状態では、領域Aが使用領域であり、領域BがTo領域である。使用領域である領域Aには、四つのオブジェクト(objA、objB、objC、objD)が割り当てられている。これらのオブジェクトのうち、objAは、ルートセット110から到達可能なオブジェクトである。objBは、ルートセット110から到達できず、終了メソッドを持たない回収可能オブジェクトである。objCは、ルートセット110から到達できず、終了メソッドを持つ終了可能オブジェクトである。objDは、objC(終了可能オブジェクト)からのみ到達可能なオブジェクトである。図1において、矢印は、その矢印が指すオブジェクトへの参照を示す。
図2は、図1の状態でガーベージ・コレクションが行われた様子を示す図である。
図2を参照すると、objAは、ルートセット110から到達可能であり、ガーベージ・コレクションによる回収対象ではないため、To領域である領域Bにコピーされている。また、領域AにおいてobjAが割り当てられていた領域は解放されている。なお、図2において、コピーは白抜きの矢印で示し、解放された領域は破線で示している。objBは、回収可能オブジェクトであったので、領域AにおいてobjBが割り当てられていた領域は解放されている。objCおよびobjDは、領域Bにコピーされておらず、領域Aに残されている。また、objCが終了処理用キュー130に登録され、objCを参照している。これ以降、新しいオブジェクトの割り当ては領域Bにおいて行われ、objCの終了メソッドによる終了処理は、領域Aに残されているobjCおよびobjDに対して行われる。
ところで、終了処理において、終了可能オブジェクトから到達可能なオブジェクトは、終了可能オブジェクトからのみ到達可能なオブジェクトとは限らない。図1、2に示した例では、objDはobjCからのみ到達可能である。しかし、終了処理によっては、objCからobjAのようなルートセット110からも到達可能なオブジェクトを参照する場合もあり得る。この場合は、オブジェクトがコピーされる際に生成された、領域Bのコピー先を示すポインタ(Forwardingポインタ)に基づいて、コピー先のオブジェクトを参照するように、終了処理におけるobjCからの参照先を更新する必要がある。この参照先の更新は、ガーベージ・コレクションを実行した際に行っても良いし、終了メソッドの実行時に行っても良い。
図3は、本実施形態のガーベージ・コレクションにおける処理の流れを示すフローチャートである。
メモリ構造は図1に示した構造とし、いま、オブジェクトは領域Aに割り当てられるものとする。システムにおけるプログラムの実行が進み、領域Aの空き容量が無くなると、ガーベージ・コレクションが起動する。図3に示すように、ガーベージ・コレクションが起動すると、まず、終了処理用キュー130が空か否かがチェックされる(ステップ301)。終了処理用キュー130が空でない場合、まず終了処理スレッドにより、終了処理用キュー130に登録されている全ての終了可能オブジェクトの終了メソッドが実行され(ステップ302)、ガーベージ・コレクションは終了処理の終了待ちとなる。
終了処理用キュー130が空の場合、または終了処理が終了した後、ガーベージ・コレクションが実行され、まずルートセット110から到達可能な全てのオブジェクトがスキャンされて、領域Bへコピーされる(ステップ303)。そして、領域Bにコピーされたオブジェクトおよび回収可能オブジェクトが割り当てられていた領域Aの領域が解放される。
次に、領域Aに残っている終了可能オブジェクトが終了処理用キュー130に登録される(ステップ304)。この登録により、この終了可能オブジェクトは、終了処理スレッドによる終了処理の対象となる。次に、終了可能オブジェクトから到達可能な全てのオブジェクトがスキャンされ、ルートセット110からも到達可能なオブジェクトを指す参照がある場合は、その参照先が更新される(ステップ305)。なお、上述のように、ステップ305の参照先の更新は、ガーベージ・コレクションの終了後、終了処理の実行時に行っても良い。
以上のようにしてガーベージ・コレクションが終了すると、システムは、通常のプログラムの処理に戻る。これ以降、新しいオブジェクトは使用領域となった領域Bに割り当てられる。また、終了処理スレッドは、この通常のプログラムの処理と並行して、ステップ304で終了処理用キュー130に登録された終了可能オブジェクトに対する終了処理を実行する。終了処理は、処理対象である終了可能オブジェクトが持つ終了メソッドを実行することで行われる。この後、システムにおけるプログラムの実行が進み、領域Bの空き容量が無くなると、再びガーベージ・コレクションが起動する。この後、新しいオブジェクトは再び使用領域となった領域Aに割り当てられる。
ここで、本実施形態との比較のために、図1の状態のメモリ100に対して従来の方法でガーベージ・コレクションが行われた様子を図4に示す。
従来のガーベージ・コレクションでは、ガーベージ・コレクションの終了後に終了処理を実行するために、直ちに回収できる回収可能オブジェクト以外は全て、To領域である領域Bにコピーされる。図4を参照すると、objAに加えてobjCおよびobjDも領域Bにコピーされている。したがって、本実施形態によるガーベージ・コレクションを示す図2と図4とを比較すると、本実施形態では、終了可能オブジェクトおよび終了可能オブジェクトからのみ到達可能なオブジェクトをコピーしない分だけ、オーバーヘッドを削減することができる。
なお、本実施形態によれば、次のガーベージ・コレクションの起動時に、既に終了処理用キュー130が空になっていることを確認する。そして、終了処理用キュー130が空でない場合は、終了処理が終了するのを待つ。しかし、終了処理用キュー130を確認する処理は、上記のオーバーヘッドの削減と比べて問題となるほどのコストは要しない。また、実際には、次回のガーベージ・コレクションのサイクルまでに終了処理は終了しているので、この待ち合わせによるオーバーヘッドが問題となることはほとんどない。
最後に、本実施形態によるメモリ管理を実行するシステムのハードウェア構成について説明する。
図5は、本実施形態が適用されるコンピュータのハードウェア構成例を示す図である。
図5に示すコンピュータ10は、演算手段であるCPU(Central Processing Unit)10aと、記憶手段であるメイン・メモリ10cおよび磁気ディスク装置(HDD:Hard Disk Drive)10gを備える。また、ネットワークを介して外部装置に接続するためのネットワーク・インタフェース・カード10fと、表示出力を行うためのビデオ・カード10dおよび表示装置10jと、音声出力を行うための音声機構10hとを備える。さらに、キーボードやマウス等の入力デバイス10iを備える。
図5に示すように、メイン・メモリ10cおよびビデオ・カード10dは、システム・コントローラ10bを介してCPU10aに接続されている。また、ネットワーク・インタフェース・カード10f、磁気ディスク装置10g、音声機構10hおよび入力デバイス10iは、I/Oコントローラ10eを介してシステム・コントローラ10bと接続されている。各構成要素は、システム・バスや入出力バス等の各種のバスによって接続される。例えば、CPU10aとメイン・メモリ10cの間は、システム・バスやメモリ・バスにより接続される。また、CPU10aと磁気ディスク装置10g、ネットワーク・インタフェース・カード10f、ビデオ・カード10d、音声機構10h、入力デバイス10i等との間は、PCI(Peripheral Components Interconnect)、PCI Express、シリアルATA(AT Attachment)、USB(Universal Serial Bus)、AGP(Accelerated Graphics Port)等の入出力バスにより接続される。
なお、図5は、本実施形態が適用されるのに好適なコンピュータのハードウェア構成を例示するに過ぎず、実際の各サーバが図示の構成に限定されないことは言うまでもない。例えば、ビデオ・カード10dを設ける代わりに、ビデオメモリのみを搭載し、CPU10aにてイメージ・データを処理する構成としても良い。また、音声機構10hを独立した構成とせず、システム・コントローラ10bやI/Oコントローラ10eを構成するチップセットの機能として備えるようにしても良い。また、補助記憶装置として磁気ディスク装置10gの他に、各種の光学ディスクやフレキシブル・ディスクをメディアとするドライブを設けても良い。表示装置10jとしては、主として液晶ディスプレイが用いられるが、その他、CRTディスプレイやプラズマ・ディスプレイ等、任意の方式のディスプレイを用いて良い。
図5に示したようなコンピュータにおいて、プログラムはメイン・メモリ10cに読み込まれ、CPU10aにより実行される。CPU10aによりプログラムが実行されることで実現されるメモリ管理機能において、上記の本実施形態のガーベージ・コレクションに関する各処理が実行される。すなわち、このプログラムにより制御されたCPU10aが、図6に示すような、ガーベージ・コレクションを実行するガーベージ・コレクション実行部61および終了処理を実行する終了処理実行部(終了処理スレッド)62として機能する。
以上、本実施形態について説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。例えば、上記実施形態では、ヒープを2分割してcopying GCを行った例について説明したが、ヒープを3つ以上の領域に分割して行っても良い。その他、上記実施形態に、種々の変更または改良を加えたものも、本発明の技術的範囲に含まれることは、特許請求の範囲の記載から明らかである。
本実施形態によるガーベージ・コレクションが行われるメモリ構造の例を示す図である。 図1の状態でガーベージ・コレクションが行われた様子を示す図である。 本実施形態のガーベージ・コレクションにおける処理の流れを示すフローチャートである。 図1の状態のメモリに対して従来の方法でガーベージ・コレクションが行われた様子を示す図である。 本実施形態が適用されるコンピュータのハードウェア構成例を示す図である。 本実施形態が適用されるシステムの機能構成例を示す図である。
符号の説明
10a…CPU、61…ガーベージ・コレクション実行部、62…終了処理実行部、100…メモリ、110…ルートセット、120…ヒープ、130…終了処理用キュー

Claims (10)

  1. ガーベージ・コレクションを行うメモリ管理方法において、
    メモリ領域に設けられたヒープ領域が、オブジェクトの割り当てに使用されている第1領域およびガーベージ・コレクション後にオブジェクトの割り当てに使用される第2領域を含む複数の領域に分割されており、
    前記ガーベージ・コレクションにおいて、前記第1領域に割り当てられているオブジェクトのうち、ルートセットから到達可能なオブジェクトを前記第2領域にコピーするステップと、
    前記ガーベージ・コレクションにおいて、前記第1領域に割り当てられているオブジェクトのうち、ルートセットから到達できず、かつ終了メソッドを持つオブジェクトである終了可能オブジェクトを、終了処理の対象とするステップと、
    前記ガーベージ・コレクションの終了後に、前記第1領域に割り当てられており、終了処理の対象である前記終了可能オブジェクトに対する終了処理を実行するステップと、
    を含む、方法。
  2. 前記第1領域における前記終了可能オブジェクトおよび当該終了可能オブジェクトからのみ到達可能なオブジェクトが割り当てられている領域は、前記終了処理が終了した後に解放される、請求項1に記載の方法。
  3. 前記ガーベージ・コレクションの起動時に、前回のガーベージ・コレクションで終了処理の対象とされた前記終了可能オブジェクトに対する終了処理が終了しているか否かを確認するステップをさらに含み、
    前記終了処理が終了していない場合は、当該終了処理が終了するのを待って前記ガーベージ・コレクションを実行する、請求項1に記載の方法。
  4. 前記終了可能オブジェクトが持つ前記終了メソッドにおいて、前記第2領域にコピーされた前記オブジェクトへの参照がある場合に、当該参照の参照先を当該第2領域における当該オブジェクトに更新するステップをさらに含む、請求項1に記載の方法。
  5. 前記参照先を更新するステップは、前記ガーベージ・コレクションの実行時または前記終了処理の実行時に実行される、請求項4に記載の方法。
  6. 前記終了可能オブジェクトを終了処理の対象とするステップでは、当該終了可能オブジェクトが前記終了メソッドを実行する終了処理スレッドにより使用される終了処理用キューに登録される、請求項1に記載の方法。
  7. 前記ガーベージ・コレクションの起動時に、前記終了処理用キューに未処理の前記終了可能オブジェクトがあるか否かを確認するステップをさらに含み、
    未処理の前記終了可能オブジェクトがある場合は、当該終了可能オブジェクトに対する終了処理が終了するのを待って前記ガーベージ・コレクションを実行する、請求項6に記載の方法。
  8. ガーベージ・コレクションを行うメモリ管理方法において、
    メモリ領域に設けられたヒープ領域が、オブジェクトの割り当てに使用されている第1領域およびガーベージ・コレクション後にオブジェクトの割り当てに使用される第2領域を含む複数の領域に分割されており、
    前記ガーベージ・コレクションにおいて、前記第1領域に割り当てられているオブジェクトのうち、ルートセットから到達可能なオブジェクトを前記第2領域にコピーするステップと、
    前記ガーベージ・コレクションにおいて、前記第1領域に割り当てられているオブジェクトのうち、ルートセットから到達できず、かつ終了メソッドを持つオブジェクトである終了可能オブジェクトを、当該終了可能オブジェクトの終了メソッドを実行する終了処理スレッドにより使用される終了処理用キューに登録するステップと、
    前記終了可能オブジェクトが持つ前記終了メソッドにおいて、前記第2領域にコピーされた前記オブジェクトへの参照がある場合に、当該参照の参照先を当該第2領域における当該オブジェクトに更新するステップと、
    前記ガーベージ・コレクションの終了後に、前記第1領域に割り当てられており、前記終了処理用キューに登録されている前記終了可能オブジェクトに対する終了処理を実行するステップと、
    次のガーベージ・コレクションの起動時に、前記終了処理用キューに未処理の前記終了可能オブジェクトがあるか否かを確認するステップと、を含み、
    未処理の前記終了可能オブジェクトがある場合は、当該終了可能オブジェクトに対する終了処理が終了するのを待って前記次のガーベージ・コレクションを実行する、方法。
  9. コンピュータに、
    オブジェクトの割り当てに使用されている第1領域およびガーベージ・コレクション後にオブジェクトの割り当てに使用される第2領域を含む複数の領域に分割された、メモリ上のヒープ領域に対して実行されるガーベージ・コレクションにおいて、前記第1領域に割り当てられているオブジェクトのうち、ルートセットから到達可能なオブジェクトを前記第2領域にコピーする処理と、
    前記ガーベージ・コレクションにおいて、前記第1領域に割り当てられているオブジェクトのうち、ルートセットから到達できず、かつ終了メソッドを持つオブジェクトである終了可能オブジェクトを、終了処理の対象とする処理とを実行させ、
    前記ガーベージ・コレクションの終了後に、前記第1領域に割り当てられており、終了処理の対象である前記終了可能オブジェクトに対する終了処理を実行させる、プログラム。
  10. ガーベージ・コレクションを行うメモリ管理システムにおいて、
    オブジェクトの割り当てに使用されている第1領域およびガーベージ・コレクション後にオブジェクトの割り当てに使用される第2領域を含む複数の領域に分割されたヒープ領域を持つメモリと、
    前記第1領域に割り当てられているオブジェクトのうち、ルートセットから到達可能なオブジェクトを前記第2領域にコピーし、ルートセットから到達できず、かつ終了メソッドを持つオブジェクトである終了可能オブジェクトを、終了処理の対象とするガーベージ・コレクション実行手段と、
    ガーベージ・コレクションの終了後に、前記第1領域に割り当てられており、終了処理の対象である前記終了可能オブジェクトに対する終了処理を実行する終了処理実行手段と、
    を備える、システム。
JP2008117590A 2008-04-28 2008-04-28 メモリ管理方法およびシステム Pending JP2009266113A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008117590A JP2009266113A (ja) 2008-04-28 2008-04-28 メモリ管理方法およびシステム
US12/430,473 US8126941B2 (en) 2008-04-28 2009-04-27 Memory management method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008117590A JP2009266113A (ja) 2008-04-28 2008-04-28 メモリ管理方法およびシステム

Publications (1)

Publication Number Publication Date
JP2009266113A true JP2009266113A (ja) 2009-11-12

Family

ID=41216048

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008117590A Pending JP2009266113A (ja) 2008-04-28 2008-04-28 メモリ管理方法およびシステム

Country Status (2)

Country Link
US (1) US8126941B2 (ja)
JP (1) JP2009266113A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110321005A1 (en) * 2010-06-24 2011-12-29 Antonio Lain Compaction and de-allocation of partial objects through scheduling a transaction
WO2012105927A1 (en) * 2011-01-31 2012-08-09 The Mathworks Inc. System and method for determining an object's lifetime in a object oriented environment
US9146862B2 (en) * 2013-07-18 2015-09-29 International Business Machines Corporation Optimizing memory usage across multiple garbage collected computer environments
TWI619069B (zh) * 2015-09-02 2018-03-21 輝達公司 記憶體管理系統和方法
US10459656B1 (en) 2018-06-25 2019-10-29 International Business Machines Corporation Method and apparatus to represent activation frame for pause-less garbage collection

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081665A (en) * 1997-12-19 2000-06-27 Newmonics Inc. Method for efficient soft real-time execution of portable byte code computer programs
JP2000322315A (ja) * 1999-04-23 2000-11-24 Internatl Business Mach Corp <Ibm> データを管理する方法及び装置
JP2002519750A (ja) * 1998-06-20 2002-07-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ガ−べジコレクタ用の記憶済みデータオブジェクトのマーク付け方法
US7069279B1 (en) * 2002-11-04 2006-06-27 Savaje Technologies, Inc. Timely finalization of system resources

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081665A (en) * 1997-12-19 2000-06-27 Newmonics Inc. Method for efficient soft real-time execution of portable byte code computer programs
JP2002519750A (ja) * 1998-06-20 2002-07-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ガ−べジコレクタ用の記憶済みデータオブジェクトのマーク付け方法
JP2000322315A (ja) * 1999-04-23 2000-11-24 Internatl Business Mach Corp <Ibm> データを管理する方法及び装置
US7069279B1 (en) * 2002-11-04 2006-06-27 Savaje Technologies, Inc. Timely finalization of system resources

Also Published As

Publication number Publication date
US20090271460A1 (en) 2009-10-29
US8126941B2 (en) 2012-02-28

Similar Documents

Publication Publication Date Title
JP5212360B2 (ja) 制御プログラム、制御システムおよび制御方法
US8499010B2 (en) Garbage collection in a multiple virtual machine environment
US20190384515A1 (en) Method for configuring resources, electronic device and computer program product
JP7280508B2 (ja) 情報処理装置、情報処理方法および仮想マシン接続管理プログラム
US20120303913A1 (en) Transparent file system migration to a new physical location
CN100451966C (zh) 发现数据处理系统内的硬件的方法和设备
US8966130B2 (en) Tag allocation for queued commands across multiple devices
JP2008293149A (ja) 予知型データ移行を行う階層ストレージシステム
CN109325016B (zh) 数据迁移方法、装置、介质及电子设备
US11256533B1 (en) Transparent disk caching for virtual machines and applications
JP2009266113A (ja) メモリ管理方法およびシステム
US20140089557A1 (en) Image storage optimization in virtual environments
JP5531476B2 (ja) 情報処理装置及び情報処理プログラム
JP2011053862A (ja) メモリ管理方法、計算機システム及びプログラム
JP6069962B2 (ja) 情報処理装置、領域解放制御プログラム、および領域解放制御方法
US10552318B2 (en) Working set adjustment in a managed environment
US20170357657A1 (en) Systems and methods for implementing dynamic file systems
JP2009104443A (ja) Osの起動方法
JP2010231295A (ja) 解析システム
JP4548505B2 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2016184310A (ja) 情報処理システム、制御装置および情報処理システムの制御方法
JP2021509509A (ja) 同時コピー・ガベージ・コレクションのためのコピーおよび転送
JP2021002125A (ja) 管理装置,情報処理システムおよび管理プログラム
JP7080698B2 (ja) 情報処理装置
JP2009251681A (ja) スタック領域の拡張方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130312

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20130314