Grace: Safe Multithreaded Programming for C/C plus

被引:0
|
作者
Berger, Emery D. [1 ]
Yang, Ting [1 ]
Liu, Tongping [1 ]
Novark, Gene [1 ]
机构
[1] Univ Massachusetts, Dept Comp Sci, Amherst, MA 01003 USA
关键词
Concurrency; determinism; deterministic concurrency; fork-join; sequential semantics;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The shift from single to multiple core architectures means that programmers must write concurrent, multithreaded programs in order to increase application performance. Unfortunately, multithreaded applications are susceptible to numerous errors, including deadlocks, race conditions, atomicity violations, and order violations. These errors are notoriously difficult for programmers to debug. This paper presents Grace, a software-only runtime system that eliminates concurrency errors for a class of multithreaded programs those based on fork-join parallelism By turning threads into processes, leveraging virtual memory protection and imposing a sequential commit protocol, Grace provides programmers with the appearance of deterministic, sequential execution, while taking advantage of available processing cores to run code concurrently and efficiently. Experimental results demonstrate Grace's effectiveness: with modest code changes across a suite of computationally-intensive benchmarks (1-16 lines), Grace can achieve high scalability and performance while preventing concurrency errors
引用
收藏
页码:81 / 96
页数:16
相关论文
共 50 条
  • [1] Grace: Safe Multithreaded Programming for C/C++
    Berger, Emery D.
    Yang, Ting
    Liu, Tongping
    Novark, Gene
    [J]. ACM SIGPLAN NOTICES, 2009, 44 (10) : 81 - 96
  • [2] Static Analysis Approach for Defect Detection in Multithreaded C/C plus plus Programs
    Moiseev, Mikhail
    [J]. SOFTWARE ENGINEERING FOR RESILIENT SYSTEMS, SERENE 2013, 2013, 8166 : 169 - 183
  • [3] CCmutator: A Mutation Generator for Concurrency Constructs in Multithreaded C/C plus plus Applications
    Kusano, Markus
    Wang, Chao
    [J]. 2013 28TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE), 2013, : 722 - 725
  • [4] Programming with C plus plus concepts
    Jaervi, Jaakko
    Marcus, Mat
    Smith, Jacob N.
    [J]. SCIENCE OF COMPUTER PROGRAMMING, 2010, 75 (07) : 596 - 614
  • [5] PROGRAMMING ARDUINO BOARDS WITH THE C/C plus plus INTERPRETER CH
    Turley, Curtis
    Montironi, Maria Alessandra
    Cheng, Harry H.
    [J]. INTERNATIONAL DESIGN ENGINEERING TECHNICAL CONFERENCES AND COMPUTERS AND INFORMATION IN ENGINEERING CONFERENCE, 2015, VOL 9, 2016,
  • [6] Introducing Embedded Systems in the first C/C plus plus Programming Class
    Hamblen, James O.
    Smith, Zachery C.
    Woo, Winne W.
    [J]. 2013 IEEE INTERNATIONAL CONFERENCE ON MICROELECTRONIC SYSTEMS EDUCATION (MSE), 2013, : 1 - 4
  • [7] Customizable and scalable automated assessment of C/C plus plus programming assignments
    Delgado-Perez, Pedro
    Medina-Bulo, Inmaculada
    [J]. COMPUTER APPLICATIONS IN ENGINEERING EDUCATION, 2020, 28 (06) : 1449 - 1466
  • [8] Functional Programming Library for C plus
    Krasnov, M. M.
    [J]. PROGRAMMING AND COMPUTER SOFTWARE, 2020, 46 (05) : 330 - 340
  • [9] Revisiting actor programming in C plus
    Charousset, Dominik
    Hiesgen, Raphael
    Schmidt, Thomas C.
    [J]. COMPUTER LANGUAGES SYSTEMS & STRUCTURES, 2016, 45 : 105 - 131
  • [10] A programming tool to ease modular programming with C plus
    Garcia Perez-Schofield, J. Baltasar
    Ortin, Francisco
    [J]. SISTEMAS E TECNOLOGIAS DE INFORMACAO, VOL I, 2011, : 54 - +