Verifying concurrent software using movers in CSPEC

被引:0
作者
Chajed, Tej [1 ]
Kaashoek, M. Frans [1 ]
Lampson, Butler [2 ]
Zeldovich, Nickolai [1 ]
机构
[1] MIT CSAIL, Cambridge, MA 02139 USA
[2] Microsoft Res, Redmond, WA USA
来源
PROCEEDINGS OF THE 13TH USENIX SYMPOSIUM ON OPERATING SYSTEMS DESIGN AND IMPLEMENTATION | 2018年
关键词
VERIFICATION;
D O I
暂无
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Writing concurrent systems software is error-prone, because multiple processes or threads can interleave in many ways, and it is easy to forget about a subtle corner case. This paper introduces CSPEC, a framework for formal verification of concurrent software, which ensures that no corner cases are missed. The key challenge is to reduce the number of interleavings that developers must consider. CSPEC uses mover types to re-order commutative operations so that usually it's enough to reason about only sequential executions rather than all possible interleavings. CSPEC also makes proofs easier by making them modular using layers, and by providing a library of reusable proof patterns. To evaluate CSPEC, we implemented and proved the correctness of CMAIL, a simple concurrent Maildir-like mail server that speaks SMTP and POP3. The results demonstrate that CSPEC's movers and patterns allow reasoning about sophisticated concurrency styles in CMAIL.
引用
收藏
页码:307 / 322
页数:16
相关论文
共 50 条
[41]   Towards Verifying Global Properties of Adaptive Software based on Linear Temporal Logic [J].
Zhao, Yongwang ;
Li, Jing ;
Sun, Dou ;
Ma, Dianfu .
25TH IEEE INTERNATIONAL CONFERENCE ON ADVANCED INFORMATION NETWORKING AND APPLICATIONS (AINA 2011), 2011, :240-247
[42]   On Deductive Verification of an Industrial Concurrent Software Component with VerCors [J].
Monti, Rail E. ;
Rubbens, Robert ;
Huisman, Marieke .
LEVERAGING APPLICATIONS OF FORMAL METHODS, VERIFICATION AND VALIDATION. VERIFICATION PRINCIPLES, ISOLA 2022, PT I, 2022, 13701 :517-534
[43]   Verifying Relational Properties using Trace Logic [J].
Barthe, Gilles ;
Eilers, Renate ;
Georgiou, Pamina ;
Gleiss, Bernhard ;
Kovacs, Laura ;
Maffei, Matteo .
2019 FORMAL METHODS IN COMPUTER AIDED DESIGN (FMCAD), 2019, :170-178
[44]   Context-bounded model checking of concurrent software [J].
Qadeer, S ;
Rehof, J .
TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, PROCEEDINGS, 2005, 3440 :93-107
[45]   Verifying polymer reaction networks using bisimulation [J].
Johnson, Robert F. ;
Winfree, Erik .
THEORETICAL COMPUTER SCIENCE, 2020, 843 :84-114
[46]   Modeling and Verifying HDFS Using Process Algebra [J].
Xie, Wanling ;
Zhu, Huibiao ;
Wu, Xi ;
Xiang, Shuangqing ;
Guo, Jian ;
Phan Cong Vinh .
MOBILE NETWORKS & APPLICATIONS, 2017, 22 (02) :318-331
[47]   Verifying Hypermedia Applications by Using an MDE Approach [J].
Picinin Junior, Delcino ;
Koliver, Cristian ;
Santos, Celso A. S. ;
Farines, Jean-Marie .
SYSTEM ANALYSIS AND MODELING: MODELS AND REUSABILITY, 2014, 8769 :174-+
[48]   Verifying pointer programs using graph grammars [J].
Heinen, Jonathan ;
Jansen, Christina ;
Katoen, Joost-Pieter ;
Noll, Thomas .
SCIENCE OF COMPUTER PROGRAMMING, 2015, 97 :157-162
[49]   Modeling and Verifying BPEL Using Synchronized Net [J].
Xu, Chunxiang ;
Wang, Hanpin ;
Qu, Wanling .
APPLIED COMPUTING 2008, VOLS 1-3, 2008, :2358-2362
[50]   Modeling and Verifying HDFS Using Process Algebra [J].
Wanling Xie ;
Huibiao Zhu ;
Xi Wu ;
Shuangqing Xiang ;
Jian Guo ;
Phan Cong Vinh .
Mobile Networks and Applications, 2017, 22 :318-331