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,

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

Interactive lesson about operating system
Northwestern University 2007 Winter – EECS 443 Advanced Operating Systems Exokernel: An Operating System Architecture for Application-Level Resource Management.
CS533 Concepts of Operating Systems Class 14 Virtualization and Exokernels.
CS 443 Advanced OS David R. Choffnes, Spring 2005 Application Performance and Flexibility on Exokernel Systems M. F. Kaashoek, D.R. Engler, G.R. Ganger,H.M.
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.
Study of Hurricane and Tornado Operating Systems By Shubhanan Bakre.
1 Application Performance and Flexibility on Exokernel Systems Kaashoek, Engler, Ganger, Briceno, Hunt, Mazieres, Pinckney, Grimm, Jannotti, Mackenzie.
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.
Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr.
Dawson R. Engler, M. Frans Kaashoek, and James O'Tool Jr.
G Robert Grimm New York University Extensibility: SPIN and exokernels.
Introduction to Kernel
Microkernels: Mach and L4
1 Last Class: Introduction Operating system = interface between user & architecture Importance of OS OS history: Change is only constant User-level Applications.
Computer Organization and Architecture
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.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Virtual Machine Monitors CSE451 Andrew Whitaker. Hardware Virtualization Running multiple operating systems on a single physical machine Examples:  VMWare,
Basics of Operating Systems March 4, 2001 Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard.
M. Frans Kaashoek, Dawson R. Engler, Gregory R. Ganger, Hector M. Bricefio, Russell Hunt, David Mazikres, Thomas Pinckney, Robert Grimm, John Jannotti.
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
A PPLICATION P ERFORMANCE AND F LEXIBILITY ON E XOKERNEL S YSTEMS CS5204 – Operating Systems Md Hasanuzzaman Bhuiyan Kaashoek et al. MIT Laboratory.
Operating System Architectures
Paper by Engler, Kaashoek, O’Toole Presentation by Charles Haiber.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
CS533 Concepts of Operating Systems Jonathan Walpole.
Distributed File Systems
Exokernel: An Operating System Architecture for Application-Level Resource Management" by Dawson R. Engler, M. Frans Kaashoek, and James O'Toole Jr. Chris.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
OSes: 3. OS Structs 1 Operating Systems v Objectives –summarise OSes from several perspectives Certificate Program in Software Development CSE-TC and CSIM,
Operating Systems Lecture November 2015© Copyright Virtual University of Pakistan 2 Agenda for Today Review of previous lecture Hardware (I/O, memory,
Processes Introduction to Operating Systems: Module 3.
MIT’s Exokernel Presented by Victoria Barrow Kyle Safford Sean Sommers.
CS533 - Concepts of Operating Systems 1 The Mach System Presented by Catherine Vilhauer.
UNIX Unit 1- Architecture of Unix - By Pratima.
Operating Systems Security
1.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Lecture 2: OS Structures (Chapter 2.7)
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.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
Protection of Processes Security and privacy of data is challenging currently. Protecting information – Not limited to hardware. – Depends on innovation.
What is a Process ? A program in execution.
CS533 Concepts of Operating Systems Jonathan Walpole.
1.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Lecture 1: Introduction & OS Structures (Part One, Chapters 1&2)
Exokernel Operating System: An Introduction Liming Shu COSC 513, Summer 2002.
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
Virtual Machine Monitors
Introduction to Kernel
KERNEL ARCHITECTURE.
OS Virtualization.
Jennifer Rose Daniel Stanaland Amy Turlington
Morgan Kaufmann Publishers Memory Hierarchy: Virtual Memory
Chapter 2: Operating-System Structures
Operating Systems Lecture 3.
Introduction to Operating Systems
EXOKERNEL Gabriel Beltran John Blackman David Martin Kurt Rohrbacher
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
Operating Systems Structure
Chapter 2: Operating-System Structures
Presentation transcript:

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, R. Grimm, J. Jannotti and K. Mackenzie M.I.T. Laboratory for Computer Science

Introduction In most operating systems only privileged servers and the kernel can manage system resources –User interface must anticipate all application needs The exokernel architecture delegates resource management to user applications. Applications that do not want this responsibility communicate with the exokernel through libOSes.

Conventional OS user interface User process Kernel protects and manages all the system resources User process System calls

Exokernels (I) Exokernel protects but does not manage system resources User process

Exokernels (II) User processes manage their own resources –Take over tasks previously done by the kernel (file system buffering, virtual memory, …) Kernel still responsible for protection Requires a more complex and more powerful user-kernel interface

Advantages and Disadvantages User applications can often manage their resources better than the kernel –They know—or should know—better how they will use each individual resource Most user applications would still prefer to let the kernel handle resource allocation for them –Do you want to do your own paging in all your programs?

LibOSes (I) User-level library of functions emulating conventional system call interface –Manages resources for applications that do not want to do it themselves Can have different libOSes coexisting on the top of same exokernel –Allows system to emulate behaviors of several conventional operating systems

LibOSes (II) Exokernel User process libOS User process libOS

LibOSes (III) Same interface between application and libOS as between application and a conventional kernel libOS runs as part of application –Cannot be trusted by the kernel or other user processes

Previous Work Other techniques to provide extensible systems or to give applications more control over their resources include: –Some newer microkernels (SPACE) –Virtual machines –Allowing applications to download code into the kernel (SPIN, Vino) – User-level networking –Application-controlled virtual memory.

Five Principles  Separate protection and management.  Letting applications allocate resources explicitly.  Using physical names whenever possible.  Expose revocation: let applications choose which instance of a resource to give up.  Expose all kernel information.

Three Design Techniques Xok performs access control on all resources in a uniform manner. Software abstractions bind hardware resources together, like, disk blocks and the memory pages caching them Some Xok abstractions let applications download code into the kernel to achieve a f iner grain of protection: –For validating file update times in a file system

Protected Sharing (I) Four mechanisms: – software regions : areas of memory that can only be accessed through system calls –on-the-fly_creation of hierarchically named capabilities – wake-up predicates : wake up processes when arbitrary conditions become true –robust critical sections : implemented by disabling software interrupts

Protected Sharing (II) Three level of trust: –mutual trust (common case) –unidirectional trust –mutual distrust (very infrequent) Several library files systems can safely share the same disk

An Example: The File System Most file system functions are left to untrusted library file systems (libFSes) –Will share access to the stable storage (disk) –Can define new file types with arbitrary metadata formats Problem is to give maximum of flexibility to these libFses while protecting files from unauthorized accesses

Four requirements Creating new file formats should not require any special privilege libFSes should be able to safely share blocks at the raw disk block level Storage system should be efficient Storage system should facilitate cache sharing among distinct libFses

The Solution: XN (I) Provides access to stable storage at the level of disk blocks Exports a buffer cache registry (contains only metadata) Main problem is to decide when to allow or disallow access to a specific block –Difficult problem because each libFS may use different metadata

The Solution: XN (II) XN uses UDF ( untrusted deterministic functions ) –Specific to a user-defined metadata type – own-udf T (m) returns set of blocks to which instance m of metadata type T point to –Stored in templates (one per file type ) –Cannot be changed after they are specified

XN Security Issues XN uses secure bindings : –Access checks are done once at bind time not at each access time Individual disk blocks are protected through UDFs and libFS’s own metadata –Keeps exokernel simple

XN Consistency Issues XN has an in-kernel system-wide cache registry –Maps cached disk blocks to the physical pages holding them –Guarantees that same block cannot be cached in two different physical pages by two different libFSes XN also ensures safe ordering of disk updates (more about it later)

Xok Runs on Inter x86-based computers –Since TLB misses are handled by hardware, cannot change the page table structure. Xok exposes –The capabilities of the hardware (like all MMU protection bits) –Many kernel data structures (like free lists and inverse page mappings) Paging is handled by applications.

ExOS 1.0 libOS that supports most 4.4 BSD abstractions Runs many unmodified UNIX applications: –Most shells and utilities, many networking applications. –see page 10

Some Lessons It is a good idea to expose kernel data structures –Leads to much better performance Libraries are simpler than kernels Exokernel interface design is not simple Self-paging is difficult to implement, especially in libOSes Downloading is powerful