跳到主要内容

记忆栅栏的自动推断

出版:2012年6月11日出版历史
跳过抽象节

摘要

我们解决了在松弛内存模型下运行的并发程序中的自动验证和围栏推理问题。现代体系结构实现了宽松的内存模型,其中内存操作可以重新排序并以非原子方式执行。调用的指令记忆栅栏提供给程序员,允许控制此行为。为了确保许多算法的正确性,程序员通常需要在程序中显式插入内存围栏。然而,她必须尽可能少地使用围栏,否则可能会失去放松建筑的好处。我们的目标是帮助实现围栏插入过程的自动化。

我们提出了一种在并发程序中自动推断内存栅栏的算法,将程序员从这项复杂的任务中解脱出来。给定一个有限状态程序、一个安全规范和对内存模型的描述,我们的算法计算出一组排序约束,以保证程序在内存模型下的正确性。计算出的约束是最大允许的:从解决方案中删除任何约束都会允许违反规范的执行。然后,这些约束在输入程序中实现为附加的边界。

我们在一对称为挡泥板和搅拌器的工具中实现了我们的方法,并使用它们为几种非平凡算法(包括实际互斥原语和并发数据结构)推断正确有效的围栏位置。

参考文献

  1. Adve,S.V.和Gharachorloo,K.共享内存一致性模型:教程。IEEE计算机29(1995),66--76。谷歌学者谷歌学者数字图书馆数字图书馆
  2. Atig,M.F.、Bouajjani,A.、Burckhardt,S.和Musuvathi,M.关于弱内存模型的验证问题。在POPL(2010)中,第7-18页。谷歌学者谷歌学者数字图书馆数字图书馆
  3. Blumofe,R.D.、Joerg,C.F.、Kuszmaul,B.C.、Leiserson,C.E.、Randall,K.H.和Zhou,Y.Cilk:一个高效的多线程运行时系统。1995年PPOPP。谷歌学者谷歌学者数字图书馆数字图书馆
  4. Bryant,R.E.有序二元决策图的符号布尔运算。ACM计算。Surv公司。24, 3 (1992), 293--318.谷歌学者谷歌学者数字图书馆数字图书馆
  5. Burckhardt,S.、Alur,R.和Martin,M.M.K.Checkfence:检查放松内存模型上并发数据类型的一致性。PLDI(2007),第12-21页。谷歌学者谷歌学者数字图书馆数字图书馆
  6. Burckhardt,S.和Musuvathi,M.放松记忆模型的有效程序验证。在CAV(2008)中,第107-120页。谷歌学者谷歌学者数字图书馆数字图书馆
  7. Burnim,J.、Sen,K.和Stergiou,C.在放松记忆模型上测试并发程序。ISSTA’11,第122-132页。谷歌学者谷歌学者数字图书馆数字图书馆
  8. Burnim,J.、Sen,K.和Stergiou,C.声音和放松记忆模型顺序一致性的完整监测。在TACAS’11(2011)中,第11-25页。谷歌学者谷歌学者数字图书馆数字图书馆
  9. Chase,D.和Lev,Y.动态循环工作密封设计。SPAA(2005),第21-28页。谷歌学者谷歌学者数字图书馆数字图书馆
  10. Clarke,E.M.、Grumberg,O.和Peled,D.模型检查。麻省理工学院出版社,1999年。谷歌学者谷歌学者数字图书馆数字图书馆
  11. Cousot,P.和Cousot R.抽象解释:通过构造不动点近似值对程序进行静态分析的统一格模型。在POPL(1977)中,第238-252页。谷歌学者谷歌学者数字图书馆数字图书馆
  12. Fang,X.、Lee,J.和Midkiff,S.P.共享内存多处理的自动围栏插入。在ICS(2003)中,第285--294页。谷歌学者谷歌学者数字图书馆数字图书馆
  13. Gharachorloo,K.、Gupta,A.和Hennessy,J.共享内存多处理器内存一致性模型的性能评估。在1991年的ASPLOS。谷歌学者谷歌学者数字图书馆数字图书馆
  14. Herlihy,M.和Shavit,N.《多处理器编程的艺术》。摩根考夫曼,2008年2月。谷歌学者谷歌学者数字图书馆数字图书馆
  15. Kuperstein,M.在放松记忆模型下保持正确性。Technion硕士论文,2012年。谷歌学者谷歌学者
  16. Kuperstein,M.、Vechev,M.和Yahav,E.记忆栅栏的自动推理。FMCAD(2010),第111-119页。谷歌学者谷歌学者数字图书馆数字图书馆
  17. Kuperstein,M.、Vechev,M.和Yahav,E.放松记忆模型的部分连贯抽象。在PLDI’11(2011)中,第187-198页。谷歌学者谷歌学者数字图书馆数字图书馆
  18. Lamport,L.如何制作正确执行多进程程序的多处理器计算机。IEEE传输。计算。28, 9 (1979), 690--691.谷歌学者谷歌学者数字图书馆数字图书馆
  19. Lee,J.和Padua,D.A.用编译器隐藏宽松的内存一致性。IEEE传输。计算。50, 8 (2001), 824--833.谷歌学者谷歌学者数字图书馆数字图书馆
  20. Linden,A.和Wolper,P.一种基于自动机的符号方法,用于验证放松记忆模型上的程序。SPIN(2010),第212-226页。谷歌学者谷歌学者数字图书馆数字图书馆
  21. Linden,A.和Wolper,P.一种在松弛内存系统中插入内存栅栏的基于验证的方法。SPIN(2011),第144-160页。谷歌学者谷歌学者数字图书馆数字图书馆
  22. Liu,F.、Nedev,N.、Prisadnikov,N.,Vechev,M.和Yahav,E.放松记忆模型的动态合成。PLDI’12,将出现。谷歌学者谷歌学者数字图书馆数字图书馆
  23. Michael,M.M.使用原子读写为动态无锁对象安全回收内存。PODC(2002),第21-30页。谷歌学者谷歌学者数字图书馆数字图书馆
  24. Michael,M.M.和Scott,M.L.修正了无锁数据结构的内存管理方法。技术代表,1995年。谷歌学者谷歌学者数字图书馆数字图书馆
  25. Michael,M.M.和Scott,M.L.简单、快速、实用的非阻塞和阻塞并发队列算法。PODC(1996),第267至275页。谷歌学者谷歌学者数字图书馆数字图书馆
  26. Park,S.和Dill,D.L.一种用于宽松内存顺序的可执行规范和验证器。IEEE计算机汇刊48(1999)。谷歌学者谷歌学者数字图书馆数字图书馆
  27. Shasha,D.和Snir,M.高效、正确地执行共享内存的并行程序。ACM事务处理。程序。语言系统。10, 2 (1988), 282--312.谷歌学者谷歌学者数字图书馆数字图书馆
  28. SPARC International Inc.SPARC体系结构手册(第9版)。Prentice-Hall,Inc.,美国新泽西州上鞍河,1994年。谷歌学者谷歌学者数字图书馆数字图书馆
  29. Sura,Z.、Wong,C.-L.、Fang,X.、Lee,J.、Midkiff,S.P.和Padua,D.A.编程语言一致性模型的自动实现。LNCS 2481(2005),172。谷歌学者谷歌学者数字图书馆数字图书馆
  30. Vechev,M.和Yahav,E.导出可线性化的细粒度并发对象。PLDI(2008),第125-135页。谷歌学者谷歌学者数字图书馆数字图书馆
  31. Vechev,M.、Yahav,E.、Bacon,D.F.和Rinetzky,N.CGC探险家:可证明正确的并发收集器的半自动搜索过程。PLDI(2007),第456-467页。谷歌学者谷歌学者数字图书馆数字图书馆
  32. Vechev,M.、Yahav,E.和Yorsh,G.在有限可观测性下推断同步。在TACAS(2009)中,第139-154页。谷歌学者谷歌学者数字图书馆数字图书馆
  33. Vechev,M.、Yahav,E.和Yorsh,G.同步的抽象引导合成。在POPL’10(2010)中。谷歌学者谷歌学者数字图书馆数字图书馆
  34. Yang,Y.、Gopalakrishnan,G.和Lindstrom,G.UMM:一个具有集成模型检查功能的操作内存模型规范框架。同意。计算:实际。专家。17, 5-6 (2005), 465--487.谷歌学者谷歌学者数字图书馆数字图书馆

索引术语

  1. 记忆栅栏的自动推理
    索引项已通过自动分类分配给内容。

    建议

    评论

    登录选项

    请检查您是否可以通过登录凭据或您的机构访问此文章以获得完全访问权限。

    登录

    完全访问权限

    • 发布于

      封面图片ACM SIGACT新闻
      ACM SIGACT新闻 第43卷第2期
      2012年6月
      134页
      国际标准编号:0163-5700
      内政部:10.1145/2261417
      期刊目录

      版权所有©2012作者

      发布者

      计算机协会

      美国纽约州纽约市

      出版历史

      • 出版:2012年6月11日

      检查更新

      限定符

    PDF格式

    以PDF文件的形式查看或下载。

    PDF格式

    电子阅读器

    使用eReader联机查看。

    电子阅读器