OS Organization Continued Andy Wang COP 5611 Advanced Operating Systems.

Slides:



Advertisements
Similar presentations
1 Communication in Distributed Systems REKs adaptation of Tanenbaums Distributed Systems Chapter 2.
Advertisements

Threads, SMP, and Microkernels
OS Components and Structure
Operating System Structures
Part IV: Memory Management
COM vs. CORBA.
Memory Protection: Kernel and User Address Spaces  Background  Address binding  How memory protection is achieved.
The Spring System (and its trusty sidekick, Subcontract) Sun Microsystems.
EXTENSIBILITY, SAFETY AND PERFORMANCE IN THE SPIN OPERATING SYSTEM B. Bershad, S. Savage, P. Pardyak, E. G. Sirer, D. Becker, M. Fiuczynski, C. Chambers,
Chorus and other Microkernels Presented by: Jonathan Tanner and Brian Doyle Articles By: Jon Udell Peter D. Varhol Dick Pountain.
Study of Hurricane and Tornado Operating Systems By Shubhanan Bakre.
Copyright © 2001 Qusay H. Mahmoud RMI – Remote Method Invocation Introduction What is RMI? RMI System Architecture How does RMI work? Distributed Garbage.
Fast Communication Firefly RPC Lightweight RPC  CS 614  Tuesday March 13, 2001  Jeff Hoy.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Chapter 4 Threads, SMP, and Microkernels Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
CS-550: Distributed File Systems [SiS]1 Resource Management in Distributed Systems: Distributed File Systems.
Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented by Alana Sweat.
Computer Systems/Operating Systems - Class 8
Technical Architectures
Memory Management (II)
Object Based Operating Systems1 Learning Objectives Object Orientation and its benefits Controversy over object based operating systems Object based operating.
PRASHANTHI NARAYAN NETTEM.
ASU 64-bit OS Group7/15/ Effects of the Single Address Space Paradigm on CPU and OS Design for a Distributed Computer System Donald S. Miller.
1 Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska and Henry M. Levy Presented by: Karthika Kothapally.
CS510 Concurrent Systems Jonathan Walpole. Lightweight Remote Procedure Call (LRPC)
Stack Management Each process/thread has two stacks  Kernel stack  User stack Stack pointer changes when exiting/entering the kernel Q: Why is this necessary?
Networked File System CS Introduction to Operating Systems.
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.
CS 153 Design of Operating Systems Spring 2015 Lecture 17: Paging.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Providing Policy Control Over Object Operations in a Mach Based System By Abhilash Chouksey
Operating Systems ECE344 Ding Yuan Paging Lecture 8: Paging.
Processes and Threads Processes have two characteristics: – Resource ownership - process includes a virtual address space to hold the process image – Scheduling/execution.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
CE Operating Systems Lecture 3 Overview of OS functions and structure.
The Mach System Abraham Silberschatz, Peter Baer Galvin, Greg Gagne Presentation By: Agnimitra Roy.
By Teacher Asma Aleisa Year 1433 H.   Goals of memory management  To provide a convenient abstraction for programming.  To allocate scarce memory.
1 Threads, SMP, and Microkernels Chapter Multithreading Operating system supports multiple threads of execution within a single process MS-DOS.
CS533 - Concepts of Operating Systems 1 The Mach System Presented by Catherine Vilhauer.
Remote Procedure Call Andy Wang Operating Systems COP 4610 / CGS 5765.
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.
Processes and Virtual Memory
Efficient Software Based Fault Isolation Author: Robert Wahobe,Steven Lucco,Thomas E Anderson, Susan L Graham Presenter: Maitree kanungo Date:02/17/2010.
The Mach System Silberschatz et al Presented By Anjana Venkat.
Lecture 4 Page 1 CS 111 Online Modularity and Virtualization CS 111 On-Line MS Program Operating Systems Peter Reiher.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Memory Management OS Fazal Rehman Shamil. swapping Swapping concept comes in terms of process scheduling. Swapping is basically implemented by Medium.
Efficient Software-Based Fault Isolation Authors: Robert Wahbe Steven Lucco Thomas E. Anderson Susan L. Graham Presenter: Gregory Netland.
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.
Lecture 4 Page 1 CS 111 Online Modularity and Memory Clearly, programs must have access to memory We need abstractions that give them the required access.
Threads, SMP, and Microkernels Chapter 4. Processes and Threads Operating systems use processes for two purposes - Resource allocation and resource ownership.
Introduction to Operating Systems Concepts
Kernel Design & Implementation
Memory Management.
Non Contiguous Memory Allocation
The Mach System Sri Ramkrishna.
CS533 Concepts of Operating Systems
File System Implementation
OS Organization Continued
Modularity and Memory Clearly, programs must have access to memory
CSI 400/500 Operating Systems Spring 2009
Main Memory Management
Threads, SMP, and Microkernels
Chapter 2: System Structures
Lecture 4- Threads, SMP, and Microkernels
Outline Chapter 2 (cont) OS Design OS structure
Presented by: SHILPI AGARWAL
Outline Review of Quiz #1 Distributed File Systems 4/20/2019 COP5611.
Presentation transcript:

OS Organization Continued Andy Wang COP 5611 Advanced Operating Systems

Outline Overall organization of microkernel systems Spring

Organizing the Total System In microkernel organizations, much of the OS is outside the microkernel But that doesnt answer the question of how the system as a whole gets organized How do you fit together the components to build an integrated system? While maintaining all the advantages of the microkernel

A Sample Microkernel OSSpring Developed by Sun Intended to examine how to improve OSes by building from the ground up Approach was to address the greatest problem in building operating systems In some sense a response to problems with UNIX

UNIX Problems Spring Addresses Cost of maintaining/evolving system Inflexible security model Hard to build distributed services Hard to handle real-time issues Multiplicity of naming schemes

Basic Spring Approach Make it possible for others to extend the OS itself through strong interfaces Which are open, flexible, and extensible Spring designers clearly learned from success of extensible UNIX features (like VFS) OS as set of cooperating services

Object-Oriented Organizations Object-oriented organization is increasingly popular Well suited to OS development, in some ways OSes manage important data structures OSes are modularizable Strong interfaces are good in OSes

Object-Orientation and Extensibility One of the main advantages of object-oriented programming is extensibility Operating systems increasingly need extensibility So, again, object-oriented techniques are a good match for operating system design

How object-oriented should an OS be? Many OSes have been built with object- oriented techniques E.g., Mach and Windows NT But most of them leave object orientation at the microkernel boundary No attempt to force object orientation on out-of- kernel modules

Spring is a Microkernel System Spring microkernel consists of nucleus and basic virtual memory support Nucleus supports operating system objects With security And high speed object invocation

Spring Object Managers Spring is implemented as microkernel plus a suite of object managers Running in non-kernel mode In private address spaces Adding new functionality to Spring amounts to adding a new object manager Object managers are objects themselves

Springs Interface Definition Language Spring wants to avoid being tied to a single language But it also requires strong interfaces to allow for extensibility So, Spring interfaces are written in IDL Interfaces are defined in IDL, but IDL says nothing about implementation

IDL Compilers Convert IDL definitions of interfaces into particular languages To generate language-specific form of the interface for use of objects written in that language Also generates client and server stub code for use by objects deploying the interface

Objects in Spring Object users invoke operations defined in its interface The operation could be preformed in The same address space A different address space on the same machine A different address space on a different machine

Server-Based Objects Server-based Spring objects live in their own address spaces IDL generates stubs for their benefit Subcontracts and doors used to communicate between clients and servers Essentially, they are passed to another address space by a pointer

Serverless Objects Objects kept in the callers address space Typically used for lightweight objects most of local interest Can be passed to another address space by copying

Parts of a Spring Object From the clients point of view, an object consists of A method table A subcontract operation vector Client-local private state (representation)

Spring Object Diagram Method Table Subcontract Table Representation

Methods and Spring Objects Spring object methods are either handled in the objects local address space Through the method table Or in a remote address space Through the subcontract table Subcontracts essentially allow other objects to handle your methods for you

Spring Subcontracts Semantics of invoking an object in a different address space can vary Can the object be replicated? Can it support an atomic transaction? Can it migrate? Is it persistent? Spring subcontracts allow this flexibility In the context of RPC

Subcontracts and Extensibility Subcontracts are essentially an extensibility mechanism They allow service providers to extend the service Without requiring clients to do things differently Essentially, subcontracts sit between interfaces and implementations

Simple Subcontracts One example is a subcontract for invoking a method on an object at a remote server Subcontract implements the machinery for communicating with the remote server Methods simply marshal arguments and call the subcontract, in this case

Simple Subcontract Diagram Client Application Client Stubs Subcontract Server Application Server Stubs Subcontract

So, what can I do with subcontracts? One example: a simple replication service Users access through client object Server objects maintain replication Client object has representation showing where each server maintaining a replica is All local methods are stub calls to subcontracts

Replication Subcontract Diagram Client object Client replication subcontract Server object 1 Server replication subcontract Server object 2 Server replication subcontract

Replication Subcontract Diagram Client object Client replication subcontract Server object 1 Server replication subcontract Server object 2 Server replication subcontract

Other Types of Subcontracts The simplex subcontract: the simplest subcontract that uses one door to communicate with a server (RPC) The cluster subcontract: uses a single door to access a set of objects The caching subcontract: supports access to either remote object or local caching object

Spring Nucleus Abstractions Domains Threads Doors All used to support Springs basic object model

Spring Domains Provide address space and container to hold application resources Similar to UNIX processes Or Mach tasks

Spring Threads Unit of execution in Spring Similar to threads in other systems Spring domains are typically multithreaded

Spring Doors Abstraction supporting interdomain object- oriented method calls A door describes an entry point to a domain Also like a capability Possession of a door implies right to invoke an objects method

Protecting Doors Since doors are capabilities, kernel must protect them to provide security Domains dont hold doors themselves They hold door identifiers Door identifiers point to doors stored in the kernel Kernel maintains per-domain door table

Obtaining Doors Only two ways for a domain to get a door From the domain that the door opens to From another domain that already has the desired door Target domain cant tell who used a door

Cross-Domain Object Invocation Via Doors Client invokes door via door identifier Nucleus allocates server thread in a target domain, then quickly transfers control to it Passing door information and arguments

Returning from a Cross-Domain Invocation When target wishes to return, the nucleus Deactivates the called thread Reactivates the caller thread Passes return data to caller

Door Invocation Methods Kernel supports three flavors of door invocation The fast path The vanilla path The bulk path Stubs make choice invisible to user, typically

The Fast-Path Door Invocation For simple data values, less than 16 bytes Which is the dominant case No doors may be passed Highly optimizedaround 100 Sparc instructions to cross domains and come back

The Vanilla-Path Door Invocation For passing less than 5 Kbytes of data Include moderate number of doors Data passed through the kernel

The Bulk-Path Door Invocation For sending entire pages of data And/or large numbers of doors Uses VM remapping to move data Can either unmap and remap in target address space Or map into both and use copy-on-write

Spring Network Proxies When a door points to an off-machine object, it actually points to a network proxy Network proxies effectively connect multiple Spring machines Network proxies are user-mode server domains Proxies are per-protocol, not per-machine

Nucleus BNucleus A Network Proxy Diagram Client domainServer domainProxy AProxy B Door X Door Y

Spring Security Doors provide some level of security But clearly are lacking in certain ways Augmented with both access control list and capabilities Essentially works on the basis of putting a security object in front of the real object Security object can check capability ACL

Virtual Memory in Spring Each Spring machine has one Virtual Machine Manager (VMM) VMM handles mapping, sharing, page protection, transfers, and caching of local memory External pagers access backing store

Address Space Objects Represents the virtual address space of a Spring domain Implemented by VMM Represents just the address space, not particular pieces of real memory Either in terms of physical page frames or logical data pages

Memory Objects Abstraction of memory that can be mapped into an address space object Memory objects represent logical memory Implemented by object at the user level Operations include set/query length and bind Not page-in/page-outseparate object provides paging

Cache and Paging Objects Pager objects know how to fetch and store pages of an object Pager objects provides methods to actually fetch pieces of memory VMM provides cache objects that actually control page frames

Cache/Pager Communications Caches are where the pages are stored Pagers know how to get the pages Cache ask pagers for pages Pagers tell caches what to invalidate

VMM Virtual Memory Object Diagram User object Address space objectCache object Memory object Pager object Map

Whats where on this diagram? Domain address space management Control of individual segment of data Paging to and from location of data Page frame control

Domain Address Space Management VMM User object Address space objectCache object Memory object Pager object Map

Control of Data Segments VMM User object Address space objectCache object Memory object Pager object Map

Paging to and from Data Location VMM User object Address space objectCache object Memory object Pager object Map

Page Frame Control VMM User object Address space objectCache object Memory object Pager object Map

The Joys of Flexibility Pagers can fetch pages from disk Or across the net Different memory objects can permit different types of access to the same memory E.g., read-only versus read/write A single address space object can have memory provided from mapped files, normal VM, off-site files

More Joys of Flexibility Since the address space object is the normal Spring object, we can create doors to it So, other objects (even in other domains) can access it Since multiple pagers are possible, they can be optimized for their backing store Such as log-based file system versus an extent- based file system

Distributed Shared Memory? No problem: Let multiple address space objects on different machines map in the same memory object Pagers then provide access to data And enforce coherency

What this really means Virtual memory, shared memory, distributed shared memory, file systems, caches, everything Provided by one set of interoperable mechanisms Extreme power, extreme flexibility

Naming in Spring Spring uses a single unified system to name all resources Any object can be bound to any name And objects of different types can share the same name space

Contexts in Spring Names are bound to objects within a context Contexts are objects containing a set of name bindings All naming operations go through contexts Contexts can be bound inside other contexts Allowing connection of name spaces in a naming graph

Naming and Persistence By default, Spring objects are not persistent To make an object persistent, bind it to a persistent namespace Also provides methods of re-obtaining persistent object

Making a Named Object Persistent How does a name context make an arbitrary object persistent? Assuming disk storage, how do we store complex objects on disk? Each object type provides an implementation of persistence Through a general interface