The Spring System (and its trusty sidekick, Subcontract) Sun Microsystems.

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

OS Organization Continued Andy Wang COP 5611 Advanced Operating Systems.
MICRO-KERNELS New Generation Innovation. The contents Traditional OS view & its problems. Micro-kernel : introduction to concept. First generation micro-kernels.
Remote Procedure Call (RPC)
Remote Procedure Call Design issues Implementation RPC programming
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.
Lightweight Remote Procedure Call BRIAN N. BERSHAD THOMAS E. ANDERSON EDWARD D. LAZOWSKA HENRY M. LEVY Presented by Wen Sun.
Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented by Alana Sweat.
G Robert Grimm New York University Lightweight RPC.
Threads Clients Servers Code Migration Software Agents Summary
CS 550 Amoeba-A Distributed Operation System by Saie M Mulay.
Based on Silberschatz, Galvin and Gagne  2009 Threads Definition and motivation Multithreading Models Threading Issues Examples.
Common System Components
Early OS security Overview by: Greg Morrisett Cornell University, Edited (by permission) for CSUS CSc250 by Bill Mitchell.
Communication in Distributed Systems –Part 2
Remote Procedure Calls. 2 Client/Server Paradigm Common model for structuring distributed computations A server is a program (or collection of programs)
.NET Mobile Application Development Remote Procedure Call.
Slide 3-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 3 Operating System Organization.
CS533 Concepts of Operating Systems Class 9 Lightweight Remote Procedure Call (LRPC) Rizal Arryadi.
CS510 Concurrent Systems Jonathan Walpole. Lightweight Remote Procedure Call (LRPC)
COT 4600 Operating Systems Spring 2011 Dan C. Marinescu Office: HEC 304 Office hours: Tu-Th 5:00 – 6:00 PM.
Lightweight Remote Procedure Call (Bershad, et. al.) Andy Jost CS 533, Winter 2012.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
CS533 Concepts of Operating Systems Jonathan Walpole.
Distributed Systems. Interprocess Communication (IPC) Processes are either independent or cooperating – Threads provide a gray area – Cooperating processes.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Other Topics RPC & Middleware.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
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.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved RPC Tanenbaum.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
Processes Introduction to Operating Systems: Module 3.
The Mach System Abraham Silberschatz, Peter Baer Galvin, Greg Gagne Presentation By: Agnimitra Roy.
CS533 - Concepts of Operating Systems 1 The Mach System Presented by Catherine Vilhauer.
Eric Tryon Brian Clark Christopher McKeowen. System Architecture The architecture can be broken down to three different basic layers Stub/skeleton layer.
Networking Implementations (part 1) CPS210 Spring 2006.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
The Mach System Silberschatz et al Presented By Anjana Venkat.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 2.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Module 3: Operating-System Structures System Components Operating System Services.
Implementing Remote Procedure Call Landon Cox February 12, 2016.
CEN6502, Spring Understanding the ORB: Client Side Structure of ORB (fig 4.1) Client requests may be passed to ORB via either SII or DII SII decide.
Computer Science Lecture 4, page 1 CS677: Distributed OS Last Class: RPCs RPCs make distributed computations look like local computations Issues: –Parameter.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Module 3: Operating-System Structures
Kernel Design & Implementation
CS533 Concepts of Operating Systems
OS Organization Continued
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Chapter 3: Operating-System Structures
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
Basic Concepts Protection: Security:
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Chapter 2: Operating-System Structures
CSE 451: Operating Systems Spring 2012 Module 22 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2009 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Remote Procedure Call Hank Levy 1.
Remote Procedure Call Hank Levy 1.
CSE 451: Operating Systems Autumn 2010 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Operating Systems Structure
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
Chapter 2: Operating-System Structures
Remote Procedure Call Hank Levy 1.
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

The Spring System (and its trusty sidekick, Subcontract) Sun Microsystems

What is Spring? An OS re-engineering effort from Sun Major pieces of Solaris 2.0 came from Spring Emphasis on interfaces between modules –Strongly typed, well defined interfaces –What rather than How Microkernel – Spring “nucleus” –Most services implemented in user space

Why? Research -> practice -> products An effort focused on evolutionary technology Combines several hot topics –RPC –“pattern” object design –Microkernel –Distributed objects

Interface Definition Language “language-agnostic” –Interfaces not tied to a specific language Pushes compatibility/interoperability issues “higher” –Easier to resolve (?) –IDL compiler for BPL Client/server stub generators –Treat distributed/local objects the same

Object-based “Spring” objects reside on servers –All system services advertised through IDL –Interface/implementation separation –Clients invoke through RPC (through stubs) Client-side objects also possible –… but they still use IDL-based interfaces to communicate

How do objects communicate? Very carefully! Flexibility is the goal One size does not fit all –Different objects, different definitions of “efficiency” –Different definitions of “communication”, in some cases How to promote flexibility?

Subcontract Replaceable layer in RPC stack Define new ones or reuse existing ones Sits directly on top of network code –Gives developers a set of holes to tweak behavior If the IDL is a “contract”… A subcontract is an interface (just like everything else!)

Object Internals Spring objects have 3 components –Method table Operations defined by IDL –Subcontract operations vector (SOV) –Local private state (“representation”) IDL-generated code calls either methods in the method table or in the SOV –Depending on whether the call is remote

Client subcontract interface Marshal – send to another address space –Local state is deleted Unmarshal – receive from another address space –Stub code must construct new object, so peek at incoming type and use defaults –Initial subcontract builds local state from communications buffer

Client subcontract interface Invoke – execute an object call –After marshalling has been done Invoke_preamble –Gives client subcontract input into marshalling process Marshal_copy –Optimized call where local state is not deleted

Server subcontract interface Object creation – turn language objects into Spring objects –Create client object and communication endpoint Revoke object – shut down object services –Done by closing communication endpoints Process incoming calls – forward to server stubs

OK, so what’s the point? The point is that subcontract provides an interface If you want to do something different, you can install a new subcontract

Extensibility Subcontracts can be discovered/installed at runtime –Address-space-specific registry tracks installed ones –New ones can be loaded from DSOs –Seamlessly add functionality to old programs

Backward/forward compatibility Subcontracts have identifiers and a type system Compatible types exist So catch-all subcontracts can be installed to deal with existing applications

Stubs and subcontracts Remember, the subcontract sits below the stubs –On the client side, object operations (defined by the IDL) call the subcontract operations to actually get work done –On the server side, the subcontract up-calls into the server stubs –Meta-operations needed by IDL-defined operations (copy/delete) also use subcontracts

Stubs and subcontracts Subcontracts make writing the IDL stub generator easier –No need for changes for different objects, only the subcontracts change –In turn, supporting different languages becomes easier

The nucleus – Spring’s microkernel Recall Liedtke – what does a microkernel need? –Address spaces, IPC, naming –Spring hits these three exactly A Domain is an address space A Thread is the basic computation abstraction Doors provide calls between Domains

Doors Domains have door identifiers –Mapping through door tables Cross-domain calls implemented by thread switching A door is basically a domain ID and a PC Door identifiers convert to network handles for network transmission –Essentially adds network address to door ID

Doors and security Door handles form basis for address-space security –They make a weak claim for unforgeability of object references, and call them software capabilities –Transitive access rights allowed – you can give away your capabilities

Virtual memory Address space, memory, pager and cache objects are separate –Memory objects map into address spaces –Pager and cache cooperate Pager provides data access Cache provides coherency (i.e. invalidate pages) VMM on each machine maintains pager- cache associations

File System Defines a file object interface –Inherits from memory object (can be memory mapped) and IO (read/write access) File server uses layered approach –Coherency layer on top of disk layer –Pager/cache paradigm used to enforce coherency

Naming Uniform name service for all object types –Any object can be bound to any name Standard hierarchical naming graph –Name contexts, name bindings Naming entities are first-class –Can be exchanged, passed as parameters, etc Name service used as hook for access control

UNIX Emulation That’s right, we’re NOT talking about UNIX Compatibility library (libue.so) provides stubs for each UNIX call Process server runs and coordinates UNIX processes

The return of subcontract Remember, all of these services are objects –With interfaces defined by IDL –That communicate by RPC –That use subcontracts So they’re all customizeable using the subcontract mechanism –This is the power of the Spring system