首页> 外文会议>Annual ACM SIGPLAN-SIGACT symposium on principles of programming languages >Subjective Auxiliary State for Coarse-Grained Concurrency
【24h】

Subjective Auxiliary State for Coarse-Grained Concurrency

机译:粗粒度并发的主观辅助状态

获取原文

摘要

From Owicki-Gries' Resource Invariants and Jones' Rely/Guarantee to modern variants based on Separation Logic, axiomatic logics for concurrency require auxiliary state to explicitly relate the effect of all threads to the global invariant on the shared resource. Unfortunately, auxiliary state gives the proof of an individual thread access to the auxiliaries of all other threads. This makes proofs sensitive to the global context, which prevents local reasoning and compositionality. To tame this historical difficulty of auxiliary state, we propose subjective auxiliary state, whereby each thread is verified using a self view (i.e., the thread's effect on the shared resource) and an other view (i.e., the collective effect of all the other threads). Subjectivity generalizes auxiliary state from stacks and heaps to user-chosen partial commutative monoids, which can eliminate the dependence on the global thread structure. We employ subjectivity to formulate Subjective Concurrent Separation Logic as a combination of subjective auxiliary state and Concurrent Separation Logic. The logic yields simple, compositional proofs of coarse-grained concurrent programs that use auxiliary state, and scales to support higher-order recursive procedures that can themselves fork new threads. We prove the soundness of the logic with a novel denotational semantics of action trees and a definition of safety using rely/guarantee transitions over a large subjective footprint. We have mechanized the denotational semantics, logic, metatheory, and a number of examples by a shallow embedding in Coq.
机译:从Owicki-Gries的Resource Invariant和Jones'Rely / Guarantee到基于Separation Logic的现代变体,并发公理逻辑都需要辅助状态,以将所有线程的作用明确关联到共享资源上的全局不变式。不幸的是,辅助状态提供了单个线程访问所有其他线程的辅助线程的证明。这使得证明对全局上下文敏感,从而阻止了局部推理和组合。为了解决这种辅助状态的历史难题,我们提出了主观辅助状态,即使用自我视图(即,线程对共享资源的影响)和另一个视图(即,所有其他线程的集体影响)来验证每个线程。 )。主观性将辅助状态从堆栈和堆推广到用户选择的部分可交换单项式,这可以消除对全局线程结构的依赖。我们采用主观性来将主观并发分离逻辑表述为主观辅助状态和并发分离逻辑的组合。该逻辑生成使用辅助状态的粗粒度并发程序的简单组成证明,并进行缩放以支持本身可以派生新线程的高阶递归过程。我们用动作树的新颖指称语义和在较大主观足迹上使用依赖/保证过渡的安全性定义来证明逻辑的健全性。我们通过在Coq中进行浅层嵌入,机械化了指称语义,逻辑,元理论和许多示例。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号