Sather, a parallel object-oriented programming language developed at ICSI, offers advanced thread synchronization constructs separating locking mechanism and policies. While a lock management system provides a general locking mechanism, synchronization objects define and implement different extensible policies. Commonly used synchronization objects such as mutual exclusion and reader/writer locks are provided by the standard Sather library. Synchronization objects with more complex semantics can be defined by the user. The conjunctive and disjunctive acquisition of collections of locks and the deadlock detection are distinct features of Sather supported by the locking mechanism. This paper introduces the Sather synchronization constructs and presents the design and implementation of a lock management runtime system. We argue that a clean, object-oriented design allows us to support sophisticated synchronization policies while preserving efficiency on distributed computing platforms. The system is fully implemented and runs on several platforms including a network of symmetric multiprocessors connected by a fast, user-level, low latency communications network.
Last change: 12/11/97|
The Sather Team (email@example.com)