JP2009266113A - メモリ管理方法およびシステム - Google Patents
メモリ管理方法およびシステム Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0269—Incremental 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
【解決手段】メモリ領域に設けられたヒープ120が、オブジェクトの割り当てに使用されている使用領域(領域A)および次にオブジェクトの割り当てに使用されるTo領域(領域B)を含む複数の領域に分割されており、ガーベージ・コレクションにおいて、使用領域に割り当てられているオブジェクトのうち、ルートセット110から到達可能なオブジェクトをTo領域にコピーする。また、使用領域に割り当てられているオブジェクトのうち、ルートセット110から到達できず、かつ終了メソッドを持つオブジェクトである終了可能オブジェクトを、終了処理の対象とする。そして、ガーベージ・コレクションの終了後に、使用領域に割り当てられており、終了処理の対象である終了可能オブジェクトに対する終了処理を実行する。
【選択図】図2
Description
2.上記探索の結果から判別された終了可能オブジェクトを終了処理スレッドの処理待ちキュー(finalize queue)に追加。
3.終了可能オブジェクトから到達可能なオブジェクトを再度探索。
4.不要なオブジェクトを回収。
第1領域における終了可能オブジェクトおよび終了可能オブジェクトからのみ到達可能なオブジェクトが割り当てられている領域は、終了処理が終了した後に解放される。
本実施形態は、copying GCによるガーベージ・コレクションを対象とする。本実施形態が適用されるコンピュータ・システムでは、大まかに次のような手順でガーベージ・コレクションが実行される。なお、以下の説明において、回収可能オブジェクト、終了可能オブジェクト、終了可能オブジェクトからのみ到達可能なオブジェクトは、いずれもルートセットから到達できないオブジェクトである。
2.終了処理スレッドが、元の領域(それまで使用領域であった領域)に保持されているオブジェクトに対して終了処理を実行する。
3.次回のガーベージ・コレクションの起動時に、前回のガーベージ・コレクションにおいて認識された終了可能オブジェクトに対する終了処理が終了していることを確認する。
図1は、本実施形態によるガーベージ・コレクションが行われるメモリ構造の例を示す図である。
図1に示す例では、メモリ100のメモリ領域に、ルートセット110と、ヒープ120と、終了処理スレッドの処理待ちキューである終了処理用キュー130とが設けられている。ヒープ120は、領域Aと領域Bの二つの領域に分けられており、ガーベージ・コレクションが行われるたびに、使用領域が交互に入れ替わるものとする。
図2を参照すると、objAは、ルートセット110から到達可能であり、ガーベージ・コレクションによる回収対象ではないため、To領域である領域Bにコピーされている。また、領域AにおいてobjAが割り当てられていた領域は解放されている。なお、図2において、コピーは白抜きの矢印で示し、解放された領域は破線で示している。objBは、回収可能オブジェクトであったので、領域AにおいてobjBが割り当てられていた領域は解放されている。objCおよびobjDは、領域Bにコピーされておらず、領域Aに残されている。また、objCが終了処理用キュー130に登録され、objCを参照している。これ以降、新しいオブジェクトの割り当ては領域Bにおいて行われ、objCの終了メソッドによる終了処理は、領域Aに残されているobjCおよびobjDに対して行われる。
メモリ構造は図1に示した構造とし、いま、オブジェクトは領域Aに割り当てられるものとする。システムにおけるプログラムの実行が進み、領域Aの空き容量が無くなると、ガーベージ・コレクションが起動する。図3に示すように、ガーベージ・コレクションが起動すると、まず、終了処理用キュー130が空か否かがチェックされる(ステップ301)。終了処理用キュー130が空でない場合、まず終了処理スレッドにより、終了処理用キュー130に登録されている全ての終了可能オブジェクトの終了メソッドが実行され(ステップ302)、ガーベージ・コレクションは終了処理の終了待ちとなる。
従来のガーベージ・コレクションでは、ガーベージ・コレクションの終了後に終了処理を実行するために、直ちに回収できる回収可能オブジェクト以外は全て、To領域である領域Bにコピーされる。図4を参照すると、objAに加えてobjCおよびobjDも領域Bにコピーされている。したがって、本実施形態によるガーベージ・コレクションを示す図2と図4とを比較すると、本実施形態では、終了可能オブジェクトおよび終了可能オブジェクトからのみ到達可能なオブジェクトをコピーしない分だけ、オーバーヘッドを削減することができる。
図5は、本実施形態が適用されるコンピュータのハードウェア構成例を示す図である。
図5に示すコンピュータ10は、演算手段であるCPU(Central Processing Unit)10aと、記憶手段であるメイン・メモリ10cおよび磁気ディスク装置(HDD:Hard Disk Drive)10gを備える。また、ネットワークを介して外部装置に接続するためのネットワーク・インタフェース・カード10fと、表示出力を行うためのビデオ・カード10dおよび表示装置10jと、音声出力を行うための音声機構10hとを備える。さらに、キーボードやマウス等の入力デバイス10iを備える。
Claims (10)
- ガーベージ・コレクションを行うメモリ管理方法において、
メモリ領域に設けられたヒープ領域が、オブジェクトの割り当てに使用されている第1領域およびガーベージ・コレクション後にオブジェクトの割り当てに使用される第2領域を含む複数の領域に分割されており、
前記ガーベージ・コレクションにおいて、前記第1領域に割り当てられているオブジェクトのうち、ルートセットから到達可能なオブジェクトを前記第2領域にコピーするステップと、
前記ガーベージ・コレクションにおいて、前記第1領域に割り当てられているオブジェクトのうち、ルートセットから到達できず、かつ終了メソッドを持つオブジェクトである終了可能オブジェクトを、終了処理の対象とするステップと、
前記ガーベージ・コレクションの終了後に、前記第1領域に割り当てられており、終了処理の対象である前記終了可能オブジェクトに対する終了処理を実行するステップと、
を含む、方法。 - 前記第1領域における前記終了可能オブジェクトおよび当該終了可能オブジェクトからのみ到達可能なオブジェクトが割り当てられている領域は、前記終了処理が終了した後に解放される、請求項1に記載の方法。
- 前記ガーベージ・コレクションの起動時に、前回のガーベージ・コレクションで終了処理の対象とされた前記終了可能オブジェクトに対する終了処理が終了しているか否かを確認するステップをさらに含み、
前記終了処理が終了していない場合は、当該終了処理が終了するのを待って前記ガーベージ・コレクションを実行する、請求項1に記載の方法。 - 前記終了可能オブジェクトが持つ前記終了メソッドにおいて、前記第2領域にコピーされた前記オブジェクトへの参照がある場合に、当該参照の参照先を当該第2領域における当該オブジェクトに更新するステップをさらに含む、請求項1に記載の方法。
- 前記参照先を更新するステップは、前記ガーベージ・コレクションの実行時または前記終了処理の実行時に実行される、請求項4に記載の方法。
- 前記終了可能オブジェクトを終了処理の対象とするステップでは、当該終了可能オブジェクトが前記終了メソッドを実行する終了処理スレッドにより使用される終了処理用キューに登録される、請求項1に記載の方法。
- 前記ガーベージ・コレクションの起動時に、前記終了処理用キューに未処理の前記終了可能オブジェクトがあるか否かを確認するステップをさらに含み、
未処理の前記終了可能オブジェクトがある場合は、当該終了可能オブジェクトに対する終了処理が終了するのを待って前記ガーベージ・コレクションを実行する、請求項6に記載の方法。 - ガーベージ・コレクションを行うメモリ管理方法において、
メモリ領域に設けられたヒープ領域が、オブジェクトの割り当てに使用されている第1領域およびガーベージ・コレクション後にオブジェクトの割り当てに使用される第2領域を含む複数の領域に分割されており、
前記ガーベージ・コレクションにおいて、前記第1領域に割り当てられているオブジェクトのうち、ルートセットから到達可能なオブジェクトを前記第2領域にコピーするステップと、
前記ガーベージ・コレクションにおいて、前記第1領域に割り当てられているオブジェクトのうち、ルートセットから到達できず、かつ終了メソッドを持つオブジェクトである終了可能オブジェクトを、当該終了可能オブジェクトの終了メソッドを実行する終了処理スレッドにより使用される終了処理用キューに登録するステップと、
前記終了可能オブジェクトが持つ前記終了メソッドにおいて、前記第2領域にコピーされた前記オブジェクトへの参照がある場合に、当該参照の参照先を当該第2領域における当該オブジェクトに更新するステップと、
前記ガーベージ・コレクションの終了後に、前記第1領域に割り当てられており、前記終了処理用キューに登録されている前記終了可能オブジェクトに対する終了処理を実行するステップと、
次のガーベージ・コレクションの起動時に、前記終了処理用キューに未処理の前記終了可能オブジェクトがあるか否かを確認するステップと、を含み、
未処理の前記終了可能オブジェクトがある場合は、当該終了可能オブジェクトに対する終了処理が終了するのを待って前記次のガーベージ・コレクションを実行する、方法。 - コンピュータに、
オブジェクトの割り当てに使用されている第1領域およびガーベージ・コレクション後にオブジェクトの割り当てに使用される第2領域を含む複数の領域に分割された、メモリ上のヒープ領域に対して実行されるガーベージ・コレクションにおいて、前記第1領域に割り当てられているオブジェクトのうち、ルートセットから到達可能なオブジェクトを前記第2領域にコピーする処理と、
前記ガーベージ・コレクションにおいて、前記第1領域に割り当てられているオブジェクトのうち、ルートセットから到達できず、かつ終了メソッドを持つオブジェクトである終了可能オブジェクトを、終了処理の対象とする処理とを実行させ、
前記ガーベージ・コレクションの終了後に、前記第1領域に割り当てられており、終了処理の対象である前記終了可能オブジェクトに対する終了処理を実行させる、プログラム。 - ガーベージ・コレクションを行うメモリ管理システムにおいて、
オブジェクトの割り当てに使用されている第1領域およびガーベージ・コレクション後にオブジェクトの割り当てに使用される第2領域を含む複数の領域に分割されたヒープ領域を持つメモリと、
前記第1領域に割り当てられているオブジェクトのうち、ルートセットから到達可能なオブジェクトを前記第2領域にコピーし、ルートセットから到達できず、かつ終了メソッドを持つオブジェクトである終了可能オブジェクトを、終了処理の対象とするガーベージ・コレクション実行手段と、
ガーベージ・コレクションの終了後に、前記第1領域に割り当てられており、終了処理の対象である前記終了可能オブジェクトに対する終了処理を実行する終了処理実行手段と、
を備える、システム。
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)
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)
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 |
-
2008
- 2008-04-28 JP JP2008117590A patent/JP2009266113A/ja active Pending
-
2009
- 2009-04-27 US US12/430,473 patent/US8126941B2/en not_active Expired - Fee Related
Patent Citations (4)
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 |