JPS63204446A - 参照カウント・ガ−ベジ・コレクシヨン方式 - Google Patents

参照カウント・ガ−ベジ・コレクシヨン方式

Info

Publication number
JPS63204446A
JPS63204446A JP3765787A JP3765787A JPS63204446A JP S63204446 A JPS63204446 A JP S63204446A JP 3765787 A JP3765787 A JP 3765787A JP 3765787 A JP3765787 A JP 3765787A JP S63204446 A JPS63204446 A JP S63204446A
Authority
JP
Japan
Prior art keywords
reference count
word
words
area
variable
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
JP3765787A
Other languages
English (en)
Inventor
Masanobu Yuhara
雅信 湯原
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP3765787A priority Critical patent/JPS63204446A/ja
Publication of JPS63204446A publication Critical patent/JPS63204446A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔1既要〕 電子計算機で動的なメモリ管理を要求される分野におい
て、ガーベジ・コレクションを参照カウント方式で行う
場合に、参照カウントのオーバフローに対処するため、
オーバフローした語を不可視ポインタに置き換え、その
ポインタ先に元の語と十分な大きさの参照カウント語を
置くことにより、オーバフロー問題を統一的に解決した
ものである。
〔産業上の利用分野〕
本発明は、参照カウントを使用したカーベジ・コレクシ
ョン方式、特に参照カウント数の拡張方式に関するもの
である。
知識情報処理のように高度な計算機処理を行う場合には
、動的なメモリ管理が必要となる。このような場合、L
i5p言語やProlog言語に見られるようにガーベ
ジ・コレクションとよばれる処理(不要になった語を回
収し再使用できるようにするための処理)が行われる。
ガーベジ・コレクションには幾つかの方式が提案されて
いるが、今後ますます重要になる並列処理あるいは実時
間処理において最も有力な方式は、参照カウント方式で
ある。
しかし、参照カウント方式には、参照カウント数が、各
語に付属しているカウント数を記録する部分の最大値を
越えた場合の問題(ここでは、オーバフロー問題という
ことにする)を解決する必要がある。
〔従来の技術〕
従来は、参照カウントのオーバフロー問題を解決する方
法として大きく別けて3つの方法があった。
■ 語に付属している参照カウント領域を十分大きく取
り、参照力、ラントがオーバフローすることがないよう
にする。
■ 参照カウント領域の値が最大値に達した後は参照カ
ウントの増減を行わない。参照カウント数が最大値に達
した語の回収は、参照カウント以外の方法、例えばマー
ク・アンド・スイープ法を併用することにより行う。
■ 参照カウントが最大に達した語の参照カウント数を
、別に設けたオーバフロー領域に記録する方式。
〔解決しようとしている問題点〕 ■の方式は次のような欠点を持つ。一般に参照カウント
の最大値は、論理空間の大きさく語数)に等しいので、
参照カウント領域はデータ領域とほぼ等しいビット数を
持つ必要がある。このため、参照カウント方式のガーベ
ジ・コレクションを行うためだけに、メモリ容量が約2
倍になってしまう。
■の方式は、参照カウント方式の他の方式を併用するた
めに、参照カウント方式が本来持っている特徴である実
時間性、並列処理への適合性を失ってしまう。
■の方式は、別に設けたオーバフロー領域が通常のメモ
リ (heap)とは別に必要になり、オーバフロー領
域の動的な管理が必要となる。
本発明は、この点に鑑みて創作されたものであって、前
記既存技術の持つ問題点を解決して、参照カウントのオ
ーバフローを取り扱う方式を提供することを目的として
いる。
〔問題点を解決するための手段〕
第1図は本発明の原理図である。第1図(alは語の構
成を示す図である。語は、参照カウント数、データ型情
報およびデータから構成されている。
例えば、データが整数であればデータ型はiとされ、デ
ータがポインタであればデータ型はrとされ、データが
不可視ポインタであればデータ型はVとされる。
第1図(blは参照カウンH1域の拡張を説明する図で
ある。語をポイントする他の語の数が増大し、参照カウ
ント数がオーバフローするような場合には、連続する2
語の確保が行われ、元の語のデータ型が■とされ、その
データ領域に確保した語を指示する不可視ポインタが書
き込まれる。確保した2語の内の一方の語のデータ領域
が拡張参照カウントSJr域として使用され、他方の語
のデータ領域に元の語のデータ領域の内容が書き込まれ
る。
例えば、元の語のデータが整数の123であったとする
と、上記他方の語のデータ型はiとされ、そのデータ領
域に123が書き込まれる。
〔実施例〕
第2図は語の構成例を示す図である。同図において、R
Cは参照カウント、TYはデータ型、DAはデータをそ
れぞれ示しζいる。
第3図は参照カウント数が2のときの状態を示し、第4
図は参照カウント数が3のときの状態を示す。なお、参
照カウント領域は2ビツト構成であると仮定する。第3
図、第4図を参照して通常の参照カウントによるガーベ
ジ・コレクションを説明する。
第3図では、ヒープ中の2つの変数A、Bが共に同じ変
数Xを指している。変数Xは他の語からは指されていな
いため、参照カランl−数が2になっている。変数Xの
値は整数で123である。なお、ヒープとはダイナミッ
クに使用されて行くメモリ領域を意味している。
第4図に示すように、変数Bが変数Cにコピーされたと
する。このとき、変RXを指すポインタの数が1増える
ので、変数Xの参照カウントが1増やされて3になる。
やがて、変数Cの値が書き換えられ、変数Xを指さなく
なったとしよう。今度は、変数Xを指すポインタの数が
1減るので、変数Xの参照カウントが1減らされて、再
び2に戻る。
更に、変数Xの参照カウントが減らされて行き、遂に参
照カウントがOになったとき、変数Xはもはや不要であ
ることがわかる。参照カウント値がOになった時、この
語を他の目的に再使用することができる。第3図、第4
図の場合には、変数Xの値が整数なので、参照カウント
処理がこれで終るが、変数Xが更に他の語をポイントし
ている場合には、Xの参照カウントがOになった時点で
ポイント先の語の参照カウントの減算処理を再帰的に行
う。
゛さて、第4図で変数Xを指すポインタの数が語中の参
照カウント領域で表現できる最大の数(2ピントであれ
ば3)を越えたとき、第5図のようにオーバフロー処理
がなされる。即ち、ヒープ中に2語が連続して確保され
、そこにXの値(整数123)と拡張参照カウントR2
が書き込まれる。
変数Xの語には不可視ポインタが張られる。
これ以後、R1〉0の条件でR1+R2が変数Xの参照
カウントになるように管理すればよい。
勿論、拡張参照カラン)R2のみで参照カウントを表す
ことも可能である。Xを指すポインタから見て、参照カ
ウントR1は直接にアクセスできるが、拡張参照カラン
1−R2は間接になるので、参14カウントR1を拡張
参照カウントR2に対するバッファのように考えて参照
カウントの増減を効率化することも可能である。例えば
、参照カウントの増減操作はR1に対して行うものとし
、R1がOあるいは最大値+1になろうとしたときには
、R1の値がR1の最大値の1/2になるようにR1を
調整することが考えられる。また、R1+R2が、R1
の最大値にくらべて十分小さくなった時には、不可視ポ
インタをなくして、元の普通の表現方法に戻すこともで
きる。
参照カウント操作以外の目的で不可視ポインタがアクセ
スされる時には、ハードウェアあるいはファームウェア
により、自動的に所望の場所が間接アクセスされる。第
5図の場合で言うと、不可視ポインタとなっているXを
読み出すと、自動的に不可視ポインタが辿られ、整数1
23という値がアクセスされる。このように不可視ポイ
ンタの自動辿り機構により、通常のユーザにとっては、
不可視ポインタなど存在しないように見せることができ
る。
第6図はオーバフロー処理の流れの例を示す図である。
オーバフロー処理は、マイクロプログラムで実現するこ
とも可能であり、ハードウェアで実現するごとも可能で
ある。
■ 他の語から新たにポイントされる語Pの参照カウン
ト値をXとする。
■ X+1をXとする。
■ オーバフローしたか否かを調べる。Yesのときは
■の処理を行い、NOのときは■の処理を行う。
■ ヒープ中に連続して2語確保する。これをWとする
■ WにPの内容をコピーする。
■ Wの中に拡張参照カウントとしてx−1を書く。
■ Pの参照カウント領域に1を書く。
■ Pの内容をWへの不可視ポインタとする。
■ Pの参照カラン) 6M域にXを書く。
〔発明の効果〕
以上の説明から明らかなように、本発明によれば、語中
の参照カウント領域に必要最低限のビット数を割り振る
だけで十分であり、参照カウント領域がオーバフローす
る稀な場合にも2語分(不可視ポインタと拡張参照カウ
ントの2語)しか余分に必要ないため、上述した■の従
来技術の持つメモリ効率の悪さを解消することが出来、
参照カウント方式以外の方法を併用しないので、上述し
た■の従来技術の欠点を持たず、更に参照カウントの拡
張部分が特別な領域ではなく、通常のヒープに置かれる
ため、この拡張部分自体も参照カウント方式により統一
的にガーベジ・コレクションが行われる点で■の従来技
術より優れている。
【図面の簡単な説明】
第1図は本発明の原理図、第2図は語の構成例を示す図
、第3図は参照カウント数が2のときの状態を示す図、
第4図は参照カウント数が3のときの状態を示す図、第
5図は参照カウント数が4以上の状態を示す図、第6図
はオーバフロー処理の流れの例を示す図である。

Claims (1)

  1. 【特許請求の範囲】 参照カウント方式のガーベジ・コレクション方式におい
    て、 語に付加されている参照カウント数を許されている最大
    の数を越えて増大する必要が生じた場合に、その語が存
    在するアドレスに不可視ポインタを置き、 当該不可視ポインタが指す先に拡張した参照カウント数
    を記録する語および元の語を記録する語を連続して配置
    する ことを特徴とする参照カウント数・カーベジ・コレクシ
    ョン方式。
JP3765787A 1987-02-20 1987-02-20 参照カウント・ガ−ベジ・コレクシヨン方式 Pending JPS63204446A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3765787A JPS63204446A (ja) 1987-02-20 1987-02-20 参照カウント・ガ−ベジ・コレクシヨン方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3765787A JPS63204446A (ja) 1987-02-20 1987-02-20 参照カウント・ガ−ベジ・コレクシヨン方式

Publications (1)

Publication Number Publication Date
JPS63204446A true JPS63204446A (ja) 1988-08-24

Family

ID=12503711

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3765787A Pending JPS63204446A (ja) 1987-02-20 1987-02-20 参照カウント・ガ−ベジ・コレクシヨン方式

Country Status (1)

Country Link
JP (1) JPS63204446A (ja)

Similar Documents

Publication Publication Date Title
US8548948B2 (en) Methods and apparatus for a fine grained file data storage system
JP2865500B2 (ja) ファイル格納管理方法
Chang et al. A high performance memory allocator for object-oriented systems
US7949839B2 (en) Managing memory pages
US20090327377A1 (en) Copying entire subgraphs of objects without traversing individual objects
JPH07104808B2 (ja) 設置可能なファイルシステムにおいてダイナミックボリュームトラッキングを行う方法及び装置
JPH11191267A (ja) 圧縮データ・レコードの格納のためにディスク記憶空間を割り振るための方法および記憶媒体
CN109086462A (zh) 一种分布式文件系统中元数据的管理方法
KR100224524B1 (ko) 파티션 기록보관 상태 어레이와 파티션 맵 모두를 이용하여 주저장매체를 기록보관 저장매체로 증분적으로 기록보관하기 위한 방법
JPS63204446A (ja) 参照カウント・ガ−ベジ・コレクシヨン方式
US6910054B1 (en) Methods, systems and computer program products for storing data using a rolling window file
JPS62224843A (ja) デ−タベ−ス媒体内容保全方式
JPH06110766A (ja) 分割格納ファイルシステムのディレクトリ構成方法および計算機システム
JP3471838B2 (ja) 循環順編成ファイルの管理方法
JPH07230405A (ja) オブジェクト指向データベース管理装置
JPH04165543A (ja) 電子フアイリング装置
JPS63129441A (ja) 仮想記憶管理装置
JPH04350738A (ja) ディスクスペース管理方式
JPS63106053A (ja) デ−タベ−ス書込み/読出し方式
JPS58189888A (ja) ハ−ドウエア・スタツク装置
JPH0388190A (ja) イメージデータファイル
JPH05324456A (ja) 参照カウント式ガーベジコレクション方法
JPH04112245A (ja) ファイル構造の仮想化方法
Chun Access and organization of secondary memory devices
JPS6358555A (ja) フアイルスペ−ス管理方式