JP2001184254A - ガーベージコレクション機能を有する情報処理装置およびその方法ならびに記録媒体 - Google Patents

ガーベージコレクション機能を有する情報処理装置およびその方法ならびに記録媒体

Info

Publication number
JP2001184254A
JP2001184254A JP36852799A JP36852799A JP2001184254A JP 2001184254 A JP2001184254 A JP 2001184254A JP 36852799 A JP36852799 A JP 36852799A JP 36852799 A JP36852799 A JP 36852799A JP 2001184254 A JP2001184254 A JP 2001184254A
Authority
JP
Japan
Prior art keywords
space
garbage collection
pointer
program
copying
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
JP36852799A
Other languages
English (en)
Inventor
Shigeru Yoshimura
茂 吉村
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP36852799A priority Critical patent/JP2001184254A/ja
Publication of JP2001184254A publication Critical patent/JP2001184254A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)

Abstract

(57)【要約】 【課題】ガーベジコレクションの際のリードバリアを低
減すること。 【解決手段】ガーベジコレクションの最中にスレッド4
01から、from空間101内のオブジェクトへの参
照・更新処理が発生した場合、GCスレッド402は、
これを例外処理として実行する。この例外処理は、参照
・更新対象となったオブジェクトをGC用from空間
103から、to空間102へ複写すると共に、スレッ
ド410から参照・更新が可能なようにポインタを変更
する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、実行中の利用者プ
ログラムと並行して不要な記憶領域を回収するガーベジ
コレクション技術の改良に関する。
【0002】
【従来の技術】ガーベジコレクションは、並行して実行
される利用者プログラムから参照不可能なオブジェクト
を識別し、そのオブジェクトが占有する記憶領域を再利
用のために回収する処理である。ガーベジコレクション
の代表的なアルゴリズムとしては、マーク・スイープ方
式、複写方式等が知られている。
【0003】図8、図9は、ガーベジコレクションの処
理動作を説明するための模式的説明図である。ヒープ領
域12は、ガーベジコレクションの対象となる空間であ
り、記憶領域の割り当て・解放の単位がオブジェクト3
a、3b、3c、3d、3e、…、3nである。ルート
2は、オブジェクトへのポインタの、次の条件を満たす
集合である。その条件とは、この集合に属するポインタ
を出発点としてポインタをたどる処理を繰り返すことに
より到達できるオブジェクトの集合が、プログラム1か
ら参照可能なオブジェクト全体の集合に一致することで
ある。
【0004】複写方式のガーベジコレクションにおいて
は、ヒープ領域12を2つの連続する空間に分割し、オ
ブジェクトの割り当てを常に片方の空間のみから行う。
この2つの空間がfrom空間10とto空間11であ
る。オブジェクトは、from空間10の先頭から連続
的に割り当てられ、from空間10に十分な空き領域
が無くなるとガーベジコレクションが開始される。ガー
ベジコレクタ20は、プログラム1から参照可能なオブ
ジェクトをfrom空間10からto空間11へ複写
し、総ての参照可能なオブジェクトをto空間11へ複
写した後に、from空間10とto空間11とを交換
する。即ち、ごみを直接回収するのではなく、プログラ
ム1から参照可能な総てのオブジェクトをfrom空間
10からto空間11へ複写して、ごみのみが残された
from空間10全体を回収することによって、不要な
記憶領域の回収を行う。
【発明が解決しようとする課題】さて、このガーベジコ
レクションにおいては、ガーベジコレクタ20とプログ
ラム1とを並行動作させる場合、リードバリアと称され
るオーバヘッドが問題となることが知られている。
【0005】リードバリアとは、ガーベジコレクタ20
によって、プログラム1とは非同期に、オブジェクトが
再配置される可能性を考慮して、オブジェクトへのポイ
ンタが無効であるか有効であるかを(換言すれば、複写
移動後のものであって参照することが適切でないオブジ
ェクトなのか、あるいは、複写移動前のものであって参
照することが適切なオブジェクトであるのかを)、プロ
グラム1が実行するオブジェクト参照処理の総てにおい
て確認する必要性があるために発生するオーバヘッドで
ある。例えば、オブジェクトが有効であるか無効である
かを表すフラグをオブジェクト毎に持つようにすれば、
プログラム1がオブジェクトのメンバ変数を参照する度
に、このフラグを確認する必要が生じてしまい、プログ
ラム1の処理速度を著しく低下させるという問題があっ
た。
【0006】本発明は、このような従来の課題を解決す
るためになされたもので、リードバリアを低減するよう
にした情報処理装置およびガーベジコレクション方法な
らびに記録媒体を提供することを目的とする。
【課題を解決するための手段】上記目的を達成するため
に、本発明の内の請求項1に係る発明は、プログラムが
ポインタを用いることによって参照・更新可能なオブジ
ェクトをヒープ領域における一方の空間から他方の空間
へ複写してガベージコレクションを行う装置において、
前記ガーベジコレクションの開始に先だって、前記プロ
グラムが前記一方の空間に配置されるオブジェクトを参
照・更新することを禁止する参照更新禁止手段と、前記
ガーベジコレクションが実行され、前記プログラムが参
照・更新することを禁止されたオブジェクトを参照・更
新する処理を行う場合に、この処理に支障のないような
例外処理を行う例外処理手段と、を備え、前記例外処理
手段は、前記プログラムが参照・更新する、前記一方の
空間では参照・更新が禁止されたオブジェクトを、前記
他方の空間に複写すると共に、このオブジェクトに対す
るポインタを前記他方の空間におけるポインタに変更す
る手段であることを特徴とするガーベージコレクション
機能を有するようにした。
【0007】この請求項1に係る発明によれば、参照更
新禁止手段が、ガーベジコレクションの開始に先だっ
て、プログラムが一方の空間に配置されるオブジェクト
を参照・更新することを禁止し、次いで、例外処理手段
が、ガーベジコレクションが実行され、プログラムが参
照・更新することを禁止されたオブジェクトを参照・更
新する処理を行う場合に、この処理に支障のないような
例外処理を行う。
【0008】その例外時処理として、前記例外処理手段
は、前記プログラムが参照・更新する、前記一方の空間
では参照・更新が禁止されたオブジェクトを、前記他方
の空間に複写すると共に、このオブジェクトに対するポ
インタを前記他方の空間におけるポインタに変更する。
【0009】したがって、プログラムはオブジェクトの
参照・更新が禁止され、フラグの確認等の処理が不要と
なり、例外時にも対処しうるようにされているので、リ
ードバリアを低減することができる。
【0010】また、請求項2に係る発明は、請求項1に
記載の情報処理装置において、前記例外処理手段は、前
記一方の空間により参照・更新される仮想記憶に対して
別の空間を生成しておき、この生成しておいた空間か
ら、前記一方の空間では参照・更新が禁止されたオブジ
ェクトを、前記他方の空間に複写すると共に、このオブ
ジェクトに対するポインタを前記他方の空間におけるポ
インタに変更する手段であることを特徴とする。
【0011】この請求項2に係る発明においては、例外
処理手段は、一方の空間により参照・更新される仮想記
憶に対して別の空間を生成しておき、この生成しておい
た空間から、一方の空間では参照・更新が禁止されたオ
ブジェクトを、他方の空間に複写すると共に、このオブ
ジェクトに対するポインタを他方の空間におけるポイン
タに変更する。したがって、一方の空間に対して新たな
空間を生成する簡易な処理で、一方の空間でのオブジェ
クトの参照・更新を禁止してリードバリアを低減しつ
つ、他方の空間において必要なオブジェクトを参照・更
新することができるようになる。
【0012】また、請求項3に係る発明は、請求項1お
よび2の内のいずれか一項に記載の情報処理装置におい
て、前記プログラムが参照・更新することを禁止されて
いた前記一方の空間の参照・更新を可能とする参照更新
可能化手段を備えることを特徴とする。
【0013】この請求項3に係る発明によれば、参照更
新可能化手段が、プログラムが参照・更新することを禁
止されていた一方の空間の参照・更新を可能とすること
によって、ガーベジコレクション終了後に2つの空間の
役割を交換することが可能になる。
【0014】また、請求項4に係る発明は、プログラム
がポインタを用いることによって参照・更新可能なオブ
ジェクトをヒープ領域における一方の空間から他方の空
間へ複写してガベージコレクションを行う方法におい
て、前記ガーベジコレクションの開始に先だって、前記
プログラムが前記一方の空間に配置されたオブジェクト
を参照・更新することを禁止し、前記ガーベジコレクシ
ョンが実行され、前記プログラムが参照・更新が禁止さ
れたオブジェクトを参照・更新する処理を行う場合に、
このオブジェクトを前記他方の空間に複写する複写処理
を行うと共に、このオブジェクトに対するポインタを前
記他方の空間におけるポインタに変更する、ことを特徴
とするガベージコレクション方法である。
【0015】この請求項4に係る発明によれば、ガーベ
ジコレクションの開始に先だって、プログラムが一方の
空間に存在するオブジェクトを参照・更新することを禁
止し、次いで、ガーベジコレクションが実行され、プロ
グラムが参照・更新することが禁止されているオブジェ
クトを参照・更新する処理を行う場合に、このオブジェ
クトを他方の空間に複写する複写処理を行うと共に、こ
のオブジェクトに対するポインタを他方の空間における
ポインタに変更する。したがって、従来に比べてリード
バリアを低減しながら、必要なオブジェクトの参照・更
新処理を行うことができる。
【0016】また、請求項5に係る発明は、請求項4に
記載の方法において、前記一方の空間をページ単位にロ
ック・アンロック可能にしておき、前記複写処理を実行
する際に、この複写処理の対象となるオブジェクトに対
応する領域をページ単位でロックしておき、この複写処
理が完了した場合、ロックされていた領域をアンロック
する、ことを特徴とする。
【0017】この請求項5に係る発明においては、複写
処理を実行する際に、この複写処理の対象となるオブジ
ェクトが存在する領域をページ単位でロックしておき、
この複写処理が完了した場合、ロックされていた領域を
アンロックするので、例えば複数のスレッドが或るオブ
ジェクトを複写する場合でも複写処理が排他制御されな
がら、複写処理を適切に行うことができる。
【0018】また、請求項6に係る発明は、プログラム
がポインタを用いることによって参照・更新可能なオブ
ジェクトをヒープ領域における一方の空間から他方の空
間へ複写してガベージコレクション処理を実行するため
の処理プログラムを記録したコンピュータ読み取り可能
な記録媒体において、前記ガーベジコレクションの開始
に先だって、前記プログラムが前記一方の空間に存在す
るオブジェクトを参照・更新することを禁止する処理
と、前記ガーベジコレクションが実行され、前記プログ
ラムが参照・更新することが禁止されたオブジェクトを
参照・更新する処理を行う場合に、このオブジェクトを
前記他方の空間に複写する複写処理を行うと共に、この
オブジェクトに対するポインタを前記他方の空間におけ
るポインタに変更する処理と、を含む処理を実行するた
めの処理プログラムを記録したことを特徴とする記録媒
体である。
【0019】この請求項6に係る発明においても、従来
に比べてリードバリアを低減しながら、必要なオブジェ
クトの参照・更新処理を行うことができる。なお、この
ような記録媒体としては、ROM等の半導体記録媒体、
FD、HD等に磁気記録媒体、CDROM等の光記録媒
体等が挙げられる。
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照しつつ説明する。図1は、本発明の実施の形態の
装置の模式的な構成図である。図1に示すように、ガー
ベジコレクションの対象となるヒープ領域104は、f
rom空間101とto空間102とに分割される。さ
らに、ガーベジコレクタによるfrom空間101の参
照・更新を可能にするために、from空間101と同
一実体で論理アドレスが異なる仮想記憶空間であるGC
用from空間103が、ガーベジコレクション動作中
に存在する。
【0020】プロセス内のスレッドは、利用者プログラ
ムが動作する複数のスレッド(スレッド1〜n)401
と、ガーベジコレクションが動作する1つのスレッド4
02(「GC用スレッド」と称する)とから構成され
る。利用者プログラムが動作するスレッド401のそれ
ぞれに対して、オブジェクトへのポインタのルート30
1が設けられ、from空間101に存在するオブジェ
クトは、複写先のto空間102のオブジェクトへのポ
インタ201(「複写先ポインタ」と称する)を持つ。
なお、複写前のオブジェクトの複写先ポインタは、nu
llである。
【0021】また、図2に示すように、仮想記憶空間の
ページに対して参照・更新を禁止する命令510(DS
AB命令)と、参照・更新を可能にする命令502(E
NAB命令)とが実行可能になっている。後に説明する
が、DSAB命令501により参照・更新が禁止された
ページに対して参照・更新を実行すると、例外が発生
し、この例外は特別なクラスの例外としてソフトウエア
に通知される。
【0022】(動作概要)後にフローチャートを参照し
て詳細な動作説明をするが、本発明の理解の容易化のた
めに動作概要を説明しておく。図1に示すように、fr
om空間101には、スレッド401から参照・更新可
能なオブジェクトa、オブジェクトbが配置されてい
る。これらをto空間102に複写してガーベジコレク
ションを開始させるのに先だって、命令510を実行す
ることによって、スレッド401からはこれらオブジェ
クトの参照・更新が禁止される。その後、GCスレッド
402によってガーベジコレクションが開始され、オブ
ジェクトの複写が行われる。図中では、オブジェクト
a’が複写生成された状態を示している。
【0023】そして、ガーベジコレクションの最中にス
レッド401から、from空間101内のオブジェク
トへの参照・更新処理が発生した場合、GCスレッド4
02は、これを例外処理として実行する。この例外処理
は、前記参照・更新対象となったオブジェクトをGC用
from空間103から、to空間102へ複写すると
共に、スレッド401から参照・更新が可能なようにポ
インタを変更する。例えば、スレッド401がfrom
空間101のオブジェクトaを参照・更新する場合、G
Cスレッド402は、例外処理としてGC用from空
間103からオブジェクトaを複写して、オブジェクト
a’をto空間102に配置させると共に、ポインタ3
04をポインタ305に変更する。
【0024】したがって、ガーベジコレクションの開始
に先だって、スレッド401がfrom空間101に存
在するオブジェクトを参照・更新することを禁止し、次
いで、ガーベジコレクションが実行され、スレッド40
1が参照・更新が禁止されたオブジェクトを参照・更新
する処理を行う場合に、このオブジェクトをto空間1
02に複写する複写処理を行うと共に、このオブジェク
トに対するポインタをto空間102におけるポインタ
に変更するので、従来に比べてリードバリアを低減しな
がら、必要なオブジェクトの参照・更新処理を行うこと
ができる。
【0025】以下、フローチャートを参照しつつ詳細な
動作説明を行う。 (オブジェクト割り当て処理)この処理では、オブジェ
クトの複写先ポインタ201を「null」に初期設定
する。 (ガーベジコレクションの開始処理)GCスレッド40
2が、プログラムが動作する総てのスレッド401を停
止し(ステップS300)、全スレッド410のルート
301から直接参照されるfrom空間101のオブジ
ェクトをto空間102の先頭へ複写し、ルート301
に属するポインタとfrom空間101のオブジェクト
が持つ複写先ポインタ201とを、複写先のto空間1
02へのポインタに更新する(ステップS310)。次
に、from空間101の総てのページをDSAB命令
501により参照・更新禁止とし(ステップS32
0)、全スレッド401の処理を再開する(ステップS
330)。次いで、GCスレッド402による、fro
m空間101の参照・更新を可能にするためにfrom
空間101自体を異なる仮想記憶エリアにマッピングし
て(即ち、from空間101と異なる論理アドレスを
与える)新たなGC用from空間103を生成する
(ステップS340)。これ以降、GCスレッド402
は、このGC用from空間103によりfrom空間
101のオブジェクトの参照・更新を行なう。
【0026】(ガーベジコレクションのオブジェクト複
写処理)GCスレッド402は、to空間102のオブ
ジェクトを先頭から走査して、from空間101のオ
ブジェクトへのポインタPを検索し、ポインタPが指す
オブジェクトの複写先ポインタ201がnullなら
ば、このオブジェクトをto空間102の空き領域の先
頭へ複写して、複写先ポインタ201をオブジェクト複
写先のto空間102へのポインタに更新する。複写先
ポインタ201がnullであれば複写済みなので複写
処理は行わない。そして、オブジェクトの複写の有無に
かかわらず、ポインタPを複写先ポインタ201の値に
更新する(ステップS440、ステップS445、ステ
ップS410、ステップS415、ステップS420、
ステップS425)。この処理をto空間102のオブ
ジェクトの末端(空き領域の先頭)に到達するまで繰り
返す。
【0027】1つのオブジェクトを複写するごとに、プ
ログラムが動作するスレッド401からオブジェクトの
複写要求(以下の「プログラムのオブジェクト参照・更
新処理」を参照)が行なわれていないかどうかの確認を
行ない(ステップS400:図1、図4、図5の符号
A、ステップS430)、要求があればその処理を優先
して行なう(ステップS400、ステップS405、ス
テップS410、ステップS415、ステップS42
0、ステップS425)。なお、優先処理が完了した場
合には要求スレッドへの処理完了通知が行われる(ステ
ップS435:図1、図4、図5の符号B)。
【0028】(プログラムのオブジェクト参照・更新処
理)ガーベジコレクション処理中は、from空間10
1の総てのページに対する参照・更新命令が禁止されて
いるため、from空間101に存在するオブジェクト
への参照を行なうと例外が発生する(図5のステップS
500、「例外発生」)。これを契機として呼び出され
る例外処理ルーチンが、例外発生の元になったオブジェ
クトへのポインタPを特定し(ステップS505)、こ
のポインタPを指定してガーベジコレクションが動作す
るGCスレッド401へオブジェクトの複写を要求して
処理完了を待ち合わせる(ステップS510、ステップ
S515)。
【0029】ガーベジコレクションが動作するGCスレ
ッド401は、指定されたポインタPが指すオブジェク
トの複写先ポインタ201がnullならば、オブジェ
クトをto空間102の空き領域の先頭へ複写し、複写
先ポインタ201をオブジェクト複写先のto空間10
2へのポインタに更新する。オブジェクトの複写の有無
にかかわらず、Pを複写先ポインタ201の値に更新し
て、要求元のスレッド401へ処理完了を通知する。オ
ブジェクトの複写を要求したスレッド401は、処理完
了通知を受け取るとプログラムへ制御を戻して(ステッ
プS520)、その後、to空間102に配置されてい
るオブジェクトの参照・更新を行う(ステップS52
5)。
【0030】(ガーベジコレクションの終了処理)プロ
グラムが動作するすべてのスレッド401を停止し(ス
テップS600)、その後、全スレッド401のルート
301とto空間102とに存在するポインタとを総
て、to空間102のオブジェクトへのポインタに更新
する(ステップS605)。この時、ごみでない総ての
オブジェクトは複写済みであるため、オブジェクトの複
写が必要になることはない。次いで、全スレッド401
の処理を再開し(ステップS610)、その後、fro
m空間101の総てのページをENAB命令502によ
り参照・更新可能にする(ステップS615)。さら
に、ガーベジコレクションの開始処理において生成され
たGC用from空間103を削除する(ステップS6
20)。これをもって、from空間とto空間は交換
されて同様な処理を繰返せばガーベジコレクションが継
続される。
【0031】したがって、プログラムが参照・更新す
る、from空間101では参照・更新が禁止されたオ
ブジェクトを、to空間102に複写すると共に、この
オブジェクトに対するポインタをto空間102におけ
るポインタに変更するので、from空間101でのオ
ブジェクトの参照・更新を禁止してリードバリアを低減
しつつ、to空間102において必要なオブジェクトを
参照・更新することができる。また、from空間10
1により参照・更新される仮想記憶に対して別の空間で
あるGC用from空間103を生成しておき、この生
成しておいたGC用from空間103から、from
空間101では参照・更新が禁止されたオブジェクト
を、to空間102に複写すると共に、このオブジェク
トに対するポインタをto空間102におけるポインタ
に変更するので、GC用from空間103を生成する
簡易な処理で、from空間101でのオブジェクトの
参照・更新を禁止してリードバリアを低減しつつ、to
空間102において必要なオブジェクトを参照・更新す
ることができるようになる。さらにまた、プログラムが
参照・更新することを禁止されていたfrom空間10
1の参照・更新を再度可能にすることによって、fro
m空間101とto空間102の役割を交換して次回の
ガーベジコレクションを行うことが可能になる。
【0032】(他の実施の形態)上述した実施の形態に
おいては、GCスレッド402のみがオブジェクトの複
写処理を行っていて、オブジェクトの複写処理全体が排
他されている。したがって、例えばガーベジコレクショ
ンの開始直後等、多数スレッドからオブジェクトの複写
要求が行なわれた場合には、オブジェクト複写処理がプ
ログラムの実行速度を低下させてしまう。したがって、
from空間101に配置されたオブジェクトへの参照
を契機として動作するオブジェクトの複写処理を、オブ
ジェクトを参照したスレッド自体が行うようにしても良
い。この場合には、from空間101においてオブジ
ェクトを参照することは禁止されているので、参照・更
新主体であるスレッド自体が、この参照・更新禁止され
たオブジェクトをGC用from空間103からto空
間102に複写し、to空間102においてこのオブジ
ェクトを参照・更新するようにする。
【0033】但し、複数のスレッド401による同一オ
ブジェクトの複写処理が競合する可能性を考慮して、f
rom空間101のページごとにオブジェクトの複写処
理を排他するようにする。このためには、from空間
101の参照・更新しようとするオブジェクトを複写す
る際に、このオブジェクトの配置領域に対応するページ
をロック(複写不能)しておき、このオブジェクトの複
写が完了すればこれをアンロック(複写可能)するよう
にすれば良い。
【0034】図7は、本発明の実施の形態の情報処理装
置のハードウエア構成図である。この情報処理装置は、
CPU500と、前述したような動作を行わせるための
処理プログラムを記録した記録媒体としてのHD505
と、ワークエリアとして機能するRAM510と、仮想
アドレスを用いるためのページスワップ等を行なうため
のディスク装置520とを備える。CPU500は、処
理プログラム506をロードしてRAM510上に展開
してプログラムを実行することによって、上述してきた
動作を行わせることができる。
【0035】以上本発明の実施の形態について説明して
きたが、本発明の要旨を逸脱しない範囲内で適宜、実施
形態に変更や変形を施すことができることは言うまでも
ない。例えば、ハードウエアの専用命令により、仮想記
憶空間への参照・更新命令を動的に禁止/可能としたが
これは一実現例であり、また、ガーベジコレクタによる
from空間の参照・更新を可能にするためにfrom
空間に重複して論理アドレスを与える方法(GC用fr
om空間103を生成して用いる方法)を採用したが、
これも一実現例であり本発明の要旨を限定するものでは
ない。
【発明の効果】以上説明してきたように、本発明によれ
ば、ガーベジコレクションの開始に先だって、プログラ
ムが一方の空間に存在するオブジェクトを参照・更新す
ることを禁止し、次いで、ガーベジコレクションが実行
され、プログラムが参照・更新することが禁止されてい
るオジェクトを参照・更新する処理を行う場合に、この
処理に支障のないような例外処理を行うので、プログラ
ムはオブジェクトを参照・更新が禁止され、フラグの確
認等の処理が不要となり、例外時にも対処しうるように
されているので、リードバリアを低減することができる
という効果が得られる。
【図面の簡単な説明】
【図1】本発明の実施の形態の模式的な構成図である。
【図2】DSAB命令、ENAB命令の動作説明図であ
る。
【図3】ガーベジコレクションの開始処理を説明するた
めのフローチャートである。
【図4】ガーベジコレクションのオブジェクト複写処理
を説明するためのフローチャートである。
【図5】プログラムのオブジェクト参照・更新処理を説
明するためのフローチャートである。
【図6】ガーベジコレクションの終了処理を説明するた
めのフローチャートである。
【図7】本発明の実施の形態の情報処理装置のハードウ
エア構成図である。
【図8】従来技術の説明図である。
【図9】従来技術の説明図である。
【符号の説明】
101 from空間 102 to空間 104 ヒープ領域 201 複写先ポインタ 310 ルート 401 スレッド 402 GCスレッド

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 プログラムがポインタを用いることによ
    って参照・更新可能なオブジェクトをヒープ領域におけ
    る一方の空間から他方の空間へ複写してガベージコレク
    ションを行う装置において、 前記ガーベジコレクションの開始に先だって、前記プロ
    グラムが前記一方の空間に配置されるオブジェクトを参
    照・更新することを禁止する参照更新禁止手段と、 前記ガーベジコレクションが実行され、前記プログラム
    が参照・更新することを禁止されたオブジェクトを参照
    ・更新する処理を行う場合に、この処理に支障のないよ
    うな例外処理を行う例外処理手段と、を備え、 前記例外処理手段は、 前記プログラムが参照・更新する、前記一方の空間では
    参照・更新が禁止されたオブジェクトを、前記他方の空
    間に複写すると共に、このオブジェクトに対するポイン
    タを前記他方の空間におけるポインタに変更する手段で
    あることを特徴とするガーベージコレクション機能を有
    する情報処理装置。
  2. 【請求項2】 請求項1に記載の情報処理装置におい
    て、 前記例外処理手段は、 前記一方の空間により参照・更新される仮想記憶に対し
    て別の空間を生成しておき、この生成しておいた空間か
    ら、前記一方の空間では参照・更新が禁止されたオブジ
    ェクトを、前記他方の空間に複写すると共に、このオブ
    ジェクトに対するポインタを前記他方の空間におけるポ
    インタに変更する手段であることを特徴とするガーベー
    ジコレクション機能を有する情報処理装置。
  3. 【請求項3】 請求項1および2の内のいずれか一項に
    記載の情報処理装置において、 前記プログラムが参照・更新することを禁止されていた
    前記一方の空間の参照・更新を可能とする参照更新可能
    化手段を備えることを特徴とするガーベージコレクショ
    ン機能を有する情報処理装置。
  4. 【請求項4】 プログラムがポインタを用いることによ
    って参照・更新可能なオブジェクトをヒープ領域におけ
    る一方の空間から他方の空間へ複写してガベージコレク
    ションを行う方法において、 前記ガーベジコレクションの開始に先だって、前記プロ
    グラムが前記一方の空間に配置されたオブジェクトを参
    照・更新することを禁止し、 前記ガーベジコレクションが実行され、前記プログラム
    が参照・更新が禁止されたオブジェクトを参照・更新す
    る処理を行う場合に、このオブジェクトを前記他方の空
    間に複写する複写処理を行うと共に、このオブジェクト
    に対するポインタを前記他方の空間におけるポインタに
    変更する、ことを特徴とするガベージコレクション方
    法。
  5. 【請求項5】 請求項4に記載の方法において、 前記一方の空間をページ単位にロック・アンロック可能
    にしておき、 前記複写処理を実行する際に、この複写処理の対象とな
    るオブジェクトに対応する領域をページ単位でロックし
    ておき、 この複写処理が完了した場合、ロックされていた領域を
    アンロックする、ことを特徴とするガベージコレクショ
    ン方法。
  6. 【請求項6】 プログラムがポインタを用いることによ
    って参照・更新可能なオブジェクトをヒープ領域におけ
    る一方の空間から他方の空間へ複写してガベージコレク
    ション処理を実行するための処理プログラムを記録した
    コンピュータ読み取り可能な記録媒体において、 前記ガーベジコレクションの開始に先だって、前記プロ
    グラムが前記一方の空間に存在するオブジェクトを参照
    ・更新することを禁止する処理と、 前記ガーベジコレクションが実行され、前記プログラム
    が参照・更新することが禁止されたオブジェクトを参照
    ・更新する処理を行う場合に、このオブジェクトを前記
    他方の空間に複写する複写処理を行うと共に、このオブ
    ジェクトに対するポインタを前記他方の空間におけるポ
    インタに変更する処理と、を含む処理を実行するための
    処理プログラムを記録したことを特徴とする記録媒体。
JP36852799A 1999-12-27 1999-12-27 ガーベージコレクション機能を有する情報処理装置およびその方法ならびに記録媒体 Pending JP2001184254A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP36852799A JP2001184254A (ja) 1999-12-27 1999-12-27 ガーベージコレクション機能を有する情報処理装置およびその方法ならびに記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP36852799A JP2001184254A (ja) 1999-12-27 1999-12-27 ガーベージコレクション機能を有する情報処理装置およびその方法ならびに記録媒体

Publications (1)

Publication Number Publication Date
JP2001184254A true JP2001184254A (ja) 2001-07-06

Family

ID=18492064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP36852799A Pending JP2001184254A (ja) 1999-12-27 1999-12-27 ガーベージコレクション機能を有する情報処理装置およびその方法ならびに記録媒体

Country Status (1)

Country Link
JP (1) JP2001184254A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009037547A (ja) * 2007-08-03 2009-02-19 Hitachi Ltd メモリ管理方法およびその方法を用いるコンピュータ
WO2010018613A1 (ja) * 2008-08-11 2010-02-18 富士通株式会社 ガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステム
JP2012118797A (ja) * 2010-12-01 2012-06-21 Toshiba Corp メモリ装置及びメモリ制御方法
US8397045B2 (en) 2009-12-25 2013-03-12 International Business Machines Corporation Memory management device, memory management method, and memory management program
JP2018010507A (ja) * 2016-07-14 2018-01-18 富士通株式会社 メモリ管理プログラム、メモリ管理方法及びメモリ管理装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6375948A (ja) * 1986-09-19 1988-04-06 Fujitsu Ltd ガ−ベジコレクシヨン制御方式
JPS6393055A (ja) * 1986-10-07 1988-04-23 Fujitsu Ltd 実時間型ガ−ベジコレクシヨン支援装置
JPH02130653A (ja) * 1988-11-11 1990-05-18 Fujitsu Ltd 領域分割型協調ガーベジ・コレクション方式

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6375948A (ja) * 1986-09-19 1988-04-06 Fujitsu Ltd ガ−ベジコレクシヨン制御方式
JPS6393055A (ja) * 1986-10-07 1988-04-23 Fujitsu Ltd 実時間型ガ−ベジコレクシヨン支援装置
JPH02130653A (ja) * 1988-11-11 1990-05-18 Fujitsu Ltd 領域分割型協調ガーベジ・コレクション方式

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009037547A (ja) * 2007-08-03 2009-02-19 Hitachi Ltd メモリ管理方法およびその方法を用いるコンピュータ
US8397044B2 (en) 2007-08-03 2013-03-12 Hitachi, Ltd. Memory management method and computer using the method
US8589653B2 (en) 2007-08-03 2013-11-19 Hitachi, Ltd. Memory management method and computer using the method
WO2010018613A1 (ja) * 2008-08-11 2010-02-18 富士通株式会社 ガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステム
JPWO2010018613A1 (ja) * 2008-08-11 2012-01-26 富士通株式会社 ガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステム
JP5120455B2 (ja) * 2008-08-11 2013-01-16 富士通株式会社 ガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステム
US8397045B2 (en) 2009-12-25 2013-03-12 International Business Machines Corporation Memory management device, memory management method, and memory management program
JP2012118797A (ja) * 2010-12-01 2012-06-21 Toshiba Corp メモリ装置及びメモリ制御方法
US8856468B2 (en) 2010-12-01 2014-10-07 Kabushiki Kaisha Toshiba Memory device capable of improving write processing speed and memory control method
JP2018010507A (ja) * 2016-07-14 2018-01-18 富士通株式会社 メモリ管理プログラム、メモリ管理方法及びメモリ管理装置

Similar Documents

Publication Publication Date Title
US7010555B2 (en) System and method for compacting a computer system heap
JPH0743665B2 (ja) コンピユータ・システム資源管理方法
JP6044181B2 (ja) ガーベジコレクションのための情報処理方法、プログラム及び装置
JP2003515812A (ja) 掃除用のガーベッジコレクションの効果を高めるための方法および装置
US7793062B2 (en) Copy engine and a method for data movement
JP2001184254A (ja) ガーベージコレクション機能を有する情報処理装置およびその方法ならびに記録媒体
EP0294499B1 (en) Control scheme for segmented buffers based on a shared reference count
JP2004246753A (ja) メモリ管理装置およびプログラム
JPH0444140A (ja) 仮想メモリ制御方法
JP2014170430A (ja) メモリ管理方法、データ要素回収方法とデータ要素回収プログラム、情報処理装置およびその制御方法と制御プログラム
JP2701817B2 (ja) スワッピング装置
JPH05241936A (ja) ガーベッジコレクション処理方式及びその記憶装置
JP2901543B2 (ja) 磁気デイスクフアイルリロケーション方式
JP3898369B2 (ja) ページング処理装置および記録媒体
JP2526728B2 (ja) ディスクキャッシュ自動利用方式
JP3050194B2 (ja) ホスト間共用メモリファイル動的追加システム、ホスト間共用メモリファイル動的追加方法、およびホスト間共用メモリファイル動的追加プログラムを記録した記録媒体
JPH0855052A (ja) タプル単位排他制御方式
JP3398672B2 (ja) 中間データ格納装置
JPS63101946A (ja) ロ−ド処理方式
JPH05265863A (ja) 計算機のキャッシュ機構
JPH0793192A (ja) ファイル管理方法
JPH09171500A (ja) プロセサ間データ共用制御テーブルのポインタアドレス変換装置
JPS63172346A (ja) スタツク割当方法
JPH05241846A (ja) 非常駐プログラムの管理方式
JPS6115251A (ja) 仮想記憶制御方式