English
Related papers

Related papers: A Better Reduction Theorem for Store Buffers

200 papers

We present a new soundness proof of Concurrent Separation Logic (CSL) based on a structural operational semantics (SOS). We build on two previous proofs and develop new auxiliary notions to achieve the goal. One uses a denotational…

Logic in Computer Science · Computer Science 2017-12-06 Pedro Soares , António Ravara , Simão Melo de Sousa

Design of an efficient thread-safe concurrent data structure is a balancing act between its implementation complexity and performance. Lock-based concurrent data structures, which are relatively easy to derive from their sequential…

Programming Languages · Computer Science 2024-08-27 Callista Le , Kiran Gopinathan , Koon Wen Lee , Seth Gilbert , Ilya Sergey

The crux of software transactional memory (STM) is to combine an easy-to-use programming interface with an efficient utilization of the concurrent-computing abilities provided by modern machines. But does this combination come with an…

Distributed, Parallel, and Cluster Computing · Computer Science 2013-06-28 Petr Kuznetsov , Srivatsan Ravi

In the modern era of multi-core systems, the main aim is to utilize the cores properly. This utilization can be done by concurrent programming. But developing a flawless and well-organized concurrent program is difficult. Software…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-05-06 Chirag Juyal , Sandeep Kulkarni , Sweta Kumari , Sathya Peri , Archit Somani

Proving the linearizability of highly concurrent data structures, such as those using optimistic concurrency control, is a challenging task. The main difficulty is in reasoning about the view of the memory obtained by the threads, because…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-08-07 Yotam M. Y. Feldman , Constantin Enea , Adam Morrison , Noam Rinetzky , Sharon Shoham

Proving only over source code that programs do not leak sensitive data leaves a gap between reasoning and reality that can only be filled by accounting for the behaviour of the compiler. Furthermore, software does not always have the luxury…

Programming Languages · Computer Science 2023-06-22 Robert Sison , Toby Murray

To implement a linearizable shared memory in synchronous message-passing systems it is necessary to wait for a time linear to the uncertainty in the latency of the network for both read and write operations. Waiting only for one of them…

Distributed, Parallel, and Cluster Computing · Computer Science 2016-07-28 Matthieu Perrin , Matoula Petrolia , Achour Mostefaoui , Claude Jard

Information flow security ensures that the secret data manipulated by a program does not influence its observable output. Proving information flow security is especially challenging for concurrent programs, where operations on secret data…

Cryptography and Security · Computer Science 2023-04-12 Marco Eilers , Thibault Dardinier , Peter Müller

We propose a memory-model-aware static program analysis method for accurately analyzing the behavior of concurrent software running on processors with weak consistency models such as x86-TSO, SPARC-PSO, and SPARC-RMO. At the center of our…

Programming Languages · Computer Science 2017-09-29 Markus Kusano , Chao Wang

A key computational question underpinning the automated testing and verification of concurrent programs is the consistency question - given a partial execution history, can it be completed in a consistent manner? Due to its importance,…

Programming Languages · Computer Science 2025-12-02 Zheng Shi , Lasse Møldrup , Umang Mathur , Andreas Pavlogiannis

Verifying fine-grained optimistic concurrent programs remains an open problem. Modern program logics provide abstraction mechanisms and compositional reasoning principles to deal with the inherent complexity. However, their use is mostly…

Programming Languages · Computer Science 2022-11-14 Roland Meyer , Thomas Wies , Sebastian Wolff

Cache coherence scalability is a big challenge in shared memory systems. Traditional protocols do not scale due to the storage and traffic overhead of cache invalidation. Tardis, a recently proposed coherence protocol, removes cache…

Hardware Architecture · Computer Science 2016-07-28 Xiangyao Yu , Hongzhe Liu , Ethan Zou , Srinivas Devadas

We study the design of storage-efficient algorithms for emulating atomic shared memory over an asynchronous, distributed message-passing system. Our first algorithm is an atomic single-writer multi-reader algorithm based on a novel…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-06-27 Marwen Zorgui , Robert Mateescu , Filip Blagojevic , Cyril Guyot , Zhiying Wang

The verification of concurrent programs remains an open challenge due to the non-determinism in inter-process communication. One algorithmic problem in this challenge is the consistency verification of concurrent executions. Consistency…

Programming Languages · Computer Science 2021-09-07 Truc Lam Bui , Krishnendu Chatterjee , Tushar Gautam , Andreas Pavlogiannis , Viktor Toman

Transactional memory (TM) allows concurrent processes to organize sequences of operations on shared \emph{data items} into atomic transactions. A transaction may commit, in which case it appears to have executed sequentially or it may…

Distributed, Parallel, and Cluster Computing · Computer Science 2015-11-16 Petr Kuznetsov , Srivatsan Ravi

Modern distributed systems often achieve availability and scalability by providing consistency guarantees about the data they manage weaker than linearizability. We consider a class of such consistency models that, despite this weakening,…

Distributed, Parallel, and Cluster Computing · Computer Science 2017-07-31 Alexey Gotsman , Sebastian Burckhardt

In typical embedded applications, the precise execution time of the program does not matter, and it is sufficient to meet a real-time deadline. However, modern applications in information security have become much more time-sensitive, due…

Cryptography and Security · Computer Science 2020-05-07 Pantea Kiaei , Patrick Schaumont

Proving the correctness of programs written for multiple processors is a challenging problem, due in no small part to the weaker memory guarantees afforded by most modern architectures. In particular, the existence of store buffers means…

Logic in Computer Science · Computer Science 2014-06-09 Benjamin Selfridge

Persistent Memory (PM) is a new storage technology thatbrings high performance, byte addressability, and persistency for a lesser cost than DRAM. Due to cache volatility and store reordering, developers must use explicit instructions (e.g.:…

Emerging Technologies · Computer Science 2026-03-03 Sebastião Amaro , João Gonçalves , Miguel Matos

Concurrent linearizable access to shared objects can be prohibitively expensive in a high contention workload. Many applications apply ad-hoc techniques to eliminate the need of synchronous atomic updates, which may result in…

Distributed, Parallel, and Cluster Computing · Computer Science 2017-05-11 Deepthi Devaki Akkoorath , José Brandão , Annette Bieniusa , Carlos Baquero