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 条
[21]   Modelling and Verifying Robotic Software that Uses Neural Networks [J].
Attala, Ziggy ;
Cavalcanti, Ana ;
Woodcock, Jim .
THEORETICAL ASPECTS OF COMPUTING, ICTAC 2023, 2023, 14446 :15-35
[22]   A Framework for Formally Verifying Software Transactional Memory Algorithms [J].
Lesani, Mohsen ;
Luchangco, Victor ;
Moir, Mark .
CONCUR 2012 - CONCURRENCY THEORY, 2012, 7454 :516-530
[23]   A Categorical Approach for Modeling and Verifying Dynamic Software Architecture [J].
Ling, Xiang .
2013 IEEE 7TH INTERNATIONAL CONFERENCE ON SOFTWARE SECURITY AND RELIABILITY - COMPANION (SERE-C), 2013, :169-176
[24]   Verification of concurrent software with FLAVERS [J].
Naumovich, G ;
Dwyer, MB ;
Clarke, LA ;
Osterweil, LJ .
PROCEEDINGS OF THE 1997 INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 1997, :594-595
[25]   A Rely-Guarantee-Based Simulation for Verifying Concurrent Program Transformations [J].
Liang, Hongjin ;
Feng, Xinyu ;
Fu, Ming .
ACM SIGPLAN NOTICES, 2012, 47 (01) :455-468
[26]   A model-extraction approach to verifying concurrent C programs with CADP [J].
Gallardo, M. M. ;
Joubert, C. ;
Merino, P. ;
Sanan, D. .
SCIENCE OF COMPUTER PROGRAMMING, 2012, 77 (03) :375-392
[27]   EPNATOP: an Operational Profile for Verifying Software Designs Based on EPNAT [J].
Takagi, Tomohiko ;
Otake, Rikuto ;
Matsumoto, Sho .
2024 IEEE 48TH ANNUAL COMPUTERS, SOFTWARE, AND APPLICATIONS CONFERENCE, COMPSAC 2024, 2024, :1500-1501
[28]   Verifying consistency of software product line architectures with product architectures [J].
Duran-Limon, Hector A. ;
Velasco-Elizondo, Perla ;
Mora, Manuel ;
Meda-Campana, Maria E. ;
Aguilar, Karina ;
Hernandez-Ochoa, Martha ;
Sumuano, Leonardo Soto .
SOFTWARE AND SYSTEMS MODELING, 2024, 23 (01) :195-221
[29]   Verifying CPS Using DDL [J].
Zhou, Ying ;
Zhu, Min ;
Gong, Xufang ;
Li, Bixin .
INTELLIGENT ENVIRONMENTS 2017, 2017, 22 :15-24
[30]   TEMPORAL PREDICATE TRANSITION NETS - A NEW FORMALISM FOR SPECIFYING AND VERIFYING CONCURRENT SYSTEMS [J].
HE, XD .
INTERNATIONAL JOURNAL OF COMPUTER MATHEMATICS, 1992, 45 (3-4) :171-184