English
Related papers

Related papers: Critical Sections Are Not Per-Thread: A Trace Sema…

200 papers

Synthesis is a particularly challenging problem for concurrent programs. At the same time it is a very promising approach, since concurrent programs are difficult to get right, or to analyze with traditional verification techniques. This…

Formal Languages and Automata Theory · Computer Science 2015-06-09 Anca Muscholl

Network protocols are programs with inputs and outputs that follow predefined communication patterns to synchronize and exchange information. There are many protocols and each serves a different purpose, e.g., routing, transport, secure…

Cryptography and Security · Computer Science 2025-11-04 Max von Hippel

In this paper we define critical graphs as minimal graphs that support a given set of rates for the index coding problem, and study them for both the one-shot and asymptotic setups. For the case of equal rates, we find the critical graph…

Information Theory · Computer Science 2014-04-15 Mehrdad Tahmasbi , Amirbehshad Shahrasbi , Amin Gohari

Trace theory is a principled framework for defining equivalence relations for concurrent program runs based on a commutativity relation over the set of atomic steps taken by individual program threads. Its simplicity, elegance, and…

Formal Languages and Automata Theory · Computer Science 2023-10-27 Azadeh Farzan , Umang Mathur

The evaluation of logic locking methods has long been predicated on an implicit assumption that only the correct key can unveil the true functionality of a protected circuit. Consequently, a locking technique is deemed secure if it resists…

Cryptography and Security · Computer Science 2024-08-26 Yinghua Hu , Hari Cherupalli , Mike Borza , Deepak Sherlekar

Locks have been widely used as an effective synchronization mechanism among processes and threads. However, we observe that a large number of false inter-thread dependencies (i.e., unnecessary lock contentions) exist during the program…

Programming Languages · Computer Science 2015-04-22 Long Zheng , Xiaofei Liao , Bingsheng He , Song Wu , Hai Jin

Deadlocks occur in concurrent programs as a consequence of cyclic resource acquisition between threads. In this paper we present a novel type system that guarantees deadlock freedom for a language with references, unstructured locking…

Programming Languages · Computer Science 2011-10-20 Prodromos Gerakios , Nikolaos Papaspyrou , Konstantinos Sagonas

Constraint Handling Rules (CHR) is a declarative rule-based formalism and language. Concurrency is inherent as rules can be applied to subsets of constraints in parallel. Parallel implementations of CHR, be it in software, be it in…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-08-24 Thom Frühwirth , Daniel Gall

Applications running in modern multithreaded environments are sometimes \emph{over-threaded}. The excess threads do not improve performance, and in fact may act to degrade performance via \emph{scalability collapse}. Often, such software…

Distributed, Parallel, and Cluster Computing · Computer Science 2017-06-13 Dave Dice

Range locks are a synchronization construct designed to provide concurrent access to multiple threads (or processes) to disjoint parts of a shared resource. Originally conceived in the file system context, range locks are gaining increasing…

Operating Systems · Computer Science 2020-06-23 Alex Kogan , Dave Dice , Shady Issa

Locking protocol is an essential component in resource management of real-time systems, which coordinates mutually exclusive accesses to shared resources from different tasks. Although the design and analysis of locking protocols have been…

Distributed, Parallel, and Cluster Computing · Computer Science 2020-03-19 Xu Jiang , Nan Guan , He Du , Weichen Liu , Wang Yi

The recent advancements in multicore machines highlight the need to simplify concurrent programming in order to leverage their computational power. One way to achieve this is by designing efficient concurrent data structures (e.g. stacks,…

Distributed, Parallel, and Cluster Computing · Computer Science 2021-03-31 Nikolaos D. Kallimanis

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 performance of multiprocessor synchronization and locking protocols is a key factor to utilize the computation power of multiprocessor systems under real-time constraints. While multiple protocols have been developed in the past…

Operating Systems · Computer Science 2020-07-17 Jian-Jia Chen , Junjie Shi , Georg von der Brüggen , Niklas Ueter

This paper considers the modeling and the analysis of the performance of lock-free concurrent data structures. Lock-free designs employ an optimistic conflict control mechanism, allowing several processes to access the shared data object at…

Data Structures and Algorithms · Computer Science 2015-08-17 Aras Atalar , Paul Renaud-Goud , Philippas Tsigas

Previous work in the area of tracing CLP(FD) programs mainly focuses on providing information about control of execution and domain modification. In this paper, we present a trace structure that provides information about additional…

Software Engineering · Computer Science 2007-05-23 Magnus Agren , Tamas Szeredi , Nicolas Beldiceanu , Mats Carlsson

Threads as considered in basic thread algebra are primarily looked upon as behaviours exhibited by sequential programs on execution. It is a fact of life that sequential programs are often fragmented. Consequently, fragmented program…

Logic in Computer Science · Computer Science 2011-06-17 J. A. Bergstra , C. A. Middelburg

The C/C++ memory model provides an interface and execution model for programmers of concurrent (shared-variable) code. It provides a range of mechanisms that abstract from underlying hardware memory models -- that govern how multicore…

Programming Languages · Computer Science 2022-04-08 Robert J. Colvin

Dynamic analyses are a standard approach to analyzing and testing concurrent programs. Such techniques observe program traces and analyze them to infer the presence or absence of bugs. At its core, each analysis maintains a partial order…

Programming Languages · Computer Science 2024-04-01 Hünkar Can Tunç , Ameya Prashant Deshmukh , Berk Çirisci , Constantin Enea , Andreas Pavlogiannis

We present a static analysis by Abstract Interpretation to check for run-time errors in parallel and multi-threaded C programs. Following our work on Astr\'ee, we focus on embedded critical programs without recursion nor dynamic memory…

Programming Languages · Computer Science 2019-03-14 Antoine Miné