A Unified Approach to Eliminating Concurrency Bugs via Control Synthesis

نویسندگان

  • Peng Liu
  • Charles Zhang
  • Yin Wang
  • Terence Kelly
چکیده

Concurrency bugs threaten the safety of shared-memory multithreaded programs. The automated fixing techniques add new synchronization constructs; existing techniques may add too many synchronization constructs, sacrifice too much concurrency, or introduce deadlocks. The underlying problem is that existing techniques cannot simultaneously fix different bugs, especially different types of bugs, while restricting concurrency as little as possible. We present a unified concurrency bug avoidance approach to fix different types of bugs simultaneously. Our approach minimizes the number of synchronization constructs added while restricting concurrency as little as possible and guaranteeing that no new deadlocks are introduced. Our approach employs a unified vector representation of different types of bugs and reduces bug fixing to the well-studied problem of vector separation. Experiments on 14 real Java programs show that our solution incurs around 5% overhead, and typically incurs 6%-10% smaller overhead as compared to our previous Axis solution.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Eliminating Concurrency Bugs in Multithreaded Software: An Approach Based on Control of Petri Nets

We describe the Gadara project, a research effort whose goal is to eliminate certain classes of concurrency bugs in multithreaded software by controlling the execution of programs at run-time. The Gadara process involves three stages: modeling of the source code at compile time in the form of a Petri net, feedback control synthesis, and control logic implementation into the source code. The fee...

متن کامل

Efficient Synthesis for Concurrency by Semantics-Preserving Transformations

We develop program synthesis techniques that can help programmers fix concurrency-related bugs. We make two new contributions to synthesis for concurrency, the first improving the efficiency of the synthesized code, and the second improving the efficiency of the synthesis procedure itself. The first contribution is to have the synthesis procedure explore a variety of (sequential) semantics-pres...

متن کامل

Combining Model Checking and Discrete-Event Supervisor Synthesis

We present an approach to facilitate the design of provably correct concurrent systems by recasting recent work that uses discrete-event supervisor synthesis to automatically generate concurrency control code in Promela and combine it with model checking in Spin. This approach consists of the possibly repeated execution of three steps: manual preparation, automatic synthesis, and semi-automatic...

متن کامل

RADBench: A Concurrency Bug Benchmark Suite

Testing and debugging tools for concurrent programs are often validated on known bugs. To aid the development of these tools, we present the Race, Atomicity, and Deadlock Benchmark (RADBench) suite. The RADBench suite contains the full source of 10 real concurrency bugs found in large open-source software projects including Mozilla SpiderMonkey, Mozilla NSPR, Memcached, Apache Web Server, and G...

متن کامل

Understanding , Detecting and Exposing Concurrency Bugs

Software is pervasive in our daily lives. Unfortunately, software bugs can severely affect the dependability and security of software systems. Among all types of software bugs, the concurrency bug is one of the most troublesome and important. Concurrency bugs widely exist in concurrent programs. They are difficult to detect and diagnose because of their unique non-determinism. In the real world...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2013