Results 1 - 10
of
37
SOS: An Object-Oriented Operating System - Assessment and Perspectives
- Computing Systems
, 1991
"... SOS (SOMIW Operating System) is the result of a four-year effort at INRIA to define an object-oriented operating system. SOS provides support for arbitrary, user-defined, typed objects. The system implements object migration; this mechanism is generic, but can be tailored to specific object semantic ..."
Abstract
-
Cited by 73 (18 self)
- Add to MetaCart
SOS (SOMIW Operating System) is the result of a four-year effort at INRIA to define an object-oriented operating system. SOS provides support for arbitrary, user-defined, typed objects. The system implements object migration; this mechanism is generic, but can be tailored to specific object semantics thanks to the prerequisite and upcall concepts. SOS also supports Fragmented Objects (FOs), i.e. objects the representation of which spreads across multiple address spaces. Fragments of a single FO are objects that enjoy mutual communication privileges. A fragment acts as a proxy, i.e. a local interface to the FO. All the other mechansisms of SOS are built upon these basic abstractions. Thanks to prerequisites, migration of data may cause the migration and dynamic type-checking and linking of the corresponding code. A distributed object manager, an object storage service, a naming service, as well as a protocol toolbox and some applications, have been built as FOs. This paper gives a detai...
Process migration
- ACM Computing Surveys
, 2000
"... A process is an operating system abstraction representing an instance of a running computer program. Process migration is the act of transferring a process between two machines during its execution. Several implementations ..."
Abstract
-
Cited by 62 (1 self)
- Add to MetaCart
A process is an operating system abstraction representing an instance of a running computer program. Process migration is the act of transferring a process between two machines during its execution. Several implementations
Survey of Systems Providing Process or Object Migration
- Operating Systems Review
, 1996
"... This report details a survey of systems providing process or object migration. After an introduction to the topic a number of systems are covered in detail. Four chapters deal with systems providing migration over unmodified UNIX, those providing "classical" process migration and containing modified ..."
Abstract
-
Cited by 44 (0 self)
- Add to MetaCart
This report details a survey of systems providing process or object migration. After an introduction to the topic a number of systems are covered in detail. Four chapters deal with systems providing migration over unmodified UNIX, those providing "classical" process migration and containing modified or new kernels, migration over modern microkernel based operating systems and finally those providing more general "object" migration. The coverage of each system contains a general overview, a detailed examination of the migration subsystem and load balancing support, if any. Migration support is sectioned into an overview, an examination of the migration mechanisms, the effects of migration on inter (task) communication, and details of any environment and associated resource transfer. The summary provides comments on the major design issues identified within the report. It notes that solutions running over raw UNIX are the least complete, and that some level of kernel modification is gene...
Supporting Automatic Configuration of Component-Based Distributed Systems
, 1999
"... Recent developments in Component technology enable the construction of complex software systems by assembling together off-the-shelf components. However, it is still difficult to develop efficient, reliable, and dynamically configurable component based systems. Components are often developed by diff ..."
Abstract
-
Cited by 43 (3 self)
- Add to MetaCart
Recent developments in Component technology enable the construction of complex software systems by assembling together off-the-shelf components. However, it is still difficult to develop efficient, reliable, and dynamically configurable component based systems. Components are often developed by different groups with different methodologies. Unspecified dependencies and behavior lead to unexpected failures. Component-based software systems must maintain explicit representations of inter-component dependence and component requirements. This provides a common ground for supporting fault-tolerance and automating dynamic configuration. In this paper, we present a generic model for reifying dependencies in distributed component systems and discuss how it can be used to support automatic configuration. We describe our experience deploying the framework in a CORBA-compliant reflective ORB and discuss the use of this model in a new distributed operating system.
Lightweight Shared Objects in a 64-Bit Operating System
- ACM Object-Oriented Programming Systems, Languages, and Applications (OOPSLA
, 1992
"... Object-oriented models are a popular basis for supporting uniform sharing of data and services in operating systems, distributed programming systems, and database systems. We term systems that use objects for these purposes object sharing systems. Operating systems in common use have nonuniform add ..."
Abstract
-
Cited by 33 (5 self)
- Add to MetaCart
Object-oriented models are a popular basis for supporting uniform sharing of data and services in operating systems, distributed programming systems, and database systems. We term systems that use objects for these purposes object sharing systems. Operating systems in common use have nonuniform addressing models, making the uniform object naming required by object sharing systems expensive and difficult to implement. We argue that emerging 64-bit architectures make it practical to support uniform naming at the virtual addressing level, eliminating a key implementation problem for object sharing systems. We describe facilities for object-based sharing of persistent data and services in Opal, an operating system we are developing for paged 64-bit architectures. The distinctive feature of Opal is that object This paper will appear in identical form in the proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), October 1992. This work w...
On Migrating Threads
- Journal of Intelligent Information Systems
, 1995
"... Based on the notion of persistent threads in Tycoon [MS94], we investigate thread migration as a programming construct for building activity-oriented distributed applications. We first show how a straight-forward extension of a higher-order persistent language can be used to define activities that s ..."
Abstract
-
Cited by 27 (9 self)
- Add to MetaCart
Based on the notion of persistent threads in Tycoon [MS94], we investigate thread migration as a programming construct for building activity-oriented distributed applications. We first show how a straight-forward extension of a higher-order persistent language can be used to define activities that span multiple (semi-) autonomous nodes in heterogeneous networks. In particular, we discuss the intricate binding issues that arise in systems where threads are first-class language citizens that may access local and remote, mobile and immobile resources. We also describe how our system model can be understood as a promising generalization of the more static architecture of first-order and higher-order distributed object systems. Finally, we give some insight into the implementation of persistent and migrating threads and we explain how to represent bindings to ubiquitous resources present at each node visited by a migrating thread on the network to avoid excessive communication or storag...
Smart Pointers: They're Smart, but They're Not Pointers
- IN C++ CONFERENCE
, 1992
"... There are numerous times when a C ++ user could benefit from a pointer variant that has more functionality than is provided by the basic, language-defined pointer. For example, type-accurate garbage collection, reference counting, or transparent references to distributed or persistent objects, mig ..."
Abstract
-
Cited by 25 (0 self)
- Add to MetaCart
There are numerous times when a C ++ user could benefit from a pointer variant that has more functionality than is provided by the basic, language-defined pointer. For example, type-accurate garbage collection, reference counting, or transparent references to distributed or persistent objects, might be implemented with classes that provide pointer functionality. The C ++ language directly supports one kind of pointer substitute, the smart pointer, in the form of overloadable indirection operators: -? and . In this paper we evaluate how seamlessly smart pointers can replace raw pointers. The ideal is for client code not to care whether it is using raw pointers or smart pointers. For example, if a typedef selects whether raw or smart pointers are used throughout the program, changing the value of the typedef should not introduce syntax errors. Unfortunately, C ++ does not support pointer substitutes well enough to permit seamless integration. This paper presents the desired behavi...
FOG/C++: a Fragmented-Object Generator
- In C++ Conference
, 1990
"... We describe a language and a compiler for writing distributed applications and systems, structured with fragmented objects. The language is an extension of C++. The compiler statically ensures the encapsulation of fragmented objects, the typesafety of remote communication, and generates code for the ..."
Abstract
-
Cited by 23 (3 self)
- Add to MetaCart
We describe a language and a compiler for writing distributed applications and systems, structured with fragmented objects. The language is an extension of C++. The compiler statically ensures the encapsulation of fragmented objects, the typesafety of remote communication, and generates code for the common cases of remote communication and object migration. It interfaces to the SOS operating system via a set of predefined classes, which are easily portable to other operating systems. 1 Introduction The object-oriented programming approach allows to organize large software systems. As such, it has enormous potential in distributed systems, which are notoriously complex. However, most object-oriented languages have no provision for distribution. Some distributed object systems are realized with C++ [Stroustrup 1985], without modifying the compiler or defining a new language. For instance, the Choices [Campbell 1989] operating system family uses C++ class hierarchies to facilitate the co...
Structuring Fault-Tolerant Object Systems for Modularity in a Distributed Environment
"... The object-oriented approach to system structuring has found widespread acceptance among designers and developers of robust computing systems. In this paper we propose a system structure for distributed programming systems that support persistent objects and describe how such properties as persisten ..."
Abstract
-
Cited by 22 (10 self)
- Add to MetaCart
The object-oriented approach to system structuring has found widespread acceptance among designers and developers of robust computing systems. In this paper we propose a system structure for distributed programming systems that support persistent objects and describe how such properties as persistence, recoverability etc. can be implemented. The proposed structure is modular, permitting easy exploitation of any distributed computing facilities provided by the underlying system. An existing system constructed according to the principles espoused here is examined to illustrate the practical utility of the proposed approach to system structuring.
Operating System Support for Persistent and Recoverable Computations
- Communications of the ACM
, 1996
"... The principal tasks of an operating system are to manage the resources of the system, maintain the permanent data of the system and to provide an efficient environment for the execution of user programs. In conventional operating systems these tasks are centred around the file system as the repos ..."
Abstract
-
Cited by 21 (6 self)
- Add to MetaCart
The principal tasks of an operating system are to manage the resources of the system, maintain the permanent data of the system and to provide an efficient environment for the execution of user programs. In conventional operating systems these tasks are centred around the file system as the repository of permanent data and virtual memory as the execution environment. Persistent systems offer an alternative view in which the lifetime of data is separated from the access mechanism. In a persistent system all data, regardless of its lifetime, is created and manipulated in a uniform manner. When persistence is included as the basic abstraction of an operating system, many of the inadequacies of existing operating systems are eliminated and the tasks of an application developer are greatly simplified. This results in major improvements both in terms of program development time and execution efficiency. Grasshopper, a persistent operating system being developed by the authors, pr...

