JPH04220735A - ガーベッジコレクションシステム - Google Patents

ガーベッジコレクションシステム

Info

Publication number
JPH04220735A
JPH04220735A JP40518390A JP40518390A JPH04220735A JP H04220735 A JPH04220735 A JP H04220735A JP 40518390 A JP40518390 A JP 40518390A JP 40518390 A JP40518390 A JP 40518390A JP H04220735 A JPH04220735 A JP H04220735A
Authority
JP
Japan
Prior art keywords
objects
references
entries
unnecessary
reference count
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
JP40518390A
Other languages
English (en)
Inventor
Naoyuki Mitani
直幸 三谷
Takeshi Shimizu
剛 清水
Manabu Fukushima
学 福島
Osamu Nakamura
修 中村
Masaki Yabu
薮 正樹
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP40518390A priority Critical patent/JPH04220735A/ja
Publication of JPH04220735A publication Critical patent/JPH04220735A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、メモリ上に存在する不
要となったオブジェクトを回収するガーベッジコレクシ
ョンシステムに関する。
【0002】
【従来の技術】一般的に、メモリ空間と、そのメモリ空
間へのアクセスを行う手段、例えば中央処理装置とを具
えた計算機システムにおいては、プログラムの実行中に
メモリ空間に次々に割り当てられていくオブジェクトの
うち、不要になったオブジェクトをメモリ空間から順次
回収することにより、メモリ空間の有効利用を図るよう
にしたガーベッジコレクションというメモリ管理方式を
採用している。
【0003】周知のように、ガーベッジコレクションの
代表的な実現例として、個々のオブジェクトの他のオブ
ジェクトからの被参照数をテーブルに保持しておき、所
定のタイミングで、被参照数が「0」であるオブジェク
ト、つまり不要になったオブジェクト(以下、不要オブ
ジェクトという)を回収するという参照計数方式、いわ
ゆるリファレンス・カウント方式のガーベッジコレクシ
ョンがある。
【0004】このリファレンス・カウント方式において
は、オブジェクトの被参照数を保持する参照計数テーブ
ルの肥大化を防ぐために、大多数のオブジェクトの被参
照数が「1」であるという統計的事実を根拠として、被
参照数が「1」でない、つまり被参照数が「0」又は「
2以上」のオブジェクトのみを参照計数テーブルに保持
するという方式が用いられてきた。つまり、被参照数が
「1」のオブジェクトは参照計数テーブルには登録され
ない。
【0005】また、不要オブジェクトの回収を開始する
タイミングとしては、一般的に、前回の回収以降に新た
に生成されたオブジェクトの個数が予め設定された閾値
を越えた時点で行うようにしている。
【0006】
【発明が解決しようとする課題】ところで、プログラム
実行過程においては、次に説明する2つの事象が発生す
ることがある。事象A:プログラムの実行中に、大量に
新たなオブジェクトが生成される。
【0007】事象B:別のオブジェクトへの参照を多数
含んでいるような複雑な構造を持つオブジェクトが不要
オブジェクトとして回収される。
【0008】さて、事象Aが発生した際には、大量に新
たなオブジェクトが生成されメモリ空間に割り当てられ
るが、生成された大多数のオブジェクトの被参照数が「
1」である場合には、不要オブジェクトが発生したこと
にはならない。
【0009】しかしながら、上記従来のガーベッジコレ
クションでは、新たに生成されたオブジェクトの個数を
基に、不要オブジェクトの回収を行うようにしているの
で、被参照数が「1」であるオブジェクトが大量に生成
されて、新たに生成されたオブジェクトの個数が予め設
定された閾値を越えた時点毎に、不要な不要オブジェク
トの回収処理が頻繁に発生することとなり、システムの
処理効率が低かった。一方、事象Bが発生した際は、不
要オブジェクト(別のオブジェクトへの参照を多数含ん
でいるような複雑な構造を持つオブジェクト)の回収の
過程で、その不要オブジェクトが参照していた複数のオ
ブジェクトの被参照数が「1」から「0」になることが
ある。このとき、被参照数が「1」である各オブジェク
トは、被参照数が「1」から「0」になった時点で参照
計数テーブルに登録されることとなる。このようにして
被参照数が「1」から「0」に変更になっても、新たな
オブジェクトが発生したことにはならない。
【0010】このように事象Bが発生した場合、上記従
来のガーベッジコレクションでは、新たなオブジェクト
が生成されメモリ空間に割り当てられて、新たに生成さ
れたオブジェクトの個数が予め設定された閾値を越えな
い限り、不要オブジェクトの回収は行われないので、エ
ントリ数が有限である参照計数テーブルの全てのエント
リが使用されてしまい、ついには参照計数テーブルが溢
れてしまうという問題がある。
【0011】すなわち、不要オブジェクトが増えたにも
関わらず、新たに生成されたオブジェクトの個数が予め
設定された閾値を越えないために、不要オブジェクトの
回収が行われず、多数の不要オブジェクトがメモリ空間
に残ることとなり、メモリ空間を有効に利用することが
できないという難点があった。
【0012】本発明は、上記実情に鑑みてなされたので
あり、メモリ空間の使用効率及びシステムの処理効率を
向上することのできるガーベッジコレクションシステム
を提供することを目的とする。
【0013】
【課題を解決するための手段】上記目的を達成するため
、この発明は、オブジェクトの被参照数が登録されるテ
ーブルを有し、該テーブルに登録された被参照数が0の
オブジェクトを回収するガーベッジコレクションシステ
ムにおいて、前記テーブルの使用されているエントリの
数が予め設定された閾値を越えた際に、被参照数が0の
オブジェクトの回収を開始するようにしたことを特徴と
する。
【0014】
【作用】この発明に係るガーベッジコレクションシステ
ムによれば、被参照数が「1」であるオブジェクトが大
量に生成された場合であっても、テーブルの使用されて
いるエントリの数が予め設定された閾値を越えない限り
、不要になったオブジェクトの回収は行わない。また、
被参照数が「1」から「0」になったオブジェクトが多
数発生した場合は、テーブルの使用されているエントリ
の数が予め設定された閾値を越えた時点で、不要になっ
たオブジェクトの回収を開始する。
【0015】
【実施例】以下、本発明の実施例を添付図面を参照して
説明する。
【0016】図1は、本発明に係るガーベッジコレクシ
ョンシステムを適用した計算機システムの一実施例をブ
ロック図で示したものである。
【0017】同図において、計算機システムは、中央処
理装置等の制御部1と実メモリや仮想メモリを含むメモ
リ空間2とを有して構成されている。
【0018】メモリ空間2には、参照計数テーブル21
と、閾値比較モジュール22と、不要オブジェクト回収
モジュール23と、被参照数が「2」であるオブジェク
ト24、25と、被参照数が「3」であるオブジェクト
26と、被参照数が「0」であるオブジェクト27とが
割り当てられている。
【0019】参照計数テーブル21はオブジェクトの被
参照数を保持するものであり、そのテーブル21の各エ
ントリは、オブジェクトの被参照数を保持する被参照数
領域21Aと、該オブジェクトのメモリ空間2における
番地を保持する番地領域21Bとから構成されている。
【0020】例えば、オブジェクト26についてみると
、オブジェクト26は、オブジェクト24の内部24a
及び24bから合せて2箇所、さらにオブジェクト25
の内部25aから1箇所、合計3箇所から参照されてい
る。よって、このオブジェクト26に対応する参照計数
テーブル21のエントリ21− 2 には、被参照数領
域21Aにオブジェクト26の被参照数「3」が、番地
領域21Bにオブジェクト26のメモリ空間2における
番地が、それぞれ保持されている。
【0021】同様に、オブジェクト24、25、27に
関する情報は、それぞれエントリ21− 1 、21−
 3 、21− 4 に保持されている。
【0022】閾値比較モジュール22は、参照計数テー
ブル21の使用されているエントリの数を保持するエン
トリ数領域22Aを有し、その領域22Aに保持されて
いるエントリ数と予め設定された閾値とを比較し、その
エントリ数が予め設定された閾値を越えた場合に、不要
オブジェクト回収モジュール23を起動する。なお、参
照計数テーブル21に新しいオブジェクトが登録される
毎に、領域22Aに保持されている値は1ずつ増加する
ようになっている。因みに、図1に示したテーブル21
においては、使用されているエントリの数は“4”であ
るので、領域22Aにはエントリ数の値“4”が保持さ
れていることになる。
【0023】不要オブジェクト回収モジュール23は、
起動されると、参照計数テーブル21の使用されている
エントリを走査して、被参照数が「0」のオブジェクト
が存在していれば、該当するエントリに登録されている
番地に存在しているオブジェクトを回収する。
【0024】なお、実施例では、制御部1は、新たなオ
ブジェクトを生成してメモリ空間2に割り当てるととも
に、参照計数テーブル21へのオブジェクトの登録を行
うようになっている。またモジュール22、23を実行
することにより、メモリ空間2から不要になったオブジ
ェクトを回収する、つまりガーベッジコレクション処理
を実行するようになっている。
【0025】次に、上述した構成において、計算機シス
テムの制御部1によるガーベッジコレクション処理の動
作を、図2のフローチャートを参照しながら説明する。
【0026】最初に、制御部1は、登録しようとするオ
ブジェクトが、参照計数テーブル21に既に登録されて
いるか否かを判断する(ステップ101)。
【0027】ここで、登録されている場合には、該当す
るオブジェクトに対応するエントリの被参照数領域21
Aに保持されている被参照数に「1」を加えた後(ステ
ップ102)、上記ステップ101に戻りこのステップ
以降を実行する。
【0028】一方、未登録であった場合は、空きエント
リの番地領域21Bに登録しようとするオブジェクトの
番地を格納するとともに(ステップ103)、該当する
エントリの被参照数領域21Aに「0」又は「2」を格
納する(ステップ104)。なお、被参照数領域21A
に「0」又は「2」が格納されるのは、未登録であった
オブジェクトの被参照数が“1”から“0”、または“
1”から“2”に変化したときに、そのオブジェクトが
登録されるからである。
【0029】上記ステップ104終了後、閾値比較モジ
ュール22を実行して、そのモジュール22内のエント
リ数保持領域22Aに保持されているエントリ数に「1
」を加える(ステップ105)。
【0030】そして、エントリ数保持領域22Aに保持
されているエントリ数が予め設定された閾値を越えたか
否かを判断する(ステップ106)。
【0031】ここで、閾値を越えていない場合には、上
記ステップ101に戻りこのステップ以降を実行し、一
方、閾値を越えた場合は、不要オブジェクト回収モジュ
ール23を起動する(ステップ107)。
【0032】起動された不要オブジェクト回収モジュー
ル23は、参照計数テーブル21の使用されているエン
トリを走査して、被参照数が「0」のオブジェクトが存
在していれば、該当するエントリに登録されている番地
に存在しているオブジェクトを回収することとなる。
【0033】以上説明したように本実施例によれば、参
照係数テーブル21の実際に使用されているエントリ数
を基に不要になったオブジェクトの回収を開始するので
、大量のオブジェクトが割り当てられ、その大多数のオ
ブジェクトの被参照数が「1」である場合であっても、
不要になったオブジェクトの回収処理(ガーベッジコレ
クション処理)を抑制することができ、計算効率を高め
ることができる。
【0034】また、参照係数テーブル21の実際に使用
されているエントリ数を基に不要になったオブジェクト
の回収を開始するので、大量の複雑な構造を持つオブジ
ェクトが、不要になったオブジェクトとして回収された
場合であっても、そのオブジェクトの回収に付随して発
生する不要になったオブジェクトを回収することができ
、参照係数テーブルの溢れを回避することができる。
【0035】
【発明の効果】以上説明したように本発明によれば、オ
ブジェクトの被参照数が登録されるテーブルの使用され
ているエントリの数が予め設定された閾値を越えた際に
、不要になったオブジェクトの回収を行うようにしたた
め、被参照数が「1」のオブジェクトが多数生成された
場合であっても、エントリの数が閾値を越えない限り不
要になったオブジェクトの回収は行われないので、オブ
ジェクトの回収処理が抑制されることとなり、システム
の処理効率を向上させることができる。
【0036】また、大量の複雑な構造を持つオブジェク
トが不要になったオブジェクトとして回収された場合で
あっても、エントリの数が閾値を越えた際に不要になっ
たオブジェクトの回収を行うので、不要になったオブジ
ェクトの回収に付随して発生する不要になったオブジェ
クトも回収されることとなり、メモリ空間の使用効率を
向上させることができる。
【図面の簡単な説明】
【図1】本発明に係るガーベッジコレクションシステム
を適用した計算機システムの一実施例を示すブロック図
【図2】図1に示した計算機システムのガーベッジコレ
クションの処理動作を示すフローチャート。
【符号の説明】
1…制御部 2…メモリ空間 21…参照計数テーブル 21A…被参照数領域 21B…番地領域 22A…エントリ数保持領域 22…閾値比較モジュール 23…不要オブジェクト回収モジュール24〜27…オ
ブジェクト

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】オブジェクトの被参照数が登録されるテー
    ブルを有し、該テーブルに登録された被参照数が0のオ
    ブジェクトを回収するガーベッジコレクションシステム
    において、前記テーブルの使用されているエントリの数
    が予め設定された閾値を越えた際に、被参照数が0のオ
    ブジェクトの回収を開始するようにしたことを特徴とす
    るガーベッジコレクションシステム。
JP40518390A 1990-12-21 1990-12-21 ガーベッジコレクションシステム Pending JPH04220735A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP40518390A JPH04220735A (ja) 1990-12-21 1990-12-21 ガーベッジコレクションシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP40518390A JPH04220735A (ja) 1990-12-21 1990-12-21 ガーベッジコレクションシステム

Publications (1)

Publication Number Publication Date
JPH04220735A true JPH04220735A (ja) 1992-08-11

Family

ID=18514810

Family Applications (1)

Application Number Title Priority Date Filing Date
JP40518390A Pending JPH04220735A (ja) 1990-12-21 1990-12-21 ガーベッジコレクションシステム

Country Status (1)

Country Link
JP (1) JPH04220735A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005025727A (ja) * 2003-06-09 2005-01-27 Mitsubishi Electric Corp 情報記憶制御装置及び情報記憶制御方法及び情報記憶制御プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005025727A (ja) * 2003-06-09 2005-01-27 Mitsubishi Electric Corp 情報記憶制御装置及び情報記憶制御方法及び情報記憶制御プログラム

Similar Documents

Publication Publication Date Title
US6862674B2 (en) Methods and apparatus for performing a memory management technique
US7069279B1 (en) Timely finalization of system resources
GB2386715A (en) Method for the use of a stack in a Java accelerator device
US6360233B1 (en) Dynamic memory space allocation
CN111737295B (zh) 数据库游标查询方法、装置、设备和存储介质
JPH04220735A (ja) ガーベッジコレクションシステム
US4984150A (en) Virtual memory control management system
JPS6336538B2 (ja)
JP2002244869A (ja) メモリ管理装置
CN112671653B (zh) 一种基于多核异构平台的cam表的操作方法
CN116149897B (zh) 一种芯片功能安全故障处理方法
JP2654603B2 (ja) バッファ記憶装置におけるブロック置き換え制御方式
JPH0812643B2 (ja) ページ退避/復元装置
JPS6336539B2 (ja)
JPH09282226A (ja) 登録資格フラグ付きキャッシュメモリ
JP2690486B2 (ja) プログラム実行状態監視方式
JPS63271646A (ja) ガ−ベジコレクシヨン発生管理方式
JP2762467B2 (ja) 計算機システム
JPH02226348A (ja) 計算機システム
JPH0652510B2 (ja) エントリパージ処理方式
JPS59220849A (ja) イメ−ジ比較制御方式
JPS60209862A (ja) アドレス変換制御方式
JPH03189826A (ja) 複数プログラム切換え方式
JPS6034143B2 (ja) ワ−キングセット管理方式
JPH04319733A (ja) メモリ管理方式