CS533 Concepts of Operating Systems Jonathan Walpole.

Slides:



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

CS533 Concepts of Operating Systems Class 14 Virtualization and Exokernels.
Operating Systems Lecture 10 Issues in Paging and Virtual Memory Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard. Zhiqing.
EXTENSIBILITY, SAFETY AND PERFORMANCE IN THE SPIN OPERATING SYSTEM B. Bershad, S. Savage, P. Pardyak, E. G. Sirer, D. Becker, M. Fiuczynski, C. Chambers,
Chapter 6 Limited Direct Execution
Extensibility, Safety and Performance in the SPIN Operating System Department of Computer Science and Engineering, University of Washington Brian N. Bershad,
Extensible Kernels Edgar Velázquez-Armendáriz September 24 th 2009.
CS533 Concepts of Operating Systems Class 7 Virtualization and Exokernels.
Operating System Support Focus on Architecture
Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr.
CS533 Concepts of Operating Systems Class 16 Exokernel.
CS533 Concepts of Operating Systems Class 14 Virtualization.
Dawson R. Engler, M. Frans Kaashoek, and James O'Tool Jr.
Home: Phones OFF Please Unix Kernel Parminder Singh Kang Home:
OS Spring’03 Introduction Operating Systems Spring 2003.
Memory Management 1 CS502 Spring 2006 Memory Management CS-502 Spring 2006.
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.
Early OS security Overview by: Greg Morrisett Cornell University, Edited (by permission) for CSUS CSc250 by Bill Mitchell.
Dawson Engler, Frans Kaashoek, James O’Toole
CS533 Concepts of Operating Systems Class 3 Integrated Task and Stack Management.
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 OS & Computer Architecture Modern OS Functionality (brief review) Architecture Basics Hardware Support for OS Features.
Slide 3-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 3 Operating System Organization.
Xen and the Art of Virtualization. Introduction  Challenges to build virtual machines Performance isolation  Scheduling priority  Memory demand  Network.
Basics of Operating Systems March 4, 2001 Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard.
CS510 Concurrent Systems Jonathan Walpole. Lightweight Remote Procedure Call (LRPC)
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
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.
Chapter 1. Introduction What is an Operating System? Mainframe Systems
Extensibility, Safety and Performance in the SPIN Operating System Ashwini Kulkarni Operating Systems Winter 2006.
Recall: Three I/O Methods Synchronous: Wait for I/O operation to complete. Asynchronous: Post I/O request and switch to other work. DMA (Direct Memory.
CS533 Concepts of Operating Systems Jonathan Walpole.
Memory Management 3 Tanenbaum Ch. 3 Silberschatz Ch. 8,9.
CS533 Concepts of Operating Systems Jonathan Walpole.
Lightweight Remote Procedure Call BRIAN N. BERSHAD, THOMAS E. ANDERSON, EDWARD D. LASOWSKA, AND HENRY M. LEVY UNIVERSTY OF WASHINGTON "Lightweight Remote.
Processes Introduction to Operating Systems: Module 3.
MIT’s Exokernel Presented by Victoria Barrow Kyle Safford Sean Sommers.
4-Dec-15CSE 60641: Operating Systems1 -Exokernel: an operating system architecture for application-level resource management. Dawson R. Engler, M. Frans.
We will focus on operating system concepts What does it do? How is it implemented? Apply to Windows, Linux, Unix, Solaris, Mac OS X. Will discuss differences.
Operating Systems Engineering Based on MIT (2012, lec3) Recitation 2: OS Organization.
The Performance of Micro-Kernel- Based Systems H. Haertig, M. Hohmuth, J. Liedtke, S. Schoenberg, J. Wolter Presentation by: Tim Hamilton.
CS533 Concepts of Operating Systems Jonathan Walpole.
Advanced Operating Systems (CS 202) Extensible Operating Systems Jan, 11, 2016.
CS533 Concepts of Operating Systems Jonathan Walpole.
Exokernel: An Operating System Architecture for Application-Level Resource Management By Dawson R. Engler, M. Frans Kaashoek, James O’Toole Jr. Presented.
Chapter 6 Limited Direct Execution Chien-Chung Shen CIS/UD
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
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
MODERN OPERATING SYSTEMS Third Edition ANDREW S
Kernel Design & Implementation
Memory Management Paging (continued) Segmentation
CS533 Concepts of Operating Systems
CS490 Windows Internals Quiz 2 09/27/2013.
CS510 Operating System Foundations
OS Virtualization.
Jennifer Rose Daniel Stanaland Amy Turlington
Memory Management Paging (continued) Segmentation
Lecture Topics: 11/1 General Operating System Concepts Processes
Operating Systems: A Modern Perspective, Chapter 3
Operating Systems Structure
Memory Management Paging (continued) Segmentation
Advanced Operating Systems (CS 202) Operating System Structure
Presentation transcript:

CS533 Concepts of Operating Systems Jonathan Walpole

Exokernel An Operating System Architecture for Application-Level Resource Management

Operating Systems Purpose Users don’t want to run an OS They want to run applications We should design OS kernels with application needs in mind

What Do Applications Need? Protection from other applications Services Access to hardware that may require privilege

How Good Is The OS? How are services provided? How fast are the services? How well do they match application needs?

What’s Wrong With Monolithic OS? All services built into the kernel No internal protection boundaries Internal operation is fast, but system calls are quite expensive One size fits all services Abstractions may not be suitable, and they impair efficiency

What’s Wrong With Microkernels? Minimal kernel is good Lower-level abstractions are an improvement Extensibility is good Potential for protection and fault isolation Boundary crossing via IPC is expensive Minimal abstraction is an oxymoron

Exokernel Secure hardware multiplexor Expose hardware, don’t abstract it Don’t virtualize it either! Kernel validates access The rest of the OS is in a library

Resource Allocation Library OS requests specific resources Page frames, disk blocks, time slices … Exokernel exposes resource names No hidden allocation (no virtualization) All mechanism, no policy

Visible Revocation Exokernel asks for resources to be returned i.e. free a page Library OS chooses what to free Revocation is forced if library OS is not responsive

Multiplexed Hardware CPU Interrupts Memory DMA Disk Network

CPU Resource: linear time vector Mechanism: expose timer interrupts Granularity: time slices Library OS reserves future time slices Context switching implemented by library OS Similar to scheduler activations

Physical Memory Resource: linear physical memory Mechanism: safely expose TLB & page tables Library OS requests pages Exokernel validates access

Network Resource: incoming data stream Mechanism: packet filter Filters compiled into machine code by exokernel Filters safely colocated with the Exokernel

Protected Control Transfer Client transfers control to predefined server entry point Client donates scheduling time slice That’s it! … only 30 instructions Exokernel provides the minimal mechanism Could build RPC, IPC, on top of this … or not

Library Operating Systems Reside in application address space Use exokernel interfaces Exokernel invocation takes 18 instructions Invocation of library OS from applications is a procedure call OS specifically tuned for application needs

Conclusion Don’t abstract or virtualize, its inefficient! Just provide secure hardware multiplexing Expose physical resources Expose names, allocation and revocation OS should provide minimal mechanism, not policy