著者
David Ungar, Frank Jackson
タイトル
Tenuring Policies for Generation-Based Strage Reclamation
ページ
1--17
日時
September 1988
概要
 世代管理(厳密にはGeneration Scavenging)に基づくごみ集めのアルゴリズムの 欠点を補うために,2つの改良を行った.1つは,large bitmapsとstringsのため の領域(とごみ集めの戦略)を他と分離すること.もう1つは,ある世代の保有期間 (tenure)を統計情報のフィードバックに基づき動的に調整することである.4時間 に渡る様々な性質のトレースログを入力にしたシミュレーションの結果が提示さ れている.  シミュレーションは,Ungarのシステム(ParcPlace Smalltalk上の Generation Scavenging automatic strage reclamator)に対して行われたが,他の世代管理 に基づくごみ集めに対しても一考の価値がある.
概要
Previous Work: Generation-Based Automatic Storage Reclamation Algorithms: tenuring -- generation-based GC において new areaからold areaにobjectを移動す ること.(tenureとは,役職・不動産の保有期間,ある期間の在職後に与 えられる終身在職権のこと.) tenuring problem -- 大量のtenured objectによって回収不能な空間(tenured garbage)が大量 に発生すること. Multiple Generations:  Lieverman, Moon, Caudillらが採用しているが,全てtenuring policyと してはfixed-age promotion policyに基づいている.  本研究ではfeedback-mediated policyを採用した.が,Multiple Generationsは未実装である.(two-generation schemeで行ったということ.) これは,新しいtenuring policyの評価を優先的に考えたことと,そもそも本 研究以前はこのtenuring policyのもとでMultiple Generationsを実装すると きの戦略を決定するのに十分なデータがないからだという. \\ Methodology:  トレースログの要求条件,採集方法,その正当性を述べている.動特性の 評価方法が確立しているわけではないし,nativeなGC等のシステム構成にに 依存する評価要素が多いので,この部分にかなりの紙数を割いている.  ちなみに,実験の対象はParcPlace Smalltalk 2.2であり,メインのGCのア ルゴリズムにはdifferd-reference-countingを用いている.また,シミュレー ションの結果から,tenuring threshold(tenuringを行うage)をパラメータと したpause-timeとtenured-garbageの関係でGCの性能を評価している. \\ Dynamic Analysis of Tenuring Policies: Fixed-Age Tenuring Policy:  バッチ的なジョブは,pause timeもtenured garbageもインタラクティ ブなジョブに比べてかなり多い. Fixed-Age Tenuring Policy with Segregating Large Bitmaps and Strings:  large bitmapsとstringsの領域を十分とって,それらがtenureされな いようにしている.(注.多くのgeneration-based GCでは,pause-time thresholdを設けており,その間にscavengeされなかったオブジェクト(?)や, new spaceに入りきらないオブジェクトはtenureされることになる.) 分析を簡単にするためだろうが,ずるい感じがする.  tenured garbageの減少が数メガバイトになることは,昨今のWSの実メ モリ量を考えると価値があるといっている. A Demographic Feedback-Mediated Tenuring Policy: feedback mediation -- demographic information --  毎回のscavengeの後に,new spaceに生き残っている量を計算する. (pause-timeはオブジェクトをコピーする時間に比例すると考えられるので, 次回のpause-timeは生き残りオブジェクトの量で見積れる.) もし,その量がpause-time thresholdを下回っていれば,tenure threshold を無限大にして,次回のscavenging時にtenuringが起こらないようにする. 一方,越えた場合はage/rest-bytes表を参照して必要最低限の量だけ tenuringを行うようにする.  要するに,pause-time thresholdの周辺で必要最小限のtenuringを起こ すように工夫している.
感想
 large bitmapsとstringsを別領域に移すことのどこが新しいのかまったく意 味不明.(普通そうするでしょう.)まあ,Smalltalk環境でのこういった objectの多さを再認識させるものではあるが,性能向上を強調するための演出 ととれないこともない.  GCに対するアイデアの部分はともかく,シミュレーションの手法や背景等は参 考になる.(time-cost即ちpause-timeの減少が最も重要で,space-cost即ちtenured- garbageはその次ということ等.)
感想
 筆者はUngarのGereration Scavengingについて,特にscavengingという用語 の正確な定義を理解していない.数年前,日経エレクトロニクスに富士ゼロッ クスが書いた解説記事の中に簡単な説明があったものがこれに相当するのだろ うか.その記事の主眼はgenerationよりもscavenging(その記事の場合, differed-reference-countingの合間に,局所的な参照関係に着目して mark-and-sweepを挟み込むことらしい)の解説にあったようだが.誰か,Ungar のoriginal paperを紹介してください.  GCの一般的なアルゴリズムや(例えばgeneration-based GC等について)は, ACM Computing ServeyのCohenの文献を参照のこと.昔のbit別冊に邦訳がある.  John Lennon, Paul McCartney, Billy Joelの詞が随所に引用してあり, 参考文献にまで載せてある.まったく唄でもうたいながら書いたような感じが する軽い感じの文章になっている.(まったく!!)
カテゴリ
OOPSLA88
Category: OOPSLA88
Journal: OOPSLA88
Abstract: 
         世代管理(厳密にはGeneration Scavenging)に基づくごみ集めのアルゴリズムの
        欠点を補うために,2つの改良を行った.1つは,large bitmapsとstringsのため
        の領域(とごみ集めの戦略)を他と分離すること.もう1つは,ある世代の保有期間
        (tenure)を統計情報のフィードバックに基づき動的に調整することである.4時間
        に渡る様々な性質のトレースログを入力にしたシミュレーションの結果が提示さ
        れている.
         シミュレーションは,Ungarのシステム(ParcPlace Smalltalk上の Generation
        Scavenging automatic strage reclamator)に対して行われたが,他の世代管理
        に基づくごみ集めに対しても一考の価値がある.
Bibtype: article
Author: David Ungar
        Frank Jackson
Pages: 1--17
Month: sep
Title: Tenuring Policies for Generation-Based Strage Reclamation
Comment1: 
        Previous Work:
        Generation-Based Automatic Storage Reclamation Algorithms:
        tenuring --
        generation-based GC において new areaからold areaにobjectを移動す
        ること.(tenureとは,役職・不動産の保有期間,ある期間の在職後に与
        えられる終身在職権のこと.)
        tenuring problem --
        大量のtenured objectによって回収不能な空間(tenured garbage)が大量
        に発生すること.
        Multiple Generations:
         Lieverman, Moon, Caudillらが採用しているが,全てtenuring policyと
        してはfixed-age promotion policyに基づいている.
         本研究ではfeedback-mediated policyを採用した.が,Multiple
        Generationsは未実装である.(two-generation schemeで行ったということ.)
        これは,新しいtenuring policyの評価を優先的に考えたことと,そもそも本
        研究以前はこのtenuring policyのもとでMultiple Generationsを実装すると
        きの戦略を決定するのに十分なデータがないからだという.
        \\
        Methodology:
         トレースログの要求条件,採集方法,その正当性を述べている.動特性の
        評価方法が確立しているわけではないし,nativeなGC等のシステム構成にに
        依存する評価要素が多いので,この部分にかなりの紙数を割いている.
         ちなみに,実験の対象はParcPlace Smalltalk 2.2であり,メインのGCのア
        ルゴリズムにはdifferd-reference-countingを用いている.また,シミュレー
        ションの結果から,tenuring threshold(tenuringを行うage)をパラメータと
        したpause-timeとtenured-garbageの関係でGCの性能を評価している.
        \\
        Dynamic Analysis of Tenuring Policies:
        Fixed-Age Tenuring Policy:
         バッチ的なジョブは,pause timeもtenured garbageもインタラクティ
        ブなジョブに比べてかなり多い.
        Fixed-Age Tenuring Policy with Segregating Large Bitmaps and Strings:
         large bitmapsとstringsの領域を十分とって,それらがtenureされな
        いようにしている.(注.多くのgeneration-based GCでは,pause-time
        thresholdを設けており,その間にscavengeされなかったオブジェクト(?)や,
        new spaceに入りきらないオブジェクトはtenureされることになる.)
        分析を簡単にするためだろうが,ずるい感じがする.
         tenured garbageの減少が数メガバイトになることは,昨今のWSの実メ
        モリ量を考えると価値があるといっている.
        A Demographic Feedback-Mediated Tenuring Policy:
        feedback mediation --
        demographic information --
         毎回のscavengeの後に,new spaceに生き残っている量を計算する.
        (pause-timeはオブジェクトをコピーする時間に比例すると考えられるので,
        次回のpause-timeは生き残りオブジェクトの量で見積れる.)
        もし,その量がpause-time thresholdを下回っていれば,tenure threshold
        を無限大にして,次回のscavenging時にtenuringが起こらないようにする.
        一方,越えた場合はage/rest-bytes表を参照して必要最低限の量だけ
        tenuringを行うようにする.
         要するに,pause-time thresholdの周辺で必要最小限のtenuringを起こ
        すように工夫している.
Year: 1988
Comment2: 
         large bitmapsとstringsを別領域に移すことのどこが新しいのかまったく意
        味不明.(普通そうするでしょう.)まあ,Smalltalk環境でのこういった
        objectの多さを再認識させるものではあるが,性能向上を強調するための演出
        ととれないこともない.
         GCに対するアイデアの部分はともかく,シミュレーションの手法や背景等は参
        考になる.(time-cost即ちpause-timeの減少が最も重要で,space-cost即ちtenured-
        garbageはその次ということ等.)
Comment3: 
         筆者はUngarのGereration Scavengingについて,特にscavengingという用語
        の正確な定義を理解していない.数年前,日経エレクトロニクスに富士ゼロッ
        クスが書いた解説記事の中に簡単な説明があったものがこれに相当するのだろ
        うか.その記事の主眼はgenerationよりもscavenging(その記事の場合,
        differed-reference-countingの合間に,局所的な参照関係に着目して
        mark-and-sweepを挟み込むことらしい)の解説にあったようだが.誰か,Ungar
        のoriginal paperを紹介してください.
         GCの一般的なアルゴリズムや(例えばgeneration-based GC等について)は,
        ACM Computing ServeyのCohenの文献を参照のこと.昔のbit別冊に邦訳がある.
         John Lennon, Paul McCartney, Billy Joelの詞が随所に引用してあり,
        参考文献にまで載せてある.まったく唄でもうたいながら書いたような感じが
        する軽い感じの文章になっている.(まったく!!)