JPH0449440A - ガーペジ・コレクション方法 - Google Patents

ガーペジ・コレクション方法

Info

Publication number
JPH0449440A
JPH0449440A JP15860590A JP15860590A JPH0449440A JP H0449440 A JPH0449440 A JP H0449440A JP 15860590 A JP15860590 A JP 15860590A JP 15860590 A JP15860590 A JP 15860590A JP H0449440 A JPH0449440 A JP H0449440A
Authority
JP
Japan
Prior art keywords
data
area
unused
garbage collection
data area
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
JP15860590A
Other languages
English (en)
Inventor
Yoshihiro Shintani
義弘 新谷
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP15860590A priority Critical patent/JPH0449440A/ja
Publication of JPH0449440A publication Critical patent/JPH0449440A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、記憶空間に設けられた一定のデータ領域につ
いて、所定のタイミングで空き領域を形成し、データ領
域の再利用を可能にするガーペジ・コレクション方法に
関する。
(従来の技術) 例えば、Li5p言語やProlog言語に代表される
ようなポインタを持つデータ構造を扱う記号処理装置に
おいては、メモリ等の記憶空間に設けられたデータ領域
を有効に活用するために、ガーペジ・コレクションとい
う手法が採用されている(特開昭60−79444号公
報、特開昭60−252968号公報、特開昭62−2
95145号公報)。
これらのガーペジ・コレクション方法によれば、処理の
進行と共に使用されなくなったデータ領域を回収し、再
利用する一定の方式がとられている。
第2図と第3図を用いて、その概要を説明する。
第2図は、従来一般の記号処理装置におけるデータ構造
を示す説明図である。
図の例では、データ領域1が左右対象の領域1a及び1
bに2分されており、双方に第2図下方に示すようなデ
ータ3が格納されている。このデータ3は、データの内
容を示すタグ部3aと、データ又はポインタ3bから構
成されている。
これらの装置の処理の実行に当たっては、予めデータ領
域1を構成する左半分の領域1aあるいは右半分の領域
lb中のデータを、そっくりスタック2にコピーし、ス
タック2を参照しながら処理が開始される。そして、ス
タック2の任意のデータを参照して、データ領域1の該
当するデータをアクセスし、その後、各データはポイン
タを辿って順にアクセスされていく。
処理の開始時には、通常、データ領域1の先頭から必要
なデータが順番に格納されるが、処理の進行と共に次第
に不要なデータが発生する。また、新たに必要となった
データは、データ領域1の末尾に向かって順に追加書込
みされていく。
データ領域1の中間に多数の不要なデータが発生したと
しても、新たな追加データは、既に書込まれたデータの
末尾に順次書込まれていく。従って、データ領域1中に
多数の不要なデータが存在するにも関わらず、データ領
域1がいっばいになる場合がある。そこで、その空き領
域を詰めるために、ガーペジ・コレクション方法が実施
される。
第3図に、従来のガーペジ・コレクション方法説明図を
示す。
図のように、当初、即ち時刻T1の時点では、データ領
域1には、データがハツチングに示すように先頭アドレ
スから順に書込まれ空き領域1cが存在していた。しか
しながら、処理の進行と共に、時刻T2までに、データ
領域1の末端までデータが格納されてしまう。データ領
域1の各部には、図のハツチングを付していない部分に
、不要となったデータによる空き領域が存在するが、従
来装置ではこれらを使用する手段は無く、処理の都合上
、データ領域の末端側の空き領域が必要となる。
そこで、時刻T2において、使用されているデータのみ
を集めて再配列するように、ガーペジ・コレクションが
実行される。その結果、時刻T3において、データ領域
1の末端側に空き領域ICが形成される。
このようにして、記憶空間の有効利用を図っている。
(発明が解決しようとする課題) ところで、上記のガーペジ・コレクション方法はコピ一
方式と呼ばれるもので、記憶空間を2つ以上に分割し、
−時的には、その内の1の空間だけを利用して処理を実
行する。ガーペジ・コレクションにおいては、使用中の
空間から使用されているデータのみを未使用の空間にコ
ピーする。この使用中のデータを決めるには、第2図に
示したスタック2を参照したり、データのポインタを辿
ることによって行なわれる。
しかし、第3図に示すように、このガーペジ・コレクシ
ョンを行なう際は、使用されていない空間を除外してデ
ータを順に詰合せるため、コピー前の旧データ領域とコ
ピー後の新データ領域のポインタの値が相異してくる。
これを解消するために、従来、ガーペジ・コレクション
実行の際には、予め旧データ領域のアドレスに新データ
領域のアドレスを書込んでおき、コピーが終了した後、
ポインタを書換える等の複雑な手順を実行していた。こ
れは、ガーペジ・コレクションにおける処理速度の低下
に繋るという問題があった。
また、ガーペジ・コレクションの対象となるデータ中に
は、処理の進行と共に変動することのない定数等の固定
データが含まれる。これらは、本来、ガーペジ・コレク
ションの対象外となってもよい性質のものであるが、従
来方法では、それを−括して取扱うため、ガーペジ・コ
レクションの処理速度の低下の原因となっていた。この
ような固定データを、ガーペジ・コレクションの対象外
となるようにすることも可能であるが、使用者による指
定等が必要となり、使用者の負担が過大となる難点もあ
った。
本発明は以上の点に着目してなされたもので、ガーペジ
・コレクションにおける煩雑なアドレスやポインタの付
は替えによる処理速度の低下を抑え、更にガーペジ・コ
レクションの対象外となるデータを自動的に決定し、使
用者の負担を軽減するガーペジ・コレクション方法を提
供することを目的とするものである。
(課題を解決するだめの手段) 本発明のガーペジ・コレクション方法は、記憶空間に、
現在使用中のデータを格納する使用動的データ格納領域
と、ガーペジ・コレクションにより前記使用動的データ
格納領域からデータを移動する未使用動的データ格納領
域と、前記ガーペジ・コレクションの対象とならない固
定データのみを格納する固定データ領域とを設定し、前
記使用動的データ格納領域の各データの旧アドレスから
、一定の減算値を差引いたアドレスを新アドレスに設定
して、前記未使用動的データ格納領域へデータの格納を
行ない、前記減算値を差引くことによって、ガーペジ・
コレクションの対象から除外されたデータを、前記使用
動的データ格納領域から前記固定データ領域に移動し、
前記未使用動的データ格納領域へ移動後の前記各データ
には、前記ガーペジ・コレクションにより移動したデー
タであることを示ずガーペジ・コレクションマークビッ
トを付加することを特徴とするものである。
(作用) 本発明の方法では、予め定めた一定量のデータを固定デ
ータとみなしてガーペジ・コレクションの対象から除外
してしまう。その一方で、残りのデータをそっくり未使
用動的データ領域ヘコビーする。これにより、先に除外
した固定データと同量の空き領域ができる。更に、デー
タ中に、ガーペジ・コレクションマークピットを設け、
未使用データのリストを生成し、その部分を空き領域と
同等に有効利用する。こうして、アドレス変換を容易に
して、固定データ除外の自動化を図った。
(実施例) 以下、本発明を図の実施例を用いて詳細に説明する。
第1図は、本発明のガーペジ・コレクション方法実施例
を示す説明図である。
図のように、本発明の方法においては、記憶空間10に
、固定データ領域11と、使用動的データ領域12と、
未使用動的データ領域13とを設定する。
固定データ領域11は、ガーペジ・コレクションの対象
とならない固定データのみを格納しておくための領域で
ある。また、使用動的データ領域12と未使用動的デー
タ領域13は、共に同一の容量を持ち、ここでは、現在
使用中のデータが使用動的データ領域12に格納されて
おり、ガーペジ・コレクションにより未使用動的データ
格納領域13ヘデータを移動する処理が実行されるもの
とする。
ここで、本発明の方法においては、ガーペジ・コレクシ
ョン実行の際、先ず、使用動的データ領域12に、その
先頭から一定の幅を持つアンダーフロー領域12aを設
定する。使用動的データ領域12の先頭アドレスな°°
0°°として、このアンダーフロー領域の幅をA°′と
すれば、図の矢印に示した部分がアドレス°“A ”と
なる。
以下、このアンダーフロー領域12aの幅” A ”を
減算値と呼ぶ。
そして、本発明の方法においては、ガーペジ・コレクシ
ョン実行の際、使用動的データ領域12のアンダーフロ
ー領域12aを、そっくり固定データ領域11にコピー
すると共に、アンダーフロー領域12a以外の領域のデ
ータを、そっくり未使用動的データ領域13の先頭から
始まる領域に転記する。これによって、未使用動的デー
タ領域13には、使用動的データ領域12のアンダーフ
ロー領域12aと等しい大きさの空き領域13aが発生
する。
第1図の下方に、具体的な個々のデータについての説明
図を示している。
先ず、使用動的データ領域12に着目すると、図のよう
に、処理の進行に従って、このデータ領域にはハツチン
グを付した現実に使用されているデータと、ハツチング
を付していない不要になったデータとが混在してくる。
経験的に、この種の記号処理においては、定数等の固定
データは、データ領域の先頭近くに集まる傾向にある。
従って、予めそのような経験則に基づいてアンダーフロ
ー領域の幅を設定しておけば、自動的にそのデータを固
定データ領域11に移動させて、ガーペジ・コレクショ
ンの対象から除外することができる。具体的には、例え
ばUsρ言語において、このアンダーフロー領域の幅を
°゛10°°10°°程度良好な結果を得た。
一方、図に示すように、使用動的データ領域12のその
他のデータは、そっくり未使用動的データ領域13に平
行移動させるようにコピーされる。このようにすれば、
データのポインタやアドレスは、単に上記アンダーフロ
ー領域の幅である減算値“A°゛を減算するという、単
純計算で変換が可能となる。従って、アドレスの付は替
えは、高速に行なうことができる。そして、この場合、
未使用動的データ領域13には、必ずアンダーフロー領
域の幅゛A°“に該当する空き領域が確保される。
尚、移動されたデータ中に混在する空き領域の有効利用
については、別途、テーブル状の未使用データリストを
作成する。この未使用データリストを参照すれば、その
ような未使用空間も空き領域と同等に利用が可能である
このような未使用データを識別するために、本発明の方
法においては、各データ20を図のような構成としてい
る。
即ち、データ20は、従来のデータと同様のタグ部22
と、データ又はポインタ23の他に、ガーペジ・コレク
ションマークビット21を備えている。このガーペジ・
コレクションマークビット21は、例えば、使用中のデ
ータの場合“”1”、不要となったデータの場合” o
 ”といった内容となる。これによって、ガーペジ・コ
レクションマークビットがO°°のもののリストが容易
に生成できる。
また、上記のようなガーペジ・コレクションを繰返すと
、固定データ領域11にも空き領域が無くなる場合があ
る。本発明の方法によれば、使用動的データ領域12の
アンダーフロー領域12aを一律に設定してしまうため
、固定データ領域中にも空き領域が混在し得る。従って
、固定データ領域ll自体は、従来のガーペジ・コレク
ション方法によって所定のタイミングで整理し、空き領
域を設けるようにする。
また、図に示すように、使用動的データ領域12のアン
ダーフロー領域12a以外の部分のデータを、そっくり
未使用動的データ領域13に移動させた場合、未使用動
的データ領域13の先頭には、必ずしも使用中のデータ
がくるとは限らない。先頭に不要データがきた場合には
、次回のガーペジ・コレクションにおいて、固定データ
の先頭に未使用データがきてしまう。従って、そのよう
なデータを固定データから除外するために、最初の使用
中のデータが存在するアドレスを知る必要がある。
この目的のために、未使用動的データ領域13に、その
最小アドレス“B゛°を認識しておく手段を設ける。ま
た、固定データ領域11についても、使用動的データ領
域12から固定データの転送を受ける最初のアドレス゛
C°°を保持しておく手段を設ける。
以上のような動作を実行するために、具体的には、メモ
リ上に第4図に示すような記憶空間を設定する。
第4図は、本発明の方法実施のための記憶空間説明図で
ある。
図において、この記憶空間は、記憶空間管理部41によ
って管理される。そして、記号処理のための2以上の使
用動的データ領域121〜123が設けられ、その他に
固定データ領域11が設けられている。この使用動的デ
ータ領域121〜123のうちの1つが、未使用動的デ
ータ領域に割当てられる。
また、中央処理装置(CPtJ)42の内部には、減算
レジスタ421と、固定データ領域アドレスレジスタ4
22と、未使用動的データ領域最小アドレスレジスタ4
23とが設けられる。
具体的には、減算レジスタ421には’A”、固定デー
タ領域アドレスレジスタ422には“C′。
未使用動的データ領域最小アドレスレジスタ423には
°B°′の値のアドレスが格納される。各個は、第1図
において既に説明した通りの内容のものである。
第5図は、本発明の方法の動作フローチャートである。
この図を用いて、本発明の方法の具体的な動作説明を行
なう。
先ず、この動作開始前に、第4図に示した使用動的デー
タ領域の何れかが、ガーペジ・コレクションの対象に選
定され、他の何れかの領域が未使用動的データ領域に選
定される。また同時に、固定データ領域11もガーペジ
・コレクションの対象として設定される。
そして、第5図ステップS1に示すように、始めにアド
レス減算値” A ”が設定される。これは、先に説明
したように、予め経験的に定められたガーペジ・コレク
ションの対象から除外されるべきデータ数である。
次に、未使用動的データ領域のアドレスの最小値” B
 ”を設定する(ステップS2)。これは、当初は不明
であるため、未使用動的データ領域13の最大アドレス
としておく。このアドレスBは、以下に説明する処理に
よって、次々に再設定される。
次に、未使用動的データ領域を決定する(ステップS3
)。そして、その未使用動的データ領域のクリアを行な
う(ステップS4)。これにより、未使用動的データ領
域13へのデータの移動準備が完了する。
また、固定データ領域アドレス゛C″の設定を行なう。
これは、固定データ領域11への固定データの移動を行
なう際の先頭アドレスとして使用される(ステップS5
)。
その後は、第2図において説明したように、システムの
スタックや定数値を元に、使用動的領域をポインタを辿
りながらトレースし、使用中のデータを1つずつサーチ
する(ステップS6)。
そして、各データ毎に、データ中にポインタがあるか否
かを判断する(ステップS7)。
次に、ポインタが“A”より大きいか否かが判断される
(ステップS8)。ポインタが“A′°より小さい場合
には、ポインタの指すデータはアンダーフロー領域に含
まれ、固定データ領域11に移動されるデータとなる。
従って、ポインタが” A ”より大きい場合には、“
ポインターA ”を未使用動的データ領域用の新ポイン
タに設定しくステップS9)、ポインタが°A”より小
さい場合には、“ポインタ+C゛°を固定データ領域の
新ポインタに設定する(ステップ510)。
次に、データのアドレスが“°A′′より大きいか否か
が判断される(ステップ511)。データのアドレスが
A°°より小さい場合には、アンダーフロー領域12a
にそのデータが存在し、固定データ領域11へ移動する
データとなる。それ以外の場合には、未使用動的データ
領域13へ移動するデータとなる。従って、データのア
ドレスがA゛°より大きい場合、゛°データのアドレス
−A゛を未使用動的データ領域の新アドレスに設定しく
ステップS L 2) 、それ以外の場合は、“°デー
タのアドレス+C°゛を固定データ領域の新アドレスに
設定する(ステップ513)。
ここで、未使用動的データ領域13へ移動されるデータ
については、ステップS14及びステップS15によっ
て、“′B゛′の再設定が行なわれる。
即ち、°°データのアドレス−A ”が°B°′より大
きいか否かが判断される(ステップ514)。
゛°データのアドレス−A”がB″よりも太きい場合に
は問題は無いが、小さい場合には、未使用動的データ領
域のアドレスの最小値“°B゛′を再設定する。
即ち、ステップS2において、アドレスの最小値” B
 ”を、未使用動的データ領域13の最大アドレスに設
定しておけば、移動すべきデータのアドレスが決定する
と、その都度、順次” B ”の値が未使用動的データ
領域13の先頭に向かって移動する。その結果、未使用
動的データ領域13に移動されるデータの、最も若いア
ドレスに存在するデータのアドレスが、” B ”によ
り示されることになる。
その後、使用動的データ領霊のデータの、ガーペジ・コ
レクションマークピットを“1′°にする(ステップS
 16)。トレース済みのデータとそれ以外のデータを
区別し、重複するコピーを防止するためである。そして
、データを、未使用動的データ領域の新アドレスに書込
む(ステップ517)。最後に、未使用動的データ領域
のガーペジ・コレクションマークビットな1°′にして
、ステップS6に戻る。
ステップS6からステップS18までは、ポインタを辿
ってトレースが終了するまで、各データについて実行さ
れる。そして、データが終了すると、ステップS19に
おいて、未使用動的データ領域におけるアドレスの最小
値“B°゛以後のデータで、ガーペジ・コレクションマ
ークビットが°“lo”でないものを調べて、未使用デ
ータリストを作成する。
こうして、一連のガーペジ・コレクション処理を終了す
る。
以上のような処理によって、第1図の方法が実施される
その後、未使用動的データ領域の使用が開始され、ガー
ペジ・コレクションマークピットに基づいて作成された
未使用データリストにより、空き領域が有効に利用され
る。また、次回のガーペジ・コレクション実行の際には
、固定データはアドレスB以下の一定量だけ、固定デー
タ領域に移動されることになる。
(発明の効果) 以上説明した本発明のガーペジ・コレクション方法によ
れば、データを使用動的データ領域から未使用動的デー
タ領域に移動する際、簡単な一定の加減算でポインタと
アドレス変換を行なうので、処理速度を高速化できる。
また、ガーペジ・コレクションの対象から除外すべきデ
ータを自動的に設定し、これを固定データ領域に移動す
るようにしたので、ガーペジ・コレクション自体の高速
化を図り、かつ、使用者の負担を軽減する。
【図面の簡単な説明】
第1図は本発明のガーペジ・コレクション方法実施例を
示す説明図、第2図は従来一般のデータ構造説明図、第
3図は従来のガーペジ・コレクション方法説明図、第4
図は本発明の方法実施のための記憶空間説明図、第5図
は本発明の方法の動作フローチャートである。 11・・・固定データ領域、 12・・・使用動的データ領域、

Claims (1)

  1. 【特許請求の範囲】 記憶空間に、 現在使用中のデータを格納する使用動的データ格納領域
    と、 ガーペジ・コレクションにより前記使用動的データ格納
    領域からデータを移動する未使用動的データ格納領域と
    、 前記ガーペジ・コレクションの対象とならない固定デー
    タのみを格納する固定データ領域とを設定し、 前記使用動的データ格納領域の各データの旧アドレスか
    ら、一定の減算値を差引いたアドレスを新アドレスに設
    定して、前記未使用動的データ格納領域へデータの格納
    を行ない、前記減算値を差引くことによって、ガーペジ
    ・コレクションの対象から除外されたデータを、前記使
    用動的データ格納領域から前記固定データ領域に移動し
    、 前記未使用動的データ格納領域へ移動後の前記各データ
    には、前記ガーペジ・コレクションにより移動したデー
    タであることを示すガーペジ・コレクションマークビッ
    トを付加することを特徴とするガーペジ・コレクション
    方法。
JP15860590A 1990-06-19 1990-06-19 ガーペジ・コレクション方法 Pending JPH0449440A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15860590A JPH0449440A (ja) 1990-06-19 1990-06-19 ガーペジ・コレクション方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15860590A JPH0449440A (ja) 1990-06-19 1990-06-19 ガーペジ・コレクション方法

Publications (1)

Publication Number Publication Date
JPH0449440A true JPH0449440A (ja) 1992-02-18

Family

ID=15675354

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15860590A Pending JPH0449440A (ja) 1990-06-19 1990-06-19 ガーペジ・コレクション方法

Country Status (1)

Country Link
JP (1) JPH0449440A (ja)

Similar Documents

Publication Publication Date Title
US7010555B2 (en) System and method for compacting a computer system heap
US6199075B1 (en) Method and apparatus for generational garbage collection of a heap memory shared by multiple processors
JPH0695954A (ja) コンサーバティブ・スタックとジェネレイショナル・ヒープガーベージ・コレクション用コンピュータシステム及び方法
JPH04186447A (ja) 情報処理装置
US4580211A (en) Method for controlling storage of data sets in memory unit
JPH0449440A (ja) ガーペジ・コレクション方法
JP2004070439A (ja) データの記憶領域への配置を決定するコンパイラ装置及び配置決定方法
Stockhausen Adapting optimal code generation for arithmetic expressions to the instruction sets available on present-day computers
JPH0247735A (ja) 計算機装置
JPH02156348A (ja) 複数のハッシュ表のあふれ領域管理方法
JPS6045854A (ja) ファイル移行制御方式
JPH05241936A (ja) ガーベッジコレクション処理方式及びその記憶装置
JP3264449B2 (ja) 情報処理システムにおける記憶管理装置
CN117762933A (zh) 一种穿梭框实现方法、系统、存储介质和电子设备
JPS6364142A (ja) メモリ管理制御方式
JP2020135759A (ja) コンパイラ装置、プログラム、及び情報処理方法
JPS59119459A (ja) ガ−ベジ・コレクシヨン方式
Pesch Large arrays and files
JPH02194439A (ja) プログラム実行方式
JPH0756799A (ja) 記憶領域管理方法
JPH01130237A (ja) 情報処理装置
JPH04222050A (ja) 文書廃棄判断支援処理装置
JPH04326137A (ja) 動的領域管理方法
JPH08153031A (ja) フアイル管理装置
JPH01191939A (ja) リンクパックエリアロード方式