跳到主要内容
研究论文

线性化:一个完整的自动线性化能力检查器

出版:2010年6月5日出版历史
跳过抽象节

摘要

并发应用程序的模块化开发需要线程安全的组件,这些组件在被多个客户端线程并发调用时行为正确。本文重点讨论线性化能力,这是线程安全的一种特定形式化,其中并发组件的所有操作似乎在调用和返回之间的某个点上立即生效。本文的关键观点是,如果组件是确定性的,那么可以通过系统地枚举组件的顺序行为,然后检查每个并发行为是否等价于某些顺序行为来构建自动线性化能力检查器。

我们将此洞察力开发为一个名为Line-Up的工具,它是第一个完整的自动检查器确定性线性化能力它是完整的,因为任何报告的违规行为都证明实现在以下方面不可线性化任何顺序确定性规范。它是自动的,不需要手动抽象,不需要对语义或提交点进行手动规范,不需要手工编写测试套件,也不需要访问源代码。

我们通过分析的两个版本中的13个类和总共90个方法来评估Line-Up。NET框架4.0。Line-Up报告的违反确定性线性化能力的行为暴露了实现中的七个错误,这些错误由开发团队修复。

工具书类

  1. M.Abadi和L.Lamport。精化映射的存在。西奥。计算。科学。,82(2), 1991.谷歌学者谷歌学者数字图书馆数字图书馆
  2. S.Burckhardt、R.Alur和M.Martin。CheckFence:检查放松内存模型上并发数据类型的一致性。编程语言设计与实现。(PLDI),第12-212007页。谷歌学者谷歌学者数字图书馆数字图书馆
  3. S.Burckhardt和M.Musuvathi。放松记忆模型的有效程序验证。在计算机辅助验证(CAV)中,第107-120页,2008年。谷歌学者谷歌学者数字图书馆数字图书馆
  4. R.Colvin、L.Groves、V.Luchangco和M.Moir。基于懒惰并发列表的集合算法的形式化验证。在计算机辅助验证(CAV)中,LNCS 4144,第475--488页。斯普林格,2006年。谷歌学者谷歌学者数字图书馆数字图书馆
  5. K.Coons、M.Musuvathi和S.Burckhardt。Gambit:对并发库进行有效的单元测试。《并行编程原理与实践》(PPoPP),2010年。谷歌学者谷歌学者数字图书馆数字图书馆
  6. S.Doherty、D.Detlefs、L.Grove、C.Flood、V.Luchangco、P.Martin、M.Moir、N.Shavit和G.Steele。DCAS不是非阻塞算法设计的灵丹妙药。在并行算法和体系结构研讨会(SPAA)上,第216-224页,2004年。谷歌学者谷歌学者数字图书馆数字图书馆
  7. T.Elmas、S.Qadeer和S.Tasiran。原子作用的微积分。《编程语言原理》(POPL),2009年。谷歌学者谷歌学者数字图书馆数字图书馆
  8. T.Elmas和S.Tasiran。VyrdMC:使用模型检查器驱动运行时细化检查。选举人。注释Theor。计算。科学。,144:41--56, 2006.谷歌学者谷歌学者数字图书馆数字图书馆
  9. T.Elmas、S.Tasiran和S.Qadeer。VYRD:通过运行时优化暴力检测验证并发程序。编程语言设计与实现。(PLDI),第27-37页,2005年。谷歌学者谷歌学者数字图书馆数字图书馆
  10. A.Farzan和P.Madhusudan。监控并发程序中的原子性。计算机辅助验证(CAV),2008年。谷歌学者谷歌学者数字图书馆数字图书馆
  11. C.弗拉纳根和S.弗伦德。高效精确的动态比赛检测。编程语言设计与实现。(PLDI),2009年。谷歌学者谷歌学者数字图书馆数字图书馆
  12. C.Flanagan、S.Freund和J.Yi。Velodrome:用于多线程程序的完善的动态原子性检查器。编程语言设计与实现。(PLDI),2008年。谷歌学者谷歌学者数字图书馆数字图书馆
  13. K.弗雷泽。实用自由锁。剑桥大学博士论文,2004年。谷歌学者谷歌学者
  14. K.Fraser和T.Harris。无锁并发编程。ACM事务处理。计算。系统。,2007年第25(2)页。谷歌学者谷歌学者数字图书馆数字图书馆
  15. M.Herlihy和J.Wing。线性化:并发对象的正确条件。ACM事务处理。程序。语言系统。,12(3):463--492, 1990.谷歌学者谷歌学者数字图书馆数字图书馆
  16. L.Lamport。如何使多处理器计算机正确执行多进程程序。IEEE传输。公司。,C-28(9):690--691979年。谷歌学者谷歌学者数字图书馆数字图书馆
  17. D.Marino、M.Musuvathi和S.Narayanasamy。LiteRace:用于轻量级数据空间检测的有效采样。编程语言设计与实现。(PLDI),2009年。谷歌学者谷歌学者数字图书馆数字图书馆
  18. M.Michael和M.Scott。修正了无锁数据结构的内存管理方法。技术报告TR599,罗切斯特大学,1995年。谷歌学者谷歌学者数字图书馆数字图书馆
  19. MSDN、,http://blogs.msdn.com/somasegar/archive/2007/11/29/parallel-extensions-to-the-net-fx-ctp.aspx。的并行扩展。净外汇CTP,2007年11月。谷歌学者谷歌学者
  20. MSDN、,http://msdn.microsoft.com/en-us/library/dd460718(VS.100).aspx。NET Framework 4并行编程数据结构,2009年11月。谷歌学者谷歌学者
  21. M.Musuvathi和S.Qadeer。公平的无状态模型检查。编程语言设计与实现。(PLDI),2008年。谷歌学者谷歌学者数字图书馆数字图书馆
  22. M.Musuvathi、S.Qadeer、T.Ball、G.Basler、P.Nainar和I.Neamtiu。在并发程序中查找和复制heisenbug。在操作系统设计和实施中。(OSDI),第267--280页,2008年。谷歌学者谷歌学者数字图书馆数字图书馆
  23. C.H.帕帕迪米特里奥。并发数据库更新的可序列化性。J.ACM,4(26),1979年10月。谷歌学者谷歌学者数字图书馆数字图书馆
  24. S.Savage、M.Burrows、G.Nelson、P.Sobalvarro和T.Anderson。橡皮擦:多线程程序的动态数据竞争检测器。ACM事务处理。公司。系统。,15(4):391--411, 1997.谷歌学者谷歌学者数字图书馆数字图书馆
  25. V.瓦菲亚迪斯。用于验证线性化能力的形值抽象。在验证、模型检查和抽象解释(VMCAI)中。Springer-Verlag,2009年。谷歌学者谷歌学者数字图书馆数字图书馆
  26. V.Vafeiadis、M.Herlihy、T.Hoare和M.Shapiro。证明高并发线性对象的正确性。《并行编程原理与实践》(PPoPP),第129-1362006页。谷歌学者谷歌学者数字图书馆数字图书馆
  27. M.Vechev、E.Yahav和G.Yorsh。具有模型检查线性化能力的经验。在SPIN,2009年。谷歌学者谷歌学者数字图书馆数字图书馆

索引术语

  1. 线性化:一个完整的自动线性化能力检查器

        建议

        评论

        登录选项

        检查您是否可以通过登录凭据或您的机构访问本文。

        登录

        完全访问权限

        • 发布于

          封面图片ACM SIGPLAN注意事项
          ACM SIGPLAN通知 第45卷第6期
          2010年PLDI
          2010年6月
          496页
          ISSN公司:0362-1340
          EISSN公司:1558-1160
          内政部:10.1145/1809028
          期刊目录
          • 封面图片ACM会议
            PLDI’10:第31届ACM SIGPLAN编程语言设计与实现会议记录
            2010年6月
            514页
            国际标准图书编号:9781450300193
            内政部:10.1145/1806596

          版权所有©2010 ACM

          如果复制品不是为了盈利或商业利益而制作或分发的,并且复制品的第一页载有本通知和完整引文,则允许免费制作本作品的全部或部分数字或硬拷贝以供个人或课堂使用。必须尊重ACM以外的其他人对本作品组成部分的版权。允许用信用证进行摘要。要以其他方式复制或重新发布,在服务器上发布或重新发布到列表,需要事先获得特定许可和/或付费。从请求权限[电子邮件保护]

          出版商

          计算机协会

          美国纽约州纽约市

          出版历史

          • 出版:2010年6月5日

          检查更新

          限定符

          • 研究论文

        PDF格式

        以PDF文件查看或下载。

        PDF格式

        电子阅读器

        使用eReader联机查看。

        电子阅读器