JPH08106415A - ガーベジコレクタ装置 - Google Patents

ガーベジコレクタ装置

Info

Publication number
JPH08106415A
JPH08106415A JP24002694A JP24002694A JPH08106415A JP H08106415 A JPH08106415 A JP H08106415A JP 24002694 A JP24002694 A JP 24002694A JP 24002694 A JP24002694 A JP 24002694A JP H08106415 A JPH08106415 A JP H08106415A
Authority
JP
Japan
Prior art keywords
area
cassette
size
free
small
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.)
Withdrawn
Application number
JP24002694A
Other languages
English (en)
Inventor
Akihiko Kato
昭彦 加藤
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 JP24002694A priority Critical patent/JPH08106415A/ja
Publication of JPH08106415A publication Critical patent/JPH08106415A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 本発明の目的は、小領域を具備する装置の領
域割当要求に対して柔軟に領域の割当が可能な小型保守
的領域割当装置を提供することである。 【構成】 本発明は、応用プログラムから要求された要
求領域を割り当てる領域割当手段200 と、領域割当手段
200 が要求領域に対応する領域が不足した場合に、予め
設定されたサイズのカセット又は、カセットを結合した
領域を割り当てるカセット割当手段300 と、カセット割
当手段300 が要求領域に対応するカセットが不足した場
合に、メモリ内の未使用の領域を回収し、領域割当手段
200 または、カセット割当手段300 に渡す領域回収手段
400 とを有する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ガーベジコレクタ装置
に係り、特に、小型のメモリ装置を有するコンピュータ
機器において応用プログラムから要求された領域を割り
当てるためのガーベジコレクタ装置に関する。詳しく
は、パーソナルコンピュータの実メモリをオペレーティ
ングシステムで動作させる場合にメモリ消費量を低減さ
せる場合や、小型のメモリ装置を有する機器、例えば、
時計、小型の携帯型電子データ処理装置等に使用される
メモリにおいて、使用されていない領域または、不要な
領域を監視し、当該領域を回収し、再割り当てを行うガ
ーベジコレクタ装置に関する。
【0002】
【従来の技術】以下に、未使用領域や不要な領域を回収
し、領域の再割り当てを行う従来のガーベジ・コレクタ
装置について説明する。動的領域管理において、利用可
能領域の減少に対処するため、不要になった領域を自動
的に調査し、回収する装置をガーベジ・コレクタ(garb
age collector)装置(以下、GC)と呼ぶ。
【0003】GCは、応用プログラムと相互に密接に情
報の交換を行うことにより、当該プログラムで使用され
た領域、使用後の残領域等を把握する。例えば、応答プ
ログラムは割り当てるべき領域のポインタ・フィールド
がどこにあるかを装置内の領域管理部に通知することに
より、領域の管理を行う。また、既存のソフトウェアへ
の組み込みが容易な保守型ガーベジ・コレクタ装置(Co
nservative Garbage Collector(以下、CGCと呼
ぶ))がHans-JuegenBoehm 等により提案されている(H
ans-Juergon Boehm: Garbage Collection inan Uncoope
rative Environment, Software-Practice and Exprienc
e, Vol. 18 (9), pp. 807 - 820, (1988) )。
【0004】CGCは、ポインタ・フィールド自動推定
機能及び、ヒープ領域からの領域確保機能を有し、応用
プログラムと独立した部品として作成でき、既存のソフ
トウェアの組み込みもわずかな労力で実行できるという
利点がある。ポインタ・フィールド自動推定機能は、使
用領域を全て探索してマーク付けを行い、その後、最後
までマークされなかった領域を未使用領域として回収す
るが、このとき、応用プログラムから直接参照されてい
る領域だけでなく、ポインタによって間接的に参照され
ている領域も、GCでポインタの位置を把握し、マーク
付けする。
【0005】上記のポインタ・フィールド自動推定機能
を有するCGCは、応用プログラムから独立に動作可能
であり、応用プログラムのデータ領域やスタック領域及
び割り当てた領域を操作し、ビットパターンを調べ、適
正な番地のビット・パターンをなしているワードをポイ
ンタであると推定する。なお、このCGCが保守型と呼
ばれるのは、領域を探索する場合に、適正なポインタの
ビット・パターンを持つ数値データがあったという場合
も考えられるが、安全を見越してこのような場合でもポ
インタであるとみなすためである。
【0006】次に、CGCのヒープ領域からの領域確保
機能は、他のソフトが使用する通常の領域確保機能と両
立させてヒープ領域をメモリ空間に確保する。また、領
域は、CGCを使用するソフトウェアの状態により動的
に拡大されるものである。また、この領域確保機能は、
ヒープ領域を4Kバイトのチャンク或いは、ヒープ・ブ
ロックと呼ばれる領域に分割する。チャンクは、低レベ
ルのチャンクアロケータ・プログラムによって管理され
る。なお、上記の『チャンク』とは、「大きなブロッ
ク」という意味を含む。これは、固定サイズの領域管理
プログラムであるので、各カセットの先頭をチャンクの
大きさの4K境界に合わせていれば、容易に実現でき
る。ここで、チャンクとは、ヒープ領域内において分割
されている固定長領域を意味する。
【0007】なお、以下の説明に用いる『カセット』と
は、上記の「チャンク」に対して「小さな箱」という意
味を強調するものとする。CGCは、応用プログラムか
らの領域確保要求に対して、以下のような動作を行う。
カセットの制御情報領域を除いた残りの半分以下の大き
さの領域(以下、小領域と呼ぶ)とそれより大きな領域
(以下、大領域と呼ぶ)では扱いが異なる。カセット制
御情報領域は、システムの条件によって異なるが、少な
くとも、領域の長さ、アトミック/非アトミック、領域
のマーク・ビット、カセット管理テーブルへのポインタ
(領域の先頭へのポインタ識別方式の場合)を含む。な
お、上記のアトミックとは、利用者により領域内にポイ
ンタを含まないものとして指定された領域であり、当該
領域内ではポインタの推定のための走査は行わない。非
アトミックとは、内部にポインタを持つ可能性があるこ
とを示し、この領域内では、ポインタ推定のための走査
を行うものとする。
【0008】小領域を確保するためには、カセット内の
制御情報領域を除いた実領域を指定された長さに等分
し、これらの部分を割り当てるべき領域とする。小領域
は、その種類毎に、自由リストで管理されている。もし
長さがワード(4バイト)単位で割り当てられるとすれ
ば、小領域は、1ワード(=4バイト)から、およそ1
/2Kワード(〜2Kバイト≒(4Kバイト−カセット
内制御情報領域)/2)まで4バイト毎の長さ、及びそ
れぞれの長さの領域にアトミック/非アトミックの種類
がある。
【0009】また、大領域を確保するためには、逆引き
ポインタを用いたカセット・アロケータにより、一つま
たは、複数のカセットを連結することにより実現する。
この方式は、番地計算を行うため、カセット自身、サイ
ズが2の冪乗であって、番地の境界合わせを行い、割り
当てられた領域のカセット内の先頭番地が常に計算でき
るように設計されている。
【0010】
【発明が解決しようとする課題】しかしながら、上記従
来のGCは、応用プログラムとGCが互いに密接に情報
を交換しあわなければならないという制限があるため、
応用プログラムは、領域管理部の管理情報を常時意識
し、かつ、それに依存したものとなるため、GCを有す
る動的領域管理を行う応用プログラムの生産性と信頼
性、保守性を大幅に低める要因となっている。また、同
様の理由により、既存のソフトウェアにGCを組み込み
たい場合でも、殆どの場合、当該ソフトウェアを全面的
に書き換える必要があるため、実現が困難である。
【0011】また、上記のCGCは、上記のGCの欠点
を解決するものであるが、ワークステーションのような
巨大なメモリ領域を仮定したものであり、パーソナルコ
ンピュータの実メモリ空間等の小領域でそのまま実装す
ることができないという問題がある。その理由は、カセ
ットの大きさが4Kバイトであること、長さの異なる領
域に対して異なるカセットが必要であるため、多くのカ
セット数が必要となる。また、全体のメモリ領域が小さ
い場合には、小さな領域を多く確保することに重点を置
くべきであるので、一つのカセットのサイズを大きくす
ることよりカセットを小さくしてでも、多くのカセット
を割り当てなければならない。このとき、どれ位の領域
が必要かを考えると、仮に、全ての長さの小領域つま
り、長さ1ワード(4バイト)から1/2Kワード(2
Kバイト)までの領域をそれぞれアトミックと非アトミ
ック1つずつ割り当てるとすると、応用プログラムから
要求された大きさは、
【0012】
【数2】
【0013】であるにもかかわらず、
【0014】
【数3】
【0015】の領域が必要とされる。一般にどの長さの
領域をどれだけ必要とするかは、応用プログラムと実行
中の各時点の状態に依存するので、予め知ることはでき
ないが、少なくとも全ての種類の小領域を同時に割り当
てられる程度の能力は必要となる。一方、カセットを非
常に小さくした場合、カセットのサイズが2の冪乗バイ
トでなければならないという制限があるので、カセット
内の制御情報領域が全体の領域の量に比べてバランス
上、大き過ぎることがある。従って、カセット内の領域
部分の適度な大きさを決めるためには、情報領域の大き
さを変えることにより調整する必要がある。
【0016】また、カセット・アロケータで逆引きポイ
ンタによるカセット管理は、連結されたカセットについ
て、両方向のポインタを使用しているため、空間効率が
悪くなる。さらに、ポインタ走査のオーバーヘッドを小
さくするために、ポインタのルートを見つけるために、
静的なデータ領域を走査せずに、実行スタックのみを走
査する方法が知られているが、C言語でいう自動変数が
指している領域のみをチェックすることになるので、静
的な変数(C言語では、スタティック変数や外部変数)
のみが指しており、他から指していない領域は、GCに
より未使用として回収されてしまうという問題がある。
従って、静的な変数が領域を指すような方法は適用でき
ないという問題がある。
【0017】また、カセットの管理において、カセット
の先頭番地の番地をカセットサイズの境界に合わせる必
要があるが、小型の機械では、このような機能が提供さ
れていないため、特別な方法を必要とする。本発明は、
上記の点に鑑みなされたもので、上記従来の問題点を解
決し、小領域を具備する装置の応用プログラムからの領
域割当要求に対して柔軟に領域の割当が可能なガーベジ
コレクタ装置を提供することを目的とする。
【0018】更なる本発明の目的は、全体のメモリ領域
が小さい場合に、小さな領域を確保することに重点を置
く必要があるので、1つのカセットのサイズよりカセッ
トのサイズを小さくしてでも多くのカセットを割り当て
ることが可能なガーベジコレクタ装置を提供することで
ある。更なる本発明の目的は、1つのカセットの大きさ
が2の冪乗でなければならない等の制限に適用できるカ
セットサイズを決定し、応用プログラムに割り当てるこ
とが可能なガーベジコレクタ装置を提供することであ
る。
【0019】
【課題を解決するための手段】本発明のガーベジコレク
タ装置は、電子計算機内のガーベジコレクタ装置におい
て、応用プログラムから要求された種類の小領域を割り
当てる領域割当手段と、領域割当手段において、該小領
域に対応する領域が不足した場合に、予め設定されたサ
イズのカセット又は、該カセットを結合した領域を割り
当てるカセット割当手段と、カセット割当手段におい
て、該小領域に対応するカセットが不足した場合に、ヒ
ープ領域内の未使用の領域を回収し、領域割当手段また
は、カセット割当手段に渡す領域回収手段とを有する。
【0020】また、上記の領域回収手段は、ヒープ領域
の未使用の領域の先頭を探索するポインタ・フィールド
自動推定手段を含む。また、本発明の上記のカセット割
当手段は、カセットを等しい長さに等分し、等分された
領域を複数格納するカセット格納手段と、カセット格納
手段の外部にカセットの使用状態を管理する使用カセッ
ト管理手段とを有するヒープ領域を具備する。
【0021】また、本発明の上記の領域割当手段は、メ
モリ内の各領域を管理するための領域管理手段を有す
る。また、本発明のガーベジコレクタ装置は、カセット
のサイズSを、前記ヒープ領域に応用プログラムから要
求された全種類のカセットを何個設定できるかを示す数
(余裕係数)をaとし、小領域の種類の数/Sを属性係
数cとした場合に、
【0022】
【数4】
【0023】(但し、2の冪乗で四捨五入)により求め
るカセットサイズ計算手段と、カセットサイズ計算手段
により求められたカセットの大きさを適正な値に修正す
るカセットサイズ修正手段とを有する。
【0024】
【作用】本発明は、パーソナルコンピュータや、それ以
下の規模のゲーム機器等の少量のメモリしか具備してい
ない装置に対して、応用プログラムで要求された領域が
不足した場合に、所定のサイズのカセット単独または、
カセットを複数結合して応用プログラムからの要求領域
として割り当てる。さらに、割り当てるべきカセットが
不足した場合には、領域回収手段により、未使用の領域
を探索・回収し、プログラムに割り当てる。
【0025】また、本発明は、
【0026】
【数5】
【0027】(但し、2の冪乗の大きさで四捨五入)の
計算式により、上記の1つのカセットの最適なサイズを
決定し、応用プログラムの領域要求に対応するだけのカ
セットを割り当てる。また、本発明は、応用プログラム
からの領域確保要求に対して通常のメモリ領域では当該
領域確保要求に対応できない場合に、即座にGCをアク
セスするのではなく、予め所定のサイズに設定されたカ
セットが存在する領域に領域確保要求を発行し、当該カ
セットについても不足が生じた場合に初めてGCをアク
セスする。
【0028】また、本発明は、カセットを制御するカセ
ット制御領域をカセット格納領域の外部に設けることに
より、メモリ消費量が少なく、ヒープ領域のカセット格
納領域を多く取得することが可能である。また、本発明
は、カセット割り当て手段がカセットが使用中であるか
否かを判定するための使用カセット管理手段を参照する
ことにより、使用中のカセットを応用プログラムに割り
当ててしまうという危険性がなく、使用中のカセットに
対する排他制御が可能である。
【0029】
【実施例】以下、図面と共に本発明の実施例を説明す
る。図1は、本発明の一実施例のシステム構成を示す。
同図において、点線は、制御の流れを示し、実線はデー
タの流れを示す。同図に示すガーベジコレクタ装置は、
制御部100、領域割当部200、カセット割当部30
0、ガーベジコレクタ(以下GC)実行部400及びヒ
ープ領域500より構成される。
【0030】領域割当部200は、領域割当ルーチン2
10と自由領域リスト220を含む。カセット割当部3
00は、カセット割当ルーチン310と自由カセットリ
スト320を含む。GC実行部400は、未使用領域探
索部410と空き領域回収部420を含む。ヒープ領域
300は、カセット外制御領域510と複数(N個)の
カセット格納ヒープセグメント520を含む。
【0031】[制御部]制御部100は、上記の各部を
制御する。特に、制御部100は、応用プログラム実行
開始と同時に各部を初期化する。 [領域割当部]領域割当部200は、応用プログラムか
ら領域確保の要求が発行される度に呼び出される領域割
当ルーチン210と未使用領域を管理する自由領域リス
ト220を有する。自由領域リスト220中に要求され
た小領域がない場合には、後述のカセット割当部300
からカセットを一つ割り当て、図2に示す方法で小領域
を構成する。図2は、本発明の一実施例の小領域の自由
領域リストの概念を示す図である。この自由領域リスト
220は、領域割当部200により使用される。領域割
当部200は、領域割当ルーチン210により、応用プ
ログラムから要求された領域の長さが1である場合には
1つの自由領域を、長さが3の場合には3つの領域を繋
いで使用するものである。このとき、応用プログラムか
ら要求された長さの自由領域が自由領域リスト220に
無ければ、カセット割当部300を呼ぶ。また、応用プ
ログラムから大領域が要求された場合には、制御部10
0は、自由領域リスト220を使用せずに、最初からカ
セット割当部300を呼ぶ。
【0032】自由領域割当部210は、自由領域リスト
210に構成された小領域の一つが応用プログラムに渡
し、残りの小領域は自由領域リスト220に登録する。
また、応用プログラムからの要求が自由領域リスト22
0で扱わない大きさ(カセットの大きさの半分より大き
い)の場合は、カセット割当部300をコールする。 [カセット割当部]カセット割当部300は、制御部1
00または、領域割当部200からコールされると、ヒ
ープ領域500から必要数連続したカセットを得て、図
3に示すように大領域を構成する。
【0033】図3は、本発明の一実施例の自由カセット
リストの概念を示す図である。同図に示すように、カセ
ット割当部300のカセット割当ルーチン310が未使
用カセットを監視し、要求されたカセットが1つのカセ
ットの割り当てに不足する場合には、カセット格納ヒー
プセグメント520の未使用カセットを結合して自由カ
セットリスト320に登録する。同図において、(a)
は、自由カセットと自由カセットの2つの未使用カ
セット結合され、自由カセット320に登録される。
(b)は、1つの未使用カセットである自由カセット
のみが自由カセットリスト320に登録される。(c)
は、3つの未使用カセットの自由カセット、、が
自由カセットリスト320に登録される。
【0034】なお、初期化時には自由領域リスト220
は、空になる。応用プログラムから最初に領域割当ルー
チン210がコールされた時、制御部100は、必ず後
述のカセット割当部300に制御を移す。図4は、本発
明の一実施例の小領域用のカセットの構成を示す。1つ
のカセット600は、カセット内制御情報610と複数
の領域620より構成される。カセット内制御情報61
0は、アトミットク/非アトミック区分611、小/大
領域区分612(同図の場合には、小領域用カセットで
あるので、“小”である)、領域長613より構成され
る。
【0035】図5は、本発明の一実施例の大領域用のカ
セットの構成を示す。図5は、図4に示すカセットを3
個結合している状態である。このとき、カセットAに結
合されているカセットBのカセット内制御情報及びカセ
ットBに結合されるカセットCのカセット内制御情報
は、ユーザ(大領域)が使用するために無効となる。な
お、長さが、カセットの半分より大きく、カセット全体
より小さい領域はカセット1個分を使用する大領域とす
る。
【0036】カセット割当部300は、上記の領域割当
部200にて自由領域リスト220上に自由領域がない
場合、あるいは、応用プログラムから自由領域リスト2
20で扱わない大領域要求があった場合に、領域割当部
200から呼び出されるカセット割当ルーチン310ま
たは、後述されるヒープ領域500内のカセット外制御
領域510のカセット管理ビットテーブルをも参照して
カセットを管理する。カセット割当ルーチン310は、
領域割当ルーチン210からの要求により、一つまた
は、連続した複数のカセットを結合して領域割当ルーチ
ン210に提供する。
【0037】初期化時点では、ヒープ領域500のカセ
ット格納ヒープセグメント520の全てのカセットを未
使用カセットとして自由カセットリスト320に登録す
る。また、カセット割当ルーチン310は、領域割当ル
ーチン210からの要求に対応するカセットを割り当て
ることができない場合には、制御をGC実行部400に
移行する。
【0038】なお、このカセット割当部300のカセッ
ト割当ルーチン310は、呼び出される回数が少ない方
が望ましく、さらに、カセット割当ルーチン310を起
動する場合に、カセット格納領域520の2つ以上のカ
セットを割り当てるよりも、一つのカセット割り当てる
方が効率がよい。そのため、カセットサイズは、当ガー
ベジコレクタ装置の設計時または、インストール時、あ
るいは、カセットサイズをパラメータ化することによ
り、初期化時に最適の大きさに設定する必要がある。カ
セットサイズの決定方法については後述する。
【0039】[ヒープ領域]カセット割当部300のカ
セット、及び領域割当部200の領域のリソースとして
ヒープ領域500がある。図6は、本発明の一実施例の
ヒープセグメント毎のカセット外制御情報領域とヒープ
セグメントの構成を示す。ヒープ領域500は、カセッ
ト外制御情報領域510とカセット格納領域520を有
する。カセット格納領域520はカセットの大きさに、
それぞれがカセットの大きさで境界合わせが可能なよう
に、等分され、その等分された各部分がカセットを構成
する。
【0040】本実施例では、セグメントアドレス方式の
機械を使用するため、カセット格納領域520はヒープ
セグメント521と呼ばれるセグメントの集まりとして
構成される。また、カセット外制御情報領域510もヒ
ープセグメント毎の制御部511の集まりとして構成さ
れる。カセット外制御情報領域510は、カセット格納
ヒープセグメント520ごとのカセット外制御情報領域
511のN個の集まりであり、カセット格納領域520
は、カセット格納ヒープセグメント522のN個の集ま
りである。Nは、カセット全体量を賄うためにカセット
格納ヒープセグメント522を何個使用するかを表す数
である。
【0041】カセット格納ヒープセグメント520ごと
のカセット外制御情報領域511は、カセット管理ビッ
トテーブル5111とマークビットテーブル5112、
及びその他の制御情報5113よりなる。カセット管理
ビットテーブル5111は、自由カセットではない活動
中のカセットの各々について管理情報を格納するもので
ある。もし、当該カセットが小領域用カセットか大領域
用の先頭カセットのとき“1”、そうでない場合、即
ち、大領域用の先頭でないカセットの場合に“0”が設
定される。従って、このビットはカセット内制御情報が
有効の時“1”、無効の時“0”となる。自由カセット
については、このビットの値は不定である。
【0042】領域マークビットテーブル5112はカセ
ット内部の領域先頭番地の候補全てに対し、それぞれ1
ビット割り当てられ、GC実行部400により使用/未
使用領域を記録するために使用される。その他の制御情
報5113は各カセットが自由カセットであるかどうか
を表すビットテーブルのために使用されるが、これは、
効率のために導入されたものであって、理論的には、こ
のビットテーブルを使用しなくても、自由カセットリス
ト320を探索することによって、各カセットが自由カ
セットであるか否かは決定できる。
【0043】領域及びカセットの制御情報は、カセット
外制御情報510とカセット格納領域520内の各カセ
ットにあるカセット内制御領域を併せて管理する。カセ
ット内制御領域は、実行中に無効となる場合があるの
で、そのような場合でも情報を失わないようにカセット
外制御情報510が設計されている。 [GC実行部]カセット割り当て部300が必要なカセ
ットを提供できなかった場合、GC実行部400が起動
される。GC実行部400は、未使用領域探索部410
と空き領域回収部420からなり、この順序で実行され
る。
【0044】未使用領域探索部410が先ず先に起動さ
れ、ポインタ自動推定を行うことにより、応用プログラ
ムから直接・間接に参照されていると推定される全ての
領域を見つける。応用プログラムの参照元としては、ス
タック領域とデータ領域を前提とする。但し、探索効率
を上げるため、データ領域は応用プログラムから位置を
指定する方法をとるものとする。以下、詳細は後述す
る。
【0045】この結果は、カセット外制御情報領域51
0内にある領域マークビットテーブル5112に印を付
けることにより保存される。次に空き領域回収部520
がこの領域マークビットテーブル5112を参照して、
印のついていない領域、即ち、未使用領域を回収する。
この回収の方法は、もし、カセット内の全ての小領域が
未使用の場合、及び大領域が未使用の場合は、自由カセ
ットリスト320へ回収し、もし、カセット内の一部分
の小領域のみが未使用の場合は、個々に自由領域リスト
220へ回収する。
【0046】以上でGC実行部400の処理は終了す
る。この時点で領域マークビットテーブル5112は、
ゼロクリアされる。その後、制御はカセット割当部30
0、またはカセット割当部300を介して領域割当部2
00に戻される。次に、GC実行部400におけるポイ
ンタ自動推定方法と、それを用いた未使用領域探索部4
10の動作について説明する。
【0047】図7は、本発明の一実施例のポインタ自動
推定方法を説明するための図である。スタック領域、デ
ータ領域、カセット内部の領域内位置で以下のような条
件ビットパターンの語をヒープ領域内へのポインタと推
定する。条件は、以下の(1)から順に不適当なものを
振り落としてゆくことで検査する。 (1)ビットパターンがポインタの形をしていることを
検査する。例えば、NULLポインタでないこと。ま
た、例えば機械が、ポインタが4バイト境界に常に置か
れているアーキテクチャである場合、下2ビットが0で
あること等。
【0048】(2)当該ポインタがヒープ領域内部のど
こかを指していないならば、正当なポインタではない
(同時に、アクセス不可の番地でないかどうかも自動的
に検査される)。 (3)ヒープ領域内部であれば、どれかのカセットの内
部にあるとして、そのカセットの先頭番地を計算する。
これは、カセット位置が常にカセットの大きさ(2の冪
乗)で境界合わせされているので、ポインタ計算で求め
られる(カセットの大きさが2のx乗ならば、ポインタ
の下xビットを0にすればよい)。この計算位置が実際
に活動中のカセットの先頭番地でなければ正当なポイン
タではない。ある番地が活動中のカセット先頭番地であ
るかどうかは、カセット管理ビットテーブルを使用して
カセット割当部300によって検査される。
【0049】(4)当該ポインタが当該カセット内のど
れかの領域の先頭番地であれば、最終的に正当なポイン
タであると推定する。この方法は、もし、当該カセット
が大領域用に割り当てられたカセットならば、当該ポイ
ンタがカセット内部の制御情報部分の次の番地かどうか
を検査し、また、もし、当該カセットが小領域用のもの
ならば、当該ポインタがカセット内部制御情報部分の次
の番地であるか、または、そこから領域の長さの整数倍
の位置にあるかどうか検査する。
【0050】例えば、スタック領域、データ領域、カセ
ット内領域を走査することによって、ビットパターンが
条件(1)を満たす語としてA〜Iまでみつかったとす
る。同図中、このカセット内部制御情報は網掛け部分で
示す。このとき、正当なポインタは以下のようにして振
り分けられる。 ・Aは、形はポインタであるが、ヒープ領域内を指して
いない。 ・Bは、カセット内部を指しているが、カセット内部の
小領域の先頭番地ではない。 ・Cは、領域カセットA内の最初の領域の先頭を指して
いる。 ・Dは、小領域用カセットAの2番目の領域の先頭を指
している。 ・Eは、大領域用カセットの先頭領域用の番地を指して
いる。 ・Fは、カセット内の先頭領域のバッチの形であるが、
大領域のカセットのカセット部分であるので、正当なポ
インタではない(このカセット内部制御情報部分は、ユ
ーザが利用しているために無効である)。 ・Gは、カセットB内の2番目の領域を指している。 ・Hは、カセットB内ではあるが、領域の先頭番地では
ない。 ・Iは、カセットA内の3番目の領域を指している。
【0051】以上のことから、正当なポインタは太線で
示したC,D,E,G,Iと推定する。未使用領域探索
部410は、上記の原理を用いてスタック領域及び応用
プログラムが指定したデータ領域部分から正当なポイン
タと推定されたポインタ(図7において○印がついたポ
インタ)を辿って直接・間接に参照されている領域(図
7において★印がついた領域)を全てカウントする。但
し、領域中のポインタは正当なポインタであっても、そ
のポインタのある領域がスタック領域あるいは、データ
領域から直接にも間接にも参照されていない場合には、
カウントから外す。図7の☆印の位置は、正当なポイン
タ−Iから参照されてはいるが、Iが存在する領域がス
タック領域・データ領域から直接にも間接にも参照され
ていないためカウントから外す。図7において、★印の
位置は、実際には、領域マークビットテーブル5112
において付与される。
【0052】なお、未使用領域探索部410において
は、応用プログラムのスタック領域とデータ領域を仮定
するが、本実施例では、前述のように、効率のためのス
タック領域のみを自動的に探索する。但し、それだけで
は静的変数/外部変数からの参照を無視してしまうの
で、必要な場合のみ、データ領域からの参照位置を応用
プログラムから指定するルーチンに組み込んでおく。
【0053】図8は、本発明の一実施例のGC実行部の
空き領域回収部の動作を説明するための図である。未使
用領域探索部410により使用領域に全て印(★印)が
付与された後、空き領域回収部420が印が付与されて
いない領域を回収する。小領域用カセットAは、領域回
収部420により、一部分が未使用であるので、その未
使用部分のみを自由領域リスト220に回収される。
【0054】小領域用カセットBは、内部の全ての領域
が未使用であるので、カセット全体を自由カセットリス
ト320に回収される。大領域用カセットCの大領域が
未使用の場合は、領域回収部420は、その結合された
カセットを纏めて自由カセットリスト320に回収す
る。 [カセットサイズ決定部]最後にカセットサイズ決定部
700について説明する。カセットサイズ決定部700
は、予めカセットの大きさを決定しておくと共に、適宜
カセットのサイズを修正する。以下に、カセットサイズ
の決定方法について説明する。
【0055】カセットサイズを決定するということは、
カセットをカセット格納ヒープセグメント520内にど
れだけ確保できるかを計算の対象とするものである。こ
こで、各要素を以下のように定義した場合、カセットサ
イズSは以下の基本式により求められる。 S:カセットサイズ(バイト) H:ヒープ領域全体量 a:余裕係数 Hc :カセット格納ヒープセグメント外に設定されるカ
セット制御領域量 K:領域長 c:属性係数(カセット設計時に決定される)
【0056】
【数6】
【0057】上記の式は、カセットの種類がK種類存在
するとし、さらに、Kの領域長は312であり、カセッ
トサイズSに比例する量がK=cSであると仮定する。
このとき、各種類毎にひとつずつカセットを同時に割り
当てる量(1シリーズ)は、 KS = cS2 で表される。ヒープ領域300に何シリーズ同時に割り
当てることができるかという量を余裕係数aとした場合
に、カセット制御情報量をHc とし、ヒープ領域全体量
をHとしたとき、カセットサイズSについて逆算すれ
ば、上記の式を設定することができる。
【0058】上記のカセットサイズ決定部700がカセ
ットサイズを決定する例を以下に示す。cは領域の種類
として領域長を含めてアトミック/非アトミックの区別
で決定されるので、長さを4バイト、カセットの長さの
最大は、S/2であるとし、長さという属性の種類は、
S(2・4)個あり、それぞれにアトミック/非アトミ
ックの区別があるとして、 K=2・S/2・4=S/4 c=2/2・4=1/4 となる。
【0059】ここで、上記の余裕係数aは、領域の中で
aシリーズ分を使用したときにヒープ領域300が満杯
になることを表す。即ち、各種類の領域がほぼ同数のカ
セットを要求する場合が最もカセットの大きさを大きく
できることになる。この場合には、余裕係数a=1とな
る。しかし、現実には、このような現象は、殆どあり得
ないので、a>1とする。しかし、余裕係数aが大きす
ぎると、相対的にカセットサイズが小さくなり、カセッ
トに対応するカセット制御領域310の占める割合が大
きくなるため、余裕係数aをある程度絞る必要がある。
以下に余裕係数の求め方を説明する。
【0060】極端な場合としてひとつの領域の種類i以
外は、すべてカセットを一つずつ専有し、種類iのみが
残りの全ての領域を占有している場合、種類iの占める
領域の量は、 H・(a−1)/a+S ・・・A である。
【0061】上記のAは、一つの種類の領域が殆ど全て
を占める場合の最悪の状況を示しているので、これ以下
の数であれば、複数の種類のカセットに対して領域の配
分が可能である。例えば、余裕係数aを10以上とした
時、最大の極限状態において、ひとつの種類の領域のみ
が全体の90%を占める状態に対応でき、また、余裕係
数aを20以上であるとした時、この割合が95%の場
合に対応できる。
【0062】また、カセットサイズ決定部700におい
て、カセットサイズを修正する場合は、予めカセットサ
イズ決定部700で決定されているカセットサイズを前
述の計算式( )に代入する値を変更することによりカ
セットサイズを修正する。例えば、制御情報のサイズを
変更する場合には、Hc にヒープ領域に設定したい制御
情報領域量を設定すればよい。
【0063】前述の数6におけるカセットサイズ決定部
700における計算式において、少領域に必要なカセッ
トの個数Ns と大領域に必要なカセットの個数Nm 、必
要なカセット格納ヒープセグメント520の大きさTバ
イトは、以下のように表される。
【0064】
【数7】
【0065】T = C(Ns + Nm ). 但し、
【0066】
【数8】
【0067】は切り上げを意味する。もし、各小領域、
即ち、各長さn≦L語の領域が
【0068】
【数9】
【0069】(但し、
【0070】
【数10】
【0071】は、切下げを意味する)であり、それはカ
セットをa個消費する。大領域がない場合を考えれば、
このとき、カセット格納ヒープセグメント520の大き
さTは、
【0072】
【数11】
【0073】となる。これからカセットのサイズCを逆
算してカセットの大きさを決めるときの目安にしてい
る。実際にはさらに、カセットのサイズ以上の大領域を
どのくらい必要とするかを推測して調整するべきである
が、メモリが小さいためにデータ構造の調整を行ってい
る。次に、図9を用いて処理動作の概要を説明する。図
9は、本発明の一実施例の動的な領域割り当ての概要を
示すフローチャートである。
【0074】以下の動作の前提として、予めカセット格
納ヒープセグメント520に格納されるカセットのサイ
ズは決定されているものとする。 ステップ101)応用プログラムは、制御部100に動
的な領域の確保を要求する。 ステップ102)制御部100は、応用プログラムが小
領域を要求しているかまたは、大領域を要求しているか
を判定し、大領域を要求している場合には、ステップ1
05に移行する。また小領域を要求している場合にはス
テップ103に移行する。なお、大領域かまたは、小領
域かの判定において、初期化時または、設計時に(25
6バイト−4バイト)/2=126バイト以下の領域を
小領域とし、それより大きな領域を大領域とする。
【0075】ステップ103)制御部100は、領域割
当部200の領域割当ルーチン210をコールする。領
域割当ルーチン210は、自由領域リスト220より領
域を割り当てる。 ステップ104)このとき、領域割当部200におい
て、要求された領域割り当てることができない場合に
は、ステップ105に移行する。
【0076】ステップ105)カセット割当部300
は、自由カセットリスト320より未使用カセットを取
得して要求された領域を割り当てる。ここで、カセット
割当部300は、1つのカセットでは足りない場合に
は、複数の未使用カセットを結合して連続したカセット
を取得し、自由カセットリスト320に登録する。 ステップ106)カセット割当部300において、自由
カセットリスト320上でも要求された領域の割り当て
が失敗した場合には、ステップ107に移行する。
【0077】ステップ107)GC実行部400は、ヒ
ープ領域300のカセット外制御領域510を参照し
て、カセット格納ヒープセグメント520において空き
領域を取得する。このとき、小領域用カセットの一部が
未使用である場合には、自由領域リスト220に回収
し、小領域用カセットの全部及び大領域用カセットの全
部が未使用である場合には、自由カセットリスト320
に回収する。
【0078】以下に、応用プログラムから要求された領
域を割り当てる場合の具体的な例を示す。 [第1の領域割当の具体例]次に、上記の第1の具体例
として、例えば、自由領域リスト220上には、長さ1
語(4バイト)の自由領域が2個、長さ2語(8バイ
ト)の自由領域が1個登録され、その他の大きさの自由
領域は、登録されていないものとする。
【0079】このとき、応用プログラムから、長さ2語
(8バイト)領域割当要求が与えられた場合、領域割当
部200では、この自由領域リスト220の長さ2語の
自由領域を自由領域リスト220から外して応用プログ
ラムに返す。その後、長さ2語の自由領域リスト220
は空になる。この具体例の場合、カセット割当部300
以下の状態には無関係に領域割当部200のみによって
応用プログラムの要求に応えられる。
【0080】[第2の領域割当の具体例]次に、上記第
1の具体例と同じ状況、即ち、自由領域リスト220上
には、長さ1語(4バイト)の自由領域が2個、長さ2
個(8バイト)の自由領域が1個登録され、その他の大
きさの自由領域は、登録されていない場合に、応用プロ
グラムから2語ではなく、3語(12バイト)の長さの
領域要求が与えられたとする。また、自由カセットリス
ト320には、カセット2個を結合した自由カセット列
が一つ登録されているものとする。また、カセットサイ
ズは256バイトとして設計されてものとする。
【0081】このとき、領域管理部200は、自由領域
リスト220には(自由領域全てを合わせると3語以上
になるが)連続した3個の自由領域は登録されていない
ので、領域管理部200は、カセット割当部300へカ
セットを1個要求する。カセット割当部300は、自由
カセットリスト320から、カセット1個を切り出し
て、領域管理部200に渡す。結果として、自由カセッ
トリスト320には、切り出された残りの1個の自由カ
セットが登録されている状態になる。
【0082】カセット1個を渡された領域管理部200
では、カセットを長さ3個の小領域用のカセットとし、
カセット内部を3語ずつに等分する。カセットの大きさ
は256バイトであり、そのうちで、カセット内制御情
報として、4バイト使用しているとすると、等分した領
域は、(256−4)/12=12個となる。応用プロ
グラムには、この等分したうちの1個の領域を返し、当
該カセット内の残りの11個の領域は、後の要求のため
に各々長さ3語の自由領域として自由領域リスト220
に登録しておく。
【0083】[第3の領域割当の具体例]上記第2の具
体例と同じ状況で、但し、自由カセットリスト320が
空の場合を考える。即ち、自由リスト220上には、長
さ1語の自由領域が2個、長さ2語の自由領域が1個登
録され、その他の大きさの自由領域は登録されておら
ず、自由カセットリスト320にも自由カセットが一つ
も登録されていない場合を考える。
【0084】ここで、応用プログラムから3語の長さの
領域要求が与えられたとする。このとき、領域割当部2
00は、カセットを1個、カセット割当部300に要求
するが、その中の自由カセットリスト320が空である
ので、直接にはその要求に応えられない。そこで、GC
実行部400に制御が与えられ、GC実行部400は未
使用領域を回収するように要求される。
【0085】GC実行部400の未使用領域探索部41
0は、全ての使用領域を探索・推定し、結果を領域マー
ク・ビットテーブル5112に保存する。次に、空き領
域回収部420は、この領域マーク・ビット・テーブル
5112の情報を使用して、未使用領域を自由領域リス
ト220又は/及び自由カセットリスト320へ回収す
る。もし、自由領域リスト220の長さが3語以上の自
由領域が回収されたならば、第1の具体例の方法で、応
用プログラムへ領域を渡すことができ、また、自由カセ
ットリスト320にひとつ以上の自由カセットが回収さ
れたならば、第2の具体例の方法により、やはり、応用
プログラムの要求に応えることができる。もし、GC実
行部400によりどちらも回収できなかった場合は領域
割当不能として割当失敗の処理を行う。
【0086】以下に、上記の機能を有するガーベジコレ
クタ装置を適用した例を示す。 [第1の適用例]最初に第1の例として、数式処理シス
テムのパーソナルコンピュータにガーベジコレクタ装置
を適用した場合について説明する。例えば、UNIXマ
シン上において動作している1つの数式処理システムの
基本機能を、16ビット・パーソナル・コンピュータ
(セグメント・アドレス方式、全体実メモリ空間768
Kバイト)上に適応する例を考える。
【0087】まず、最低限の機能として、アプリケーシ
ョンプログラム(GCを除く)において、400Kバイ
ト必要である場合に、 640K(バイト)−400K(バイト)≒200K
(バイト) 程度の領域を最大量とするとき、基本的なヒープ領域3
20として、64Kバイトの配列(ヒープセグメント)
を3個使用するとして、256バイトとし、この配列を
カセットのサイズに等分する。さらに、若干のカセット
制御領域310を合わせてほぼ200Kバイトとする。
また、カセットサイズ決定部120は、カセット1つの
サイズを余裕係数a=12として、以下の式で求めたも
のとする。
【0088】
【数12】
【0089】但し、 X−(カセット管理領域量)=3×64K 属性係数=属性数/長さの単位・1/2=2/2・4 属性数=2(アトミック/非アトミック) 長さの単位=4(バイト) 上記の式で求められたカセットサイズでは、小領域は、 長さ128バイト−1ワード(カセット制御情報用)=
124バイト(31ワード) までを扱うことになり、実際には、これ以上小さくでき
ない程度の値である。少領域の長さを最小限にして余裕
係数aを大きく設定し、さらに、カセット外制御領域5
10として、カセット外制御領域510の情報の1ワー
ド(4バイト)をカセット格納ヒープセグメント520
の外に設定する。さらに、カセット外制御領域510の
情報を1ワードとするためには、ビットベクトルによる
管理を行う。カセットの先頭番地の境界合わせは、カセ
ット管理ビットテーブル5111を用いて行う。カセッ
ト管理ビットテーブル5111においてカセットが使用
中の時には、カセットの先頭のポインタが存在すること
を表すために、カセット管理ビットテーブル5111の
当該カセットのビットを“1”とする。これにより、使
用中のカセットの先頭番地の境界合わせが可能となる。
【0090】[第2の適用例]さらに、GC装置を構文
解析プログラムに適応したシステム例について説明す
る。高級プログラム言語のコンパイラやインタプリタの
ような構造を有し、テキスト・データを解析しながら入
力を行うソフトウェアには、構文解析プログラムが必要
となる。この構文解析プログラムの最も重要な動作は、
入力されたテキストデータを構文木と呼ばれる木構造に
内部的に変換することである。構文木は、通常種々の構
造を有する節点をポインタで結合することにより表現す
る。ここで、上記のガーベジコレクタ装置を用いた場合
には、すでにどこからもアクセスされない構文木につい
ては、プログラム側で意識しなくとも、自動的に未使用
領域部分として回収され、自由領域リスト220また
は、カセット格納領域320自動的に回収される。
【0091】[第3の適用例]次に、GCを含まないプ
ログラム言語をGC付きの言語として拡張する例を示
す。例えば、C言語の場合には、パーソナルコンピュー
タで広く使用されており、標準の領域管理は、“mallo
c”、その他の関数で行われる。C言語の領域管理機能
は、GCを有していないが、本発明のガーベジコレクタ
装置をライブラリとして具備することにより、簡易に使
用することが可能である。
【0092】また、C++言語は、対象指向言語として
大型コンピュータのみならず、パーソナルコンピュータ
においても広く使用されている。この言語では、頻繁に
データの動的な確保及び解放を行うが、通常は、GCを
具備していない。しかし、C++標準のガーベジコレク
タ装置を具備することにより、C++をGCを有する言
語として拡張することが可能である。
【0093】その他、フォートラン(FORTRAN)
やコボル(COBOL)等の言語は、従来GCを組み込
むことが非常に困難であったが、これらの言語にも本発
明のガーベジコレクタ装置を付加することが可能であ
る。また、全体のメモリ空間が小さい場合には、小さな
領域を確保することに重点をおくべきであるので、1つ
のカセットのサイズより、カセットを小さくしても多く
のカセットを割り当てることが重要であるが、この要件
も充足できる。また、カセットの必要量は、応用プログ
ラムとその実行の状況に依存するが、全ての種類の小領
域を同時割り当てることが可能である。
【0094】上記のように、本発明の実施例を説明した
が、例えば、小型の携帯型の電子データ処理装置等に本
発明のGC装置を適用する場合には、各機種等によりメ
モリサイズやメモリ拡張の条件が異なるため、機種毎に
GC装置設計時にカセットのサイズを含めて種々変更等
を行うことにより、適用可能となる。なお、本発明は、
上記の実施例に限定されることなく、特許請求の範囲内
で種々変更・応用が可能である。
【0095】
【発明の効果】上述のように、本発明のガーベジコレク
タ装置によれば、記憶領域を動的かつ多量に消費しなが
ら、実行するような種類のソフトウェアにおいて、不要
になった領域を自動的に調べ回収する必要がある場合
に、柔軟性・利用が広がる。また、動的な記憶領域をあ
まり消費しないソフトウェアでもガーベジコレクタ装置
を組み込むことにより、効率的な利用が可能である。さ
らに、本発明のガーベジコレクタ装置は、従来GCの組
み込みが困難な記憶容量が小さい装置、例えば、携帯型
パーソナルコンピュータやアドレスやスケジュールを記
憶・管理することが可能な小型携帯型パーソナルコンピ
ュータ及び電子卓上計算機等に対しても組み込むことが
可能となる。
【0096】従って、応用プログラムと独立な部品とし
て使用できる保守型ガーベジコレクタ装置が小型の機器
に実装されることにより、小型のメモリを有する機器で
あっても効率的に応用プログラムを実行することができ
る。
【図面の簡単な説明】
【図1】本発明の一実施例のシステム構成図である。
【図2】本発明の一実施例の自由領域リストの構成図で
ある。
【図3】本発明の一実施例の自由カセットリストの概念
を示す図である。
【図4】本発明の一実施例の小領域のカセットの構成図
である。
【図5】本発明の一実施例の大領域用のカセットの構成
図である。
【図6】本発明の一実施例のヒープセグメント毎のカセ
ット外制御情報領域とヒープセグメントの構成図であ
る。
【図7】本発明の一実施例のGC実行部におけるポイン
タ自動推定方法を説明するための図である。
【図8】本発明の一実施例のGC実行部の空き領域回収
部の動作を説明するための図である。
【図9】本発明の一実施例の動的な領域割り当ての概要
を示すフローチャートである。
【符号の説明】
100 制御部 200 領域割当部 210 領域割当ルーチン 220 自由領域リスト 300 カセット割当部 310 カセット割当ルーチン 320 自由カセットリスト 400 GC実行部 410 未使用領域探索部 420 空き領域回収部 500 ヒープ領域 510 カセット外制御領域 511 カセット外制御情報部分 520 カセット格納ヒープセグメント 522 ヒープセグメント 600 小領域用カセット 610 カセット内制御情報 611 アトミック/非アトミック区分 612 小/大領域区分 613 領域長 620 カセット領域 700 カセットサイズ決定部 5111 カセット管理ビットテーブル 5112 領域マークビット・テーブル 5113 その他制御情報

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 電子計算機内のガーベジコレクタ装置に
    おいて、 応用プログラムから要求された種類の小領域を割り当て
    る領域割当手段と、 該領域割当手段において、該小領域に対応する領域が不
    足した場合に、予め設定されたサイズのカセット又は、
    該カセットを結合した領域を割り当てるカセット割当手
    段と、 該カセット割当手段において、該小領域に対応するカセ
    ットが不足した場合に、該ヒープ領域内の未使用の領域
    を回収し、該領域割当手段または、該カセット割当手段
    に渡す領域回収手段とを有することを特徴とするガーベ
    ジコレクタ装置。
  2. 【請求項2】 前記領域回収手段は、 前記ヒープ領域の未使用の領域内の先頭を検索するポイ
    ンタ・フィールド自動推定手段を含む請求項1記載のガ
    ーベジコレクタ装置。
  3. 【請求項3】 前記カセット割当手段は、 前記カセットを等しい長さに等分し、等分された領域を
    複数格納するカセット格納手段と、 該カセット格納手段の外部に該カセットの使用状態を管
    理する使用カセット管理手段とを有するヒープ領域を具
    備する請求項1記載のガーベジコレクタ装置。
  4. 【請求項4】 前記領域割当手段は、 前記メモリ内の各領域を管理するための領域管理手段を
    有する請求項1記載のガーベジコレクタ装置。
  5. 【請求項5】 前記カセットのサイズSを、前記ヒープ
    領域に前記応用プログラムから要求された全種類の前記
    カセットを何個設定できるかを示す数(余裕係数)をa
    とし、前記小領域の種類の数/Sを属性係数cとした場
    合に、 【数1】 により求めるカセットサイズ計算手段と、 該カセットサイズ計算手段により求められたカセットの
    大きさを適正な値に修正するカセットサイズ修正手段と
    を有する請求項1記載のガーベジコレクタ装置。
JP24002694A 1994-10-04 1994-10-04 ガーベジコレクタ装置 Withdrawn JPH08106415A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24002694A JPH08106415A (ja) 1994-10-04 1994-10-04 ガーベジコレクタ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24002694A JPH08106415A (ja) 1994-10-04 1994-10-04 ガーベジコレクタ装置

Publications (1)

Publication Number Publication Date
JPH08106415A true JPH08106415A (ja) 1996-04-23

Family

ID=17053368

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24002694A Withdrawn JPH08106415A (ja) 1994-10-04 1994-10-04 ガーベジコレクタ装置

Country Status (1)

Country Link
JP (1) JPH08106415A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6766336B2 (en) 2000-01-28 2004-07-20 Matsushita Electric Industrial Co., Ltd Garbage collection apparatus and a garbage collection method
JP2006522536A (ja) * 2003-03-12 2006-09-28 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 双方向テレビ番組を記憶するための方法及び装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6766336B2 (en) 2000-01-28 2004-07-20 Matsushita Electric Industrial Co., Ltd Garbage collection apparatus and a garbage collection method
JP2006522536A (ja) * 2003-03-12 2006-09-28 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 双方向テレビ番組を記憶するための方法及び装置
US8266669B2 (en) 2003-03-12 2012-09-11 Koninklijke Philips Electronics N.V. Method and apparatus for storing an interactive television program

Similar Documents

Publication Publication Date Title
EP0814405B1 (en) Method and apparatur for information processing and memory allocation system
US7472233B2 (en) Memory allocator for a multiprocessor computer system
US5666114A (en) Method and means for managing linear mapped address spaces storing compressed data at the storage subsystem control unit or device level
US4435752A (en) Allocation of rotating memory device storage locations
US5692185A (en) Object space manager method and circuit
US5784698A (en) Dynamic memory allocation that enalbes efficient use of buffer pool memory segments
US6715054B2 (en) Dynamic reallocation of physical storage
US6910213B1 (en) Program control apparatus and method and apparatus for memory allocation ensuring execution of a process exclusively and ensuring real time operation, without locking computer system
EP0993634B1 (en) Method and apparatus for managing hashed objects
Randell et al. Dynamic storage allocation systems
US3647348A (en) Hardware-oriented paging control system
EP0474395A2 (en) Data storage hierarchy with shared storage level
US6363468B1 (en) System and method for allocating memory by partitioning a memory
US5555399A (en) Dynamic idle list size processing in a virtual memory management operating system
JPH0326419B2 (ja)
WO2001097029A2 (en) Method and apparatus for implementing an extended virtual machine
US5526519A (en) Memory management technique for efficient execution of procedures in objects
WO1999001817A1 (en) Defragmentation of stored data without pointer indirection
US6799253B1 (en) Stochastic scratchpad storage management technique
GB2497172A (en) Reserving space on a storage device for new data based on predicted changes in access frequencies of storage devices
US20090228537A1 (en) Object Allocation System and Method
CN111125070A (zh) 一种数据交换方法及平台
JPH08106415A (ja) ガーベジコレクタ装置
US7124246B2 (en) Storage management method and system
US5918243A (en) Computer mechanism for reducing DASD arm contention during parallel processing

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20020115