Next: Up: Previous:

関連研究

 

table55

この節は今までの高効率マルチスレッディング方式の再考をする. 伝統的な CPU の上に実装された方式のみに焦点を当て, マルチスレッドアーキテクチャ の上に実装されたものについては議論しない. それらのマルチスレッディング 方式はすべて自前のフレーム管理と手続き結合慣例を設計しているか, 一般的 なマルチスレッド機構なしで実装可能なように並行モデルを制限しているかで ある. 表3.1にこれらの仕事をおおよその年代順にリスト し, サポートされている並行モデルとコード生成方法を付記する. 並行モデル は, もし一般的なマルチスレッドを実装していたら一般であり, そうで なければ制限つきである. 一般マルチスレッドモデルは, 作られ たスレッドが, 少なくとも唯一の実行可能スレッドになったとき, 最終的にス ケジューリングされることを 保証されていることを意味している. コード生成方法には, もし それらがアセンブリ言語を生成する場合はnativeと, フレーム管理とコ ンテキストスイッチのコード列が埋め込まれたCコードを生成するならば assembly-like Cと, もし単にCのスタックフレーム管理の上で走るだけなら ばsimpleと書いてある.

最も特筆すべきことに, simple Cコード生成を採用している方法, leapfrogging [48], Lazy RPC [17] は, 完全に一般的な並行モデルを 提供していない. StackThreadsを他と区別する特徴は, それが 一般のマルチスレッドモデルを実装していながら 単純なCコード生成を許していることである. 以下に, これらの研究を3つのカテゴリーに分類し, より詳細に 各研究を説明していく. 3つのカテゴリは, スレッド管理のための 単純なタスクプールを使っているもの, より手の込んだ複雑な スレッド管理方法を採用しているもの, 並列モデルを制限 する犠牲を払って, 単純にCのスタックフレーム管理の上で 走るもの, からなる.





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