Efficient Extensible Synchronization in Sather

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.

[1]  Larry D. Wittie,et al.  Fast locks in distributed shared memory systems , 1994, 1994 Proceedings of the Twenty-Seventh Hawaii International Conference on System Sciences.

[2]  Claudio Fleiner,et al.  Parallel Optimizations - Advanced Constructs and Compiler Optimizations for a Parallel, Object Orien , 1997 .

[3]  E. K. Gannett,et al.  THE INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS , 1965 .

[4]  Anupam Bhide,et al.  A Highly Available Lock Manager for HA-NFS , 1992, USENIX Summer.

[5]  Tim Wilkinson,et al.  Implementing DVSM on the TOPSY multicomputer , 1992 .

[6]  Theodore Johnson,et al.  A performance comparison of fast distributed mutual exclusion algorithms , 1995, Proceedings of 9th International Parallel Processing Symposium.

[7]  Clemens A. Szyperski,et al.  Engineering a Programming Language: The Type and Class System of Sather , 1994, Programming Languages and System Architectures.

[8]  Stephen M. Omohundro,et al.  The Sather programming language , 1993 .

[9]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[10]  Brian N. Bershad,et al.  PRESTO: A system for object‐oriented parallel programming , 1988, Softw. Pract. Exp..

[11]  Thomas E. Anderson,et al.  The Performance of Spin Lock Alternatives for Shared-Memory Multiprocessors , 1990, IEEE Trans. Parallel Distributed Syst..

[12]  Santosh K. Shrivastava,et al.  The Design and Implementation of Arjuna , 1995, Comput. Syst..

[13]  Chu-cheow Lim,et al.  A Parallel Object-Oriented System for Realizing Reusable and Efficient Data Abstractions , 1993 .

[14]  Ilya Gertner,et al.  A distributed lock manager on fault tolerant MPP , 1995, Proceedings of the Twenty-Eighth Annual Hawaii International Conference on System Sciences.

[15]  Patrick Valduriez,et al.  Locking in OODBMS client supporting nested transactions , 1995, Proceedings of the Eleventh International Conference on Data Engineering.

[16]  C. A. R. Hoare,et al.  Monitors: an operating system structuring concept , 1974, CACM.