JPH04281539A - データ管理方式 - Google Patents

データ管理方式

Info

Publication number
JPH04281539A
JPH04281539A JP3069188A JP6918891A JPH04281539A JP H04281539 A JPH04281539 A JP H04281539A JP 3069188 A JP3069188 A JP 3069188A JP 6918891 A JP6918891 A JP 6918891A JP H04281539 A JPH04281539 A JP H04281539A
Authority
JP
Japan
Prior art keywords
garbage collection
time
data
incremental
real
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
JP3069188A
Other languages
English (en)
Inventor
Hirotoshi Maekawa
博俊 前川
Takanori Saneto
實藤 隆則
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP3069188A priority Critical patent/JPH04281539A/ja
Publication of JPH04281539A publication Critical patent/JPH04281539A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0269Incremental or concurrent garbage collection, e.g. in real-time systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は,コンピュータの記憶装
置内のデータを管理する方式に関するものであり,特に
,人工知能情報処理,自然言語処理,数式処理などにお
いて複数のデータ相互間に関連づけを行うポインタのう
ち不使用になったポインタを回収するガーベジコレクシ
ョンを行うデータ管理方式に関する。
【0002】
【従来の技術】リスト処理は人工知能などの記号処理の
分野などで重要で不可欠である。リスト処理は,人工知
能の情報処理などのように扱うデータ構造がポインタの
つけかえによる柔軟性をもち,データ構造の変化しやい
問題の記述や処理に向いている。しかしながらその一方
で,データ構造が動的に変化するため,不使用になった
ポインタ,すなわち,ガーベジの生成を伴い,そのため
リスト処理実行時にガーベジの回収作業(ガーベジコレ
クション,GC)が必要となる。
【0003】図10にリスト処理データ構造の概念を示
す。図10(a)において,丸はノード(またはデータ
セル)を示し,複数のノードがポインタPOINTER
で結合(リンク)されている。図11は図10(a)の
部分拡大図である。図10(b)に1つのノード(デー
タセル)の構成を示し,ポインタPOINTERとデー
タDATAを有している。このようなリスト処理データ
構造におけるガーベジコレクションとしては,通常,使
用可能なポインタがある値を切ったら,リスト処理を中
断してガーベジコレクションを間欠的に実行するが,場
合によっては本来のリスト処理よりも時間がかかること
があり,その処理時間は予測がつきにくい。しかしなが
ら,動的信号解析や製造工程での診断,あるいはヒュー
マンインタフェースなどの処理では実時間性が要求され
るが,これらをリスト処理で実現する場合,効率のよい
ガーベジコレクションを含めて実時間性を持たせなけれ
ばならない。
【0004】
【発明が解決しようとする課題】上記したように従来,
使用可能なポインタが不足した場合に間欠的にガーベジ
コレクションを行うことは試みられているが,実時間で
効率よくガーベジコレクションを行うことは試みられて
いない。したがって,本発明の目的は実時間性のある効
率のよいガーベジコレクションを可能にするデータ管理
方式を提供することにある。
【0005】
【課題を解決するための手段】上記問題を解決するため
,本発明のデータ管理方式においては,所定のデータを
有するノード相互間の結合関係を示すポインタのうち不
使用となったポインタであるガーベジを回収するガーベ
ジコレクションとして,図1に示すように,参照カウン
タを用いてガーベジを回収するインクリメンタル・ガー
ベジコレクションと,不使用ポインタをマークしスィー
プするマークおよびスィープ・ガーベジコレクションと
を有する。さらに,これらのガーベジコレクションはリ
スト処理と実時間時分割で動作し,インクリメンタル・
ガーベジコレクションを,マークおよびスィープ・ガー
ベジコレクションに優先して動作させる。
【0006】
【作用】ガーベジコレクションを実時間で時分割で実行
させるために,所定周期の割り込みをかけて,ガーベジ
コレクションを実行させる。ガーベジコレクションは時
分割されるから,リスト処理の場合は中断され,次の割
り込みで再開するときは前回の処理の最終状態から継続
して行う。ガーベジコレクションとしては,インクリメ
ンタルGCとマークおよびスィープGCとを実時間で並
行させる。インクリメンタルGCは即時性に富むが,マ
ークおよびスィープGCは時間がかかる。しかしながら
,インクリメンタルGCでは環状結合のガーベジ,参照
カウンタがオーバーフローした場合にはガーベジを回収
できない。そこで,マークおよびスィープGCを用いて
これらのガーベジを回収してフリーセルとする。
【0007】
【実施例】本発明のデータ管理方式におけるガーベジコ
レクションは,その基本形態を図1に示すように,ガー
ベジコレクションをリスト処理と時分割して実時間で動
作させることを前提とし,そのガーベジコレクションと
しては,インクリメンタルGCとマークおよびスィープ
GCとがある。さらに,インクリメンタルGCをマーク
およびスィープGCに優先して実時間動作させる。イン
クリメンタルGCをマークおよびスィープGCに優先さ
せるのは,インクリメンタルGCが即時性を有しており
実時間化に適しているからである。しかしながら,環状
結合のポインタ,参照カウンタをオーバーフローしたガ
ーベジとしてのポインタをインクリメンタルGCで回収
することができない。そこで,マークおよびスィープG
Cを低い頻度で動作させる。
【0008】このようなガーベジコレクションの実現に
は種々のポインタ管理方式を適用できる。その方式とし
ては,たとえば,ページング方式,コピー方式,あるい
は,すでに本願の発明者らが提案したリストデータを効
率良く管理できるリストデータ記憶構成方式(特開平2
−263233号公報,「データ管理方式」)が適用で
きる。図2にページング方式の概念図を示す。このペー
ジング方式においては,ポインタは半導体メモリの主記
憶とハードディスクなどの二次記憶に記憶され,その記
憶は仮想空間を用いて管理される。また,図3に上記リ
ストデータ記憶構成方式の概念図を示す。図において,
矩形内は半導体メモリの主記憶に記憶されるデータを示
し,楕円内は二次記憶ストラクチャを示している。この
リストデータ記憶構成方式とページング方式とを比較す
ると,後述するように,図3に示すリストデータ記憶構
成方式におけるリスト処理は図2に示すページング方式
にくらべて,実行速度と記憶使用効率の双方において優
れている。さらに,リストデータ記憶構成方式は本来ガ
ーベジコレクションを実時間で実現するのに適した方式
であり,リストデータ記憶構成方式におけるガーベジコ
レクションは実時間性が良く,実時間化のためのオーバ
ヘッドが少ない。したがって,本実施例のデータ管理方
式に特に適した方式として,主に,リストデータ記憶構
成方式においてガーベジコレクションを動作させる場合
を例示して以下に述べる。
【0009】このリストデータ記憶構成方式自体の詳細
は上述した特開平2−263233号公報に記載されて
いるので,以下,その概要を述べる。図2のページング
方式に関連づけて上述した参照の局所性の問題は,構造
的に柔軟なデータを一次元的にアドレス付けされた空間
で管理することによって生じる。図3のリストデータ記
憶構成方式においては,リストデータをその構造に基づ
いて記憶空間上に表現する。すなわち,本実施例のリス
トデータ記憶構成方式では,現在処理中のデータおよび
それに論理的に近いデータを半導体メモリによる主記憶
上に表現し,残りのデータをハードディスクなどの二次
記憶上で管理する。二次記憶上では,データを論理的な
関係の強い集まり(これを「二次記憶ストラクチャ」と
呼ぶ)にわけ,主記憶と二次記憶との間のデータ転送は
このストラクチャを単位に行なう。主記憶から二次記憶
へのデータ転送をストラクチャ・アウト,その逆をスト
ラクチャ・インと呼ぶ。ストラクチャ・アウトするデー
タは,現在の処理から制御上時間的に遠いところでのア
クセスや制御の環境などを二次記憶ストラクチャ間で参
照が少なくなるように抽出して得ることができる。
【0010】図4は図3の詳細動作を示すもので図2(
a)と図2(b)との間で上から下にストラクチャ・イ
ン,下から上にストラクチャ・アウトする動作態様を示
している。図4において,主記憶1と二次記憶ストラク
チャ2A,2Bとの間でポインタを移動させるために,
外部参照表XRT1,XRT2と逆参照表DRTとが設
けられている。二重矩形は主記憶1内に設けられた間接
ポインタを示し,破線は逆参照を示す。ストラクチャ参
照表は図示していない。本実施例のリストデータ記憶構
成方式では,二次記憶を参照の局所性の大きいストラク
チャを単位に管理する。ガーベジコレクションを含めた
リスト処理において,不要なデータ転送が減少し,ペー
ジング方式のような記憶管理方式に比べて二次記憶への
アクセスが減少する。ポインタは,主記憶上では主記憶
空間,二次記憶上では二次記憶ストラクチャ空間におい
て表現する。ポインタのための記憶使用量はページング
方式に比べて少なくてすみ,主記憶と二次記憶の空間は
それぞれ独立に拡張できる。このように,本実施例のリ
ストデータ記憶構成方式におけるリスト処理はページン
グ方式にくらべて,実行速度と記憶使用効率の双方にお
いて優れている。さらに,リストデータ記憶構成方式は
本来ガーベジコレクションを実時間で実現するのに適し
た方式であり,リストデータ記憶構成方式におけるガー
ベジコレクションは実時間性が良く,実時間化のための
オーバヘッドが少ない。
【0011】主記憶上で,二次記憶のデータは「間接ポ
インタ」によって参照する。二次記憶ストラクチャ間お
よび二次記憶から主記憶への参照・被参照は,ストラク
チャ・イン/アウトの際の二次記憶アスセスを少なくす
るための,図4に示した次の参照表で管理する。外部参
照表XRT:二次記憶ストラクチャ毎に持ち,二次記憶
ストラクチャデータの外部に対する参照・被参照を管理
する。逆参照表DRT:系全体でひとつ持ち,主記憶デ
ータの二次記憶に対する被参照を管理する。ストラクチ
ャ参照表(図示せず):系全体でひとつ持ち,外部参照
表を管理する。外部参照表のコンパクション,二次記憶
ストラクチャの参照カウントに使用する。ストラクチャ
・イン/アウトを実行するとき,これらの参照表,間接
ポインタを用いて,主記憶と二次記憶との間,二次記憶
ストラクチャ間の参照の変更を処理する。ポインタ表現
の変換は,二次記憶の動作を制御する二次記憶制御部(
図示せず)などで効率良く実行できる。ストラクチャ・
アウトは,ガーベジコレクションによっても十分な量の
フリーセルが主記憶上に得られないとき起動する。
【0012】ガーベジコレクションは,主記憶上ではデ
ータセル単位に,二次記憶上では参照表を使ってストラ
クチャ単位に処理する。二次記憶ストラクチャの参照の
カウントやマーキングは,ストラクチャ参照表上で行な
う。二次記憶ストラクチャからの参照は,その外部参照
表を用いてたどる。二次記憶の実際のデータセルをアク
セスする必要がなく,高速処理が可能である。ガーベジ
コレクションによって回収した主記憶セルはフリーセル
として使用する。フリーセルは主記憶上にのみ存在する
。二次記憶ストラクチャがガーベジとなったときは,そ
の二次記憶領域を解放する。本実施例のデータ管理方式
におけるガーベジコレクションでは,二次記憶ストラク
チャはひとつのオブジェクトとして扱うことができる。 以下の記述において,主記憶セルと二次記憶ストラクチ
ャは合わせて「オブジェクト」として表現する。
【0013】ガーベジコレクションとしては,図1に示
すように,インクリメンタル・ガーベジコレクション(
GC)とマークおよびスィープ・ガーベジコレクション
(GC)とがある。本実施例のデータ管理方式おけるガ
ーベジコレクションとしては,参照カウントまたは多重
参照マークに基づくインクリメンタクルGCを基本とす
る。インクリメンタルGCはガーベジの生成から回収に
至る即時性が良く,通常1回の実行量も多くないので実
時間ガーベジコレクションに適している。しかしながら
,インクリメンタルGCでは,環状構造のデータや,参
照カウンタがオーバーフローしたオブジェクト,多重参
照となったオブジェクトは回収できない。そのため,少
ない頻度であるがマークおよびスィープGCを実行させ
る。
【0014】リストデータ記憶構成方式では,リスト処
理の制御スタックなどからの参照をオブジェクト上にカ
ウントする方式も,カウントしない遅延形も可能である
。図1において,遅延形インクリメンタルGCを行う場
合,被参照のなくなったオブジェクトを示すゼロ参照表
を用い,その管理を行い,ガーベジコレクション時にス
タックなどからの参照をカウントして,ガーベジコレク
ションを実行する。
【0015】実時間性を得るため,1回に続けて回収し
たりマーキングをする時間を制御する。また,ガーベジ
コレクションの実行が全体の処理過程において一時的に
集中しないように,ガーベジコレクションの実行の間隔
または監視時間内におけるガーベジコレクション実行時
間の割合を制御する。すなわち,実時間時分割でインク
リメンタルGCを実行させる。マークおよびスィープG
Cは頻繁に実行しなくてよいので,その実行間隔をさら
に長くとって制御する。時分割で動作するガーベジコレ
クションを中断する際,次に処理を再開するため,その
途中状態を保持する。本実施例においては,インクリメ
ンタルGCとマークおよびスィープGCの2方式のガー
ベジコレクションが並行して動作するので,オブジェク
トの回収に関して両者が競合することがあるが,ガーベ
ジコレクションを再開するとき,保持していた途中状態
の変化を確かめることによってこの競合を解消する。
【0016】ページング方式のような記憶管理上では,
リスト処理中にフリーセルがなくなると飢餓状態となる
。しかしながら,本実施例のリクトデータ記憶構成方式
を用いたデータ管理方式では二次記憶の許すかぎりデー
タのストラクチャ・アウトによって新たなフリーセルが
得られるので,そのような形での飢餓状態は起こらない
。リストデータ記憶構成方式では,回収されないガーベ
ジが主記憶を専有したとき飢餓状態となる。従って,未
回収オブジェクトが定常的に増加したり,回収できない
環状構造データや参照カウントのオーバフローしたオブ
ジェクトが増加しないように,各ガーベジコレクション
の実行頻度と時間を設定すればよい。
【0017】インクリメンタルGCにおいて,被参照の
なくなったオブジェクトのうち回収途中のものは「オブ
ジェクト回収スタック」で管理する。ガーベジコレクシ
ョンを中断後再開するとき,そのスタック上のオブジェ
クトから回収を始めればよい。ガーベジコレクションの
再開は,例えば,被参照のなくなった新たなオブジェク
トの出現や,未回収オブジェクトの増加,遅延形の場合
のゼロ参照オブジェクトの増加,スタック上の未回収の
オブジェクトは,マークおよびスィープGCによりすで
に回収されていたり,さらにリスト処理により新たなオ
ブジェクトとして使用されている可能性がある。この場
合,そのオブジェクトからの回収を行なってはいけない
。これは,参照カウント方式の場合その値の変更,多重
参照の場合,未回収オブジェクトに対する特別のマーク
付けをスタックに積む前に行なっておくことにより判断
できる。しかしリストデータ記憶構成方式を用いた本実
施例のデータ管理方式では,即時性の良いインクリメン
タルGCを,実行頻度が少なくてよいマークおよびスィ
ープGCに優先させる。従って,マークおよびスィープ
GCによるオブジェクト回収スタック上の副作用は考え
なくてよい。
【0018】マークおよびスィープGCにおいて,マー
キング途中のオブジェクトは「マーキングスタック」に
そのオブジェクトへのポインタを載せて管理する。マー
クおよびスィープGCの処理中,リスト処理によって,
例えば関数rplacdによって,データは参照カウン
トや多重参照マークによりその必要性を判断できる。そ
のデータが不要のときはインクリメンタルGCで回収す
る。切り離したオブジェクトがスタックから参照されて
いて後に使用される可能性がある場合,それをマーキン
グスタックに載せ,後にマーキングの処理する。算数c
onsやストラクチャ・インによって生成された主記憶
セルと,ストラクチャ・アウトによって作られた二次記
憶ストラクチャには生成時にマークを付ける。マークは
2種類用意し,マークフェーズの最初に切り替えて,ひ
とまとまりのマークおよびスィープGC毎に交互に使用
する。フリーセルには回収を避けるためフリーセルマー
クを付ける。マークおよびスィープGCの中断中,マー
キングスタック上で管理している主記憶セルがインクリ
メンタルGCやストラクチャ・アウトによってフリーセ
ルになったり,関数consやストラクチャ・インによ
って再使用される可能性がある。また,二次記憶ストラ
クチャがインクリメンタルGCによってガーベジとなり
回収される可能性がある。このためマーキングスタック
に載せるオブジェクトには副作用を認識するためのマー
クを付け,その処理の継続を判断する。
【0019】ガーベジコレクションの実時間での実行時
間の管理は,タイマなどを持ったアーキテクチャ上では
その割り込み機能を用いて,リスト処理とガーベジコレ
クションの実行には負担をかけずに行なえる。ガーベジ
コレクションの実行時間を回収するオブジェクトの個数
などで制御する場合も,プロセッサ内で高速に処理でき
るので,大きなオーバヘッドとはならない。マーキング
スタックに同一のオブジェクトへのポインタを複数個載
せるのを避けるため,オブジェクトへのマーキングはス
タックへ載せる前に行なう。従って,ガーベジコレクシ
ョン中断中の副作用を認識するためのマーク付け作業は
,その処理を同時に実行できる。
【0020】リスト処理によって構造が書き変わったと
き,切り離されたデータは大抵インクリメンタルGCで
回収できるので,データ構造の変化に伴うマーキングの
オーバヘッドは,マークおよびスィープGCを単独で動
作させる場合に比べて小さくて済む。また,マークおよ
びスィープGCの実行頻度が少ないので,全体の処理に
おいてこのオーバヘッドは小さい。生成オブジェクトと
フリーセルに対するマーク付けも,そのオブジェクトデ
ータを構成する際,プロセッサ内で同時に処理できる。 リストデータ記憶構成方式を適用した本実施例のデータ
管理方式においては,フリーセル不足による飢餓状態は
発生しないが,ストラクチャ・インへの対応をよくする
ため,本実施例のデータ管理方式においても一定量のフ
リーセルを確保するようにする。フリーセルの確保は主
記憶の使用可能量の減少をもたらすので,実時間にとも
なうオーバーヘッドとなる。
【0021】本実施例のデータ管理方式は,ストラクチ
ャの管理のため主記憶セルと二次記憶ストラクチャに参
照カウントまたは多重参照マークを必要とする。リスト
データ記憶構成方式を用いたデータ管理方式における実
時間ガーベジコレクションの効率の良い実現は,インス
リメンタルGCに負うことこら大きいが,インクリメン
タルGCはこの被参照情報を用いて実現できる。本実施
例のデータ管理方式における実時間ガーベジコレクショ
ンは,主記憶の使用効率を低くするが,実時間化自体の
オーバヘッドはほとんどない。このリストデータ記憶構
成方式は,実時間処理も含めて効率の良いデータ管理の
できる記憶構成方式である。
【0022】以下,シミュレーション結果を述べる。図
5にシミュレーションに用いたシステム構成を示す。実
験に使用したシミュレータは,Common  Lis
pのサブセットのインタプリタである。実線は処理系に
よるデータ操作を示し,破線はパラメータの設定/動特
性の観測を示す。記憶管理には,本実施例のリストデー
タ記憶構成方式を用いたデータ管理方式と,比較のため
ページング方式をインプリメントした。リストデータに
対する基本的な振る舞いを観察するため,および,簡単
化のため,このインタプリタで扱うデータセルは,co
nsセル,文字列,小整数とした。実際の文字列は,こ
の文字列セルのリストで表現する。シミュレーションで
想定したシステムは記憶アクセスに対して十分高速なプ
ロセッサを持つとし,シミュレーションの実行時間は記
憶アクセス時間で測定した。換言すれば,記憶システム
でのリストデータの処理時間を観測したことになる。ス
タックはプロセッサ内にあると仮定し,スタック操作の
時間は考慮していない。
【0023】上述のようにスタック操作において実時間
化に伴う処理時間に差はないので,ガーベジコレクショ
ンの実時間化の評価に影響はないとした。シミュレータ
の記憶システムは半導体メモリの主記憶と,ハードディ
スクの二次記憶からなる。主記憶上のデータセルに対す
るプロセッサからのアクセス時間は100ナノ秒とし,
シミュレーション時間はこの主記憶アクセス時間を単位
として計測した。ハードディスク上で,アクセス時間は
回転待ちを含めて10ミリ秒,データ電装は2.5Mb
ytes/sec とした。実験にはBoyer ベン
チマークを使用した。この問題は,記憶容量に対して十
分多量のデータを扱い,仮想記憶での実験に適したもの
である。
【0024】本実施例のデータ管理方式の実時間ガーベ
ジコレクションは,ガーベジコレクション実行の監視時
間,その中でのガーベジコレクション実行可能時間,ガ
ーベジコレクションが可能な範囲での1回のガーベジコ
レクションの最大可能時間をパラメータとして制御した
。実行可能時間内でさらにガーベジコレクションの実行
を分断しているのは,リスト処理を優先させるためと,
インクリメンタルGCをマークおよびスィープGCに対
する優先度を上げるためである。実時間化した場合,フ
リーセルが主記憶容量の1/8以下になったときストラ
クチャ・アウトを起動し,3/8以上のフリーセルが得
られたとき終了させた。実時間処理をしない場合,それ
ぞれのパラメータは,0,1/4,および1/8,3/
8とした。前者は実時間化のためのフリーセルの確保を
含めたオーバヘッドを観測するため,後者は実時間化自
体の評価をするためである。ストラクチャ・アウトのた
めデータは,アクセス環境,制御環境,シンボルの本体
をその制御上の優先度に従って抽出した。マークおよび
スィープGCの起動はその実行間隔で制御した。1回の
マークおよびスィープGCの実行時間は主記憶の大きさ
にほぼ比例して変わるが,実行時間においてインクリメ
ンタルGCの1/20から1/10の頻度である。シミ
ュレーションによれば,Boyer ベンチマークでは
,インクリメンタルGCで回収できないガーベジの量は
少なく,マークおよびスィープGCの実行頻度による結
果の差はほとんどない。今回のシミュレーションでは,
マークおよびスィープGCの実行間隔は一定とした。ペ
ージング方式では完全LRUをオーバヘッドなしででき
るとした。ガーベジコレクションには,実時間コピー方
式(たとえば,Baker,H.G.Jr., ”Li
st in Real Time on a Seri
al Computer”,Comm. of the
 ACM 21,4(1978),280−294 )
を改良した方式(たとえば,小沢年弘,他,「実時間G
C実現方式と評価」,情報処理学会論文誌29,5(1
988),465−471)を用いた。実行時間の制御
はリストデータ記憶構成方式と同じである。
【0025】本実施例のリストデータ記憶構成方式のス
トラクチャサイズは128,セルページング方式のペー
ジサイズは512セルである。本実施例のデータ管理方
式においてガーベジコレクションを実時間化したときの
Boyer ベンチマークの実行時間と記憶使用量の変
化を図6(a),(b)に示す。図6(a)は主記憶の
容量M(Kセル)がそれぞれM=16(Kセル),M=
32,M=64,M=128の場合の時のガーベジコレ
クション実行時間(縦軸)とガーベジコレクション実行
時間に関するパラメータ(最大時間,可能時間,監視時
間(ミリ秒))(横軸)との関係を示す。図6(b)は
二次記憶使用量(縦軸)と上記パラメータとの関係を示
す。ガーベジコレクションを実時間化するためのオーバ
ヘッドは時間上も空間上もほとんど認められないことが
,シミュレーション結果からも確かめられる。実時間処
理をしないときのストラクチャ・アウトに関する上記パ
ラメータは,実時間ガーベジコレクションの場合と同じ
である。図では,実時間処理をしたほうが多くの場合実
行速度が速くなっている。これは,実験データ間で二次
記憶ストラクチャがガーベジとなる量に違いがあるため
で,主にそのときの参照の処理の量が結果に影響してい
る。 また,実時間化したほうがストラクチャ・アウトするデ
ータ量が少ない場合があり,記憶使用量を変化させてい
る。実時間化のためのパラメータの設定によってシステ
ム全体の振る舞いに大きな変化はない。
【0026】ストラクチャ・インに対するフリーセルの
確保というオーバヘッドを含めた場合の実行時間と記憶
使用量の比較を図7(a),(b)に示す。これらの図
において,実線は実時間ガーベジコレクション,そのパ
ラメータは(0.02/0.1/0.4),破線は非実
時間ガーベジコレクションを示す。ここでは特定のパラ
メータについて,主記憶容量の違いに基づく実行結果を
示した。実時間化した場合,フリーセルの量が主記憶の
1/8を下まわったときストラクチャ・アウトを起動し
ているが,両者の性能の差には動的に使用可能な主記憶
量の違いによるものを含む。ここでの差も大きくなく,
この結果からもリストデータ記憶構成方式における実時
間ガーベジコレクションは効率の良いものであることが
判る。
【0027】同じシミュレーション環境におけるページ
ング方式の場合の実行時間の比較を図8に示す。この図
においても実線は実時間ガーベジコレクション(そのパ
ラメータは,2/10/20)を示し,破線は非実時間
ガーベジコレクションを示す。ページング方式において
は,その実行時間のほとんどを二次記憶とのデータ転送
が占めており,この実行時間の差も実時間化に伴うペー
ジングの増加に基づいている。
【0028】図9に全体の処理におけるガーベジコレク
ション時間の比を本実施例のリストデータ記憶構成方式
(実線)とページング方式(破線)について示す。仮想
記憶の容量は512Kセルである。リストデータ記憶構
成方式のパラメータは(0.02/0.1/0.4)で
あり,ページング方式のパラメータは(2/10/20
である。本実施例のリストデータ記憶構成方式ではガー
ベジコレクションの実行量の割合が少なく,リスト処理
の中断時間の短い実時間性の良いガーベジコレクション
の実現が可能であることが分かる。ページング方式では
,リスト処理の実行時間はほぼ一定で主記憶サイズが1
6Kセルのところで32Kセルの約1.5倍である。 一方,ガーベジコレクション時間は主記憶が小さくなく
ほど増加しており,コピー方式の特性がでている。この
ように,本実施例の好適なリストデータ記憶構成方式に
おいてガーベジコレクションの実時間化を図ったデータ
管理方式は,ガーベジコレクションの実行比率が主記憶
容量に依存しないで安定したシステムになっている。
【0029】今回のリストデータ記憶構成方式における
ガーベジコレクションの評価では,リスト処理の制御ス
タックからの参照を含めた参照カウントを使用した。遅
延形のインクリメンタルGCを用いたとき,計算負荷は
リスト処理で減少しガーベジコレクションで増加する。 リスト処理ではオブジェクトの参照カウントは1である
ことが多い。多重参照マークや,さらにオブジェクトの
被参照を参照する側で管理するMRB方式(Multi
ple Reference Manegement 
in Flat GHC,たとえば,Chikayam
a,T. and Kimura,Y.,Proc. 
of ICPL ’87(1987),276−294
) を使用すれば,全体の処理効率が向上することが見
込まれる。これらの手法を用いた場合のガーベジコレク
ションは,その特性に大きな変化は予測されない。
【0030】なお,リストデータ記憶構成方式は,既存
の多くのシステムにも記憶制御の変更によって組み込む
ことができる。また,記憶領域の分割などによりページ
ング方式などと併用することも可能である。
【0031】以上,好適な実施例としてリストデータ記
憶構成方式に,図1にその概要を示したガーベジコレク
ションを実時間時分割動作させた例を述べたが,本発明
の実時間ガーベジコレクションはページング方式,コピ
ー方式などにおいても,動作可能である。この場合もイ
ンクリメンタルGCはマークおよびスィープGCとが併
存し,インクリメンタルGCがマークおよびスィープG
Cに優先する。まだ,本発明のデータ管理方式を実施す
る際,主記憶の台数,二次記憶の台数,および,プロセ
ッサの台数は1台でも複数台数でもよい。すなわち,シ
ングルプロセッサ,シングル主記憶,シングル二次記憶
であっても,マルチプロセッサシステムであってもよい
【0032】
【発明の効果】以上に述べたように,本発明のデータ管
理方式における実時間ガーベジコレクションはインクリ
メンタルGCとマークおよびスィープGCを備え,イン
クリメンタルGCを基本とする。これにより,即時性の
あるガーベジコレクションが可能となる。インクリメン
タルGCで対処できない環状ガーベジなどの回収するた
め,低い頻度でマークおよびスィープGCを動作させる
。これにより,リスト処理との有機的な実時間時分割動
作が可能となる。特に本データ管理方式のガーベジコレ
クションはリストデータ記憶構成方式において実現する
と特にその効果が大きい。その理由は,リスト処理のた
めのリストデータ記憶構成方式は,主記憶と二次記憶か
らなる階層的記憶構成において,リストデータをその構
造に基づいて記憶空間上に表現し効率の良い記憶管理を
実現する。二次記憶上で,データはその参照関係の強い
集まりである二次記憶ストラクチャによって管理する。 記憶階層間のデータ転送はこのストラクチャを用いて行
い,ページング方式などの方式にくらべて不要なデータ
転送を減少させることができるからである。ガーベジコ
レクションは,主記憶上ではデータセル,二次記憶上で
は二次記憶ストラクチャを単位に実行し,実際の二次記
憶データにはアクセスしない。ガーベジコレクションの
実時間化は,その処理の中断のための簡単な処理を負荷
すればよく,二次記憶アクセスなどのオーバヘッドは伴
わない。実時間ガーベジコレクションは,インクリメン
タルGCを基本とするが,本発明の好適な例としてのリ
ストデータ記憶構成方式では,ストラクチャの管理のた
め主記憶セルと二次記憶ストラクチャの被参照を管理し
ているので,インクリメンタルGCのために参照管理の
ための余分なオーバヘッドを持たなくてよい。これら2
方式のガーベジコレクションはそれぞれ簡単なアルゴリ
ズムで実現可能である。両者の競合は,ガーベジコレク
ションの中断時と再開時の簡単な手続きで処理できる。 本発明のデータ管理方式は全体の実行速度においても優
れている。
【図面の簡単な説明】
【図1】本発明の実施例のデータ管理方式におけるガー
ベジコレクションの構成を示す図である。
【図2】本発明のガーベジコレクションが適用される例
としてのページング方式の概要を示す図である。
【図3】本発明のガーベジコレクションが適用される他
の例としてのリストデータ記憶構成方式の概要を示す図
である。
【図4】図3のリストデータ記憶構成方式の詳細を示す
図である。
【図5】本発明の実施例の評価を行うためのシミュレー
ションシステムの構成図である。
【図6】図5に示したシミュレーションによるガーベジ
コレクション実行時間に関するパラメータと記憶使用量
を示す図である。
【図7】図5に示したシミュレーションによるストラク
チャ・インに対するフリーセルを確保する場合の実行時
間と記憶使用量の比較を示す図である。
【図8】図5に示したシミュレーションによる実施例と
ページング方式との実行時間との比較を示す図である。
【図9】図5に示したシミュレーションによる全体の処
理におけるガーベジコレクションの比較として,本実施
例とページング方式による場合との比較結果を示す図で
ある。
【図10】本発明のデータ管理方式のポインタが適用さ
れるリスト処理ディスク構造の概念を示す図である。
【図11】図10のノードの拡大図である。
【符号の説明】
1    主記憶 2A,2B  二次記憶ストラクチャ DRT  逆参照表 XRT  外部参照表

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  所定のデータを有するノード相互間の
    結合関係を示すポインタのうち不使用となったポインタ
    であるガーベジを回収するガーベジコレクションとして
    ,参照カウンタを用いてガーベジを回収するインクリメ
    ンタル・ガーベジコレクションと,不使用ポインタをマ
    ークしスィープするマークおよびスィープ・ガーベジコ
    レクションとを有し,これらのガーベジコレクションを
    リスト処理と時分割実時間で動作させ,かつ,インクリ
    メンタル・ガーベジコレクションをマークおよびスィー
    プ・ガーベジコレクションに優先して行うことを特徴と
    するデータ管理方式。
JP3069188A 1991-03-08 1991-03-08 データ管理方式 Pending JPH04281539A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3069188A JPH04281539A (ja) 1991-03-08 1991-03-08 データ管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3069188A JPH04281539A (ja) 1991-03-08 1991-03-08 データ管理方式

Publications (1)

Publication Number Publication Date
JPH04281539A true JPH04281539A (ja) 1992-10-07

Family

ID=13395506

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3069188A Pending JPH04281539A (ja) 1991-03-08 1991-03-08 データ管理方式

Country Status (1)

Country Link
JP (1) JPH04281539A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100737345B1 (ko) * 2006-03-28 2007-07-09 한국전자통신연구원 점진적인 가비지 콜렉션 수행 시에 순환적 가비지의 회수방법 및 장치
US8051265B2 (en) 2007-12-11 2011-11-01 Samsung Electronics Co., Ltd. Apparatus for managing memory in real-time embedded system and method of allocating, deallocating and managing memory in real-time embedded system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100737345B1 (ko) * 2006-03-28 2007-07-09 한국전자통신연구원 점진적인 가비지 콜렉션 수행 시에 순환적 가비지의 회수방법 및 장치
US8051265B2 (en) 2007-12-11 2011-11-01 Samsung Electronics Co., Ltd. Apparatus for managing memory in real-time embedded system and method of allocating, deallocating and managing memory in real-time embedded system

Similar Documents

Publication Publication Date Title
CN109923523B (zh) 计算机系统及用于计算机系统的方法
US5321834A (en) Method and system for reclaiming unreferenced computer memory space
US5887167A (en) Synchronization mechanism for providing multiple readers and writers access to performance information of an extensible computer system
US20110264870A1 (en) Using region status array to determine write barrier actions
JP2703494B2 (ja) スワップ・ブロック組立方法及びメモリ管理機構
JP4265610B2 (ja) プログラム制御装置、プログラム制御方法、およびプログラム記録媒体
JPS60140446A (ja) 記憶階層制御方式
Bender et al. Cost-oblivious storage reallocation
JP5773493B2 (ja) 情報処理装置
JP4333676B2 (ja) プログラム制御装置、プログラム制御方法、およびプログラム記録媒体
CN108628678B (zh) 内存参数的确定方法、装置及设备
JP3826626B2 (ja) プログラム制御装置、プログラム制御方法、およびプログラム記録媒体
JPH04281539A (ja) データ管理方式
US6067607A (en) Data control system for a computer's main memory for efficiently realizing virtualization of list structure data lying across a real memory space and a virtual memory space
CN111125070A (zh) 一种数据交换方法及平台
JP4345748B2 (ja) メモリ割当装置、メモリ割当方法、およびプログラム記録媒体
JP3520527B2 (ja) データ管理方法
JPH04280332A (ja) データ管理方式
JP2839530B2 (ja) メモリ割当て優先度の動的変更処理方式
US7302542B1 (en) Mechanism for dynamically-allocated variables in an arbitrary-context tracing framework
EP0430668B1 (en) Method and system for reclaiming unreferenced computer memory space
Lohmann et al. Hard Real-Time Memory-Management in a Single Clock Cycle (on FPGAs)
US7146390B2 (en) Staging the processing of remembered-set entries as part of collection based on the train algorithm
JPS63149743A (ja) 実時間ガ−ベジコレクシヨン方式
JPH02156365A (ja) 並列言語向きメモリ領域再利用処理方式