DOC PREVIEW
UW-Madison CS 736 - Ext2 on Singularity

This preview shows page 1-2-3-4 out of 11 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Abstract1 Introduction2 The Singularity Architecture2.1 The programming Environment2.2 The Process Model2.3 Communication Channels3 Ext2 Implementation3.1 Ext2ClientManager3.2 Ext2Control3.3 Ext2Contracts3.4 Ext2Fs3.4.1 Directory Interfaces3.4.2 File Interface3.4.3 Supported Operations3.5 Caching4 Results4.1 Test configuration4.2 Test Results4.3 Garbage collection4.4 Singularity design4.4.1 Language Features4.4.2 Trusted Code4.4.3 Dependability5 Conclusion6 ReferencesExt2 on SingularityScott FinleyCS 736 Semester Project Report – Spring 2008University of Wisconsin – MadisonAbstractSingularity is a new operating system produced byMicrosoft Research. The design of Singularity is amarked departure from current commodity operatingsystems such as Windows or Linux.This paper presents and implementation of the Linuxext2 file system for use on Singularity. This projectallows the design of Singularity to be evaluated.The development and testing described in this papershow that the Singularity design goals of highdependability and “good enough” performance arelargely met. The protection provided by the microkernel design prevented the Singularity kernel fromcrashing in the face of errors in the ext2 code.Performance testing showed that while not as fast asext2 on Linux performance is not prohibitively lowand the overhead of garbage collection is minimal.1 IntroductionSingularity is a new operating system released byMicrosoft Research. It is intended as a platform toinvestigate new ideas in operating system structure.Many of the design decision in Singularity representa dramatic departure from main stream operatingsystems such as Windows or Linux [1].Evaluating Singularity’s design presents a challengebecause existing applications and libraries must bere-written to be ported. One result of this issue is thatFAT32 is the only file system that is supported. Thisleaves Singularity without a file system which canmeet the IO demands of a benchmark such asSpecWeb99. Singularity provides better responsetime than Windows in this benchmark, but cannotmatch the total simultaneous users because of thebottleneck of the FAT file system[1].This paper describes the implementation and testingof the ext2 file system for use on Singularity. Thework so far has focused fully supporting reads fromext2. Caching of file system metadata and raw diskblocks makes reads speeds comparable to ext2 readson Linux. Limited write support was completed,primarily to aid in testing. Write support has notprogressed to a point that makes a performanceanalysis worthwhile.The goal of this work is to evaluate the design ofSingularity. Integration of a well known file systemprovides the opportunity to gauge the developmentexperience when doing system programming inSingularity. Because the result is a file system that iscompatible with ext2 running on Linux, a directperformance comparison is meaningful.The development and testing described in this papershow that the Singularity design goals of highdependability and “good enough” performance arelargely met. The protection provided by the microkernel design prevented the Singularity kernel fromcrashing in the face of errors in the ext2 code.Performance testing showed that while not as fast asext2 on Linux performance is not prohibitively lowand the overhead of garbage collection is minimal.The remainder of this paper is organized as follows:Section two is an overview of the important points ofthe Singularity design. Section three covers thedetails of my ext2 implementation on Singularity.Section four evaluates ext2 on Singularity as well asSingularity as a whole. Section five concludes thepaper.2 The Singularity ArchitectureThe information in this section is a summarycompiled from references [1] through [9].Singularity is a new operating system design byMicrosoft’s Research department. It is not intendedfor practical use, but rather as an environment inwhich to explore new ideas in operating systemresearch. The design of Singularity explicitly targetsdependability as the primary goal. Performance is asecondary goal only to the extent that it must be goodenough to make the system practically usable.Despite the de-emphasis of performance, Microsofthas published micro-benchmarks showing that theSingularity design results in improved performanceof many basic operating system operations such as akernel API call, thread yield or starting a process.2.1 The programming EnvironmentPrograms for Singularity are written in Sing#, anextension of Spec#, which is itself an extension ofC#. Almost all of the Singularity kernel is written inSing#, with a small portion (around 5%) written inassembly and C++.Despite the basis in C#, programs in Singularity donot run on a virtual machine such as the CommonLanguage Runtime in Windows. Instead theMicrosoft Intermediate Language (MSIL) codegenerated by the Sing# compiler is compiled tonative machine code by the Bartok compiler. Thisprocess includes aggressive optimizations to furtherimprove performance.This optimization process is improved by takingadvantage of the fact that processes in Singularity aresealed, meaning that code cannot be changed orlinked in dynamically. Because the compiler cancount on seeing all of a program’s code at compiletime, many global optimization are possible whichare not available in other systems.Finally, all Singularity processes, as well as thekernel, are garbage collected. Each garbage collectorruns independently which allows them to beconfigured differently depending on the needs of theapplication. 2.2 The Process ModelSingularity uses a micro kernel architecture. Outsideof this micro kernel Singularity uses a single processmodel called a Software Isolated Process (SIP). Asthe name implies, SIPs do not rely on memorymanagement hardware for address space protectionas is in most modern operating system. Instead eachSIP has a software protected


View Full Document

UW-Madison CS 736 - Ext2 on Singularity

Documents in this Course
Load more
Download Ext2 on Singularity
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Ext2 on Singularity and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Ext2 on Singularity 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?