scispace - formally typeset
Proceedings ArticleDOI

Non-concurrency analysis

Stephen P. Masticola, +1 more
- Vol. 28, Iss: 7, pp 129-138
TLDR
This work presents a framework for non-concurrency analysis, capable of incorporating previous analysis algorithms [CS88, DS92] and improving upon them and exhibits dramatic accuracy improvements over [DS91], when the latter is used as a stand-alone algorithm.
Abstract
Non-concurrency analysis is a set of techniques for statically identifying pairs (or sets) of statements in a concurrent program which can never happen together. This information aids programmers in debugging and manually optimizing programs, improves the precision of data flow analysis, enables optimized translation of rendezvous, facilitates dead code elimination and other automatic optimizations, and allows anomaly detection in explicitly parallel programs. We present a framework for non-concurrency analysis, capable of incorporating previous analysis algorithms [CS88, DS92] and improving upon them. We show general theoretical results which are useful in estimating non-concurrency, and examples of non-concurrency analysis frameworks for two synchronization primitives: the Ada rendezvous and binary semaphores. Both of these frameworks have a low-order polynomial bound on worst-case solution time. We provide experimental evidence that static non-concurrency analysis of Ada programs can be accomplished in a reasonable time, and is generally quite accurate. Our framework, and the set of refinement components we develop, also exhibits dramatic accuracy improvements over [DS91], when the latter is used as a stand-alone algorithm, as demonstrated by our experiments.

read more

Citations
More filters
Proceedings ArticleDOI

Model checking for programming languages using VeriSoft

TL;DR: This paper discusses how model checking can be extended to deal directly with "actual" descriptions of concurrent systems, e.g., implementations of communication protocols written in programming languages such as C or C++, and introduces a new search technique that is suitable for exploring the state spaces of such systems.
Journal ArticleDOI

Context-sensitive synchronization-sensitive analysis is undecidable

TL;DR: The article shows that an analysis that is simultaneously both context-sensitive and synchronization-sensitive (that is, a context- sensitive analysis that precisely takes into account the constraints on execution order imposed by the synchronization statements in the program) is impossible even for the simplest of analysis problems.
Proceedings ArticleDOI

Data flow analysis for verifying properties of concurrent programs

TL;DR: An approach, based on data flow analysis, that can provide cost-effective analysis of concurrent programs with respect to explicitly stated correctness properties and implemented a prototype toolset that automates the analysis for programs with explicit tasking and rendezvous style communication.
Journal ArticleDOI

Software Model Checking: The VeriSoft Approach

TL;DR: It is discussed in this paper how model checking can be extended to analyze arbitrary software, such as implementations of communication protocols written in programming languages like C or C++, and a search technique that is suitable for exploring the state spaces of such systems.
Proceedings ArticleDOI

Reducing false sharing on shared memory multiprocessors through compile time data transformations

TL;DR: Comp compiler algorithms that analyze explicitly parallel programs and restructure their shared data to reduce the number of false sharing misses always outperform programmer efforts to eliminate false sharing.
References
More filters

Co-operating sequential processes

TL;DR: The final author version and the galley proof are versions of the publication after peer review that features the final layout of the paper including the volume, issue and page numbers.
Journal ArticleDOI

A general-purpose algorithm for analyzing concurrent programs

TL;DR: A static analysis algorithm is presented here that addresses the following problems: how processes are synchronized, what determines when programs are run in parallel, and how errors are detected in the synchronization structure.
Journal ArticleDOI

Global Data Flow Analysis and Iterative Algorithms

TL;DR: Conditions under which the bound on the number of iterations required for propagation algorithms when the data is represented by bit vectors and depth-first ordering of the flow graph is used are considered are considered.
Journal ArticleDOI

Complexity of analyzing the synchronization structure of concurrent programs

TL;DR: This paper formalizes the notion of the synchronization structure of concurrent programs that use the rendezvous (or similar) mechanism for achieving synchronization and presents complexity results which indicate what may be expected and shed light on the difficulty of correctly constructing concurrent systems.
Journal ArticleDOI

Properties of data flow frameworks: a unified model

TL;DR: A comprehensive overview of data flow frameworks and their characterizing properties is presented, to clarify property definitions and demonstrate their interrelation.
Related Papers (5)