DOE Patents title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: Atomicity violation detection using access interleaving invariants

Abstract

During execution of a program, the situation where the atomicity of a pair of instructions that are to be executed atomically is violated is identified, and a bug is detected as occurring in the program at the pair of instructions. The pairs of instructions that are to be executed atomically can be identified in different manners, such as by executing a program multiple times and using the results of those executions to automatically identify the pairs of instructions.

Inventors:
; ;
Issue Date:
Research Org.:
Univ. of Illinois at Urbana-Champaign, IL (United States)
Sponsoring Org.:
USDOE
OSTI Identifier:
1092760
Patent Number(s):
8533681
Application Number:
11/857,925
Assignee:
The Board of Trustees of the University of Illinois (Urbana, IL)
Patent Classifications (CPCs):
G - PHYSICS G06 - COMPUTING G06F - ELECTRIC DIGITAL DATA PROCESSING
DOE Contract Number:  
FG02-05ER25688
Resource Type:
Patent
Resource Relation:
Patent File Date: 2007 Sep 19
Country of Publication:
United States
Language:
English
Subject:
97 MATHEMATICS AND COMPUTING

Citation Formats

Zhou, Yuanyuan, Lu, Shan, and Tucek, Joseph Andrew. Atomicity violation detection using access interleaving invariants. United States: N. p., 2013. Web.
Zhou, Yuanyuan, Lu, Shan, & Tucek, Joseph Andrew. Atomicity violation detection using access interleaving invariants. United States.
Zhou, Yuanyuan, Lu, Shan, and Tucek, Joseph Andrew. Tue . "Atomicity violation detection using access interleaving invariants". United States. https://www.osti.gov/servlets/purl/1092760.
@article{osti_1092760,
title = {Atomicity violation detection using access interleaving invariants},
author = {Zhou, Yuanyuan and Lu, Shan and Tucek, Joseph Andrew},
abstractNote = {During execution of a program, the situation where the atomicity of a pair of instructions that are to be executed atomically is violated is identified, and a bug is detected as occurring in the program at the pair of instructions. The pairs of instructions that are to be executed atomically can be identified in different manners, such as by executing a program multiple times and using the results of those executions to automatically identify the pairs of instructions.},
doi = {},
journal = {},
number = ,
volume = ,
place = {United States},
year = {Tue Sep 10 00:00:00 EDT 2013},
month = {Tue Sep 10 00:00:00 EDT 2013}
}

Works referenced in this record:

Bug isolation via remote program sampling
conference, January 2003

  • Liblit, Ben; Aiken, Alex; Zheng, Alice X.
  • Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation - PLDI '03
  • https://doi.org/10.1145/781131.781148

AVIO: detecting atomicity violations via access interleaving invariants
conference, January 2006

  • Lu, Shan; Tucek, Joseph; Qin, Feng
  • Proceedings of the 12th international conference on Architectural support for programming languages and operating systems - ASPLOS-XII
  • https://doi.org/10.1145/1168857.1168864

Language support for lightweight transactions
journal, November 2003


AccMon: Automatically Detecting Memory-Related Bugs via Program Counter-Based Invariants
conference, December 2005


Coupled memory multiprocessor computer system including cache coherency management protocols
patent, April 1994


A type and effect system for atomicity
journal, May 2003


Improving the accuracy of data race detection
conference, January 1991

  • Netzer, Robert H. B.; Miller, Barton P.
  • Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming - PPOPP '91
  • https://doi.org/10.1145/109625.109640

How fail-stop are faulty programs?
conference, January 1998

  • Chandra, S.; Chen, P. M.
  • 28th International Symposium on Fault Tolerant Computing, Digest of Papers. Twenty-Eighth Annual International Symposium on Fault-Tolerant Computing (Cat. No.98CB36224)
  • https://doi.org/10.1109/FTCS.1998.689475

Quickly detecting relevant program invariants
conference, January 2000


Transactional Memory Coherence and Consistency
journal, March 2004


Unbounded Transactional Memory
conference, January 2005


CORD: Cost-effective (and nearly overhead-free) Order-Recording and Data race detection
conference, January 2006


Online data-race detection via coherency guarantees
conference, January 1996


Efficient and precise datarace detection for multithreaded object-oriented programs
journal, May 2002


Protocol-based data-race detection
conference, January 1998


Piranha: a scalable architecture based on single-chip multiprocessing
conference, January 2000

  • Barroso, Luiz André; Gharachorloo, Kourosh; McNamara, Robert
  • Proceedings of the 27th annual international symposium on Computer architecture - ISCA '00
  • https://doi.org/10.1145/339647.339696

SimFlex: a fast, accurate, flexible full-system simulation framework for performance evaluation of server architecture
journal, March 2004


Ownership types for safe programming: preventing data races and deadlocks
journal, November 2002


RacerX: effective, static detection of race conditions and deadlocks
journal, December 2003


Race checking by context inference
journal, June 2004


Eraser: a dynamic data race detector for multithreaded programs
journal, November 1997


An empirical comparison of monitoring algorithms for access anomaly detection
journal, March 1990


Valgrind
journal, October 2003


A "flight data recorder" for enabling full-system multiprocessor deterministic replay
conference, January 2003


Efficient on-the-fly data race detection in multithreaded C++ programs
conference, January 2003


ReEnact: using thread-level speculation mechanisms to debug data races in multithreaded codes
conference, January 2003


Object race detection
conference, January 2001

  • von Praun, Christoph; Gross, Thomas R.
  • Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications - OOPSLA '01
  • https://doi.org/10.1145/504282.504288

Time, clocks, and the ordering of events in a distributed system
journal, July 1978


Associating synchronization constraints with data in an object-oriented language
conference, January 2006


Static analysis of atomicity for programs with non-blocking synchronization
conference, January 2005


Type-based race detection for Java
conference, January 2000


iWatcher: Efficient Architectural Support for Software Debugging
journal, March 2004


Identifying loops using DJ graphs
journal, November 1996


Pin: building customized program analysis tools with dynamic instrumentation
journal, June 2005


A serializability violation detector for shared-memory server programs
journal, June 2005


Tracking down software bugs using automatic anomaly detection
conference, January 2002


The SPLASH-2 programs: characterization and methodological considerations
journal, May 1995


Atomizer: a dynamic atomicity checker for multithreaded programs
conference, January 2004


Finding stale-value errors in concurrent programs
journal, August 2004


Transactional memory: architectural support for lock-free data structures
conference, January 1993


Runtime analysis of atomicity for multithreaded programs
journal, February 2006


BugNet: Continuously Recording Program Execution for Deterministic Replay Debugging
journal, May 2005


Automated type-based analysis of data races and atomicity
conference, January 2005

  • Sasturkar, Amit; Agarwal, Rahul; Wang, Liqiang
  • Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming - PPoPP '05
  • https://doi.org/10.1145/1065944.1065956

RaceTrack: efficient detection of data race conditions via adaptive tracking
conference, January 2005


An efficient cache-based access anomaly detection scheme
journal, April 1991


Hybrid dynamic data race detection
journal, October 2003


Hardware and Binary Modification Support for Code Pointer Protection From Buffer Overflow
conference, January 2004