G22.3250-001 Robert Grimm New York University Fine-grained Mobility (in Emerald)

Slides:



Advertisements
Similar presentations
Objects and Classes David Walker CS 320. Advanced Languages advanced programming features –ML data types, exceptions, modules, objects, concurrency,...
Advertisements

Garbage collection David Walker CS 320. Where are we? Last time: A survey of common garbage collection techniques –Manual memory management –Reference.
COS 461 Fall 1997 Network Objects u first good implementation: DEC SRC Network Objects for Modula-3 u recent implementation: Java RMI (Remote Method Invocation)
Transitioning to IPv6 April 15,2005 Presented By: Richard Moore PBS Enterprise Technology.
1 Overview Assignment 5: hints  Garbage collection Assignment 4: solution.
RPC Robert Grimm New York University Remote Procedure Calls.
Garbage Collection  records not reachable  reclaim to allow reuse  performed by runtime system (support programs linked with the compiled code) (support.
On-the-Fly Garbage Collection: An Exercise in Cooperation Edsget W. Dijkstra, Leslie Lamport, A.J. Martin and E.F.M. Steffens Communications of the ACM,
Copyright © 2001 Qusay H. Mahmoud RMI – Remote Method Invocation Introduction What is RMI? RMI System Architecture How does RMI work? Distributed Garbage.
CS 326 Programming Languages, Concepts and Implementation Instructor: Mircea Nicolescu Lecture 18.
Chapter 8 Runtime Support. How program structures are implemented in a computer memory? The evolution of programming language design has led to the creation.
G Robert Grimm New York University Lightweight RPC.
G Robert Grimm New York University Cool Pet Tricks with… …Virtual Memory.
G Robert Grimm New York University Extensibility: SPIN and exokernels.
Fine-Grained Mobility in the Emerald System Eric Jul, Henry Levy, Norman Hutchinson, Andrew Black SOSP 1987 & TOCS 1988 Presentation by: norm.
© nCode 2000 Title of Presentation goes here - go to Master Slide to edit - Slide 1 Reliable Communication for Highly Mobile Agents ECE 7995: Term Paper.
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
Honors Compilers Addressing of Local Variables Mar 19 th, 2002.
G Robert Grimm New York University Extensibility: SPIN and exokernels.
Fine-Grained Mobility in the Emerald System Eric Jul, Henry Levy, Norman Hutchinson, Andrew Black SOSP, 1987 & TOCS, 1988.
Run-Time Storage Organization
Run time vs. Compile time
Incremental Garbage Collection
G Robert Grimm New York University Fine-grained Mobility (in Emerald)
The environment of the computation Declarations introduce names that denote entities. At execution-time, entities are bound to values or to locations:
Distributed Computing. Distributed Computation Using Files Part 1 Part 2 f1 = open(toPart2, …); while(…){ write(f1. …); } close(f1); … f2 = open(toPart1,
Communication in Distributed Systems –Part 2
1 Run time vs. Compile time The compiler must generate code to handle issues that arise at run time Representation of various data types Procedure linkage.
16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.
Objects and Classes David Walker CS 320. Advanced Languages advanced programming features –ML data types, exceptions, modules, objects, concurrency,...
7/13/20151 Topic 3: Run-Time Environment Memory Model Activation Record Call Convention Storage Allocation Runtime Stack and Heap Garbage Collection.
Remote Procedure Calls. 2 Client/Server Paradigm Common model for structuring distributed computations A server is a program (or collection of programs)
NFS. The Sun Network File System (NFS) An implementation and a specification of a software system for accessing remote files across LANs. The implementation.
Processes CS 416: Operating Systems Design, Spring 2001 Department of Computer Science Rutgers University
1 Overview Assignment 6: hints  Living with a garbage collector Assignment 5: solution  Garbage collection.
1 Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska and Henry M. Levy Presented by: Karthika Kothapally.
Distributed Process Implementation Hima Mandava. OUTLINE Logical Model Of Local And Remote Processes Application scenarios Remote Service Remote Execution.
CS 403: Programming Languages Lecture 2 Fall 2003 Department of Computer Science University of Alabama Joel Jones.
5.1 Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED.
Ioana BurceaWon-Ho Park Electrical and Computer Engineering Department University of Toronto Algorithms for Implementation of Tuple Space Expert Topic.
SPL/2010 StackVsHeap. SPL/2010 Objectives ● Memory management ● central shared resource in multiprocessing RTE ● memory models that are used in Java and.
11 September 2008CIS 340 # 1 Topics To examine the variety of approaches to handle the middle- interaction (continued) 1.RPC-based systems 2.TP monitors.
Locating Mobile Agents in Distributed Computing Environment.
Runtime Environments. Support of Execution  Activation Tree  Control Stack  Scope  Binding of Names –Data object (values in storage) –Environment.
1 Process migration n why migrate processes n main concepts n PM design objectives n design issues n freezing and restarting a process n address space.
COMP3190: Principle of Programming Languages
RUN-Time Organization Compiler phase— Before writing a code generator, we must decide how to marshal the resources of the target machine (instructions,
Summing Up Object Oriented Design. Four Major Components: Abstraction modeling real-life entities by essential information only Encapsulation clustering.
Processes CS 6560: Operating Systems Design. 2 Von Neuman Model Both text (program) and data reside in memory Execution cycle Fetch instruction Decode.
Eric Tryon Brian Clark Christopher McKeowen. System Architecture The architecture can be broken down to three different basic layers Stub/skeleton layer.
M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young MACH: A New Kernel Foundation for UNIX Development Presenter: Wei-Lwun.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
LECTURE 3 Translation. PROCESS MEMORY There are four general areas of memory in a process. The text area contains the instructions for the application.
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
LECTURE 19 Subroutines and Parameter Passing. ABSTRACTION Recall: Abstraction is the process by which we can hide larger or more complex code fragments.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Runtime Environments Chapter 7. Support of Execution  Activation Tree  Control Stack  Scope  Binding of Names –Data object (values in storage) –Environment.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Storage Allocation Mechanisms
COMBINED PAGING AND SEGMENTATION
File System Implementation
Programming Models for Distributed Application
Complex Data Types One very important measure of the “goodness” of a PL is the capability of its data types to model the problem space variables Design.
Chapter 15: File System Internals
RUN-TIME STORAGE Chuen-Liang Chen Department of Computer Science
Structure of Processes
Run-time environments
Presentation transcript:

G Robert Grimm New York University Fine-grained Mobility (in Emerald)

Altogether Now: The Three Questions  What is the problem?  What is new or different?  What are the contributions and limitations?

Why Migration?  Migration in general  Load sharing  Communications performance  Availability  Reconfiguration  Utilizing special capabilities  Fine-grained object mobility  Data movement  Invocation performance  Garbage collection

Emerald Goals  Provide mobility without sacrificing performance  Procedure calls in the local case  RPC in the remote case  Provide a single object model  While still allowing for different implementations  Target environment: Local network with up to 100 nodes

Emerald Objects  Objects have four components  Network-wide name  Representation: data & references to other objects  Set of operations  Optional process  Objects are not class-based, do not form a hierarchy  They have a concrete type object (which has code)  They can be compared against an abstract type (interface)  What are the advantages/disadvantages of this instance- based object model?

Emerald Mobility  Five primitives  Locate, move, fix, unfix, refix  Explicit location (node object)  Implicit location (any other object)  Attachments  Control what objects are moved  Are transitive  Are not symmetric

Emerald Calling Conventions  In general: Call-by-reference  Automatic argument moving  Controlled by compiler (think, small immutable objects)  Controlled by programmer  Call-by-move  Call-by-visit

Emerald Processes  Stacks of activation records  Object may move  What to do about activations?  Always return to original node  Leaves residual dependencies  Move activations with objects  Need to be clever in implementation

Implementation

Three Types of Addressing Structures  Global, local, and direct objects  What happens if a global object is on a different node?

Finding Objects  Mechanism based on forwarding addresses  Each object has a global object identifier (OID)  Each node has a table mapping OIDs to object descriptors , OID  Every sent reference contains OID and forwarding address  Searching node follows up to two forwarding addresses  If that does not yield the location, it broadcasts a search msg  Why not keep a directory of nodes referencing an object?

Finding and Translating Pointers  Problem: Emerald uses direct addresses  Local to a machine, need to be translated on move  Solution: Object and activation record templates  Identify locations and types of pointers

Moving Objects  Moving data objects  Messages include data area, translation information, and OID & forwarding address for global object pointers  Receiver allocates space, builds translation table, makes sure object descriptors exist, traverses data (templates!)  Moving activation records  Problem: need to locate activation records for object  Possible solutions  Record invocations  Too expensive on regular invocations  Search invocations  Too expensive on moves

Moving Objects (cont.)  Moving activation records (cont.)  Emerald solution  Maintain list of activation records  On invocation, mark activation record as “not linked”  On preemption, traverse stack for not linked records and link them  Why is this cheaper than recording invocations?  Handling processor registers  Emerald uses callee-saved registers  Why?  All registers need to be included in moving activation record

Garbage Collection  Two collectors: one local and one global  Global collector  Builds on object descriptors  Represent out edges (already)  Implements mark-and-sweep algorithm  Pains objects white, gray, and black  What do colors mean?  Uses some clever techniques to deal with mobility and concurrency

Performance

Microbenchmarks  What do we learn from this table?

Messaging  What do we learn from this experiment?

What Do You Think?