Skip to main content
QUICK REVIEW

[論文レビュー] Proving linearisability via coarse-grained abstraction

Brijesh Dongol, John Derrick|arXiv (Cornell University)|Dec 20, 2012
Distributed systems and fault tolerance参考文献 5被引用数 6
ひとこと要約

本稿では、低レベルのコードにおける線形化ポイントの明示的特定を必要とせずに、コンcurrentなデータ構造における線形化可能性を検証する、構成的で区間ベースの手法を提示する。細粒度の具象プログラムが、線形化ポイントが容易に特定可能な粗粒度の抽象化を精査することにより、検証を単純化し、複雑なアルゴリズムにおける非局所的線形化ポイントに対しても、拡張可能で前向きの推論を可能にする。

ABSTRACT

Linearisability has become the standard safety criterion for concurrent data structures ensuring that the effect of a concrete operation takes place after the execution some atomic statement (often referred to as the linearisation point). Identification of linearisation points is a non-trivial task and it is even possible for an operation to be linearised by the execution of other concurrent operations. This paper presents a method for verifying linearisability that does not require identification of linearisation points in the concrete code. Instead, we show that the concrete program is a refinement of some coarse-grained abstraction. The linearisation points in the abstraction are straightforward to identify and the linearisability proof itself is simpler due to the coarse granularity of its atomic statements. The concrete fine-grained program is a refinement of the coarse-grained program, and hence is also linearisable because every behaviour of the concrete program is a possible behaviour its abstraction.

研究の動機と目的

  • 細粒度のコンcurrentなデータ構造において、線形化ポイントを特定することが難しいという課題に対処すること。
  • 線形化可能性証明における後向き推論および複雑な事前/事後状態解析の必要性を排除すること。
  • 真の並列性と干渉の推論をサポートする、スケーラブルで構成的な検証フレームワークを構築すること。
  • 粗粒度の抽象化を用いて、非決定的線形化可能な複雑なアルゴリズムを検証できることを示すこと。
  • 精査と区間ベースの推論を中心に構造化された証明によって、機械的検証の基盤を提供すること。

提案手法

  • 本手法は、プログラム実行区間における区間ベースの推論を用い、式の評価やステップ間の干渉をモデル化可能である。
  • 区間上でのデータ精査の新規な定式化を導入し、シミュレーション述語を介して抽象的・粗粒度のプログラム状態を結びつける。
  • 共有メモリアクセスの推論と、並列実行中の干渉の自由を保証するために、分数的パーミッションを用いる。
  • 本手法は、行動的精査とデータ精査に依存し、具象プログラムが粗粒度の抽象化を実装することを示す。
  • リーゾン・ガランティーズ風の規則と、スプリット/ジョインの性質を用いて、証明義務を扱いやすい部分に分解する。
  • 動的メモリアクセスとポインタ更新を明示的にモデル化することにより、ポインタベースのプログラムをサポートする。

実験結果

リサーチクエスチョン

  • RQ1低レベルコードにおける線形化ポイントの特定なしに、線形化可能性を検証できるか?
  • RQ2粗粒度の抽象化は、複雑なコンcurrentなデータ構造の検証を単純化できるか?
  • RQ3区間ベースの推論は、線形化可能性証明における後向き推論の必要性を回避し、前向き推論を可能にするか?
  • RQ4既存のツールの範囲外にある非決定的線形化可能なアルゴリズムに対しても、本手法はスケーラブルか?
  • RQ5精査と区間意味論を用いて、コンcurrentプログラムの構成的検証を達成できるか?

主な発見

  • 本手法は、非局所的線形化ポイントを有するMichaelとScottのキューおよびHellerらの粗粒度のラージセットの線形化可能性を成功裏に検証した。
  • 干渉や将来の振る舞いを事前に予測する区間ベースの推論を用いることで、後向き推論を回避した。
  • 粗粒度の抽象化により、線形化ポイントの特定がより単純化され、証明の複雑さが顕著に低減された。
  • ポインタ更新と分数的パーミッションの注意深いモデル化により、フレームワークは真の並列性と動的メモリアクセスをサポートする。
  • 本手法は、非決定的線形化可能なプログラムにも適用可能であり、[47]および[4]のツールの範囲外にある。
  • 著者らは、具象から粗粒度の抽象化への精査が、スケーラブルな検証を可能にし、将来的な機械的検証の可能性を示した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。