A Practical Approach for Model Checking C/C++11 Code

被引:23
|
作者
Norris, Brian [1 ,3 ]
Demsky, Brian [2 ]
机构
[1] Univ Calif Irvine, Irvine, CA USA
[2] Univ Calif Irvine, Dept Elect Engn & Comp Sci, Irvine, CA 92697 USA
[3] 1600 Amphiteatre Pkwy, Mountain View, CA 94043 USA
基金
美国国家科学基金会;
关键词
Relaxed memory model; model checking;
D O I
10.1145/2806886
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Writing low-level concurrent software has traditionally required intimate knowledge of the entire toolchain and often has involved coding in assembly. New language standards have extended C and C++ with support for low-level atomic operations and a weak memory model, enabling developers to write portable and efficient multithreaded code. In this article, we present CDSCHECKER, a tool for exhaustively exploring the behaviors of concurrent code under the C/C++ memory model. We have used CDSCHECKER to exhaustively unit test concurrent data structure implementations and have discovered errors in a published implementation of a work-stealing queue and a single producer, single consumer queue.
引用
收藏
页数:51
相关论文
共 50 条
  • [1] Checking Concurrent Data Structures Under the C/C++11 Memory Model
    Ou, Peizhao
    Demsky, Brian
    [J]. ACM SIGPLAN NOTICES, 2017, 52 (08) : 45 - 59
  • [2] Automatic Checking of the Usage of the C++11 Move Semantics
    Barath, Aron
    Porkolab, Zoltan
    [J]. ACTA CYBERNETICA, 2015, 22 (01): : 5 - 20
  • [3] Algebraic Semantics for C++11 Memory Model
    Xiao, Lili
    Zhu, Huibiao
    He, Mengda
    Qin, Shengchao
    [J]. 2022 IEEE 46TH ANNUAL COMPUTERS, SOFTWARE, AND APPLICATIONS CONFERENCE (COMPSAC 2022), 2022, : 1513 - 1518
  • [4] C++11 in Parallel
    Hummel, Joseph E.
    [J]. SIGCSE 12: PROCEEDINGS OF THE 43RD ACM TECHNICAL SYMPOSIUM ON COMPUTER SCIENCE EDUCATION, 2011, : 656 - 656
  • [5] Transforming C++11 Code to C++03 to Support Legacy Compilation Environments
    Antal, Gabor
    Havas, David
    Siket, Istvan
    Beszedes, Arpad
    Ferenc, Rudolf
    Mihalicza, Jozsef
    [J]. 2016 IEEE 16TH INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM), 2016, : 177 - 186
  • [6] Repairing Sequential Consistency in C/C++11
    Lahav, Ori
    Vafeiadis, Viktor
    Kang, Jeehoon
    Hur, Chung-Kil
    Dreyer, Derek
    [J]. ACM SIGPLAN NOTICES, 2017, 52 (06) : 618 - 632
  • [7] An operational semantics for C/C++11 concurrency
    [J]. 2016, Association for Computing Machinery, 2 Penn Plaza, Suite 701, New York, NY 10121-0701, United States (51):
  • [8] An Operational Semantics for C/C++11 Concurrency
    Nienhuis, Kyndylan
    Memarian, Kayvan
    Sewell, Peter
    [J]. ACM SIGPLAN NOTICES, 2016, 51 (10) : 111 - 128
  • [9] Preparing for the new C++11 standard
    Naumann, Axel
    [J]. INTERNATIONAL CONFERENCE ON COMPUTING IN HIGH ENERGY AND NUCLEAR PHYSICS 2012 (CHEP2012), PTS 1-6, 2012, 396
  • [10] NISTfit: A Natively Multithreaded C++11 Framework for Model Development
    Bell, Ian
    Kunick, Matthias
    [J]. JOURNAL OF RESEARCH OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY, 2018, 123