DOC PREVIEW
UW-Madison CS 736 - Ext2 on Singularity

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

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 12 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 12 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 12 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 12 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 12 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 Ext2FsDirectory InterfacesFile InterfaceSupported Operations3.5 Caching4 Results4.1 Test configuration4.2 Test Results4.3 Garbage collection4.4 Singularity designLanguage FeaturesTrusted CodeDependability5 Conclusion6 ReferencesExt2 on SingularityScott FinleyCS 736 Semester Project Report – Spring 2008University of Wisconsin – MadisonAbstractSingularity is a newoperating systemproduced by MicrosoftResearch. The design ofSingularity is a markeddeparture from currentcommodity operatingsystems such asWindows or Linux.This paper presents andimplementation of theLinux ext2 file systemfor use on Singularity.This project allows thedesign of Singularity tobe evaluated.The development andtesting described in thispaper show that theSingularity design goalsof high dependabilityand “good enough”performance are largelymet. The protectionprovided by the microkernel design preventedthe Singularity kernelfrom crashing in theface of errors in the ext2code. Performancetesting showed thatwhile not as fast as ext2on Linux performance isnot prohibitively lowand the overhead ofgarbage collection isminimal.1 IntroductionSingularity is a newoperating systemreleased by MicrosoftResearch. It is intendedas a platform toinvestigate new ideas inoperating systemstructure. Many of thedesign decision inSingularity represent adramatic departure frommain stream operatingsystems such asWindows or Linux [1].Evaluating Singularity’sdesign presents achallenge becauseexisting applicationsand libraries must be re-written to be ported.One result of this issueis that FAT32 is the onlyfile system that issupported. This leavesSingularity without afile system which canmeet the IO demands ofa benchmark such asSpecWeb99. Singularityprovides better responsetime than Windows inthis benchmark, butcannot match the totalsimultaneous usersbecause of thebottleneck of the FATfile system[1].This paper describes theimplementation andtesting of the ext2 filesystem for use onSingularity. The work sofar has focused fullysupporting reads fromext2. Caching of filesystem metadata andraw disk blocks makesreads speedscomparable to ext2reads on Linux. Limitedwrite support wascompleted, primarily toaid in testing. Writesupport has notprogressed to a pointthat makes aperformance analysisworthwhile.The goal of this work isto evaluate the design ofSingularity. Integrationof a well known filesystem provides theopportunity to gauge thedevelopment experiencewhen doing systemprogramming inSingularity. Because theresult is a file systemthat is compatible withext2 running on Linux,a direct performancecomparison ismeaningful.The development andtesting described in thispaper show that theSingularity design goalsof high dependabilityand “good enough”performance are largelymet. The protectionprovided by the microkernel design preventedthe Singularity kernelfrom crashing in theface of errors in the ext2code. Performancetesting showed thatwhile not as fast as ext2on Linux performance isnot prohibitively lowand the overhead ofgarbage collection isminimal.The remainder of thispaper is organized asfollows: Section two isan overview of theimportant points of theSingularity design.Section three covers thedetails of my ext2implementation onSingularity. Section fourevaluates ext2 onSingularity as well asSingularity as a whole.Section five concludesthe paper.2 The SingularityArchitectureThe information in thissection is a summarycompiled fromreferences [1] through[9].Singularity is a newoperating system designby Microsoft’s Researchdepartment. It is notintended for practicaluse, but rather as anenvironment in which toexplore new ideas inoperating systemresearch. The design ofSingularity explicitlytargets dependability asthe primary goal.Performance is asecondary goal only tothe extent that it must begood enough to makethe system practicallyusable. Despite the de-emphasis ofperformance, Microsofthas published micro-benchmarks showingthat the Singularitydesign results inimproved performanceof many basic operatingsystem operations suchas a kernel API call,thread yield or starting aprocess.2.1 TheprogrammingEnvironmentPrograms forSingularity are writtenin Sing#, an extensionof Spec#, which is itselfan extension of C#.Almost all of theSingularity kernel iswritten in Sing#, with asmall portion (around5%) written in assemblyand C++.Despite the basis in C#,programs in Singularitydo not run on a virtualmachine such as theCommon LanguageRuntime in Windows.Instead the MicrosoftIntermediate Language(MSIL) code generatedby the Sing# compiler iscompiled to nativemachine code by theBartok compiler. Thisprocess includesaggressiveoptimizations to furtherimprove performance.This optimizationprocess is improved bytaking advantage of thefact that processes inSingularity are sealed,meaning that codecannot be changed orlinked in dynamically.Because the compilercan count on seeing allof a program’s code atcompile time, manyglobal optimization arepossible which are notavailable in othersystems.Finally, all Singularityprocesses, as well as thekernel, are garbagecollected. Each garbagecollector runsindependently whichallows them to beconfigured differentlydepending on the needsof the application. 2.2 The ProcessModelSingularity uses a microkernel architecture.Outside of this microkernel Singularity uses asingle process modelcalled a SoftwareIsolated Process (SIP).As the name implies,SIPs do not rely onmemory managementhardware for addressspace protection as is inmost modern operatingsystem. Instead


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?