JPH03113651A - ガーベジコレクション処理方式 - Google Patents
ガーベジコレクション処理方式Info
- Publication number
- JPH03113651A JPH03113651A JP25417489A JP25417489A JPH03113651A JP H03113651 A JPH03113651 A JP H03113651A JP 25417489 A JP25417489 A JP 25417489A JP 25417489 A JP25417489 A JP 25417489A JP H03113651 A JPH03113651 A JP H03113651A
- Authority
- JP
- Japan
- Prior art keywords
- data
- processing
- stack
- pointer
- copy
- 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
- 238000000034 method Methods 0.000 claims description 43
- 238000003672 processing method Methods 0.000 claims description 16
- 230000015654 memory Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 9
- 238000005056 compaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000004793 poor memory Effects 0.000 description 1
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、スタック上にごみが発生するような処理系に
おいて、そのごみを取除いてメモリを使用可能にするた
めのガーベジコレクション処理方式に関する。
おいて、そのごみを取除いてメモリを使用可能にするた
めのガーベジコレクション処理方式に関する。
スタック上にごみが発生するような処理系において、そ
のごみを取除いてメモリを使用可能にするためのガーベ
ジコレクション処理方式には、スライディングコンパク
ション方式とコピー方式との二つの方式がある。スライ
ディングコンパクション方式は、メモリ上の順序関係が
変わらないことと、メモリ効率がよいという長所がある
が、処理効率が悪いという欠点がある。一方コピー方式
は、処理が単純で処理速度が速いという長所がある。メ
モリ効率が悪いという欠点は、最近の多くのコンピュー
タシステムで仮想記憶方式が採用されているため、あま
り問題にされなくなっている。
のごみを取除いてメモリを使用可能にするためのガーベ
ジコレクション処理方式には、スライディングコンパク
ション方式とコピー方式との二つの方式がある。スライ
ディングコンパクション方式は、メモリ上の順序関係が
変わらないことと、メモリ効率がよいという長所がある
が、処理効率が悪いという欠点がある。一方コピー方式
は、処理が単純で処理速度が速いという長所がある。メ
モリ効率が悪いという欠点は、最近の多くのコンピュー
タシステムで仮想記憶方式が採用されているため、あま
り問題にされなくなっている。
第6図は従来のコピー方式によるガーベジコレクション
処理方式のコピー前後の状態を示す説明図である。
処理方式のコピー前後の状態を示す説明図である。
第6図に示すように、従来のコピー方式のガーベジコレ
クション処理方式は、マーキングを行いながらコピーを
行うため、コピーされた後のデータの順序(第6図(b
)参照)は、マーキング時の探索順序となり、コピーさ
れる前のデータの順序(第6図(a)参照)と異なって
しまう。たとえば二つのデータ構造へのポインタである
リスドラ1の構造が、それぞれ参照ポインタ“r e
f ”を有し、その先のデータの順序が第6図(a)の
順序であって、コピーの探索がリスドラ1の第一要素か
ら始められるとき、コピー後のデータの順序関係は、第
6図(b)に示すように元のデータの順序と変ってしま
う。スタックのガーベジコレクション処理方式では、メ
モリのJ頃序関係を変えてしまうわけにはいかないため
、コピー方式は使えない。
クション処理方式は、マーキングを行いながらコピーを
行うため、コピーされた後のデータの順序(第6図(b
)参照)は、マーキング時の探索順序となり、コピーさ
れる前のデータの順序(第6図(a)参照)と異なって
しまう。たとえば二つのデータ構造へのポインタである
リスドラ1の構造が、それぞれ参照ポインタ“r e
f ”を有し、その先のデータの順序が第6図(a)の
順序であって、コピーの探索がリスドラ1の第一要素か
ら始められるとき、コピー後のデータの順序関係は、第
6図(b)に示すように元のデータの順序と変ってしま
う。スタックのガーベジコレクション処理方式では、メ
モリのJ頃序関係を変えてしまうわけにはいかないため
、コピー方式は使えない。
本発明は、メモリの順序関係を変えずに、しがもスライ
ディングコンパクション処理方式よりも処理速度が速い
ガーベジコレクション処理方式を提供することを目的と
している。
ディングコンパクション処理方式よりも処理速度が速い
ガーベジコレクション処理方式を提供することを目的と
している。
本発明のガーベジコレクション処理方式は、コピー方式
のガーベジコレクション処理方式であって、領域の下位
番地から上位番地に向って使用中のデータをその順序に
コピーするステップと、コピーしたデータを示すポイン
タをそのコピー先に張替えるステップとを独立のステッ
プとして有している。
のガーベジコレクション処理方式であって、領域の下位
番地から上位番地に向って使用中のデータをその順序に
コピーするステップと、コピーしたデータを示すポイン
タをそのコピー先に張替えるステップとを独立のステッ
プとして有している。
次に本発明の実施例について図面を参照して説明する。
第1図は本発明の一実施例を示すフローチャートである
。
。
第1図の実施例は、使用中のデータに印をつけるマーキ
ング処理を行う処理11と、前記処理11において印を
つけたデータをバッキングスタックにコピーするコピー
処理を行う処理12と、処理12でコピーした使用中の
データのポインタを張替えるポインタ張替処理を行う処
理13と、データにつけた印を取去るマークの取りはず
し処理を行う処理14との四つのステップを有している
。
ング処理を行う処理11と、前記処理11において印を
つけたデータをバッキングスタックにコピーするコピー
処理を行う処理12と、処理12でコピーした使用中の
データのポインタを張替えるポインタ張替処理を行う処
理13と、データにつけた印を取去るマークの取りはず
し処理を行う処理14との四つのステップを有している
。
第2図は第1図の実施例において処理対象となるデータ
の構成の一例を示すデータ構成図である。
の構成の一例を示すデータ構成図である。
第2図(a>に示すように、データは、そのデータの種
別を示すタグ21と、ガーベジコレクション処理中に使
用中データかどうかを識別するためのフラグとして使用
するGCビット22と、タグ21によって識別されるデ
ータの種別によって即値またはポインタを格納する鎖部
23との三つの部分を有している。第2図(b)に示す
ように、データの種別としては、鎖部23に整数を即値
として有する゛int″″データ24と、鎖部23に他
のデータへのポインタを有する“ref“データ25と
、鎖部23に二つのデータからなる構造を有するオブジ
ェクトへのポインタを有する“” l i s t ”
データ26との3種類のデータがある。
別を示すタグ21と、ガーベジコレクション処理中に使
用中データかどうかを識別するためのフラグとして使用
するGCビット22と、タグ21によって識別されるデ
ータの種別によって即値またはポインタを格納する鎖部
23との三つの部分を有している。第2図(b)に示す
ように、データの種別としては、鎖部23に整数を即値
として有する゛int″″データ24と、鎖部23に他
のデータへのポインタを有する“ref“データ25と
、鎖部23に二つのデータからなる構造を有するオブジ
ェクトへのポインタを有する“” l i s t ”
データ26との3種類のデータがある。
第4図はこれらのデータを含む領域の構成の一例を示す
説明図である。
説明図である。
第4図に示すように、使用中のデータは、すべてスタッ
ク42内でチェーンされており、その始点となるデータ
をルート41が持っている。スタック42内でチェーン
されていないデータは、第4図において整数1を有する
°“L n t ”データ44が使われていないデータ
(ゴミ)である。スタック43は、コピー処理の時に、
スタック42内の使用中のデータをコピーするためのバ
ッキングスタックであり、ガーベジコレクション処理が
終了した後は、スタック43が使用中データを含む領域
となり、スタック42はバッキングスタックとなる。
ク42内でチェーンされており、その始点となるデータ
をルート41が持っている。スタック42内でチェーン
されていないデータは、第4図において整数1を有する
°“L n t ”データ44が使われていないデータ
(ゴミ)である。スタック43は、コピー処理の時に、
スタック42内の使用中のデータをコピーするためのバ
ッキングスタックであり、ガーベジコレクション処理が
終了した後は、スタック43が使用中データを含む領域
となり、スタック42はバッキングスタックとなる。
以下、第1図のフローチャートに示した処理について順
次に説明する。
次に説明する。
処理11では、使用中データのチェーンをルートから縦
型にデータを探索し、探索したすべてのデータのGCビ
ットを“1”に設定(マーク)する。ここで構造を有す
るデータ(“1ist”データ)をマークする場合は、
第3図に示すように、片方の枝32の番地を探索スタッ
ク33にブツシュし、他方の枝31の終端までマークし
たあと、探索スタック33から未探索の枝32の番地を
ポツプしてその枝の探索を行なう。
型にデータを探索し、探索したすべてのデータのGCビ
ットを“1”に設定(マーク)する。ここで構造を有す
るデータ(“1ist”データ)をマークする場合は、
第3図に示すように、片方の枝32の番地を探索スタッ
ク33にブツシュし、他方の枝31の終端までマークし
たあと、探索スタック33から未探索の枝32の番地を
ポツプしてその枝の探索を行なう。
次に処理12について第5図(a)および(b)を参照
して説明する・、第5図(a)はマーキング処理が終っ
た時の状態を示す説明図であり、ルート41からチェー
ンされているデータのGCビットはすべてマークされて
いる。整数2を有する゛int″データはゴミである。
して説明する・、第5図(a)はマーキング処理が終っ
た時の状態を示す説明図であり、ルート41からチェー
ンされているデータのGCビットはすべてマークされて
いる。整数2を有する゛int″データはゴミである。
コピー処理では、スタック42の先頭のデータから順次
に調べ、マークしたデータをスタック43にコピーする
。
に調べ、マークしたデータをスタック43にコピーする
。
これによってデータの順序関係はコピー前後でも同じに
することが可能となる。コピーの元になったデータは、
GCビットを0に設定し、鎖部にはコピー先の番地を設
定する。第5図(b)はこのようにしてコピー処理を行
った後の状態を示す説明図である。
することが可能となる。コピーの元になったデータは、
GCビットを0に設定し、鎖部にはコピー先の番地を設
定する。第5図(b)はこのようにしてコピー処理を行
った後の状態を示す説明図である。
次に、ポインタ張替え処理を行う処理13について第5
図(b)および(c)を参照して説明する。
図(b)および(c)を参照して説明する。
ポインタ張替え処理の対象となる領域は、ルート41お
よびコピー後のデータを有するスタック43である。こ
れらの領域中のデータのうち、ポインタを有するデータ
すなわち” l i s t ”データとref”デー
タに注目すると、ポインタの示す先がマークされていな
いデータであるときは、そのデータはコピー前のデータ
であり、そのデータの鎖部にはコピー後のデータへのポ
インタが設定されていることがわかる。そこで、ポイン
タをコピー後のデータに張直すなめに、ポインタの示す
先のデータの鎖部を自分の鎖部にコピーする。第5図(
c)は、このようにして行ったポインタ張替え処理後の
状態を示す説明図である。
よびコピー後のデータを有するスタック43である。こ
れらの領域中のデータのうち、ポインタを有するデータ
すなわち” l i s t ”データとref”デー
タに注目すると、ポインタの示す先がマークされていな
いデータであるときは、そのデータはコピー前のデータ
であり、そのデータの鎖部にはコピー後のデータへのポ
インタが設定されていることがわかる。そこで、ポイン
タをコピー後のデータに張直すなめに、ポインタの示す
先のデータの鎖部を自分の鎖部にコピーする。第5図(
c)は、このようにして行ったポインタ張替え処理後の
状態を示す説明図である。
次に、マークの取りはずし処理を行う処理14は、ルー
ト41およびスタック43中のすべてのデータのGCビ
ットを“0”に設定し直す。これによってガーベジコレ
クション処理が終了し、スタック42中にゴミのデータ
はなくなり、しかも元のデータの順序通りにデータが並
んでいる。
ト41およびスタック43中のすべてのデータのGCビ
ットを“0”に設定し直す。これによってガーベジコレ
クション処理が終了し、スタック42中にゴミのデータ
はなくなり、しかも元のデータの順序通りにデータが並
んでいる。
上記の実施例では、GCビットを1ビツトで済ませるよ
うなマーキング方法を採用している。しかしながら、本
発明のガーベジコレクション処理方式は、コピー処理の
ステップが他のステップと独立になっていることを特色
とするものであるため、次のような方法を採用すること
もできる。
うなマーキング方法を採用している。しかしながら、本
発明のガーベジコレクション処理方式は、コピー処理の
ステップが他のステップと独立になっていることを特色
とするものであるため、次のような方法を採用すること
もできる。
すなわち、データへのポインタを生成するたびにカウン
トアツプするような領域(リファレンスカウンタ)を各
データごとに持たせ、ガーベジコレクション処理を起動
すると同時にコピー処理を始め、ポインタの張替えを終
了するとガーベジコレクション処理を終了する方法、ま
たは、GCビットを別の領域(ビットマツプ)にまとめ
て持つようなGCビット制御を用い、マーキング処理を
行う部分のみが異なるようにする方法、または、マーキ
ング処理とマークの取りはずし処理とのみが異なる方法
を採用することができる。
トアツプするような領域(リファレンスカウンタ)を各
データごとに持たせ、ガーベジコレクション処理を起動
すると同時にコピー処理を始め、ポインタの張替えを終
了するとガーベジコレクション処理を終了する方法、ま
たは、GCビットを別の領域(ビットマツプ)にまとめ
て持つようなGCビット制御を用い、マーキング処理を
行う部分のみが異なるようにする方法、または、マーキ
ング処理とマークの取りはずし処理とのみが異なる方法
を採用することができる。
以上説明したように、本発明のガーベジコレクション処
理方式は、コピー処理のステップを他のステップと独立
に行ない、先頭から順次に使用中のデータのコピーを行
うことにより、データのメモリ上の前後関係を保ったま
まコピーすることができるため、スタックのガーベジコ
レクション処理を行なうことができるという効果がある
。
理方式は、コピー処理のステップを他のステップと独立
に行ない、先頭から順次に使用中のデータのコピーを行
うことにより、データのメモリ上の前後関係を保ったま
まコピーすることができるため、スタックのガーベジコ
レクション処理を行なうことができるという効果がある
。
第1図は本発明の一実施例を示すフローチャート、第2
図は第1図の実施例の処理対象となるデータの構成の一
例を示すデータ構成図、第3図は構造を有するオブジェ
クトすなわち’1ist”データのマーキング方法を示
す説明図、第4図は第1図の実施例の処理対象となる領
域の構成の一例を示す説明図、第5図は第1図の実施例
によるコピー処理およびポインタの張替え処理の前後の
状態を示す説明図、第6図は従来のコピー方式によるガ
ーベジコレクション処理方式のコピー前後の状態の一例
を示す説明図である。 11・12・13・14・・・処理、21・・・タグ、
22・・・GCビット、23・・・鎖部、24・・・”
i nt IIデータ、2’5・−ref”データ、
26−・・“1ist”データ、31・32・・・探索
すべき枝(枝)、33・・・探索用スタック、41・・
・ルート、42・43・・・スタック。
図は第1図の実施例の処理対象となるデータの構成の一
例を示すデータ構成図、第3図は構造を有するオブジェ
クトすなわち’1ist”データのマーキング方法を示
す説明図、第4図は第1図の実施例の処理対象となる領
域の構成の一例を示す説明図、第5図は第1図の実施例
によるコピー処理およびポインタの張替え処理の前後の
状態を示す説明図、第6図は従来のコピー方式によるガ
ーベジコレクション処理方式のコピー前後の状態の一例
を示す説明図である。 11・12・13・14・・・処理、21・・・タグ、
22・・・GCビット、23・・・鎖部、24・・・”
i nt IIデータ、2’5・−ref”データ、
26−・・“1ist”データ、31・32・・・探索
すべき枝(枝)、33・・・探索用スタック、41・・
・ルート、42・43・・・スタック。
Claims (2)
- (1)コピー方式のガーベジコレクション処理方式にお
いて、領域の下位番地から上位番地に向って使用中のデ
ータをその順序にコピーするステップと、コピーしたデ
ータを示すポインタをそのコピー先に張替えるステップ
とを独立のステップとして有することを特徴とするガー
ベジコレクション処理方式。 - (2)使用中のデータに印をつけるマーキング処理を行
う第一の処理と、前記第一の処理において印をつけた前
記データをバッキングスタックにコピーするコピー処理
を行う第二の処理と、前記第二の処理でコピーした使用
中の前記データのポインタを張替えるポインタ張替処理
を行う第三の処理と、前記データにつけた印を取去るマ
ークの取りはずし処理を行う第四の処理とを有すること
を特徴とするガーベジコレクション処理方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25417489A JPH03113651A (ja) | 1989-09-28 | 1989-09-28 | ガーベジコレクション処理方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25417489A JPH03113651A (ja) | 1989-09-28 | 1989-09-28 | ガーベジコレクション処理方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH03113651A true JPH03113651A (ja) | 1991-05-15 |
Family
ID=17261260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25417489A Pending JPH03113651A (ja) | 1989-09-28 | 1989-09-28 | ガーベジコレクション処理方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH03113651A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6716256B2 (en) * | 2001-09-13 | 2004-04-06 | Kurabo Industries Ltd. | Method for preparation of slenderized animal fiber |
-
1989
- 1989-09-28 JP JP25417489A patent/JPH03113651A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6716256B2 (en) * | 2001-09-13 | 2004-04-06 | Kurabo Industries Ltd. | Method for preparation of slenderized animal fiber |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH03113651A (ja) | ガーベジコレクション処理方式 | |
JP2591212B2 (ja) | 高速割込み処理装置 | |
JP2536619B2 (ja) | 図形処理装置 | |
JPH04288593A (ja) | 画像表示装置 | |
JPH03290741A (ja) | エラーロギング方法 | |
JPS60169946A (ja) | タスク制御方式 | |
JPH05134909A (ja) | 空きスペース検索方法 | |
JP3079825B2 (ja) | 電子計算機装置 | |
JP2914237B2 (ja) | 管理オブジェクトの属性読出し装置 | |
JPS60178549A (ja) | メモリ装置へのデ−タ登録方式 | |
JPH01130237A (ja) | 情報処理装置 | |
JPS62165239A (ja) | 情報検索方法 | |
JPH04223537A (ja) | イメージファイルの格納方式 | |
JPS59119456A (ja) | セグメンテイシヨンされたメモリのアクセス方式 | |
JPS61157948A (ja) | 割込み要因解析装置 | |
JPS58151671A (ja) | パタ−ン作成装置 | |
JPH02166565A (ja) | 図形要素の格納処理方式 | |
JPH02302869A (ja) | ファイル編集方式 | |
JPH09101882A (ja) | インスタンス構成変更方法 | |
JPH03222049A (ja) | Null値格納方式 | |
JPH038062A (ja) | 文書変換装置 | |
JPH03129541A (ja) | アドレスチェーン情報の書き換え方式 | |
JPH07281871A (ja) | データ交換方法 | |
JPH04128944A (ja) | マイクロプログラム実行履歴情報採集装置 | |
JPH01228022A (ja) | 二次元データ格納方式 |