Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr.

Slides:



Advertisements
Similar presentations
Northwestern University 2007 Winter – EECS 443 Advanced Operating Systems Exokernel: An Operating System Architecture for Application-Level Resource Management.
Advertisements

Part IV: Memory Management
More on Processes Chapter 3. Process image _the physical representation of a process in the OS _an address space consisting of code, data and stack segments.
Operating Systems Lecture 10 Issues in Paging and Virtual Memory Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard. Zhiqing.
Department of Computer Science and Engineering University of Washington Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
The Kernel Abstraction. Challenge: Protection How do we execute code with restricted privileges? – Either because the code is buggy or if it might be.
Exokernel: An Opertion System Architecture for Application-Level Resource Management SIGCOMM ’ 96, PDOS-MIT Presented by Ahn Seunghoon Dawson R. Engler,
Extensible Kernels Edgar Velázquez-Armendáriz September 24 th 2009.
G Robert Grimm New York University Extensibility: SPIN and exokernels.
Architectural Support for OS March 29, 2000 Instructor: Gary Kimura Slides courtesy of Hank Levy.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Extensibility, Safety and Performance in the SPIN Operating System Brian Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
Dawson R. Engler, M. Frans Kaashoek, and James O'Tool Jr.
G Robert Grimm New York University Extensibility: SPIN and exokernels.
Extensibility, Safety and Performance in the SPIN Operating System Brian Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
1 Extensible Kernels Ken, with slides by Amar Phanishayee.
1 Last Class: Introduction Operating system = interface between user & architecture Importance of OS OS history: Change is only constant User-level Applications.
Dawson Engler, Frans Kaashoek, James O’Toole
Exokernel: An Operating System Architecture for Application-Level Resource Management Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr. M.I.T.
Extensible Kernels Mingsheng Hong. OS Kernel Types Monolithic Kernels Microkernels – Flexible (?) – Module Design – Reliable – Secure Extensible Kernels.
CS533 Concepts of OS Class 16 ExoKernel by Constantia Tryman.
1 Extensible Kernels Amar Phanishayee. 2 Traditional OS services – Management and Protection Provides a set of abstractions Processes, Threads, Virtual.
1 OS & Computer Architecture Modern OS Functionality (brief review) Architecture Basics Hardware Support for OS Features.
M. Frans Kaashoek, Dawson R. Engler, Gregory R. Ganger, Hector M. Bricefio, Russell Hunt, David Mazikres, Thomas Pinckney, Robert Grimm, John Jannotti.
Protection and the Kernel: Mode, Space, and Context.
Operating System Architectures
APPLICATION PERFORMANCE AND FLEXIBILITY ON EXOKERNEL SYSTEMS M. F. Kaashoek, D. R. Engler, G. R. Ganger H. M. Briceño, R. Hunt, D. Mazières, T. Pinckney,
Paper by Engler, Kaashoek, O’Toole Presentation by Charles Haiber.
CS533 Concepts of Operating Systems Jonathan Walpole.
Topics covered: Memory subsystem CSE243: Introduction to Computer Architecture and Hardware/Software Interface.
Extensibility, Safety and Performance in the SPIN Operating System Ashwini Kulkarni Operating Systems Winter 2006.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
Exokernel: An Operating System Architecture for Application-Level Resource Management" by Dawson R. Engler, M. Frans Kaashoek, and James O'Toole Jr. Chris.
The Performance of Microkernel-Based Systems
The Performance of Micro-Kernel- Based Systems H. Haertig, M. Hohmuth, J. Liedtke, S. Schoenberg, J. Wolter Presentation by: Seungweon Park.
MIT’s Exokernel Presented by Victoria Barrow Kyle Safford Sean Sommers.
CS533 - Concepts of Operating Systems 1 The Mach System Presented by Catherine Vilhauer.
Joonwon Lee Process and Address Space.
4-Dec-15CSE 60641: Operating Systems1 -Exokernel: an operating system architecture for application-level resource management. Dawson R. Engler, M. Frans.
The Mach System Abraham Silberschatz, Peter Baer Galvin, and Greg Gagne Presented by: Jee Vang.
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.
Overview of the MIT Exokernel Operating System James Madison University CS 450 Abzug MWF 10:10-11:00 12/2/02 Steven Petzinger Billy Lehner.
Advanced Operating Systems (CS 202) Extensible Operating Systems Jan, 11, 2016.
CS533 Concepts of Operating Systems Jonathan Walpole.
Advanced Operating Systems (CS 202) Extensible Operating Systems (II) Jan, 13, 2016.
Exokernel: An Operating System Architecture for Application-Level Resource Management By Dawson R. Engler, M. Frans Kaashoek, James O’Toole Jr. Presented.
Running Commodity Operating Systems on Scalable Multiprocessors Edouard Bugnion, Scott Devine and Mendel Rosenblum Presentation by Mark Smith.
Exokernel Operating System: An Introduction Liming Shu COSC 513, Summer 2002.
Memory Protection: Kernel and User Address Spaces Andy Wang Operating Systems COP 4610 / CGS 5765.
Exokernel: An Operating System Architecture for Application-Level Resource Management by Dawson R. Engler, M. Frans Kaashoek, and James O'Toole Jr. Presented.
Introduction to Operating Systems Concepts
Operating Systems CMPSC 473
Memory Protection: Kernel and User Address Spaces
Extensible OSes Exokernel and SPIN (Lecture 9, cs262a)
Memory Protection: Kernel and User Address Spaces
Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr [SOSP’97]
Modern Systems: Extensible KERNELS AND containers
Memory Protection: Kernel and User Address Spaces
Memory Protection: Kernel and User Address Spaces
Architectural Support for OS
Morgan Kaufmann Publishers Memory Hierarchy: Virtual Memory
CSE 451: Operating Systems Autumn 2003 Lecture 2 Architectural Support for Operating Systems Hank Levy 596 Allen Center 1.
EXOKERNEL Gabriel Beltran John Blackman David Martin Kurt Rohrbacher
CSE 451: Operating Systems Autumn 2001 Lecture 2 Architectural Support for Operating Systems Brian Bershad 310 Sieg Hall 1.
CSE 451: Operating Systems Winter 2003 Lecture 2 Architectural Support for Operating Systems Hank Levy 412 Sieg Hall 1.
Architectural Support for OS
CSE 471 Autumn 1998 Virtual memory
Memory Protection: Kernel and User Address Spaces
Presentation transcript:

Exokernel: An Operating System Architecture for Application-Level Resource Management Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr. M.I.T. Laboratory for Computer Science Presented by Lars Larsson

Contents Motivation for Exokernels Goals Design Principles Design Overview Aegis ExOS Extensions to ExOS Conclusion

Motivation for Exokernels Traditional centralized resource management cannot be specialized, extended or replaced Privileged software must be used by all applications Fixed high level abstractions too costly for good efficiency

Goals of Exokernel Implement traditional abstractions entirely at application level Focus on managing security not resources

Design Principles Track resource ownership Ensure protection by guarding resource usage Revoke access to resources Expose hardware, allocation, names and revocation

Design Overview Provide low level interface for library operating systems (libOSes) to use in claiming, using and releasing machine resources Separate protection from management using secure bindings, visible revocation and an abort protocol

Exokernel Architecture

Separating Security from Management Secure bindings – securely bind machine resources Visible revocation – allow libOSes to participate in resource revocation Abort protocol – break bindings of uncooperative libOSes

Secure Bindings Decouple authorization from use Authorization performed at bind time Protection checks are simple operations performed by the kernel Allows protection without understanding Operationally – set of primitives needed for applications to express protection checks

Secure Bindings Techniques Hardware: TLB entry, Packet Filters Software caching: Software TLB stores Downloaded Code: invoked on every resource access or event to determine ownership and kernel actions

Downloaded Code Example: (DPF) Downloaded Packet Filter Eliminates kernel crossings Can execute when application is not scheduled Written in a type safe language and compiled at runtime for security Uses Application-specific Safe Handlers which can initiate a message to reduce round trip latency

Visible Resource Revocation Traditionally resources revoked invisibly Allows libOSes to guide de-allocation and have knowledge of available resources – ie: can choose own ‘victim page’ Places workload on the libOS to organize resource lists

Abort Protocol Forced resource revocation Uses ‘repossession vector’ Raises a repossession exception Possible relocation depending on state of resource

Aegis and ExOS Aegis exports the processor, physical memory, TLB, exceptions, interrupts and a packet filter system ExOS implements processes, virtual memory, user-level exceptions, interprocess abstractions and some network protocols Only used for experimentation

Aegis Implementation Overview Multiplexes the processor Dispatches Exceptions Translates addresses Transfers control between address spaces Multiplexes the network

Processor Time Slices CPU represented as a linear vector of time slices Round robin scheduling Position in the vector Timer interrupts denote beginning and end of time slices and is handled like an exception

Null Procedure and System Call Costs

Aegis Exceptions All hardware exceptions passed to applications Save scratch registers into ‘save area’ using physical addresses Load exception program counter, last virtual address where translation failed and the cause of the exception Jumps to application specified program counter where execution resumes

Aegis vs. Ultrix Exception Handling Times

Address Translation Bootstrapping through ‘guaranteed mapping’ Virtual addresses separated into two segments: Normal data and code Page tables and exception code

TLB Misses Check which segment: if standard user then dispatch to application - otherwise check if guaranteed mapping to forward Look up virtual address in page table Check given capability corresponds to access rights requested If allowed then construct TLB entry with associated capability and invoke system routine If not allowed then raise exception (‘segment fault’) TLB entries are cached in a STLB to absorb capacity

Protected Control Transfer Changes program counter to value in the callee Asynchronous calling process donates remainder of time slice to callee’s process environment – Synchronous calls donate all remaining time slices Installs callee’s processor context (address-context identifier, address-space tag, processor status word) Transfer is atomic to processes Aegis will not overwrite application visible registers

Protected Control Transfer Times Compared with L3

Dynamic Packet Filter (DPF) Message demultiplexing determines which application a message should be delivered to Dynamic code generation is performed by VCODE Generates one executable instruction in 10 instructions

ExOS: A Library Operating System Manages operating system abstractions at the application level within the address space of the application using it System calls can perform as fast as procedure calls

IPC Abstractions Pipes in ExOS use a shared memory circular buffer Pipe’ uses inline read and write calls Shm shows times of two processes to ‘ping-pong’ – simulated on Ultrix using signals Lrpc is single threaded, does not check permissions and assumes a single function is of interest

IPC Times Compared to Ultrix

Application-level Virtual Memory Does not handle swapping Page tables are implemented as a linear vector Provides aliasing, sharing, enabling disabling caching on a per page basis, specific page-allocation and DMA

Virtual Memory Performance

Application-Specific Safe Handlers (ASH) Downloaded into the kernel Made safe by code inspection, sandboxing Executes on message arrival Decouples latency critical operations such as message reply from scheduling of processes

ASH Continued Allows direct message vectoring – eliminating intermediate copies Dynamic integrated layer processing – allows messages to be aggregated to a single point in time Message initiation – allows for low-latency message replies Control initiation – allows general computations such as remote lock acquisition

Roundtrip Latency of 60-byte packet

Average Roundtrip Latency with Multiple Active Processes on Receiver

Extensible RPC Trusted version of lrpc called tlrpc which saves and restores callee-saved registers

Extensible Page-table Structures Inverted page tables

Extensible Schedulers Stride scheduling

Conclusions Simplicity and limited exokernel primitives can be implemented efficiently Hardware multiplexing can be fast and efficient Traditional abstractions can be implemented at the application level Applications can create special purpose implementations by modifying libraries