An object model for multiprogramming
Abstract. We have developed a programming model that integrates concurrency with object-based programming. The model includes features for object definition and instantiation, and it supports concurrent executions of designated methods of the object instan
An Object Model for Multiprogramming Jayadev Misra The University of Texas at Austin Austin, Texas 78712, USA
Abstract. We have developed a programming model that integrates
concurrency with object-based programming. The model includes features for object de nition and instantiation, and it supports concurrent executions of designated methods of the object instances. Yet, the model includes no speci c communication or synchronization mechanism, except procedure call. The traditional schemes for communication, synchronization, interfaces among processes and accesses to shared memory can be encoded by objects in our model. Concurrency in the model is transparent to the programmer; the programmer believes that the program executes in a sequential manner whereas the implementation employs concurrent threads to gain e ciency.
1 Introduction The research described in this document is based on two observations: (1) the applications that will be implemented on networks of processors in the future will be signi cantly more ambitious than the current applications (which are mostly involved with transmissions of digital data and images), and (2) many of the programming concepts developed for databases, object-oriented programming and designs of reactive systems can be uni ed into a concise model of distributed programs that can serve as the foundation for designing these future applications. We have developed a model of multiprogramming, called Seuss. Seuss fosters a discipline of programming that makes it possible to understand a program execution as a single thread of control, yet it permits program implementation through multiple threads. As a consequence, it is possible to reason about the properties of a program from its single execution thread, whereas an implementation on a speci c platform (e.g., shared memory or message communicating system) may exploit the inherent concurrency appropriately. A central theorem establishes that multiple execution threads implement single execution threads, i.e., any property proven for the latter is a property of the former as well. A major point of departure in Seuss is that there is no built-in concurrency and no commitment to either shared memory or message-passing style of implementation. No speci c communication or synchronization mechanism, except procedure call, is built into the model. In particular, the notions of input/output and their complementary nature in rendezvous-based communication 7, 12] is outside this model. There is no distinction between computation and communication; process speci cations and interface speci cations are not distinguished.


