JPH03194630A - ガーベジコレクション処理方式 - Google Patents

ガーベジコレクション処理方式

Info

Publication number
JPH03194630A
JPH03194630A JP33368489A JP33368489A JPH03194630A JP H03194630 A JPH03194630 A JP H03194630A JP 33368489 A JP33368489 A JP 33368489A JP 33368489 A JP33368489 A JP 33368489A JP H03194630 A JPH03194630 A JP H03194630A
Authority
JP
Japan
Prior art keywords
moved
processing
area
objects
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.)
Granted
Application number
JP33368489A
Other languages
English (en)
Other versions
JP2517133B2 (ja
Inventor
Masayuki Ikura
正幸 伊倉
Akio Shinagawa
明雄 品川
Noboru Asai
登 浅井
Manabu Kawashima
学 川島
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 JP1333684A priority Critical patent/JP2517133B2/ja
Publication of JPH03194630A publication Critical patent/JPH03194630A/ja
Application granted granted Critical
Publication of JP2517133B2 publication Critical patent/JP2517133B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概 要〕 計算機の言語処理系が自動処理するメモリ管理における
ガーベジコレクションに関し、処理が速く、結果のプロ
グラムの実行効率も良いガーベジコレクション処理方式
を目的とし、メモリと、アクセス部と、メモリ管理部を
有し、該アクセス部は、所定の要求により該メモリの所
定の記憶領域にオブジェクトを生成し、及び該オブジェ
クトを無効化し、各該オブジェクトはポインタで指示さ
れたリスト構造のデータ要素であり、該メモリ管理部は
、所定のガーベジコレクション処理の場合に、該記憶領
域上の有効な該オブジェクトのみについて、該リスト構
造の上位レベルから順次下位レベルへ、該レベルごとに
属するすべての該オブジェクトを順次所定の記憶領域へ
移動し、該移動したオブジェクトから該ポインタで指示
する下位の該オブジェクトがある場合には、該下位の1
オブジェクトのみを該移動したオブジェクトに続けて移
動するように構成する。
〔産業上の利用分野〕
本発明は、計算機における、言語処理系がメモリ管理を
自動処理するシステムのガーベジコレクシジン処理方式
に関する。
[従来の技術〕 計算機のプログラミング言語として公知の、例えばLI
SP言語等で記述されたプログラムを実行するための言
語処理系では公知のように、プログラム及びデータ等の
オブジェクトを、メモリ内に切り出したヒープ等と呼ば
れる作業空間に生成して処理する。なお、オブジェクト
は例えば所定のルートからポインタで連結して木構造を
なすように生成した、リスト構造をなす。
その場合にオブジェクトは、プログラムの実行中に生滅
するので、放置すると空き領域が無くなり、又広範囲に
分散する有効なオブジェクトへのアクセスは、ページン
グを頻発させて実行効率を低下させるようになる。そこ
で、適当な時に公知のガーベジコレクション処理を行っ
て、そのとき残っている有効な各オブジェクトを、なる
べ(小領域にまとまるように移動し、又空き領域を作り
出すことが必要になる。
第4図(a)はオブジェクトのリスト構造の一部をなす
2レベルの部分の例を示し、図中に丸付き数字で区別し
た各長方形で各オブジェクト、各矢印でポインタの指示
を説明的に示すものである。
ガーベジコレクションの一方法である第1の方法(公知
のbreadth−first法、以下においてBF法
とする)では、リスト構造の各レベルごとに上位レベル
から順次下位レベルへ、各レベルごとに属するすべての
オブジェクトを順次所定の記憶領域へ移動する方法であ
るので、第4図(a)の例の場合■、■、−・■を先ず
処理した後、次のレベルに下りて■、■、■−−−−−
のように処理してオブジェクトを移動し、移動先の記憶
領域には第4図(b)に示す様にオブジェクトが詰めら
れる。
又、第2の方法(公知のdepth−first法、以
下にDF法とする)では、リスト構造の上位レベルから
始めて、移動したオブジェクトから順次下位レベルの方
向へポインタでつながるオブジェクトを優先して所定の
記憶領域へ移動する方法であって、第4図(a)の例の
場合■を移動すると、次は例えば■に下り、更に下位が
あれば下方へたどり、末端に達するとルベルずつ戻って
、別のポインタがあればそのポインタの先を下方へたど
る、というように深さ方向を優先して処理するので、図
の場合■で終われば次は■に戻って■に下り、■につな
がるものをすべて処理した後■に移るというように進み
、その結果移動先の記憶領域には第4図(C)に示す様
にオブジェクトが詰められる。
〔発明が解決しようとする課題〕
以上の説明と、第4図0))及び(C)に゛示す処理結
果の例からも容易に推測できるように、前記BF法は、
ガーベジコレクションの処理は比較的簡単で高速に処理
できるが、第4図ら)に示す様に処理結果ではポインタ
でつながるオブジェクトが離れた位置に置かれる結果に
なり、いわゆる局所性が悪くなって、このプログラムを
実行する場合にべ−ジングを増加させて実行効率を悪化
する。
それに対しDF法では、第4図(C)を(b)の状態と
比較して明らかなように、結果のオブジェクトの局所性
が良いが、前記処理の説明のようにオブジェクトを下方
にたどった後、逆に上方にたどって戻る必要があるので
、比較的処理が複雑化して遅くなる。
本発明は、従来の処理の欠点を改良し、処理が速く、処
理結果のプログラムの実行効率も良いガーベジコレクシ
ョン処理方式を目的とする。
〔課題を解決するための手段〕
第1図は、本発明の構成を示すブロック図である。図は
ガーベジコレクション処理方式の構成であって、メモリ
1と、アクセス部2と、メモリ管理部3を有し、アクセ
ス部2は、所定の要求によりメモリ1の所定の記憶領域
4にオブジェクトを生成し、及び該オブジェクトを無効
化し、各該オブジェクトはポインタで指示されたリスト
構造のデータ要素であり、メモリ管理部3は、所定のガ
ーベジコレクション処理の場合に、記憶領域4上の有効
な該オブジェクトのみについて、該リスト構造の上位レ
ベルから順次下位レベルへ、該レベルごとに属するすべ
ての該オブジェクトを順次所定の記憶領域5へ移動し、
該移動したオブジェクトから該ポインタで指示する下位
の該オブジェクトがある場合には、該下位の1オブジェ
クトのみを該移動したオブジェクトに続けて移動する。
又、前記メモリ管理部3は、前記ガーベジコレクション
処理を行う場合に所定の条件を識別して、該所定の条件
が第1の条件の場合のみ前記の処理を実行し、該所定の
条件が第2の条件の場合には、該上位レベルから順次該
下位レベルへ、該レベルごとに属するすべての該オブジ
ェクトを順次所定の記憶領域5へ移動し、該所定の条件
が第3の条件の場合には、該上位レベルから始めて、移
動した該オブジェクトから順次下位レベルの方向へポイ
ンタでつながる該オブジェクトを優先して所定の記憶領
域5へ移動する。
〔作 用〕
この処理方式により、本発明で加えられたガーベジコレ
クションの処理方法(BD法とする)による場合には、
処理結果のオブジェクトは深さ方向にも一部まとめられ
るので、前記BF法の場合より局所性を増すが、深さ方
向はルベルのみ下がるので、前記DF法程には処理を複
雑化せず高速に処理でき、ガーベジコレクションの速度
と処理結果のオブジェクトの実行効率とを共に適当に満
足できる。又メモリ管理部に、このBD法の他に、従来
のBF及びDF法も備えて、所定の条件で処理方法を選
択できるようにして、例えば処理頻度の多いガーベジコ
レクション(従ってオブジェクトの寿命は比較的短い)
の場合は処理速度を重視してBF法を用い、処理頻度が
少ない(オブジェクトの寿命が長い)場合は処理結果の
実行効率を重視してDF法を用い、それらの中間的な場
合はBD法を使用するように条件を設定すれば、ガーベ
ジコレクシジンに費やす時間と結果の実行効率とを共に
適切に改善することができる。
〔実施例〕
第4図(d)は、(a)に例示したオブジェクトを本発
明のBD法によるガーベジコレクションで移動した状況
を説明する図である。
メモリ管理部3は第4図(a)のオブジェクトを、前記
BF法と同様に上位レベルから、同じレベルの処理を優
先して移動して、順次下位レベルへ下がるが、但し例え
ばオブジェクト■を移動したときに、■のポインタで指
示する下位オブジェクトがあれば、その内の1ポインタ
で指示する1オブジェクト、例えば■を続けて移動しく
複数のポインタがある場合には、例えば無条件に一定の
位置のポインタを選ぶように定めておく)、その後■と
同レベルの次のオブジェクト(この場合はオブジェクト
■)の処理に戻る。
このようにして、例えば■、■、■、■・・−・・のよ
うに処理を進めて、そのレベルの最後の■及びそれにつ
ながる■を処理してルベルの処理を終わると、次はルベ
ル下がって、そのレベルに残るオブジェクトを処理する
ために、例えばオプジェツト■から処理をし、更に下位
のレベルがあれば■、■の下位の1オブジェクト、■、
■の下位の1オブジェクト・・−−−一−・のように、
処理を進め、第4図(d)のようにオブジェクトを詰め
る。
この処理方法を使用してガーベジコレクションを行う場
合に、第1図のメモリ管理部3は、メモリ1を例えば第
2図に示すように固定領域、現領域及び新領域に分け、
現領域の中に新入領域と滞留領域を設けて管理する。
アクセス部2は、新しいオブジェクトをすべて新入領域
に順次生成しながらプログラムを実行し、例えば新入領
域の空きが、ある所定値より少なくなる等を契機として
、ガーベジコレクションの処理を行うためにメモリ管理
部3を起動する。
例えば第2図(a)は初期状態の後ガーベジコレクショ
ンを1同経た状態として、(a)の状態でガーベジコレ
クションを行うと、その新入領域及び滞留領域の有効な
オブジェクトを、新領域側にそれぞれ移して、(b)の
ように現領域と新領域とを交換した状態にする、なお滞
留領域には、以前に新入領域にあったオブジェクトが、
後述のようにして移されているものとする。
更に実行が進み、再びガーベジコレクシジンを行うと、
再び前記のように現領域と新領域とを交換して(C)の
状態に戻る。以上のような処理を続けて、(C)の状態
のガーベジコレクションをする時、所定の回数繰り返し
ているか、又はその他所定の条件になっていると、その
場合のガーベジコレクションでは、(d)のように滞留
領域のオブジェクトを固定領域へ移し、新入領域のオブ
ジェクトを新たな現領域の滞留領域に移す。
従って、固定領域には、何回かのガーベジコレクション
に耐えたので、なお以後も有効状態で生き残る可能性が
高いと見なされるオブジェクトが保持されるので、常時
のガーベジコレクションでは固定領域は処理対象とせず
、固定領域が大きくなり過ぎて十分な大きさの現領域及
び新領域を確保できなくなる等の特別の状態になったと
きのみ、例えば(C)の状態から(e)〜(2)のよう
に固定領域を新しく設けて移動し、固定領域のガーベジ
コレクションを行う。
以上においてメモリ管理部3は、ガーベジコレクション
の対象領域と移動先とにより、ガーベジコレクションに
使用する処理方法を選択する(図にBP、 DF、 B
Dで、それぞれの処理方法を示す)。
即ち、滞留領域及び新入領域について、現領域から新領
域へ移動する際((a)から(b)、Φ)から(C)、
及び(C)の新入領域から(d)の滞留領域)は、最も
高速に処理できる前記BF法でガーベジコレクションを
実行し、滞留領域から固定領域への移動((C)から(
d))はBD法でガーベジコレクションを実行してオブ
ジェクトの実行効率を改善する。又、前記のようにして
稀に発生する固定領域内のガーベジコレクションの場合
には、処理結果のオブジェクトの実行効率を重視してD
F法によって処理を実行する。
第3図はメモリ管理部3のガーベジコレクシジンの処理
の流れの一例を示す図であり、所定の契機で起動される
と、処理ステップ10で固定領域の処理を要するか識別
し、固定領域を処理しない通常の場合は、処理ステップ
11に進む。
処理ステップ11で何回目のガーベジコレクションかを
適当なカウンタで識別して、例えば4回目になっていな
ければ、処理ステップ12に進んでカウンタを+1した
後、処理ステップ13でBF法のガーベジコレクシジン
により、新入領域及び滞留領域の有効オブジェクトを、
新しい新入領域及び滞留領域へそれぞれ移動し、処理ス
テップ14で新しい現領域と新領域を設定して処理を終
わる。
処理ステップ11でカウンタが4回目を示したとき(例
えば第2図(C)から(d)に移る場合)は、処理ステ
ップ15でカウンタを0にリセットし、処理ステップ1
6でBD法により、滞留領域の有効オブジェクトを固定
領域へ移動する。又、処理ステップ17でBF法のガー
ベジコレクシジンにより、新入領域の有効オブジェクト
を新しい滞留領域へ移動した後、処理ステップ14で新
しい現領域と新領域を設定して処理を終わる。
又、処理ステップ10で固定領域の処理を要するガーベ
ジコレクションであると識別した場合は、処理ステップ
18.19で処理ステップ16.17の場合と同様のガ
ーベジコレクションによって、新入領域及び滞留領域の
処理をした後、処理ステップ20でDF法のガーベジコ
レクションによって固定領域の有効オブジェクトを新し
い固定領域へ移動して固定領域を作り、処理ステップ1
4で新しい現領域と新領域を設定して処理を終わる。
以上ではガーベジコレクション時の移動先等の一定の条
件によって、常に自動的に処理方法を選択する例を示し
たが、例えば利用者がガーベジコレクションの処理方法
を指定して、例えばガーベジコレクションは遅くても実
行を速くするような選択ができるように、特定の処理方
法を指定する適当な指定手段を設けてもよく、又例えば
システムがメモリの使用状況等を観測して、処理方法を
動的に決定するようにしてもよい。
〔発明の効果] 以上の説明から明らかなように本発明によれば、計算機
における、言語処理系が自動処理するメモリ管理の処理
において、ガーベジコレクションの頻度等から、ガーベ
ジコレクションに費やす時間と、処理結果のオブジェク
トの実行効率とを勘案シテ、適切なガーベジコレクショ
ンの処理方法を選択し、システムの総合的な処理効率を
改善できるという著しい工業的効果がある。
【図面の簡単な説明】
第1図は本発明の構成を示すブロック図、第2図はメモ
リの状況を説明する図、 第3図は本発明の処理の流れ図、 第4図はオブジェクトの状態を説明する図である。 図において、 1はメモリ、      2はアクセス部、3はメモリ
管理部、  4.5は記憶領域10〜20は処理ステッ
プ 本発明の構成を示すブロック図 第1図 メモリの状況を説明する図 第2図 本発明の処理の流れ図 オブジェクトの状態を説明する図 第 図

Claims (1)

  1. 【特許請求の範囲】 1、メモリ(1)と、アクセス部(2)と、メモリ管理
    部(3)を有し、 該アクセス部(2)は、所定の要求により該メモリ(1
    )の所定の記憶領域(4)にオブジェクトを生成し、及
    び該オブジェクトを無効化し、 各該オブジェクトはポインタで指示されたリスト構造の
    データ要素であり、 該メモリ管理部(3)は、所定のガーベジコレクション
    処理の場合に、該記憶領域(4)上の有効な該オブジェ
    クトのみについて、該リスト構造の上位レベルから順次
    下位レベルへ、該レベルごとに属するすべての該オブジ
    ェクトを順次所定の記憶領域(5)へ移動し、該移動し
    たオブジェクトから該ポインタで指示する下位の該オブ
    ジェクトがある場合には、該下位の1オブジェクトのみ
    を該移動したオブジェクトに続けて移動するように構成
    されていることを特徴とするガーベジコレクション処理
    方式。 2、前記メモリ管理部(3)は、前記ガーベジコレクシ
    ョン処理を行う場合に所定の条件を識別して、該所定の
    条件が第1の条件の場合のみ請求項1記載の処理を実行
    し、 該所定の条件が第2の条件の場合には、該上位レベルか
    ら順次該下位レベルへ、該レベルごとに属するすべての
    該オブジェクトを順次所定の記憶領域へ移動し、 該所定の条件が第3の条件の場合には、該上位レベルか
    ら始めて、移動した該オブジェクトから順次下位レベル
    の方向へポインタでつながる該オブジェクトを優先して
    所定の記憶領域へ移動することを特徴とする請求項1記
    載のガーベジコレクション処理方式。
JP1333684A 1989-12-22 1989-12-22 ガ―ベジコレクション処理方式 Expired - Fee Related JP2517133B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1333684A JP2517133B2 (ja) 1989-12-22 1989-12-22 ガ―ベジコレクション処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1333684A JP2517133B2 (ja) 1989-12-22 1989-12-22 ガ―ベジコレクション処理方式

Publications (2)

Publication Number Publication Date
JPH03194630A true JPH03194630A (ja) 1991-08-26
JP2517133B2 JP2517133B2 (ja) 1996-07-24

Family

ID=18268811

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1333684A Expired - Fee Related JP2517133B2 (ja) 1989-12-22 1989-12-22 ガ―ベジコレクション処理方式

Country Status (1)

Country Link
JP (1) JP2517133B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006085300A (ja) * 2004-09-14 2006-03-30 Kansai Tlo Kk データ処理方法、データ処理装置及びコンピュータプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006085300A (ja) * 2004-09-14 2006-03-30 Kansai Tlo Kk データ処理方法、データ処理装置及びコンピュータプログラム

Also Published As

Publication number Publication date
JP2517133B2 (ja) 1996-07-24

Similar Documents

Publication Publication Date Title
US6725448B1 (en) System to optimally create parallel processes and recording medium
JPH08110804A (ja) データ処理装置
JPH03194630A (ja) ガーベジコレクション処理方式
JPH0766286B2 (ja) Nc装置の処理方法
US7296270B2 (en) Method and control unit for controlling technical procedures in a motor vehicle
JPH043205A (ja) データ・アクセス・システム
CN115167777A (zh) 分布式存储系统的优化方法、装置、设备及可读存储介质
JPH03189747A (ja) メモリ管理処理方式
JP3494350B2 (ja) プログラマブルコントローラ
JPS61182135A (ja) 処理選択方法
JP3331357B2 (ja) プログラマブルコントローラ
JPH047638A (ja) データの最適組み合わせ抽出装置
RU95118821A (ru) Способ преобразования входного кода транслятора в объектный код и устройство для его осуществления
JPH04181324A (ja) 繰り返しデータ構造のアクセス方式
JPH08272411A (ja) ラダー命令処理装置
JP2767818B2 (ja) シーケンサの数値模擬動作方法
JP2000311157A (ja) パラメータにより変化する状態値をシミュレーションするシステム
JPS6373421A (ja) レコ−ドソ−ト処理制御方式
JPH09244958A (ja) ページング方法とその方式
JPS63106849A (ja) キヤツシユメモリの制御方法
JPS63276629A (ja) ファイル内レコ−ドのソ−ト方式
JPH05265845A (ja) スワッピング制御方式
JPS60241135A (ja) アドレス生成方式
JPH0245842A (ja) データファイル管理方式
JPS60181945A (ja) アドレス拡張制御方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees