JPH02205947A - ガーベジコレクション方式 - Google Patents
ガーベジコレクション方式Info
- Publication number
- JPH02205947A JPH02205947A JP2509589A JP2509589A JPH02205947A JP H02205947 A JPH02205947 A JP H02205947A JP 2509589 A JP2509589 A JP 2509589A JP 2509589 A JP2509589 A JP 2509589A JP H02205947 A JPH02205947 A JP H02205947A
- Authority
- JP
- Japan
- Prior art keywords
- area
- address
- data
- common area
- garbage collection
- 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
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
この発明は、情報処理装置のメモリ管理の一種であるガ
ーベジコレクション方式に関するものである。
ーベジコレクション方式に関するものである。
数値データ以外のデータを主に取扱う知識情報処理では
、その処理の過程で主記憶中に生成されたデータが、あ
る時点以降は再度参照されることのないデータとなるこ
とが多い。このようなデータをガーベジ又はゴミと称し
、処理が進んでいくとゴミの量が多くなり主記憶の利用
率が低下する。
、その処理の過程で主記憶中に生成されたデータが、あ
る時点以降は再度参照されることのないデータとなるこ
とが多い。このようなデータをガーベジ又はゴミと称し
、処理が進んでいくとゴミの量が多くなり主記憶の利用
率が低下する。
従って、何らかの方法でこのゴミを除く処理(ガーベジ
コレクション)が必要となる。
コレクション)が必要となる。
第10図はゴミを含むデータが存在する主記憶の状態図
である。
である。
図において、1はデータが書込まれた主記憶で、2は主
記憶1の各部に付けられたアドレスを示す。
記憶1の各部に付けられたアドレスを示す。
主記憶1の各部は、GC(ガーベジコレクション)フラ
グ部1a、タグ部1b、値部ICの3つの部分から構成
され、各部はそれぞれプログラムで書込みと読出しが可
能である。GCフラグ部1aはガーベジコレクション処
理の為に設けられたもので、初期状態は全てumが書込
まれている。タグ部1bは書込まれているデータの型を
示すためのものであり、この例ではデータ型には2種あ
る。
グ部1a、タグ部1b、値部ICの3つの部分から構成
され、各部はそれぞれプログラムで書込みと読出しが可
能である。GCフラグ部1aはガーベジコレクション処
理の為に設けられたもので、初期状態は全てumが書込
まれている。タグ部1bは書込まれているデータの型を
示すためのものであり、この例ではデータ型には2種あ
る。
1つはintで整数を示し、その値部ICには当該整数
の値が入っている。他の1つはvect2で、これは構
造体と呼ばれる一次元の配列データを示し、その値部1
cには当該配列データが置かれているアドレスが入って
いる。配列の長さは2語である。アドレス2は4桁で表
わされ、最上位桁2aはエリア番号、下位3桁2bはエ
リア内アドレスと呼ばれる。エリア内アドレスは0から
連続して使用される。この例ではエリア番号1と5が使
用され、エリア内アドレスはともに0から4まで使用さ
れている。
の値が入っている。他の1つはvect2で、これは構
造体と呼ばれる一次元の配列データを示し、その値部1
cには当該配列データが置かれているアドレスが入って
いる。配列の長さは2語である。アドレス2は4桁で表
わされ、最上位桁2aはエリア番号、下位3桁2bはエ
リア内アドレスと呼ばれる。エリア内アドレスは0から
連続して使用される。この例ではエリア番号1と5が使
用され、エリア内アドレスはともに0から4まで使用さ
れている。
第11図は、従来多く使用されているガーベジコレクシ
ョン方式であるマーキング・アンド・スライディング・
コンパクション方式の概略フローチャートである。以下
、本フローチャートに従って処理の概要を説明する。
ョン方式であるマーキング・アンド・スライディング・
コンパクション方式の概略フローチャートである。以下
、本フローチャートに従って処理の概要を説明する。
ステップ100ではマーキング処理を行う、これは主記
憶1中の有効なデータを捜してそれら全ての語のGCフ
ラグ部1aにmkを書込むものである。mkが書込まれ
なかったデータは初期状態umのままであり、これが無
効となったゴミのデータである。また、マーキング処理
中、各エリア毎にこのゴミデータの総量も計数しておく
。第10図のデータをマーキング処理した後の状態を第
12図に示す、なお、マーキング処理の過程は本発明と
は直接関係ないので、ここでは説明を省略する。
憶1中の有効なデータを捜してそれら全ての語のGCフ
ラグ部1aにmkを書込むものである。mkが書込まれ
なかったデータは初期状態umのままであり、これが無
効となったゴミのデータである。また、マーキング処理
中、各エリア毎にこのゴミデータの総量も計数しておく
。第10図のデータをマーキング処理した後の状態を第
12図に示す、なお、マーキング処理の過程は本発明と
は直接関係ないので、ここでは説明を省略する。
次のステップ200.300ではmkを付けたデータだ
け、エリア内のアドレスの小さい方へ詰含むアドレスの
大きいほうから小さい方に向ってメモリを順番に読出し
、自身より小さいアドレスを指す上向きポインタ(前述
のvect2で示すようなアドレス情報を値部ICに持
つデータをポインタと呼ぶ)を、ゴミを除いてコンパク
ションされた後のアドレスにメンテナンスする操作を行
う。第13図にこの部分の詳細フローチャートを示す。
け、エリア内のアドレスの小さい方へ詰含むアドレスの
大きいほうから小さい方に向ってメモリを順番に読出し
、自身より小さいアドレスを指す上向きポインタ(前述
のvect2で示すようなアドレス情報を値部ICに持
つデータをポインタと呼ぶ)を、ゴミを除いてコンパク
ションされた後のアドレスにメンテナンスする操作を行
う。第13図にこの部分の詳細フローチャートを示す。
第12図のマーク済データを例にこのフローチャートで
その処理を説明する。まず、第12図の条件に従ってス
テップ201及び203でAREA=5,5P=500
4.MP=3の値が代入され、ステップ206で500
4番地の内容が読出される。読出したDataのGCフ
ラグ部がumであるので(ステップ207)、ステップ
212.213が実行され、5P=5003゜MP=2
となる。再びステップ206に戻り、5003番地の内
容が読出される。そのGC’フラグ部がmkでタグ部が
intであるので(ステップ207.208)、ステッ
プ213が実行され、5P=5002となる。再びステ
ップ206に戻り、′5002番地の内容が読出される
。GCフラグ部がmkでタグ部がvect2.さらに値
部がspより小さいので(ステップ207,208゜2
09)ステップ210が実行される。ステップ210の
詳細は第14図に示す、つまり、ポイント先の内容を読
出してSPのアドレスに書込み、ポイント先からはS−
Pの位置を指すようにする。
その処理を説明する。まず、第12図の条件に従ってス
テップ201及び203でAREA=5,5P=500
4.MP=3の値が代入され、ステップ206で500
4番地の内容が読出される。読出したDataのGCフ
ラグ部がumであるので(ステップ207)、ステップ
212.213が実行され、5P=5003゜MP=2
となる。再びステップ206に戻り、5003番地の内
容が読出される。そのGC’フラグ部がmkでタグ部が
intであるので(ステップ207.208)、ステッ
プ213が実行され、5P=5002となる。再びステ
ップ206に戻り、′5002番地の内容が読出される
。GCフラグ部がmkでタグ部がvect2.さらに値
部がspより小さいので(ステップ207,208゜2
09)ステップ210が実行される。ステップ210の
詳細は第14図に示す、つまり、ポイント先の内容を読
出してSPのアドレスに書込み、ポイント先からはS−
Pの位置を指すようにする。
この後のステップ213実行後のメモリの状態を第15
図に。示す。それまでのポインタの向きが逆向きに変え
られており、1003番地のGCフラグ部1aにrev
が付けられている。このポインタを逆転ポインタと呼ぶ
、さらに処理が進み、spが5001.5000,10
04.1003と変化する。1003番地まで進んだと
き、第13図のステップ207で逆転ポインタrevを
検出する0次のステップ220の詳細は第16図に示す
。ここでは、ポイント先の内容を読出してSPのアドレ
スに書込み、SP−MPの計算を行って1003番地に
令書込まれた内容がコンパクション処理の後に移動する
先を求める。つまり、MPが保持するのがSPの位置よ
り上にあるゴミの総量であるから、その分をSPから差
し引くことによりコンパクション後のアドレスが求まる
ことになる。この直後のメモリの状態を第17図に示す
、さらにspが1002.1001゜1000と進んで
この処理を終える。
図に。示す。それまでのポインタの向きが逆向きに変え
られており、1003番地のGCフラグ部1aにrev
が付けられている。このポインタを逆転ポインタと呼ぶ
、さらに処理が進み、spが5001.5000,10
04.1003と変化する。1003番地まで進んだと
き、第13図のステップ207で逆転ポインタrevを
検出する0次のステップ220の詳細は第16図に示す
。ここでは、ポイント先の内容を読出してSPのアドレ
スに書込み、SP−MPの計算を行って1003番地に
令書込まれた内容がコンパクション処理の後に移動する
先を求める。つまり、MPが保持するのがSPの位置よ
り上にあるゴミの総量であるから、その分をSPから差
し引くことによりコンパクション後のアドレスが求まる
ことになる。この直後のメモリの状態を第17図に示す
、さらにspが1002.1001゜1000と進んで
この処理を終える。
第11図の次のステップ300のコンパクション・パス
2では、こんどは逆に1000番地から順に読み出し、
mkの付いたデータをエリア内アドレスOの側に詰合せ
ていく。この時、mkをumにクリアする処理及びこの
例では存在しないが、下向きのポインタがあればそのメ
ンテナンスする処理もステップ200と同様に行う。こ
の処理の後、すなわちガーベジコレクション終了後のメ
モリの状態を第18図に示す。第12図でmkが付され
たデータのみ残されて詰合されている。
2では、こんどは逆に1000番地から順に読み出し、
mkの付いたデータをエリア内アドレスOの側に詰合せ
ていく。この時、mkをumにクリアする処理及びこの
例では存在しないが、下向きのポインタがあればそのメ
ンテナンスする処理もステップ200と同様に行う。こ
の処理の後、すなわちガーベジコレクション終了後のメ
モリの状態を第18図に示す。第12図でmkが付され
たデータのみ残されて詰合されている。
この方式の特徴は、第11図のステップ200で行なわ
れている逆転ポインタによるポインタのメンテナンスで
ある。これにより特別な作業領域を取らずにデータの詰
合せが可能になるが、反面。
れている逆転ポインタによるポインタのメンテナンスで
ある。これにより特別な作業領域を取らずにデータの詰
合せが可能になるが、反面。
逆転ポインタが生成できないようなアドレス構成のメモ
リシステムではこの方式は使用できない。
リシステムではこの方式は使用できない。
例えば、第19図に示すようなプロセス毎の多重論理空
間では逆転ポインタの生成ができない。この例では、論
理アドレス空間がプロセス間で共通に参照されるプロセ
ス共通エリア10と、自プロセスの個別エリア内からし
か参照されないプロセス個別エリア11.11に分けら
れ各プロセス個別エリア11.11の論理アドレスはプ
ロセス毎に同じ値が使われる。なお、最終的に物理メモ
リをアクセスする際に、物理メモリアドレスとこの論理
アドレスとの対応関係を示すアドレス変換テーブルがプ
ロセス毎に異っているため、通常の使用時は問題ない。
間では逆転ポインタの生成ができない。この例では、論
理アドレス空間がプロセス間で共通に参照されるプロセ
ス共通エリア10と、自プロセスの個別エリア内からし
か参照されないプロセス個別エリア11.11に分けら
れ各プロセス個別エリア11.11の論理アドレスはプ
ロセス毎に同じ値が使われる。なお、最終的に物理メモ
リをアクセスする際に、物理メモリアドレスとこの論理
アドレスとの対応関係を示すアドレス変換テーブルがプ
ロセス毎に異っているため、通常の使用時は問題ない。
しかし、ガーベジコレクシジンの逆転ポインタ生成時は
、プロセス共通エリア10から各プロセス個別エリア1
1.11を指さねばならず問題がある。すなわち、10
03番地に逆転ポインタを書込んだとき、そのアドレス
がプロセス1番のものか2番のものかの判別がつかない
からである。
、プロセス共通エリア10から各プロセス個別エリア1
1.11を指さねばならず問題がある。すなわち、10
03番地に逆転ポインタを書込んだとき、そのアドレス
がプロセス1番のものか2番のものかの判別がつかない
からである。
この発明は上記のような問題点を解決するためになされ
たもので、多重論理空間にも適用できるガーベジコレク
シ9ン方式を実現することを目的とする。
たもので、多重論理空間にも適用できるガーベジコレク
シ9ン方式を実現することを目的とする。
この発明におけるガーベジコレクション方式は、プロセ
ス毎の多重論理空間において、プロセス共通エリアの大
きさに応じた作業エリアを設けて、プロセス共通エリア
における有効データのガーベジコレクション後の相対移
動量を当該有効データのアドレスに対応させて上記作業
エリア又は当該プロセス共通エリア内の無効データの領
域に書込み、プロセス個別エリアにおいてプロセス共通
エリアを指すポインタのメンテナンスを上記相対移動量
を用いて行なうようにしたものである。
ス毎の多重論理空間において、プロセス共通エリアの大
きさに応じた作業エリアを設けて、プロセス共通エリア
における有効データのガーベジコレクション後の相対移
動量を当該有効データのアドレスに対応させて上記作業
エリア又は当該プロセス共通エリア内の無効データの領
域に書込み、プロセス個別エリアにおいてプロセス共通
エリアを指すポインタのメンテナンスを上記相対移動量
を用いて行なうようにしたものである。
この発明におけるガーベジコレクション方式では、多重
論理空間のプロセス共通エリアにおける有効データの相
対移動量が、対応する作業エリア又はプロセス共通エリ
ア内の無効データの領域に書込まれているため、この相
対移動量を用いてプロセス個別エリアからプロセス共通
エリアを指すポインタのメンテナンスが可能となる。
論理空間のプロセス共通エリアにおける有効データの相
対移動量が、対応する作業エリア又はプロセス共通エリ
ア内の無効データの領域に書込まれているため、この相
対移動量を用いてプロセス個別エリアからプロセス共通
エリアを指すポインタのメンテナンスが可能となる。
以下、この発明の一実施例を図について説明する。第1
図において、10.11.12は主記憶で、−語は前述
したようにGCフラグ部1a、タグ部1b、値部ICで
構成され、各部はそれぞれプログラムで書込みと読出し
が可能である。GCフラグ部1aはガーベジコレクショ
ン処理の為に設けられたもので、初期状態は全てにum
が書込まれており、ガーベジコレクション処理の中でm
k又はumが書込まれる。タグ部1bは書込まれている
データの型を示すためのものであり、この例ではデータ
型には2種ある。1つはLntで整数を示し、その値部
ICには当該整数の値が入っている。他の1つはvec
t2で、これは構造体と呼ばれる一次元の配列データを
示し、その値部1cには当該配列データが置かれている
アドレスが入っている。配列の長さは2語である。アド
レス2は4桁で表わされ、最上位桁2aはエリア番号、
下位3桁2bはエリア内アドレスである。
図において、10.11.12は主記憶で、−語は前述
したようにGCフラグ部1a、タグ部1b、値部ICで
構成され、各部はそれぞれプログラムで書込みと読出し
が可能である。GCフラグ部1aはガーベジコレクショ
ン処理の為に設けられたもので、初期状態は全てにum
が書込まれており、ガーベジコレクション処理の中でm
k又はumが書込まれる。タグ部1bは書込まれている
データの型を示すためのものであり、この例ではデータ
型には2種ある。1つはLntで整数を示し、その値部
ICには当該整数の値が入っている。他の1つはvec
t2で、これは構造体と呼ばれる一次元の配列データを
示し、その値部1cには当該配列データが置かれている
アドレスが入っている。配列の長さは2語である。アド
レス2は4桁で表わされ、最上位桁2aはエリア番号、
下位3桁2bはエリア内アドレスである。
エリア内アドレスは0から連続して使用される。
エリア番号5はプロセス個別エリア11で、異なるプロ
セス間で同じ論理アドレスが使われる。プロセス個別エ
リア11内にあるvect2のデータは、プロセス共通
エリア10又は自分のプロセス個別エリア11内を指す
。エリア番号1はプロセス共通エリア10で、各プロセ
ス個別エリア11から指される。
セス間で同じ論理アドレスが使われる。プロセス個別エ
リア11内にあるvect2のデータは、プロセス共通
エリア10又は自分のプロセス個別エリア11内を指す
。エリア番号1はプロセス共通エリア10で、各プロセ
ス個別エリア11から指される。
エリア番号1のプロセス共通エリア10内にあるvec
t2のデータは同一エリアlO内を指し、プロセス個別
エリア11を指すことは無い。エリア番号Oは、本発明
の実現の為に使用されるプロセス共通のGC用作業エリ
ア12で、ガーベジコレクションの作業領域である。こ
のエリアの大きさはプロセス共通エリア10の1/4の
大きさ(余りがある場合はプラス1)が取られている。
t2のデータは同一エリアlO内を指し、プロセス個別
エリア11を指すことは無い。エリア番号Oは、本発明
の実現の為に使用されるプロセス共通のGC用作業エリ
ア12で、ガーベジコレクションの作業領域である。こ
のエリアの大きさはプロセス共通エリア10の1/4の
大きさ(余りがある場合はプラス1)が取られている。
第2図は本発明によるガーベジコレクションのフローチ
ャートである。第1図の例をもとに、このガーベジコレ
クションの動作を説明する。ステップ100ではマーキ
ング処理を行う。これは主記憶中の有効なデータを捜し
てそれら全ての語のGCフラグ部にmkを書込むもので
、従来と同様である。mkが書込まれなかったデータは
初期状9umのままであり、これがゴミのデータである
。
ャートである。第1図の例をもとに、このガーベジコレ
クションの動作を説明する。ステップ100ではマーキ
ング処理を行う。これは主記憶中の有効なデータを捜し
てそれら全ての語のGCフラグ部にmkを書込むもので
、従来と同様である。mkが書込まれなかったデータは
初期状9umのままであり、これがゴミのデータである
。
第1図のGCフラグ部1aはこのマーキング処理終了後
の状態を示している。
の状態を示している。
ステップ400は本発明による共通エリア・コンパクシ
ョン・パスlの処理である。この処理はプロセス共通エ
リア10をエリア内アドレスの大きい方から順番に読み
出し、mkの付いた語で上向きポインタをメンテナンス
するところは第11図に示した従来のガーベジコレクシ
ョンのステップ200の処理と同じである0本願のステ
ップ400では、これに加え、共通エリア内のmkデー
タがコンパクションの後で移動する位置を知るために、
現在位置からの相対移動量を求め、それを記録しておく
。記録は以下の方法で行う。
ョン・パスlの処理である。この処理はプロセス共通エ
リア10をエリア内アドレスの大きい方から順番に読み
出し、mkの付いた語で上向きポインタをメンテナンス
するところは第11図に示した従来のガーベジコレクシ
ョンのステップ200の処理と同じである0本願のステ
ップ400では、これに加え、共通エリア内のmkデー
タがコンパクションの後で移動する位置を知るために、
現在位置からの相対移動量を求め、それを記録しておく
。記録は以下の方法で行う。
プロセス共通エリア10のエリア内アドレス00から4
語づつのブロックに分け、1つのブロックが全てmkの
場合はブロック内のどの語も相対移動量が等しいわけで
あるから、その相対移動量を第1図のエリア番号0のG
C用作業エリア12に移動量テーブルとして書込む。書
込みアドレスは元のエリア内アドレスを4で割ることに
よって求める。ブロック内にumのデータが存在する場
合はそのブロック内のmkのデータは相対移動量が異な
る可能性があるので、GC用作業エリア12は使用せず
、mkデータのすぐ上のumデータの値部1cに相対移
動量を書込む0以上の共通エリア・コンパクション・パ
ス1の処理を第3図のフローチャートで示す0本フロー
チャートでは、ステップ214で図示しない■フラグを
初期化し、これをumを検出するとリセツトすることに
よってブロック内が全てmkかを判断している。
語づつのブロックに分け、1つのブロックが全てmkの
場合はブロック内のどの語も相対移動量が等しいわけで
あるから、その相対移動量を第1図のエリア番号0のG
C用作業エリア12に移動量テーブルとして書込む。書
込みアドレスは元のエリア内アドレスを4で割ることに
よって求める。ブロック内にumのデータが存在する場
合はそのブロック内のmkのデータは相対移動量が異な
る可能性があるので、GC用作業エリア12は使用せず
、mkデータのすぐ上のumデータの値部1cに相対移
動量を書込む0以上の共通エリア・コンパクション・パ
ス1の処理を第3図のフローチャートで示す0本フロー
チャートでは、ステップ214で図示しない■フラグを
初期化し、これをumを検出するとリセツトすることに
よってブロック内が全てmkかを判断している。
ステップ240の移動量テーブル作成ルーチンの詳細は
第4図に示す。GC用作業エリア12のGCフラグ部1
aがmkの場合、対応する共通エリアのブロックが全て
mkで、この語の値部ICには相対移動量が書込まれて
いることを示し、umの場合は対応するブロック内にu
mが存在し、この語の値部ICには相対移動量が書込ま
れていない事を示す。第5図は、共通エリア・コンパク
ション・バス1が終了した後の状態を示す。相対移動量
が0001番地、0003番地、1000番地、100
2番地、1010番地に書込まれている。
第4図に示す。GC用作業エリア12のGCフラグ部1
aがmkの場合、対応する共通エリアのブロックが全て
mkで、この語の値部ICには相対移動量が書込まれて
いることを示し、umの場合は対応するブロック内にu
mが存在し、この語の値部ICには相対移動量が書込ま
れていない事を示す。第5図は、共通エリア・コンパク
ション・バス1が終了した後の状態を示す。相対移動量
が0001番地、0003番地、1000番地、100
2番地、1010番地に書込まれている。
次に再び第2図フローチャートで次のステップを説明す
る。ステップ500は個別エリア・コンパクション・バ
ス1で、プロセス個別エリア11をエリア内アドレスの
大きい方から順番に読み出し、同一エリア内の上向きポ
インタをメンテナンスするところは第11図に示した従
来のガーベジコレクションのステップ200の処理と同
じである。本願のステップ500では、この時プロセス
共通エリア10を向いたポインタに対して前記ステップ
400で書込んだ相対移動量を読出してメンテナンスす
る処理が追加されている。ステップ500の処理の詳細
を第6図に示す。第6図において、同一エリア内の上向
きポインタはステップ210.220によって従来のよ
うに逆転ポインタを生成して処理する。共通エリア向ポ
インタはステップ215によって判断し、ステップ23
0により処理する。ステップ230の詳細は第7図に示
す。ステップ231でGC用作業エリア12の対応する
エントリのアドレスを求め、ステップ232で読出した
内容のGCフラグ部によりそこに移動量が書き込まれて
いるかを判断する。mkならば移動量が書込まれている
ので、ステップ233で移動先のアドレス計算を行い、
SPのアドレスに書込む。移動量がGC用作業エリア1
2に無い場合は、ステップ234に進み、ここからエリ
ア番号10ポイント先から上方向に一語づつ読出してu
mのデータを見付けると、その中に移動量が書いである
ので、ステップ237によって移動先のアドレス計算を
行い、SPのアドレスに書込む。最後に、第6図のステ
ップ216でGC用作業エリア12のGCフラグ部1a
をumにクリアする。この処理の後のメモリ状態を第8
図に示す、プロセス共通エリア10を向いたポインタが
全てメンテナンスされている。
る。ステップ500は個別エリア・コンパクション・バ
ス1で、プロセス個別エリア11をエリア内アドレスの
大きい方から順番に読み出し、同一エリア内の上向きポ
インタをメンテナンスするところは第11図に示した従
来のガーベジコレクションのステップ200の処理と同
じである。本願のステップ500では、この時プロセス
共通エリア10を向いたポインタに対して前記ステップ
400で書込んだ相対移動量を読出してメンテナンスす
る処理が追加されている。ステップ500の処理の詳細
を第6図に示す。第6図において、同一エリア内の上向
きポインタはステップ210.220によって従来のよ
うに逆転ポインタを生成して処理する。共通エリア向ポ
インタはステップ215によって判断し、ステップ23
0により処理する。ステップ230の詳細は第7図に示
す。ステップ231でGC用作業エリア12の対応する
エントリのアドレスを求め、ステップ232で読出した
内容のGCフラグ部によりそこに移動量が書き込まれて
いるかを判断する。mkならば移動量が書込まれている
ので、ステップ233で移動先のアドレス計算を行い、
SPのアドレスに書込む。移動量がGC用作業エリア1
2に無い場合は、ステップ234に進み、ここからエリ
ア番号10ポイント先から上方向に一語づつ読出してu
mのデータを見付けると、その中に移動量が書いである
ので、ステップ237によって移動先のアドレス計算を
行い、SPのアドレスに書込む。最後に、第6図のステ
ップ216でGC用作業エリア12のGCフラグ部1a
をumにクリアする。この処理の後のメモリ状態を第8
図に示す、プロセス共通エリア10を向いたポインタが
全てメンテナンスされている。
続いて第2図ステップ300に戻り、コンパクション・
バス2を行う。
バス2を行う。
これは第11図に示す従来の処理と同じである。
エリア番号1.エリア番号5の順でエリア内アドレスの
小さい方から大きい方へ向って順次メモリを続出し、m
kの付いたデータをエリア内アドレスの小さい方へ詰合
せる。この時、GCフラグ部1aをunにクリアする。
小さい方から大きい方へ向って順次メモリを続出し、m
kの付いたデータをエリア内アドレスの小さい方へ詰合
せる。この時、GCフラグ部1aをunにクリアする。
また、下向きのポインタがあれば逆転ポインタを生成し
てメンテナンスを行う、第9図にガーベジコレクション
終了後のメモリの状態を示す。
てメンテナンスを行う、第9図にガーベジコレクション
終了後のメモリの状態を示す。
なお、上記実施例では、GCフラグ部1a、タグ部1b
、値部ICが同一部内にある例を示したが、2語でこれ
らを含むような構成のメモリシステムでもよい、また、
プロセス共通エリア10を4語単位でブロック化したが
、これは2のべき東部単位であればいくらでも良(、こ
れに対応して、GC用作業エリア12の大きさは、プロ
セス共通エリア10の2のべき乗置の1の大きさとなる
。
、値部ICが同一部内にある例を示したが、2語でこれ
らを含むような構成のメモリシステムでもよい、また、
プロセス共通エリア10を4語単位でブロック化したが
、これは2のべき東部単位であればいくらでも良(、こ
れに対応して、GC用作業エリア12の大きさは、プロ
セス共通エリア10の2のべき乗置の1の大きさとなる
。
以上のように、この発明によれば、プロセス共通エリア
の大きさに応じた作業エリアを設けて、プロセス共通エ
リアにおける有効データのガーベジコレクシジン後の相
対移動量を当該有効データのアドレスに対応させて上記
作業エリア又は当該プロセス共通エリア内の無効データ
の領域に書き込み、プロセス個別エリアにおいてプロセ
ス共通エリアを指すポインタのメンテナンスを上記相対
移動量を用いて行なうようにしたので、プロセス個別エ
リアからプロセス共通エリアを指すポインタのメンテナ
ンス時に逆転ポインタの生成が不要となり、最小限の作
業領域で多重論理空間におけるガーベジコレクションが
可能となる効果がある。
の大きさに応じた作業エリアを設けて、プロセス共通エ
リアにおける有効データのガーベジコレクシジン後の相
対移動量を当該有効データのアドレスに対応させて上記
作業エリア又は当該プロセス共通エリア内の無効データ
の領域に書き込み、プロセス個別エリアにおいてプロセ
ス共通エリアを指すポインタのメンテナンスを上記相対
移動量を用いて行なうようにしたので、プロセス個別エ
リアからプロセス共通エリアを指すポインタのメンテナ
ンス時に逆転ポインタの生成が不要となり、最小限の作
業領域で多重論理空間におけるガーベジコレクションが
可能となる効果がある。
・第1図はこの発明が適用されるメモリシステムの一例
を示す構成図、第2図はこの発明の一実施例によるガー
ベジコレクション方式を示す概略フローチャート、第3
図は第2図の共通エリア・コンパクション・バス1を示
す詳細フローチャート、第4図は第3図の移動量テーブ
ル作成ルーチンを示す詳細フローチャート、第5図は共
通エリア・コンパクション・バス1終了後のメモリ状態
を示す図、第6図は第2図の個別エリア・コンパクショ
ン・バスlを示す詳細フローチャート、第7図は第6図
の共通エリア向ポインタメンテナンスの詳細フローチャ
ート、第8図は個別エリア・コンパクション・バス1終
了後のメモリ状態を示す図、第9図は実施例のガーベジ
コレクション終了後のメモリ状態を示す図、第10図は
従来のガーベジコレクション方式が適用されるメモリシ
ステムの構成図、第11図は従来のガーベジコレクショ
ン方式を示す概略フローチャート、第12図はマーキン
グ後のメモリ状態を示す図、第13図は第11図のコン
パクション・バス1を示ス詳細フローチャート、第14
図は第13図の逆転ポインタ生成ルーチンを示す詳細フ
ローチャート、第15図は逆転ポインタ生成後のメモリ
状態を示す図、第16図は第13図のポインタメンテナ
ンスルーチンを示す詳細フローチャート、第17図はポ
インタメンテナンス後のメモリ状態を示す図、第18図
は従来のガーベジコレクション終了後のメモリ状態を示
す図、第19図は多重論理空間のメモリシステム例を示
す構成図である。 10はプロセス共通エリア、11はプロセス個別エリア
、12はGC用作業エリア、laはGCフラグ部、1b
はタグ部、ICは値部、2はアドレス、2aはエリア番
号、2bはエリア内アドレス。 なお、図中、同一符号は同−又は相当部分を示す。 代理人 大岩増雄(ばか2名) 葛11図
を示す構成図、第2図はこの発明の一実施例によるガー
ベジコレクション方式を示す概略フローチャート、第3
図は第2図の共通エリア・コンパクション・バス1を示
す詳細フローチャート、第4図は第3図の移動量テーブ
ル作成ルーチンを示す詳細フローチャート、第5図は共
通エリア・コンパクション・バス1終了後のメモリ状態
を示す図、第6図は第2図の個別エリア・コンパクショ
ン・バスlを示す詳細フローチャート、第7図は第6図
の共通エリア向ポインタメンテナンスの詳細フローチャ
ート、第8図は個別エリア・コンパクション・バス1終
了後のメモリ状態を示す図、第9図は実施例のガーベジ
コレクション終了後のメモリ状態を示す図、第10図は
従来のガーベジコレクション方式が適用されるメモリシ
ステムの構成図、第11図は従来のガーベジコレクショ
ン方式を示す概略フローチャート、第12図はマーキン
グ後のメモリ状態を示す図、第13図は第11図のコン
パクション・バス1を示ス詳細フローチャート、第14
図は第13図の逆転ポインタ生成ルーチンを示す詳細フ
ローチャート、第15図は逆転ポインタ生成後のメモリ
状態を示す図、第16図は第13図のポインタメンテナ
ンスルーチンを示す詳細フローチャート、第17図はポ
インタメンテナンス後のメモリ状態を示す図、第18図
は従来のガーベジコレクション終了後のメモリ状態を示
す図、第19図は多重論理空間のメモリシステム例を示
す構成図である。 10はプロセス共通エリア、11はプロセス個別エリア
、12はGC用作業エリア、laはGCフラグ部、1b
はタグ部、ICは値部、2はアドレス、2aはエリア番
号、2bはエリア内アドレス。 なお、図中、同一符号は同−又は相当部分を示す。 代理人 大岩増雄(ばか2名) 葛11図
Claims (1)
- 【特許請求の範囲】 メモリ中で不要となった無効データを除去し、有効デー
タを詰合せて無効データの領域を回収する際に、有効デ
ータを指すポインタの参照アドレスのメンテナンスを行
なうガーベジコレクション方式において、 メモリの論理アドレス空間を複数のエリアに分割して、
全てのプロセスから共通に参照されるプロセス共通エリ
アと、プロセス毎に同じ論理アドレスが割付けられて自
プロセスからのみ参照されるプロセス個別エリアとを設
けたメモリシステムに、上記プロセス共通エリアの大き
さに応じた作業エリアを設けて、プロセス共通エリアに
おける有効データのガーベジコレクション後の相対移動
量を当該有効データのアドレスに対応させて上記作業エ
リア又は当該プロセス共通エリア内の無効データの領域
に書込み、プロセス個別エリアにおいてプロセス共通エ
リアを指すポインタのメンテナンスを上記相対移動量を
用いて行なうようにしたことを特徴とするガーベジコレ
クション方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2509589A JPH02205947A (ja) | 1989-02-03 | 1989-02-03 | ガーベジコレクション方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2509589A JPH02205947A (ja) | 1989-02-03 | 1989-02-03 | ガーベジコレクション方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH02205947A true JPH02205947A (ja) | 1990-08-15 |
Family
ID=12156370
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2509589A Pending JPH02205947A (ja) | 1989-02-03 | 1989-02-03 | ガーベジコレクション方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH02205947A (ja) |
-
1989
- 1989-02-03 JP JP2509589A patent/JPH02205947A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2635058B2 (ja) | アドレス変換方式 | |
| JPS63253445A (ja) | データ格納効率の改善方法とシステム | |
| US6226411B1 (en) | Method for data compression and restoration | |
| JPH06105435B2 (ja) | 情報処理装置による記憶管理機構 | |
| JPH02205947A (ja) | ガーベジコレクション方式 | |
| JP3520527B2 (ja) | データ管理方法 | |
| JPH05241936A (ja) | ガーベッジコレクション処理方式及びその記憶装置 | |
| JP2526384B2 (ja) | ガベ―ジコレクション方法 | |
| JPS62295145A (ja) | ガ−ベジコレクシヨン方式 | |
| JP4036514B2 (ja) | データ圧縮方法とデータ復元方法およびソートマージ処理装置とソートマージ処理方法およびこれら方法のプログラムを記録した媒体 | |
| KR100318281B1 (ko) | 실용위성의 덤프데이터 추출과 취합 및 데이터 베이스구축방법 | |
| JPH0237444A (ja) | リスト処理装置 | |
| CN116738104A (zh) | 网页前端的操作回溯方法、装置、设备及存储介质 | |
| JPH03271841A (ja) | データベースにおけるリカバリ方式 | |
| JPS63131247A (ja) | ガ−ベジコレクシヨン方式 | |
| JP2616203B2 (ja) | 翻訳システムにおける名標テーブルの管理方式 | |
| JP3130870B2 (ja) | メモリダンプファイル再構成方式 | |
| Lindstrom | Algorithms for list structure condensation | |
| JPH0259837A (ja) | データリカバリ処理方式 | |
| Hirschsohn | A machine independent fortran data management software system for scientific and engineering applications | |
| JPH0325645A (ja) | 仮想空間のスワッピング方式 | |
| JP2895892B2 (ja) | データ処理装置 | |
| JPH0934788A (ja) | アドレス変換装置及びアドレス変換方法 | |
| JPH04195559A (ja) | サブファイル管理方式 | |
| JPS621046A (ja) | ペ−ジ制御方式 |