Fine-Grained Mobility in the Emerald System Eric Jul, Henry Levy, Norman Hutchinson, Andrew Black SOSP, 1987 & TOCS, 1988.

Slides:



Advertisements
Similar presentations
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)
Advertisements

Emerald - et OO-språk for distribuerte applikasjoner Eric Jul OMS Professor II.
RPC Robert Grimm New York University Remote Procedure Calls.
Distributed Systems 1 Topics  What is a Distributed System?  Why Distributed Systems?  Examples of Distributed Systems  Distributed System Requirements.
OBJECT ORIENTED PROGRAMMING M Taimoor Khan
Tam Vu Remote Procedure Call CISC 879 – Spring 03 Tam Vu March 06, 03.
Copyright © 2001 Qusay H. Mahmoud RMI – Remote Method Invocation Introduction What is RMI? RMI System Architecture How does RMI work? Distributed Garbage.
The road to reliable, autonomous distributed systems
Objektorienteret Middleware Presentation 2: Distributed Systems – A brush up, and relations to Middleware, Heterogeneity & Transparency.
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 1: Characterization and Design Goals Dr. Michael R. Lyu Computer.
Programming Language Paradigms: summary. Object-oriented programming Objects are the fundamental building blocks of a program. Interaction is structured.
Fine-Grained Mobility in the Emerald System Eric Jul, Henry Levy, Norman Hutchinson, Andrew Black SOSP 1987 & TOCS 1988 Presentation by: norm.
MOBILITY SUPPORT IN IPv6
University of Kansas Construction & Integration of Distributed Systems Jerry James Oct. 30, 2000.
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
Run time vs. Compile time
G Robert Grimm New York University Fine-grained Mobility (in Emerald)
G Robert Grimm New York University Fine-grained Mobility (in Emerald)
Introduction to Distributed Systems CS412: Programming Distributed Applications Computer Science Southern Illinois University CS412: Programming Distributed.
CS 603 Threads, Processes, and Agents March 18, 2002.
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.
Case Study: The E1 Distributed Operating System Chris Krentz 3/20/2007.
CS603 Communication Mechanisms 14 January Types of Communication Shared Memory Message Passing Stream-oriented Communications Remote Procedure Call.
.NET Mobile Application Development Remote Procedure Call.
DISTRIBUTED PROCESS IMPLEMENTAION BHAVIN KANSARA.
Distributed Process Implementation Hima Mandava. OUTLINE Logical Model Of Local And Remote Processes Application scenarios Remote Service Remote Execution.
Wireless CORBA Richard Verhoeven. Content Quick Introduction to CORBA Wireless & Mobile Wireless CORBA Test Case Conclusions.
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
CS 403: Programming Languages Lecture 2 Fall 2003 Department of Computer Science University of Alabama Joel Jones.
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Bộ môn Mạng và Truyền Thông Máy Tính.
5.1 Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED.
2/1/00 Porcupine: a highly scalable service Authors: Y. Saito, B. N. Bershad and H. M. Levy This presentation by: Pratik Mukhopadhyay CSE 291 Presentation.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Distributed Systems: Concepts and Design Chapter 1 Pages
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
IS473 Distributed Systems CHAPTER 5 Distributed Objects & Remote Invocation.
Page 1 Remote Procedure Calls Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content of this presentation.
RUN-Time Organization Compiler phase— Before writing a code generator, we must decide how to marshal the resources of the target machine (instructions,
 Common Object Request Broker Architecture  An industry standard developed by OMG to help in distributed programming.
Processes CS 6560: Operating Systems Design. 2 Von Neuman Model Both text (program) and data reside in memory Execution cycle Fetch instruction Decode.
Emerald - et OO-språk for distribuerte applikasjoner Review – Concurrency - Mobility Eric Jul OMS Professor II.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Institute for Visualization and Perception Research 1 © Copyright 1999 Haim Levkowitz Java-based mobile agents.
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
A Single Intermediate Language That Supports Multiple Implemtntation of Exceptions Delvin Defoe Washington University in Saint Louis Department of Computer.
Chapter 1 Characterization of Distributed Systems
Java Distributed Object System
Distributed Systems Bina Ramamurthy 11/12/2018 From the CDK text.
DISTRIBUTED COMPUTING
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
Distributed Systems Bina Ramamurthy 11/30/2018 B.Ramamurthy.
Wireless CORBA Richard Verhoeven.
Chapter 2: Operating-System Structures
Emerald.
Emerald - et OO-språk for distribuerte applikasjoner
RUN-TIME STORAGE Chuen-Liang Chen Department of Computer Science
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
Chapter 2: Operating-System Structures
Distributed Systems and Concurrency: Distributed Systems
Run-time environments
Presentation transcript:

Fine-Grained Mobility in the Emerald System Eric Jul, Henry Levy, Norman Hutchinson, Andrew Black SOSP, 1987 & TOCS, 1988

Short summary A solution in search of a problem! We can send objects anywhere, almost for free, but why would you want to?

Goals Experiment with mobility in distributed systems –Objects, not processes –Language not system support Single object model Excellent local performance Two Ph.D. theses!

Benefits Process migration –Load sharing –Communications performance –Availability –Reconfiguration –Specialized hardware + object migration –Data movement –Invocation performance –Garbage collection

Objects Name Representation Operations Process (optional)

Types Abstract (think Java interface) Concrete (think Java class) Conformity is proved by the system rather than declared by the programmer Objects are self-describing –don’t need classes

Mobility Locate Move Fix Unfix Refix Attach Call by move / visit

Gore Processes and mobility –Stack ripping Global, local and direct objects Object location – forwarding chains OIDs, pointers, templates, and swizzling –Registers

Performance Local invocation 19.4 μsec C: 13.4 μsec CE: 16.4 μsec Remote invocation 27.9 msec + 1 parameter 3.1 msec + 1 call by move/visit parameter ~5 msec Migration 12 msec + process: 28 msec

Performance (2007) Local invocation 0.67 μsec C: 0.02 μsec Remote invocation 0.37 msec + 1 parameter 0.01 msec Migration 0.37 msec + process: 0.11 msec

Discussion

Objects vs. classes What is the conceptual difference between an object-based language like Emerald and some other class based language (like Java)?

Yet another language? For what kind of applications would Emerald be better than any other programming language? Is it justified to come up with a new language every time a new system is designed?

Homogeneity Is it possible to scale the system to run on large heterogeneous networks?

How much transparency? Emerald makes it easy to ignore where your objects are, is this a good idea in a distributed system? How does location transparency affect failures?

Historical excuses? The authors state ‘historical reasons’ for using network communication routines that are slow. Is this a good reason? How often are things done ‘for historical reasons’?

Attachment How does moving objects handle the case where there are circular attachments? (e.g., X attached to Y, Y attached to Z, and Z attached to X, and the system decides to move one of them).

Compiler analyses The compiler chooses appropriate addressing mechanisms, storage strategies, and invocation protocols based on its knowledge of an object’s use. Where does it get this knowledge?

Agents? Can you compare objects in the Emerald system with mobile agents?