参照カウントに対応したソフトウェアトランザクショナルメモリの実装
スポンサーリンク
概要
- 論文の詳細を見る
マルチスレッドプログラミングにおいて逐次処理と同様に並列処理を記述しつつ共有資源の保護を行う方法としてソフトウェアトランザクショナルメモリ(STM)が注目されている.本発表はC++言語によるSTMアルゴリズムの1つであるLazy Snapshot Algorithm(LSA)を用いたオブジェクトベースのSTMライブラリの実装について述べる.はじめに,抽象化されたLSAは実際のオブジェクトベースで実装されるアルゴリズムとはかけ離れたものであるため,新たにobject historyという考えを導入して実装に対応したアルゴリズムの定式化を行う.LSAはJava言語によるオブジェクトベースの実装とC言語によるワードベースの実装がなされたものであり,本発表における実装はC++言語でオブジェクトベースのLSAを再現したため,C++言語にはないガーベジコレクションを参照カウント型のポインタで行っている.しかし,参照カウントによるガーベジコレクションでは循環参照のあるデータ構造に対してゴミの回収が行われないという問題がある.LSAで実装したライブラリ内部のデータ構造は並列処理によっては循環参照が発生する可能性を持つため,弱い参照を用いたライブラリ内部のデータ構造の変更による循環参照の解決方法を示す.
- 2013-12-20
著者
関連論文
- Rubyプログラムの制御フロー解析とその健全性の証明
- 特集「プログラミング及びプログラミング言語」の編集にあたって(プログラミング及びプログラミング言語)
- 実行可能なコンパイラの形式化と検証
- 実行可能なコンパイラの形式化と検証
- 実行可能なコンパイラの形式化と検証
- 「情報処理学会論文誌 : プログラミング」の編集について
- 多相レコード型に基づくRubyプログラムの型推論
- Cプログラムの検証ツールCaduceus(ソフトウェア紹介)
- POPL '96会議報告
- アトミックグループで拡張された正規表現のオートマトンへの変換
- 参照カウントに対応したソフトウェアトランザクショナルメモリの実装