English
Related papers

Related papers: Static Analysis of Lockless Microcontroller C Prog…

200 papers

The lock is a building-block synchronization primitive that enables mutually exclusive access to shared data in shared-memory parallel programs. Mutual exclusion is typically achieved by guarding the code that accesses the shared data with…

Distributed, Parallel, and Cluster Computing · Computer Science 2023-04-25 Vivek Shahare , Milind Chabbi , Nikhil Hegde

In this paper we present two analytical frameworks for calculating the performance of lock-free data structures. Lock-free data structures are based on retry loops and are called by application-specific routines. In contrast to previous…

Distributed, Parallel, and Cluster Computing · Computer Science 2016-11-18 Aras Atalar , Paul Renaud-Goud , Philippas Tsigas

Many parallel programming models guarantee that if all sequentially consistent (SC) executions of a program are free of data races, then all executions of the program will appear to be sequentially consistent. This greatly simplifies…

Programming Languages · Computer Science 2023-07-21 Wenhao Wu , Jan Hückelheim , Paul D. Hovland , Ziqing Luo , Stephen F. Siegel

Race conditions are a class of bugs in software where concurrent accesses to shared resources are not protected from each other. Consequences of race conditions include privilege escalation, denial of service, and memory corruption which…

Software Engineering · Computer Science 2024-04-02 Niels Dossche , Bert Abrath , Bart Coppens

Static program analysis today takes an analytical approach which is quite suitable for a well-scoped system. Data- and control-flow is taken into account. Special cases such as pointers, procedures, and undefined behavior must be handled. A…

Software Engineering · Computer Science 2019-11-13 Marcel Böhme

We consider the problem of static deadlock detection for programs in the Go programming language which make use of synchronous channel communications. In our analysis, regular expressions extended with a fork operator capture the…

Programming Languages · Computer Science 2016-09-05 Kai Stadtmüller , Martin Sulzmann , Peter Thiemann

In a process algebra with hiding and recursion it is possible to create processes which compute internally without ever communicating with their environment. Such processes are said to diverge or livelock. In this paper we show how it is…

Logic in Computer Science · Computer Science 2015-07-01 Joel Ouaknine , Hristina Palikareva , A. W. Roscoe , James Worrell

The trade-off between coarse- and fine-grained locking is a well understood issue in operating systems. Coarse-grained locking provides lower overhead under low contention, fine-grained locking provides higher scalability under contention,…

Operating Systems · Computer Science 2016-09-29 Kevin Elphinstone , Amirreza Zarrabi , Adrian Danis , Yanyan Shen , Gernot Heiser

Software debugging is a very time-consuming process, which is even worse for multi-threaded programs, due to the non-deterministic behavior of thread-scheduling algorithms. However, the debugging time may be greatly reduced, if automatic…

Logic in Computer Science · Computer Science 2015-09-09 Erickson H. da S. Alves , Lucas C. Cordeiro , Eddie B. de Lima Filho

Checkpoint/Restart (C/R) saves the running state of the programs periodically, which consumes considerable system resources. We observe that not every piece of data is involved in the computation in typical HPC applications; such unused…

Distributed, Parallel, and Cluster Computing · Computer Science 2026-02-19 Xin Huang , Weiping Zhang , Shiman Meng , Wubiao Xu , Xiang Fu , Luanzheng Guo , Kento Sato

We show that abstract interpretation-based static program analysis can be made efficient and precise enough to formally verify a class of properties for a family of large programs with few or no false alarms. This is achieved by refinement…

Programming Languages · Computer Science 2016-08-14 Bruno Blanchet , Patrick Cousot , Radhia Cousot , Jerôme Feret , Laurent Mauborgne , Antoine Miné , David Monniaux , Xavier Rival

This report describes an implementation of a non-blocking concurrent shared-memory hash trie based on single-word compare-and-swap instructions. Insert, lookup and remove operations modifying different parts of the hash trie can be run…

Data Structures and Algorithms · Computer Science 2017-09-19 Aleksandar Prokopec , Phil Bagwell , Martin Odersky

Program analysis is a technique to reason about programs without executing them, and it has various applications in compilers, integrated development environments, and security. In this work, we present a machine learning pipeline that…

Programming Languages · Computer Science 2017-11-06 Wasuwee Sodsong , Bernhard Scholz , Sanjay Chawla

We investigate the stability problem for discrete-time stochastic switched linear systems under the specific scenarios where information about the switching patterns and the probability of switches are not available. Our analysis focuses on…

Systems and Control · Computer Science 2018-04-23 Ahmet Cetinkaya , Hideaki Ishii , Tomohisa Hayakawa

Designing a static analysis is generally a substantial undertaking, requiring significant expertise in both program analysis and the domain of the program analysis, and significant development resources. As a result, most program analyses…

Programming Languages · Computer Science 2018-10-17 Colin S. Gordon

We present a framework for the efficient application of stateless model checking (SMC) to concurrent programs running under the Release-Acquire (RA) fragment of the C/C++11 memory model. Our approach is based on exploring the possible…

Programming Languages · Computer Science 2018-09-12 Parosh Aziz Abdulla , Mohamed Faouzi Atig , Bengt Jonsson , Tuan Phong Ngo

Nonlinear systems can be probed by driving them with two or more pure tones while measuring the intermodulation products of the drive tones in the response. We describe a digital lock-in analyzer which is designed explicitly for this…

Instrumentation and Detectors · Physics 2013-06-11 Erik A. Tholen , Daniel Platz , Daniel Forchheimer , Vivien Schuler , Mats O. Tholen , Carsten Hutter , David B. Haviland

The importance of preventing microarchitectural timing side channels in security-critical applications has surged in recent years. Constant-time programming has emerged as a best-practice technique for preventing the leakage of secret…

Cryptography and Security · Computer Science 2024-03-12 Lucas Deutschmann , Johannes Mueller , Mohammad Rahmani Fadiheh , Dominik Stoffel , Wolfgang Kunz

Soft errors are a type of transient digital signal corruption that occurs in digital hardware components such as the internal flip-flops of CPU pipelines, the register file, memory cells, and even internal communication buses. Soft errors…

Software Engineering · Computer Science 2026-05-05 Yousun Ko , Bernd Burgstaller

Static performance estimation is essential during compile-time analysis, yet traditional runtime-based methods are costly and platform-dependent. We investigate mems, the number of memory accesses, as a static and architecture-independent…

Software Engineering · Computer Science 2025-05-13 Liwei Zhang , Baoquan Cui , Xutong Ma , Jian Zhang