Efficient extensible synchronization in Sather

  • Jürgen W. Quittek
  • Boris Weissman
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1343)


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.


Mutual Exclusion Shared Memory System Deadlock Detection Synchronization Primitive Lock Statement 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    W.E. Snaman Jr., D.W. Thiel: The VAX/VMS Distributed Lock Manager. Digital Technical Journal, September 1987.Google Scholar
  2. 2.
    A. Bhide, S. Shepler: A highly available lock manager for HA-NFS. Proc. Summer 1992 Usenix Conf., Usenix Association, Berkeley, pp. 177–184, 1992.Google Scholar
  3. 3.
    L. Daynes, O. Gruber, P Valduriez: Locking in OODBMS clients supporting nested transactions. Proc. 11th Intl. Conf. on Data Engineering, IEEE Computer Society Press, Los Alamitos, pp. 316–323, 1995.Google Scholar
  4. 4.
    M. Aldred, I. Gertner, S. McKellar: A Distributed Lock Manager on fault-tolerant MPP. Proc. 28th Hawaii Intl. Conf. on System Sciences, Vol. 1, IEEE Computer Society Press, Los Alamitos, pp. 134–136, 1995.Google Scholar
  5. 5.
    T. Stiemerling, T Wilkinson, A. Saulsbury: Implementing DVSM on the TOPSY Multicomputer. Symposium on Experiences with Distributed and Multiprocessor Systems, Newport Beach, 1992, Usenix Assoc., Berkeley, pp. 263–278, 1992.Google Scholar
  6. 6.
    G. Hermannsson, L. Wittie: Fast Locks in Distributed Shared Memory Systems. Proceedings of the 27th Hawaii Intl. Conf. on System Sciences, Vol. 1, IEEE Comp. Soc. Press, Los Alamitos, pp. 574–583, 1994.Google Scholar
  7. 7.
    G.D. Parrington, S.K. Shrivastava, S.M. Wheaten The design and implementation of Arjuna. Computing Systems 8(3):255–308, 1995.Google Scholar
  8. 8.
    B.N. Bershad, E.D. Lazovska, and H.M. Henry: Presto: A System for Object-Oriented Parallel Programming. Software-Practice and Experience 18(8):713–732,1988.Google Scholar
  9. 9.
    S. Omohundro: The sather programming language. Dr. Dobb's Journal 18(11):42–48, 1993.Google Scholar
  10. 10.
    C. Szyperski. S. Omohundro, S. Murer: Engineering a programming language: The type and class system of Sather. J. Gutknecht (Ed.), Programming Languages and System Architectures, Springer-Verlag, pp. 208–227, 1993.Google Scholar
  11. 11.
    C.A.R. Hoare: Towards a theory of parallel programming. Operating Systems Techniques, C.A.R. Hoare, R.H. Perrot (Eds.), Academic Press, London, pp. 61–71, 1972.Google Scholar
  12. 12.
    J. Gosling, B. Joy, G.L. Steele; The Java Language Specification. Addison-Wesley, Reading, Mass., 1996.zbMATHGoogle Scholar
  13. 13.
    C.A.R. Hoare: Monitors: an operating system structuring concept. Comm. of the ACM 17(11):549–557,1974.zbMATHCrossRefGoogle Scholar
  14. 14.
    C.-C. Lim: A Parallel, Object-Oriented System for Realizing Reusable and Efficient Data Abstractions. Ph.D. thesis, University of California at Berkeley, 1993.Google Scholar
  15. 15.
    C. Heiner: Parallel Optimizations: Advanced Constructs and Compiler Optimizations for a Parallel, Object-Oriented, Shared Memory Language Running on a Distributed System. Ph.D. thesis, University of Fribourg, Switzerland, 1997.Google Scholar
  16. 16.
    The Institute of Electrical and Electronics Engineers. Portable Operating System Interface (POSIX)-Part 1: Amendment 2: Threads Extensions [C Language]. POSIX P1003.4a/D7. April, 1993.Google Scholar
  17. 17.
    T. Johnson: A Performance Comparison of Fast Distributed Mutual Exclusion Algorithms. Proceedings of the 9th International Parallel Processing Symposium, IEEE Computer Society Press, Los Alamitos, California, 1995.Google Scholar
  18. 18.
    T.E. Anderson: The performance of spin lock alternatives for shared multiprocessors. IEEE Transaction on Parallel and Distributed Systems 1(1):6–16, January 1990.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag 1997

Authors and Affiliations

  • Jürgen W. Quittek
    • 1
  • Boris Weissman
    • 1
  1. 1.International Computer Science InstituteBerkeley

Personalised recommendations