Distributed Programming with Objects and Threads in the Clouds System

The CLOUDS operating system supports a distributed environment consisting of compute servers, data servers and user workstations. The resulting environment logically simulates an integrated, centralized computing system. In addition, CLOUDS supports a programming paradigm that makes distributed programming simpler. Distributed programs can be written in a centralized fashion and yet they can exploit parallelism and distribution at runtime. The system paradigm is based on an object/thread model. The basic building blocks for applications are persistent memory (called objects) and computation (called threads). Unlike most systems, CLOUDS separates the notion of memory from computation. Programming environments based on these abstractions, though unconventional, provide powerful tools for composing applications that exploit concurrency and distribution. * This work was supported in part by NSF contract CCR-8619886. @ Computing Systems, Vol. 4 . No. 3 . Summer 1991 243 This paper discusses programming techniques that use persistence and distribution of memory. The examples show how separation of computation from memory can be used to the programmer's advantage. We also present a distributed programming technique called implicit distributed programming. The implementation details of the programming support subsystems are presented. The system performance measurements demonstrate the usability of CLOUDS as a distributed programming platform.

[1]  Andrew P. Black,et al.  The Eden System: A Technical Review , 1985, IEEE Transactions on Software Engineering.

[2]  Umakishore Ramachandran,et al.  Coherence of Distributed Shared Memory: Unifying Synchronization and Data Transfer , 1989, International Conference on Parallel Processing.

[3]  David R. Cheriton,et al.  The V distributed system , 1988, CACM.

[4]  Richard J. LeBlanc,et al.  Distributed Eiffel: a language for programming multi-granular distributed objects on the Clouds operating system , 1992, Proceedings of the 1992 International Conference on Computer Languages.

[5]  Jeffrey S. Chase,et al.  The Amber system: parallel programming on a network of multiprocessors , 1989, SOSP '89.

[6]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1989, TOCS.

[7]  Henri E. Bal,et al.  Experience with distributed programming in Orca , 1990, Proceedings. 1990 International Conference on Computer Languages.

[8]  Marc Shapiro,et al.  SOS: An Object-Oriented Operating System - Assessment and Perspectives , 1989, Comput. Syst..

[9]  Partha Dasgupta,et al.  The Clouds distributed operating system: functional description, implementation details and related work , 1988, [1988] Proceedings. The 8th International Conference on Distributed.

[10]  Partha Dasgupta,et al.  CLIDE: a distributed, symbolic programming system based on large-grained persistent objects , 1991, [1991] Proceedings. 11th International Conference on Distributed Computing Systems.

[11]  Christopher Joselane Wilkenloh Design of a reliable message transaction protocol , 1989 .

[12]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[13]  Andrew P. Black,et al.  Fine-grained mobility in the Emerald system , 1987, TOCS.

[14]  Roy H. Campbell,et al.  Choices (class hierarchical open interface for custom embedded systems) , 1987, OPSR.

[15]  Paulo Guedes,et al.  Extending the operating system to support an object-oriented environment , 1989, OOPSLA '89.

[16]  Henri E. Bal,et al.  Programming languages for distributed computing systems , 1989, CSUR.

[17]  Partha Dasgupta,et al.  Linking consistency with object/thread semantics: an approach to robust computation , 1989, [1989] Proceedings. The 9th International Conference on Distributed Computing Systems.

[18]  R. Ananthanarayanan,et al.  Experiences in integrating distributed shared memory with virtual memory management , 1992, OPSR.

[19]  Robert H. Thomas,et al.  The Architecture of the Cronus Distributed Operating System , 1986, IEEE International Conference on Distributed Computing Systems.

[20]  William J. Bolosky,et al.  Mach: A New Kernel Foundation for UNIX Development , 1986, USENIX Summer.

[21]  Partha Dasgupta,et al.  Memory Semantics in Large Grained Persistent Objects , 1990, POS.