Extensibility, Safety and Performance in the SPIN Operating System Brian Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,

Slides:



Advertisements
Similar presentations
Slide 19-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 19.
Advertisements

CS533 Concepts of Operating Systems Class 14 Virtualization and Exokernels.
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 B. Bershad, S. Savage, P. Pardyak, E. G. Sirer, D. Becker, M. Fiuczynski, C. Chambers,
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Chorus and other Microkernels Presented by: Jonathan Tanner and Brian Doyle Articles By: Jon Udell Peter D. Varhol Dick Pountain.
Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented by Alana Sweat.
Extensibility, Safety and Performance in the SPIN Operating System Brian Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, David Becker, Marc.
Background Computer System Architectures Computer System Software.
Extensibility, Safety and Performance in the SPIN Operating System Department of Computer Science and Engineering, University of Washington Brian N. Bershad,
1. Overview  Introduction  Motivations  Multikernel Model  Implementation – The Barrelfish  Performance Testing  Conclusion 2.
Extensible Kernels: Exokernel and SPIN Presented by Hakim Weatherspoon (Based on slides from Edgar Velázquez-Armendáriz and Ken Birman)
Extensible Kernels Edgar Velázquez-Armendáriz September 24 th 2009.
G Robert Grimm New York University Extensibility: SPIN and exokernels.
Extensibility, Safety and Performance in the SPIN Operating System B. N. Bershad, S. Savage, P. Pardyak, E. G. Sirer, M. E. Fiuczyski, D. Becker, C. Chambers,
G Robert Grimm New York University Opal.
Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr.
Extensibility, Safety and Performance in the SPIN Operating System Bershad et al Presentation by norm Slides shamelessly “borrowed” from Stefan Savage’s.
CS533 Concepts of Operating Systems Class 14 Virtualization.
User Level Interprocess Communication for Shared Memory Multiprocessor by Bershad, B.N. Anderson, A.E., Lazowska, E.D., and Levy, H.M.
Dawson R. Engler, M. Frans Kaashoek, and James O'Tool Jr.
G Robert Grimm New York University Extensibility: SPIN and exokernels.
Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, Henry M. Levy ACM Transactions Vol. 8, No. 1, February 1990,
Extensibility, Safety and Performance in the SPIN Operating System Brian Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
Extensibility, Safety and Performance in the SPIN Operating System Dave Camarillo.
Presentation of Extensibility, Safety and Performance in the SPIN Operating System Brain N. BershadStefan SavagePrzemyslaw Emin Gun Sirer Marc E.FiuczynskiDavid.
Exokernel: An Operating System Architecture for Application-Level Resource Management Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr. M.I.T.
CS533 Concepts of Operating Systems Class 6 Micro-kernels Extensibility via Hardware or Software Based Protection.
User-Level Interprocess Communication for Shared Memory Multiprocessors Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented.
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.
Slide 3-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 3 Operating System Organization.
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?
Computer System Architectures Computer System Software
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.
Operating System Architectures
Extensibility, Safety and Performance in the SPIN Operating System Ashwini Kulkarni Operating Systems Winter 2006.
Kernel, processes and threads Windows and Linux. Windows Architecture Operating system design Modified microkernel Layered Components HAL Interacts with.
Chapter 4 Threads, SMP, and Microkernels Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems CSCI-6140 – Computer Operating Systems David Goldschmidt, Ph.D.
The Performance of Microkernel-Based Systems
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Processes Introduction to Operating Systems: Module 3.
The Mach System Abraham Silberschatz, Peter Baer Galvin, Greg Gagne Presentation By: Agnimitra Roy.
1 Choices “Our object-oriented system architecture embodies the notion of customizing operating systems to tailor them to support particular hardware configuration.
EXTENSIBILITY, SAFETY AND PERFORMANCE IN THE SPIN OPERATING SYSTEM
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.
Networking Implementations (part 1) CPS210 Spring 2006.
Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy. Presented by: Tim Fleck.
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.
The Mach System Silberschatz et al Presented By Anjana Venkat.
Advanced Operating Systems (CS 202) Extensible Operating Systems Jan, 11, 2016.
Operating Systems Unit 2: – Process Context switch Interrupt Interprocess communication – Thread Thread models Operating Systems.
CS533 Concepts of Operating Systems Jonathan Walpole.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
1.3 Operating system services An operating system provide services to programs and to the users of the program. It provides an environment for the execution.
Introduction to Operating Systems Concepts
Modularity Most useful abstractions an OS wants to offer can’t be directly realized by hardware Modularity is one technique the OS uses to provide better.
Kernel Design & Implementation
Extensible OSes Exokernel and SPIN (Lecture 9, cs262a)
Presentation by Omar Abu-Azzah
Presented by Neha Agrawal
Operating Systems Structure
CSE 60641: Operating Systems
Advanced Operating Systems (CS 202) Operating System Structure
CSE 542: Operating Systems
Presentation transcript:

Extensibility, Safety and Performance in the SPIN Operating System Brian Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski, David Becker, Craig Chambers, Susan Eggers Department of Computer Science and Engineering University of Washington 1

SPIN OS Motivation: general purpose, UNIX-based operating systems can perform poorly when the applications have resource usage patterns poorly handled by kernel code Objective: a general purpose OS capable of handling specialized needs as well, with better performance and no security threats 2

MONOLITHICMICROKERNEL OS STRUCTURE 3

OS STRUCTURE-EXTENSIBLE 4

SPIN IDEA Using language and runtime services to provide low- cost, fine-grained, protected access to system resources Four design techniques – Enforced modularity: through use of Modula-3, which enforces interface boundaries between modules – Co-location: extensions live in kernel space – Logical Protection Domains: namespaces inside kernel, intradomain communication possible at cost of procedure call – Dynamic call binding: system events are dispatched to extensions 5

SPIN GOALS Extensibility – applications must be able to extend kernel functionality Safety – access to system resources must be controlled at the same granularity at which extensions are defined Performance – Requires low-overhead in the extension mechanisms – Application performance is the end goal 6

SPIN STRUCTURE 7

EXTENSIBILITY 8

EXTENSION MODEL Property of Extension – Easy to apply – Transparent – Efficient Extensions defined in terms of Event and Handler Provide controlled communication between Extension and Base system 9

Event raised Dispatcher call guards and handlers Evaluating guards If guard true then call handler EXTENSION MODEL 10

SAFETY 11

LANGUAGE-LEVEL PROTECTION Modula-3: relevant features that make extensions provided by applications safe to run in kernel space – Pointers cannot be forged: therefore an extension can only access the symbols exported through the public interfaces of any module (i.e. SpinPublic) – Pointers can only be de-referenced in a type-safe way (this check is also ensured across procedure calls between different domains) – Protection Domains (vs traditional VM approaches); Create, Resolve (dynamic linking), Combine (multiple domains) 12

13 SPIN Protection Model Goal: control the set of operations that can be applied to resources Capability-based protection system Protection domains

14 Capabilities Definition: A secure reference to a resource All kernel resources are referenced by capabilities Implementation: a type safe pointer to an abstract data type Extensions reference resources for which they have valid access A Pointer can be passed from the kernel to user-level applications as externalized references Key point: Capabilities refer directly to the underlying resources which they name

15 Protection Domains Define set of names that can be referenced by code with access to domain Domains is used to control dynamic linking, and corresponds to one or more safe object files Operations – Create: create a new domain – Resolve: dynamic linking – Combine: create a new aggregate domain

CORE SERVICES 16

MEMORY MANAGEMENT three components: – physical address service manages allocation of physical pages – virtual address service manages capabilities for virtual addresses – translation service manages relationship between physical and virtual addresses Extensions use the events raised by these three modules to create their own memory management schemes 17

THREAD MANAGEMENT SPIN doesn’t define thread model, instead defines structure upon which different threading models can be implemented. This structure is defined by a set of events coordinating processor allocation between schedulers and thread packages SPIN provides Strands An application-specific thread package defines an implementation of the Strand interface for its own threads. 18

PERFORMANCE 19

PLATFORM SPIN runs on DEC Alpha platforms Measurements – DEC Alpha 133Mhz AXP 3000/400 workstations Comparison systems – DEC OSF/1 V2.1 (monolithic operating system) – Mach 3.0 (microkernel) 20

MICROBENCHMARK-PROTECTED COMMUNICATION SPIN performed better for both system calls and cross-address calls. It’s in-kernel calls were significantly faster then either two of the other methods 21

MICROBENCHMARK-THREAD Thread performance in SPIN was better then that of OSF/1 and Mach in the ping-pong and fork-join tests. 22

MICROBENCHMARK-VIRTUAL MEMORY SPIN uses kernel extensions to define application-specific system calls for VM management. The multiple application-kernel interactions are reflected to the application by fast in- kernel modules, avoiding the need to use traps or messages. 23

MICROBENCHMARK-VIRTUAL MEMORY 24

NETWORK LATENCY & BANDWIDTH SPIN shows better network latency and bandwidth performance characteristics then OSF/1. SPIN, the application code executes in the kernel, where it has low-latency access to both the device and data. 25

END-TO-END PERFORMANCE SPIN utilizes half of the hardware as compared to OSF/1 for the same client load. SPIN tries to avoid double buffering between OS and application. 26

SPIN ADVANTAGES Extensions provide specialized service – Don’t execute unnecessary code Extensions close to kernel services – Low latency response to faults/interrupts – Invoking services is cheap 27

CONCLUSION SPIN demonstrates that it is possible to achieve good performance in an extensible system without compromising safety using a programming language with appropriate features and software architecture principles. 28

REFERENCES Extensibility, Safety and Performance in the SPIN Operating System Brian Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, David Becker, Marc Fiuczynski, Craig Chambers, Susan Eggers Dynamic Binding for an Extensible System, Przemyslaw Pardyak and Brian Bershad SPIN Operating System web site: Documentation and source code qstream.org/~krasic/cs /summaries/paper17/SpinOS.ppt 29