首页> 外文会议>International Conference on Computer Aided Verification(CAV 2006); 20060817-20; Seattle,WA(US) >Bounded Model Checking of Concurrent Data Types on Relaxed Memory Models: A Case Study
【24h】

Bounded Model Checking of Concurrent Data Types on Relaxed Memory Models: A Case Study

机译:松散内存模型上并发数据类型的有界模型检查:一个案例研究

获取原文
获取原文并翻译 | 示例

摘要

Many multithreaded programs employ concurrent data types to safely share data among threads. However, highly-concurrent algorithms for even seemingly simple data types are difficult to implement correctly, especially when considering the relaxed memory ordering models commonly employed by today's multiprocessors. The formal verification of such implementations is challenging as well because the high degree of concurrency leads to a large number of possible executions. In this case study, we develop a SAT-based bounded verification method and apply it to a representative example, a well-known two-lock concurrent queue algorithm. We first formulate a correctness criterion that specifically targets failures caused by concurrency; it demands that all concurrent executions be observationally equivalent to some serial execution. Next, we define a relaxed memory model that conservatively approximates several common shared-memory multiprocessors. Using commit point specifications, a suite of finite symbolic tests, a prototype encoder, and a standard SAT solver, we successfully identify two failures of a naive implementation that can be observed only under relaxed memory models. We eliminate these failures by inserting appropriate memory ordering fences into the code. The experiments confirm that our approach provides a valuable aid for desigining and implementing concurrent data types.
机译:许多多线程程序使用并发数据类型来安全地在线程之间共享数据。但是,即使是看似简单的数据类型,也很难正确实现高并发算法,尤其是在考虑当今多处理器通常采用的宽松内存排序模型时。由于高度的并发性导致大量可能的执行,因此此类实现的形式验证也具有挑战性。在本案例研究中,我们开发了一种基于SAT的有界验证方法,并将其应用于一个有代表性的示例,即著名的两锁并发队列算法。我们首先制定一个正确性标准,专门针对并发导致的故障。它要求所有并发执行在观察上都等效于某些串行执行。接下来,我们定义一个宽松的内存模型,保守地近似于几个常见的共享内存多处理器。使用提交点规范,一组有限的符号测试,一个原型编码器和一个标准的SAT求解器,我们成功地识别了仅在宽松内存模型下才能观察到的两个朴素实现的失败。我们通过在代码中插入适当的内存排序栏来消除这些故障。实验证实,我们的方法为设计和实现并发数据类型提供了宝贵的帮助。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号