Safe Non-blocking Synchronization in Ada2x

被引:1
作者
Blieberger, Johann [1 ]
Burgstaller, Bernd [2 ]
机构
[1] TU Wien, Inst Comp Engn, Automat Syst Grp, Vienna, Austria
[2] Yonsei Univ, Dept Comp Sci, Seoul, South Korea
来源
RELIABLE SOFTWARE TECHNOLOGIES - ADA-EUROPE 2018 | 2018年 / 10873卷
基金
奥地利科学基金会; 新加坡国家研究基金会;
关键词
MEMORY; MODELS;
D O I
10.1007/978-3-319-92432-8_4
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The mutual-exclusion property of locks stands in the way to scalability of parallel programs on many-core architectures. Locks do not allow progress guarantees, because a task may fail inside a critical section and keep holding a lock that blocks other tasks from accessing shared data. With non-blocking synchronization, the drawbacks of locks are avoided by synchronizing access to shared data by atomic read-modify-write operations. To incorporate non-blocking synchronization in Ada 202x, programmers must be able to reason about the behavior and performance of tasks in the absence of protected objects and rendezvous. We therefore extend Ada's memory model by synchronized types, which support the expression of memory ordering operations at a sufficient level of detail. To mitigate the complexity associated with non-blocking synchronization, we propose concurrent objects as a novel high-level language construct. Entities of a concurrent object execute in parallel, due to a fine-grained, optimistic synchronization mechanism. Synchronization is framed by the semantics of concurrent entry execution. The programmer is only required to label shared data accesses in the code of concurrent entries. Labels constitute memory-ordering operations expressed through aspects and attributes. To the best of our knowledge, this is the first approach to provide a non-blocking synchronization construct as a first-class citizen of a high-level programming language. We illustrate the use of concurrent objects by several examples.
引用
收藏
页码:53 / 69
页数:17
相关论文
共 22 条
  • [1] Memory Models: A Case for Rethinking Parallel Languages and Hardware
    Adve, Sarita V.
    Boehm, Hans-J.
    [J]. COMMUNICATIONS OF THE ACM, 2010, 53 (08) : 90 - 101
  • [2] Shared memory consistency models: A tutorial
    Adve, SV
    Gharachorloo, K
    [J]. COMPUTER, 1996, 29 (12) : 66 - &
  • [3] [Anonymous], 1990, P ISCA, DOI DOI 10.1145/325164.325100
  • [4] [Anonymous], 2014, N4296 ISOIEC
  • [5] [Anonymous], 2010, P 9 USENIX C OP SYST
  • [6] Barnes J, 2013, LNCS, V8338, DOI [10.1007/978-3-642-45210-9, DOI 10.1007/978-3-642-45210-9]
  • [7] Barnes J., 1995, LNCS, V1247, DOI [10.1007/BFb0051526, DOI 10.1007/BFB0051526]
  • [8] Blieberger J, 2018, CORR
  • [9] Foundations of the C++ concurrency memory model
    Boehm, Hans-J.
    Adve, Sarita V.
    [J]. ACM SIGPLAN NOTICES, 2008, 43 (06) : 68 - 78
  • [10] Threads cannot be implemented as a library
    Boehm, HJ
    [J]. ACM SIGPLAN NOTICES, 2005, 40 (06) : 261 - 268