Presentation of Singularity OS Seminar, winter 2005 by Jacob Munk-Stander November 23 rd, 2005.

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Department of Computer Science and Engineering University of Washington Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
Ensuring Operating System Kernel Integrity with OSck By Owen S. Hofmann Alan M. Dunn Sangman Kim Indrajit Roy Emmett Witchel Kent State University College.
Language Support for Fast and Reliable Message-based Communication in Singularity Manuel Fähndrich, Mark Aiken, Chris Hawblitzel, Orion Hodson, Galen Hunt,
Remote Procedure Call (RPC)
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.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Extensibility, Safety and Performance in the SPIN Operating System Brian Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, David Becker, Marc.
Extensibility, Safety and Performance in the SPIN Operating System Department of Computer Science and Engineering, University of Washington Brian N. Bershad,
Computer Systems/Operating Systems - Class 8
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,
Extensibility, Safety and Performance in the SPIN Operating System Dave Camarillo.
Figure 1.1 Interaction between applications and the operating system.
1 I/O Management in Representative Operating Systems.
.NET Mobile Application Development Remote Procedure Call.
Slide 3-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 3 Operating System Organization.
Intro to dot Net Dr. John Abraham UTPA – Fall 09 CSCI 3327.
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?
Secure Virtual Architecture John Criswell, Arushi Aggarwal, Andrew Lenharth, Dinakar Dhurjati, and Vikram Adve University of Illinois at Urbana-Champaign.
Understanding Code Compilation and Deployment Lesson 4.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
Extensibility, Safety and Performance in the SPIN Operating System Ashwini Kulkarni Operating Systems Winter 2006.
C# Overview and Features. Content I.History of C# II.Architecture III.How to install IV.Features V.Code Sample VI.Microsoft.NET Platform VII.Why use C#
Operating System 4 THREADS, SMP AND MICROKERNELS
1 Operating System Overview. 2 Today’s Objectives Explain the main purpose of operating systems and describe milestones of OS evolution Explain fundamental.
1 Threads, SMP, and Microkernels Chapter 4. 2 Focus and Subtopics Focus: More advanced concepts related to process management : Resource ownership vs.
.NET Framework Danish Sami UG Lead.NetFoundry
Native Client: A Sandbox for Portable, Untrusted x86 Native Code
CPRG 215 Introduction to Object-Oriented Programming with Java Module 1-Introduction to Java Topic 1.1 Basics of Java Produced by Harvey Peters, 2008 Copyright.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
Formally Verified Operating Systems SINGULARITY AND SEL4.
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.
Slide 3-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 3.
PART II OPERATING SYSTEMS LECTURE 8 SO TAXONOMY Ştefan Stăncescu 1.
Writing Systems Software in a Functional Language An Experience Report Iavor Diatchki, Thomas Hallgren, Mark Jones, Rebekah Leslie, Andrew Tolmach.
OSes: 3. OS Structs 1 Operating Systems v Objectives –summarise OSes from several perspectives Certificate Program in Software Development CSE-TC and CSIM,
Processes Introduction to Operating Systems: Module 3.
OSE 2011– OS Singularity 1 Operating Systems Engineering Language/OS Co-Design: “Singularity” By Dan Tsafrir, 4/5/2011.
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.
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
Silberschatz, Galvin and Gagne  Operating System Concepts UNIT II Operating System Services.
Operating System 4 THREADS, SMP AND MICROKERNELS.
MIDORI The Windows Killer!! by- Sagar R. Yeole Under the guidance of- Prof. T. A. Chavan.
Efficient Software-Based Fault Isolation Authors: Robert Wahbe Steven Lucco Thomas E. Anderson Susan L. Graham Presenter: Gregory Netland.
CS533 Concepts of Operating Systems Jonathan Walpole.
Scott Finley University of Wisconsin – Madison CS 736 Project.
System Programming Basics Cha#2 H.M.Bilal. Operating Systems An operating system is the software on a computer that manages the way different programs.
Language Based Operating Systems by Sean Olson What is a virtual machine? What is managed code? Kernels. Memory and security models. What is a language.
Threads, SMP, and Microkernels Chapter 4. Processes and Threads Operating systems use processes for two purposes - Resource allocation and resource ownership.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Computer System Structures
The Post Windows Operating System
Kernel Design & Implementation
Current Generation Hypervisor Type 1 Type 2.
Memory Protection: Kernel and User Address Spaces
Chapter 2: System Structures
Memory Protection: Kernel and User Address Spaces
Memory Protection: Kernel and User Address Spaces
Memory Protection: Kernel and User Address Spaces
Chapter 2: System Structures
Lecture Topics: 11/1 General Operating System Concepts Processes
Operating System 4 THREADS, SMP AND MICROKERNELS
Operating Systems: A Modern Perspective, Chapter 3
Memory Protection: Kernel and User Address Spaces
Advanced Operating Systems (CS 202) Operating System Structure
Presentation transcript:

Presentation of Singularity OS Seminar, winter 2005 by Jacob Munk-Stander November 23 rd, 2005

Overview of Singularity Singularity is a new research operating system from Microsoft Research –Written almost entirely in managed code Sing# (extension of C#) –Microkernel Primary goal of dependability –“Dependability thus includes as special cases such attributes as reliability, availability, safety, security.” Participants –Cambridge, Silicon Valley and Redmond. –A dozen people are the core contributors (of which two are from DIKU). In total people are working on Singularity. –Research groups include Operating Systems, Programming Languages, Compilers, Tools. –In total research groups, largest in the history of Microsoft Research.

Dependability Dependability realized by: –Managed code, i.e. type safety –Software-Isolated Processes, i.e. no shared memory between processes

Low Level Invariants of Singularity Memory Independence Invariant: –A process does not hold a reference into another process’s object space. State Isolation Invariant: –A process cannot alter the state of another process using the ABI. Ownership Invariant: –Ownership of messages are passed from the sender to the receiver. Exchange Heap Invariant: –Does not contain pointers into any process GC heap.

Managed Code C# is the base managed programming language Spec# - an extension of C# developed in Microsoft Research. –Adds support for specifying program behavior, which can be verified either statically or with run- time tests. Singularity is written in Sing# - an extension of Spec#. –Adds support for channels and low-level constructs.

Managed Code, cont. Code in Singularity is either verified or trusted: –Verified code’s type and memory safety is checked by a compiler –Trusted code must be trusted by the system Most of the kernel is verifiably safe, but portions are written in trusted assembler, C++ and unsafe C#. The rest is written in safe managed code using Sing# Currently: Sing# -> MSIL -> x86 code –Code is verified at each step –Uses Bartok compiler for MSIL -> x86 code Future: Typed Assembly Language will be used to verify output of compiler.

Managed Code, cont. Base managed code has performance somewhat comparable to C/C++. Given safety invariants of the language, tools can perform additional optimizations not possible with unsafe code, e.g. –due to no dynamic code loading => complete compile time static analysis –no pointers into other process => no memory hardware protection

Software-Isolated Processes Self-contained units, providing: –Information hiding –Failure isolation –Strong interfaces Run independently, allowing different GCs, etc. Created and terminated by the OS, allowing for efficient reclamation of resources. All processes in one protection domain, leading to an order of magnitude better context switch times.

SIPs, cont. SIPs are used throughout the OS, in drivers and application software. Application Binary Interfaces maintains system-wide state isolation invariant, i.e. a process cannot alter the state of another process using the ABI.

Channels Communication between SIPs through bidirectional, strongly typed, higher-order channels, specified using contracts. Messages on channels are passed between processes using the Exchange Heap, allowing for zero-copy message passing.

Channels, cont. Integrated into the language, checked at compile time Contracts –Import Channels –Export Channels –State Machine Enforces the ownership invariant Sending messages is asynchronous Receiving message is blocking

Installation Time Metadata in applications manifest Internal properties –Verifies application’s assemblies exists and are type and memory safe –Verifies channel contracts –Verifies ABI versions External dependencies –Verifies that hardware resources used do not conflict –Verifies that all channels exist and do not conflict with other applications’ Policies for conflicts, i.e. only one video driver

Performance Singularity has not been optimized yet Micro benchmarks:

Performance, cont. Dynamic memory usage: SPECweb99, average response time –Cassini web server: 23 conn. of 322 millisec./op. –Windows 2003, IIS: 25 conn. 304 millisec./op.

Additional Information Video interview with lead researchers Jim Larus and Galen Hunt at Channel 9, includes a discussion forum where they answer additional questions. Jim LarusGalen HuntChannel 9 Singularity website.Singularity website Bartok website.Bartok website Software Productivity Tools.Software Productivity Tools