February 1988 | ERIC JUL, HENRY LEVY, NORMAN HUTCHINSON, and ANDREW BLACK
Emerald is an object-based language and system designed for distributed programming, with a focus on supporting fine-grained mobility. Objects in Emerald can be small data objects or process objects, enabling mobility at a finer level than traditional process migration. This paper discusses the benefits of fine-grained mobility, the Emerald language and run-time mechanisms that support mobility, and techniques for implementing mobility without degrading the performance of local operations. Performance measurements of the current implementation are included.
Emerald's key features include a single-object model, which allows for both data and process mobility. The language supports mobility through explicit location and mobility concepts, and the design of conventional parts of the language is affected by mobility. The advantages of fine-grained mobility include data movement, invocation performance, and garbage collection. Emerald is not intended for large, long-haul networks but assumes a local area network with a modest number of nodes.
The Emerald language and system support fine-grained mobility through a combination of language primitives and run-time mechanisms. The system includes primitives for locating, moving, fixing, unfixing, and refixing objects. The implementation of mobility involves addressing and translation of object references, ensuring efficient local execution and performance.
Emerald's implementation relies on shared memory and efficient local execution. The system uses a combination of global, local, and direct object implementations to support mobility. The kernel manages object descriptors and forwarding addresses to locate objects efficiently. The system also includes mechanisms for garbage collection, ensuring that objects are properly managed and freed when no longer needed.
The paper discusses the implementation of mobility in Emerald, including the challenges of moving objects and processes, managing processor registers, and ensuring efficient garbage collection. The system is designed to balance the performance of mobility with the performance of local operations, ensuring that the existence of mobility and distribution in Emerald does not interfere with the performance of objects on a single node.Emerald is an object-based language and system designed for distributed programming, with a focus on supporting fine-grained mobility. Objects in Emerald can be small data objects or process objects, enabling mobility at a finer level than traditional process migration. This paper discusses the benefits of fine-grained mobility, the Emerald language and run-time mechanisms that support mobility, and techniques for implementing mobility without degrading the performance of local operations. Performance measurements of the current implementation are included.
Emerald's key features include a single-object model, which allows for both data and process mobility. The language supports mobility through explicit location and mobility concepts, and the design of conventional parts of the language is affected by mobility. The advantages of fine-grained mobility include data movement, invocation performance, and garbage collection. Emerald is not intended for large, long-haul networks but assumes a local area network with a modest number of nodes.
The Emerald language and system support fine-grained mobility through a combination of language primitives and run-time mechanisms. The system includes primitives for locating, moving, fixing, unfixing, and refixing objects. The implementation of mobility involves addressing and translation of object references, ensuring efficient local execution and performance.
Emerald's implementation relies on shared memory and efficient local execution. The system uses a combination of global, local, and direct object implementations to support mobility. The kernel manages object descriptors and forwarding addresses to locate objects efficiently. The system also includes mechanisms for garbage collection, ensuring that objects are properly managed and freed when no longer needed.
The paper discusses the implementation of mobility in Emerald, including the challenges of moving objects and processes, managing processor registers, and ensuring efficient garbage collection. The system is designed to balance the performance of mobility with the performance of local operations, ensuring that the existence of mobility and distribution in Emerald does not interfere with the performance of objects on a single node.