首页> 外文会议> >Library Abstraction for C/C++ Concurrency
【24h】

Library Abstraction for C/C++ Concurrency

机译:C / C ++并发的库抽象

获取原文

摘要

When constructing complex concurrent systems, abstraction is vital: programmers should be able to reason about concurrent libraries in terms of abstract specifications that hide the implementation details. Relaxed memory models present substantial challenges in this respect, as libraries need not provide sequentially consistent abstractions: to avoid unnecessary synchronisation, they may allow clients to observe relaxed memory effects, and library specifications must capture these. In this paper, we propose a criterion for sound library abstraction in the new C11 and C++11 memory model, generalising the standard sequentially consistent notion of linearizability. We prove that our criterion soundly captures all client-library interactions, both through call and return values, and through the subtle synchronisation effects arising from the memory model. To illustrate our approach, we verify implementations against specifications for the lock-free Treiber stack and a producer-consumer queue. Ours is the first approach to compositional reasoning for concurrent C11/C++11 programs.
机译:在构造复杂的并发系统时,抽象至关重要:程序员应该能够根据隐藏实现细节的抽象规范来推理并发库。宽松的内存模型在这方面提出了严峻的挑战,因为库不需要提供顺序一致的抽象:为了避免不必要的同步,它们可以允许客户端观察松弛的内存效果,而库规范必须捕获这些。在本文中,我们提出了一种新的C11和C ++ 11内存模型中的声音库抽象标准,概括了线性可线性化的标准顺序一致概念。我们证明了我们的标准可以通过调用和返回值以及通过内存模型产生的微妙的同步效应来合理地捕获所有客户端与库的交互。为了说明我们的方法,我们根据无锁Treiber堆栈和生产者-消费者队列的规范验证了实现。我们的方法是并发C11 / C ++ 11程序组成推理的第一种方法。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号