12 research outputs found
Group Communication in an Object-Based Environment
This paper presents a proposal for incorporating a group communication paradigm into an object-based environment. Group communication is an interaction involving an arbitrary number of participants. Its application simplifies specification and implementation of complex systems. Object-oriented programming can significantly profit from the addition of a group mechanism. Our proposed mechanism, Multiple Object Invocation, provides group communication among objects. The paper first presents a model of general structure of group services and the use of group communication in this model. Multiple Object Invocation is presented and its characteristics and application in the general model is discussed. Implementation of Multiple Object Invocation in the Emerald object-oriented language and distributed operating system is presented. 1 Introduction Many computations require exchange of information among entities taking part in them. In general, such communication take one of two forms dependin..
A Group Structuring Mechanism for a Distributed Object-oriented Language
This paper describes a structuring mechanism for grouping objects in a distributed object-oriented language. A group structuring mechanism provides a single flexible method for managing distributed applications that involve complicated communication protocols and sophisticated structure. We have added such a mechanism to the Emerald distributed object-oriented language and its runtime system. Our group structuring mechanism fits entirely within the context of object-oriented programming, so similar mechanisms could be added to other distributed objectoriented languages. 1 Introduction In this paper we show that a general and flexible group structuring mechanism for expressing and managing clusters of cooperating objects can be introduced into a distributed object-oriented programming language. A group structuring mechanism can ease the complexity of programming distributed systems by encapsulating the structure and communication protocols for groups of interacting objects. 1.1 The n..
Language and Runtime Support for Dynamic Interposition of System Code
Extensible operating systems require an efficient means to dynamically bind extensions to existing code. The SPIN operating system provides this functionality via an event-based invocation mechanism. Events in SPIN are well-known typed procedure names that are used by extensions to decouple the provider of a service from potential clients. Extensions communicate with a centralized dispatcher service to register their interest in raising or handling such events. To implement this binding, the dispatcher relies on the Modula-3 language and run-time in providing safety and high performance of event operations and it employs run-time code generation techniques to create highly optimized communications paths between raisers and handlers. 1 Introduction An extensible operating system allows application programs to customize operating system services, thereby improving performance, correctness or simplicity. The SPIN operating system supports extensibility by allowing application code to in..
Safe dynamic linking in an extensible operating system
The protection of operating system code from user code in most systems is based on the separation provided by anarchitecturally enforced user/kernel boundary. The boundary isolates an application from the kernel and from other applications. Only through the system call interface can applications interact with kernel services or one another. The system call interface has worked well in the past because the number of service
Automatic Dynamic Compilation Support for Event Dispatching in Extensible Systems
This paper describes extensions to an automatic dynamic compilation framework to support optimized event dispatching in the SPIN extensible operating system. 1 Introduction In several extensible operating systems, application-level software that replaces or augments system services is downloaded into the kernel at run-time [Yok92,CT95,RL95,vDHT95,BSP + 95]. One of them, SPIN, relies on an implicit event invocation mechanism to connect the disparate and dynamically-loaded parts of the kernel. Modules (either pre-defined or dynamically-loaded) register interest in particular events, and the system implicitly notifies them whenever an interesting event is raised. A straightforward implementation of event dispatching would maintain a global list of guard/handler procedure pairs (or one global list per event). The guard procedure encodes the circumstances (expressed as a boolean predicate over the arguments to the event and other global system state) under which the module is interested..
SPIN -- An Extensible Microkernel for Application-specific Operating System Services
Application domains such as multimedia, databases, and parallel computing, require operating system services with high performance and high functionality. Existing operating systems provide xed interfaces and implementations to system services and resources. This makes them inappropriate for applications whose resource demands and usage patterns are poorly matched by the services provided. The SPIN operating system enables system services to be defined in an application-specific fashion through an extensible microkernel. It ofers applications fine-grained control over a machine's logical and physical resources through run-time adaptation of the system to application requirements