Szumo: Synchronization Contracts for Object-Oriented Languages

This project is currently supported under the NSF grant CCF 0702667. Parts of this work were previously supported by the Office of Naval Research grant N00014-01-1-0744 and by NSF grants CCR-9984727 and EIA-0000433.

Introduction

The expressive power afforded by the use of concurrency comes at the expense of increased complexity. Without proper synchronization, concurrent access to shared objects can lead to race conditions, and incorrect synchronization logic can lead to starvation and/or deadlock. Moreover, concurrency confounds the development of reusable software modules because synchronization policies and decisions are difficult to localize into a single software module. Nowhere is this complexity more evident than in multi-threaded applications in which concurrent threads operate on shared data. Whereas parallel and distributed systems are becoming increasingly important, the safe and reliable use of concurrency in multi-threaded shared-memory systems has emerged as a fundamental and pervasive engineering concern, similar in nature to safety, efficiency, and scalability.

The Synchronization Units Model (Szumo) is a powerful model of synchronization contracts for object-oriented languages that addresses this complexity. In lieu of writing low-level code to acquire and release shared objects, programmers declare synchronization contracts in a module's interface. The contracts declare the circumstances under which the modules in a program require exclusive use of shared objects in a form that permits automated inference of how to synchronize processes in using these objects. At run time, a thread middleware negotiates the contracts on behalf of processes, ensuring that the contracts of all modules are met while simultaneously guarding against data races and deadlocks that can feasibly be avoided. Separating concurrency concerns from functional code simplifies programming, and localizing concurrency concerns in module interfaces simplifies reasoning.

Szumo was originally named The Universe Model and was developed by Dr. Reimer Behrends as part of his PhD research.

Personnel

Kurt Stirewalt
Laurie Dillon
Scott D. Fleming
Yi Huang
Beata Sarna-Starosta

Publications

Software