Next: Up: Previous:

局所領域確保器と局所ごみ集め器

 

我々は単純にBoehm & Weiser ごみ集め器の局所領域確保器と, 局所ごみ集め スケジューリング戦略を受け継いでいる. それは, 現在のヒープがあふれ, アプリケーションが最後のごみ集 めから少なくとも H/D バイトを確保するとき, 局所ごみ集めの必要性を検知 する. ここで H は現在のヒー プサイズ(フリーメモリ含む)+ルートサイズの大まかな近似を表し, D はカ スタマイズ可能な定数である. D を減らすと領域を犠牲にしてごみ集めの 頻度を減らす. もし領域確保器がこの基準によってごみ集めを行ないたくない ときは, 総ヒープサイズは増加する. 我々の実験では, D = 2 を使用している. 局所ごみ集め器は決してヒープサイズを縮めない. つまり, 現在のヒープサイ ズは, 実際には, アプリケーションが始まってから観測された最大ヒープサイ ズとして解釈することができる. 我々の実験の設定では, ヒープは各プロセッサで約 12MB まで拡張可能である.

我々は独立および同期局所ごみ集めについて正確に同じスケジューリング基準 を使っている. つまり, 局所領域確保器はまずどちらかの局所ごみ集めの必要が あるかを検出し, さらに我々の局所ごみ集めスケジューラは直交した基準に基 づいて適当なものを決定する. 同期ごみ集めを行なうために必 要な仕事の量は決して独立ごみ集めのそれを下回らないため, 我々は確かに同期局所ごみ集めについては, より小さい D をとることができる. しかし, 我々は正当な評価を行ない(例えば, 同じ領域量を仮定する), 同期ごみ集めの効果を過大評価しないために, D に対し同じ値を設定する. つまり, 同期ごみ集めはごみ集めの頻度の低下よりもむしろ, 協調スケジューリングの利益に よってのみ, アプリケーションの性能を向上させる.

同期ごみ集めについては, ごみを集めるプロセッサがマスタプロセッサに対し 続き番号を送る. 続き番号は起動時には各プロセッサでゼロに初期化され ている. マスタプロセッサはそれまでに受信された最新の続き番号を追跡し, もはや用いられない(例えば最新の続き番号より大きくない)要求メッセージを無視す る. マスタが新しい続き番号を受けとったときには, マスタは全てのプ ロセッサに更新された続き番号とともに局所ごみ集めメッセージをブロードキャ ストする. こうして, 我々は異なるプロセッサによってほとんど同時に要求さ れた不必要なごみ集めを行なうのを避けることができる.



Mitsubishi Research Institute,Inc.
Mon Feb 24 19:27:36 JST 1997