JPH05324457A - ガーベジコレクション方法 - Google Patents

ガーベジコレクション方法

Info

Publication number
JPH05324457A
JPH05324457A JP12370392A JP12370392A JPH05324457A JP H05324457 A JPH05324457 A JP H05324457A JP 12370392 A JP12370392 A JP 12370392A JP 12370392 A JP12370392 A JP 12370392A JP H05324457 A JPH05324457 A JP H05324457A
Authority
JP
Japan
Prior art keywords
data
area
garbage collection
free
data block
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
JP12370392A
Other languages
English (en)
Inventor
Akihiro Saito
晃宏 齋藤
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.)
Toshiba TEC Corp
Original Assignee
Tokyo Electric 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 Tokyo Electric Co Ltd filed Critical Tokyo Electric Co Ltd
Priority to JP12370392A priority Critical patent/JPH05324457A/ja
Publication of JPH05324457A publication Critical patent/JPH05324457A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】多くの自由データ領域の確保や処理速度の向上
を図り、また効率のよいガーベジコレクションを行う。 【構成】指定する自由データ領域に空きが無ければガー
ベジコレクタを起動させ、データブロック管理テーブル
をチェックし不要データブロック長の最も大きい自由デ
ータ領域を選択する。そして有効なデータブロックのみ
を複写用データ領域に複写する。また選択された自由デ
ータ領域と対応する管理テーブルの不要データブロック
長を0にする。ガーベジコレクションの対象となった自
由データ領域を次回のガーベジコレクションのための複
写用データ領域とするため領域を指定する変数を書換え
る。今までの複写用データ領域を使用中の自由データ領
域とするため使用中の自由データ領域を指定する変数を
書換える。そして作成されたデータブロックを自由デー
タ領域に格納する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、領域の不要部分を集め
て再利用するガーベジコレクション方法に関する。
【0002】
【従来の技術】メモリはシステムにおいて動的に管理さ
れ、必要になると適当な大きさの記憶領域が割り当てら
れ、不要になると回収されて次の使用に備えられるとい
う制御がよく行われる。プリンタや画面に出力されるテ
キスト、図形及びサンプリングイメージの表現を記述す
るために用いられるPost Script 言語(Adobe社)の
処理システムでも、記憶領域の動的管理、不要データ回
収が行われている。
【0003】従来の複写式ガーベジコレクションを採用
するLISP 処理系などでは図5に示すように、データを
記憶する記憶領域をAとBに2分割し、その一方を処理
系の自由データ領域として使用し、もう一方をガーベジ
コレクション用の複写用データ領域として使用するよう
になっている。例えば記憶領域Aが自由データ領域とし
て使用され、記憶領域Bが複写用データ領域として使用
されているときには処理の進行に伴なってデータを作成
する必要があると記憶領域Aを使用してデータを記憶
し、データが不要となったときそのデータに不要データ
であることを示すフラグをセットする。
【0004】そしてデータ処理が進行し、記憶領域Aが
データで一杯になり、新しいデータに対して割り当てる
データ領域が無くなると、その記憶領域Aで必要な、す
なわち有効なデータのみを記憶領域Bにコピーする。こ
のとき必要なデータか否かはデータの先頭に付された不
要データフラグFがセットされているか否かにより判断
される。すなわち不要データフラグFがセット(=1)
されている図中斜線部分のデータは不要なデータとして
記憶領域Bにコピーされることなく残る。このため記憶
領域Bのデータ記憶領域は圧縮されて新しいデータの記
憶に割り当てることができる領域が確保されることにな
る。
【0005】こうしてガーベジコレクションが行われる
と、今度は逆に記憶領域Bが自由データ領域として使用
され、記憶領域Aが複写用データ領域として使用される
ようになる。
【0006】また別のガーベジコレクション方法として
は、特開昭62−295145号公報に見られるよう
に、複数に分割したメモリ空間の1つを収容できる新メ
モリ空間を用意し、分割メモリ空間の1つを回収対象の
旧空間、残りを回収非対象の旧空間とし、回収対象の旧
空間の有効部分を新空間へ複写することにより、メモリ
空間の有効利用を図るものが知られている。
【0007】
【発明が解決しようとする課題】しかし前者の方法で
は、記憶領域を2分割して使用するため、処理系の自由
データ領域が全データ記憶領域の半分になって大量のデ
ータを取り扱うことができない問題があった。またガー
ベジコレクションの際に、全体の半分の領域を占める自
由データ領域をサーチして不要データフラグの記入され
た不要データを検出し、これを除いて有効なデータを複
写用データ領域に圧縮して複写するので、処理速度が低
下する問題があった。
【0008】また後者の方法では、メモリ空間を多数に
分割してガーベジコレクションを行っているため、自由
データ領域を多く確保できること、処理速度の低下をあ
る程度防止できることなどの利点がある。しかしガーベ
ジコレクションを行う際に、ガーベジコレクションの対
象となる回収対象の旧空間を不要データの量に関係なく
選択するため、効率のよいガーベジコレクションができ
ないという問題があった。
【0009】そこで本発明は、多くの自由データ領域の
確保や処理速度の向上を図ることができるとともにガー
ベジコレクションを不要データ量の最も多い領域につい
て行うことにより効率のよいガーベジコレクションがで
きるガーベジコレクション方法を提供しようとするもの
である。
【0010】
【課題を解決するための手段と作用】本発明は、少なく
とも不要データフラグ、データ長、データからなるデー
タブロックを少なくとも領域を3つ以上に分割してなる
記憶部の選択された領域に記憶し、この記憶部における
各領域のデータブロックにおけるガーベジコレクション
の対象となる不要データ長をデータブロック管理テーブ
ルで管理し、ガーベジコレクションの実行時、データブ
ロック管理テーブルが管理している不要データ長の最も
大きい領域をガーベジコレクションの対象とすることに
ある。
【0011】
【実施例】以下、本発明の実施例を図面を参照して説明
する。
【0012】図1はブロック図で、1は処理部本体を構
成するCPU(中央処理装置)、2はプログラムデータ
が格納されたROM(リード・オンリー・メモリ)、3
はデータ記憶領域を構成するメモリ、4はデータブロッ
ク管理テーブル、5は通信回線6と接続され、その通信
回線6を介してデータの送受信制御を行う回線インター
フェースである。前記メモリ3及びデータブロック管理
テーブル4はRAM(ランダム・アクセス・メモリ)に
より構成されている。
【0013】前記CPU1には、データ処理全体を総合
的に制御するオペレーティングシステム機能11、ガー
ベジコレクション処理を行うガーベジコレクタ機能1
2、データ記憶領域に格納すべきデータブロックを作成
するデータブロック作成手段13が備わっている。前記
ROM2には通信回線6及び回線インターフェース5を
介して外部から入力されるPost Script 言語で記述さ
れたPost Script プログラムを解読し実行するPost
Script インタープリタ21が格納されている。
【0014】前記メモリ3のデータ記憶領域は図3に示
すように、5つの記憶領域31 ,32 ,33 ,34 ,3
5 に分割しており、この記憶領域31 〜35 に格納され
るデータブロックは図2に示すように、不要データフラ
グF、データ長L及びデータDによって構成され、この
データブロックが不要となったときには不要データフラ
グFに「1」がセットされるようになっている。また現
在使用中の自由データ領域を指定する変数を記憶するポ
インタ7及び複写用データ領域を指定する変数を記憶す
るポインタ8が設けられている。
【0015】前記データブロック管理テーブル4は図3
に示すように、前記各記憶領域31〜35 のデータブロ
ックにおけるガーベジコレクションの対象となる不要デ
ータ長を管理する不要データ長格納エリア41と各記憶
領域31 〜35 の先頭アドレスを格納した先頭アドレス
格納エリア42とで構成されている。
【0016】前記Post Script インタープリタ21が
通信回線6及び回線インターフェース5を介して受信さ
れるPost Script プログラムを解読し実行していると
きにメモリ3のデータ記憶領域にデータを書き込む必要
が発生すると、CPU1のデータブロック作成手段13
はデータDにデータ長Lと不要データフラグFを付加し
てデータブロックを作成する。最初は不要データフラグ
Fは「0」にする。
【0017】そして前記ポインタ7の指定する自由デー
タ領域に対するデータブロックの格納処理を行う。
【0018】なお、起動時には初期化されて前記ポイン
タ7は自由データ領域として記憶領域31 を指定し、前
記ポインタ8は複写用データ領域として記憶領域35 を
指定するようになっている。
【0019】すなわちデータブロック格納要求が発生す
ると、図4に示すように先ずポインタ7が指定する自由
データ領域に空きがあるか否かを判断する。そして空き
があれば作成されたデータブロックをポインタ7が指定
する自由データ領域に格納して処理を終了する。
【0020】また自由データ領域に空きが無ければ、デ
ータブロック作成手段13はオペレーティングシステム
11を通じてガーベジコレクタ12を起動させガーベジ
コレクションを行わせる。このガーベジコレクションは
先ずデータブロック管理テーブル4をチェックしその中
で不要データブロック長の最も大きい自由データ領域を
選択する。そして選択した自由データ領域の中で有効な
データブロック、すなわち不要データフラグが「0」で
あるデータブロックのみをポインタ8が指定する複写用
データ領域に複写する。このとき不要となったデータブ
ロックの部分は圧縮されて複写されることになる。
【0021】続いて今回のガーベジコレクションの対象
となって選択された自由データ領域と対応するデータブ
ロック管理テーブル4のエントリーの不要データブロッ
ク長の欄に「0」を書き込む。
【0022】さらにガーベジコレクションの対象となっ
た自由データ領域を次回のガーベジコレクションのため
の複写用データ領域とするため、複写用データ領域を指
定するポインタ8の変数を書き換える。また今回のガー
ベジコレクションで複写用データ領域であった領域を以
降、使用中の自由データ領域とするため、現在使用中の
データ領域を指定するポインタ7の変数を書き換える。
【0023】以上のガーベジコレクションが終了すると
データブロック作成手段13にて作成されたデータブロ
ックをポインタ7が指定する自由データ領域に格納して
処理を終了する。
【0024】なお、前記Post Script インタープリタ
21がデータブロックの削除を行ったときには、対象と
なるデータブロックの不要データフラグに「1」をセッ
トし、そのデータブロックが格納されている自由データ
領域に対応するデータブロック管理テーブル4の不要デ
ータ長の値に削除の対象となったデータブロックのデー
タ長の値を加算しておく。
【0025】このようにメモリ3のデータ記憶領域を5
つの領域31 〜35 に分割し、その1つを複写用データ
領域にするとともに残りを自由データ領域としているの
で、データブロックを格納する自由データ領域の容量を
十分に大きくすることができ、大量のデータを扱うこと
ができる。
【0026】またガーベジコレクションにおいてはデー
タブロック管理テーブル4をチェックしその中で不要デ
ータブロック長の最も大きい自由データ領域を選択し、
その領域の中で有効なデータブロックのみをポインタ8
が指定する複写用データ領域に複写するので、複写対象
となる自由データ領域の容量は全体の1/5でよく、従
って処理速度を向上させることができる。
【0027】またガーベジコレクションを行う場合に、
データブロック管理テーブル4の不要データ長情報によ
り不要データブロック長の最も大きい自由データ領域を
選択するようにしているので、ガーベジコレクションを
不要データ量の最も多い領域について行うことができガ
ーベジコレクションの効率を向上できる。
【0028】なお、前記実施例ではPost Script イン
タープリタ21が動作していてデータブロックを使用中
の自由データ領域に格納しようとしたとき、空き領域が
無かったときだけガーベジコレクタ12を起動させたが
必ずしもこれに限定されるものではなく、オペレーショ
ンシステム11のタイマ管理機能を用いることにより、
ある一定時間毎にガーベジコレクタ12を起動させるよ
うにしてもよい。
【0029】また前記実施例ではデータ記憶領域を5つ
の領域に分割した場合について述べたが必ずしもこれに
限定されるものではなく、要は3分割以上であればどの
ように分割してもよい。
【0030】
【発明の効果】以上詳述したように本発明によれば、多
くの自由データ領域の確保や処理速度の向上を図ること
ができるとともにガーベジコレクションを不要データ量
の最も多い領域について行うことにより効率のよいガー
ベジコレクションができるガーベジコレクション方法を
提供できるものである。
【図面の簡単な説明】
【図1】本発明の実施例を示すブロック図。
【図2】同実施例におけるデータブロックの構成を示す
図。
【図3】同実施例のデータブロック管理テーブルとデー
タ記憶領域の関係を示す図。
【図4】同実施例におけるデータブロック格納要求時の
ガーベジコレクション処理を示す流れ図。
【図5】従来のガーベジコレクションを説明するための
図。
【符号の説明】
1…CPU(中央処理装置)、11…オペレーティング
システム、12…ガーベジコレクタ、13…データブロ
ック作成手段、2…ROM、21…Post Script イン
タープリタ、3…メモリ、31 〜35 …分割領域、4…
データブロック管理テーブル。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも不要データフラグ、データ
    長、データからなるデータブロックを少なくとも領域を
    3つ以上に分割してなる記憶部の選択された領域に記憶
    し、この記憶部における各領域のデータブロックにおけ
    るガーベジコレクションの対象となる不要データ長をデ
    ータブロック管理テーブルで管理し、ガーベジコレクシ
    ョンの実行時、前記データブロック管理テーブルが管理
    している不要データ長の最も大きい領域をガーベジコレ
    クションの対象とすることを特徴とするガーベジコレク
    ション方法。
JP12370392A 1992-05-15 1992-05-15 ガーベジコレクション方法 Pending JPH05324457A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12370392A JPH05324457A (ja) 1992-05-15 1992-05-15 ガーベジコレクション方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12370392A JPH05324457A (ja) 1992-05-15 1992-05-15 ガーベジコレクション方法

Publications (1)

Publication Number Publication Date
JPH05324457A true JPH05324457A (ja) 1993-12-07

Family

ID=14867261

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12370392A Pending JPH05324457A (ja) 1992-05-15 1992-05-15 ガーベジコレクション方法

Country Status (1)

Country Link
JP (1) JPH05324457A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970022782A (ko) * 1995-10-06 1997-05-30 리 패치 분산 오브젝트 자원 관리용 시스템 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970022782A (ko) * 1995-10-06 1997-05-30 리 패치 분산 오브젝트 자원 관리용 시스템 및 방법

Similar Documents

Publication Publication Date Title
JPH06105435B2 (ja) 情報処理装置による記憶管理機構
JPH05324457A (ja) ガーベジコレクション方法
JPH0887433A (ja) ファイルシステムのブロック管理システム
JPH02201552A (ja) トランザクショントレース情報採取方式
JP3520527B2 (ja) データ管理方法
JPH06119234A (ja) メモリ管理装置
JPH05241936A (ja) ガーベッジコレクション処理方式及びその記憶装置
JP2788844B2 (ja) システムダンプ採取システム
JP2787107B2 (ja) バッファ制御方式及び装置
JP2518390B2 (ja) システム性能監視方式
JPH05324456A (ja) 参照カウント式ガーベジコレクション方法
JPH02291014A (ja) 印字装置
JPH06180665A (ja) メモリ管理装置
JP3398672B2 (ja) 中間データ格納装置
JPS6382532A (ja) 論理アドレスから実アドレスへの変換方式
JPS6029401B2 (ja) デ−タ出力方式
JPH03189747A (ja) メモリ管理処理方式
JPH0628326A (ja) 分散データ処理システムにおけるトランザクション統計情報収集方法
JPH0756799A (ja) 記憶領域管理方法
JPH06208502A (ja) メモリ管理方法
JPS6367656A (ja) デ−タ格納領域管理処理方式
JPH05189275A (ja) メモリ管理方式およびメモリダンプ採取方式
JPS5963082A (ja) 仮想ペ−ジidによるアドレス空間のペ−ジ管理方式
JPH10154089A (ja) ファイル入出力装置
JPH02205947A (ja) ガーベジコレクション方式