Extensibility, Safety and Performance SPIN Brian N. Marc E. Operating System Bershad Stefan Savage Przemyslaw Fiuczynski David Becker Craig Department of Computer of Seattle, ~hambers paging describes performance SPIN with the motivation, provides an to safely extension change and implementation. specialize the achieve export system safe erating and This code executing run on DEC Alpha in within realtime to demands performance the op- the kernel address 1.1 in Modula-3 Goals The goal Introduction to specialized ality by to safely requirements the need mands poorly mentation tion poorly to applications by an operating A poorly an application matched interface the and functionthat from prevents present system’s matched well, it from working of disk de- implewhile buffering to operating also needs operating to of the and services. the implementations Other present system extend provide application a and characteristics and granularity nally, good of the at between of cost, an extension protected space. system SIGOPS ’95 12/95 CO, USA Q 1995 ACM 0-89791-71 5-4/9510012...$3.50 267 Enforced Modula-3 the Co-location and extension the view safe, and services at defined. Fi- system. that fast that an operatthrough to operating at the communication to have low the provide lowsystem system level system extensions the kernel virtual code of the commu- SPIN operating enables de- actions overhead our implemented Operating linked into are the that controlled low and exported Safety to the be access are infrastructure and runtime by services. extensions requires Specifically, Co-location. namically that an access which lies on four techniques language or its runtime: Permission to make digital/hard oopy of part or all of this work for personal or classroom use is granted without fee provided that mpies are not made or distributed for profit or commercial advantage, the copyright notica, the title of the publication and its date appear, and notice is given that copying is by permission of ACM, Inc. To mpy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission andlor a fee. on SPIN reflects and fine-grained, resources. Thk research was sponsored by the Advanced Research Projects Agency, the National Science Foundation (Grants no. CDA-91 23308 and CC! R-9200832) and by an equipment grant from Digital Equipment Corporation. Bershad was partially supported by a National Science Foundation Presidential Faculty Fellowship. Chambers was partially sponsored by a National Science Foundation Presidential Young Investigator Award. Sirer was supported by an IBM Graduate Student Fellowship. Fiuczynski was partially supported by a National Science Foundation GEE Fellowship. that purpose safety is determined to system can be extensible, use of language a general extensibility, of applications performance design build resources depends access requires ing system and and exposure same The at all. it the is to provides Extensibility fine-grained nication a that services applications; others, implementa- working implementations and servers, can research system termines SPIN is motivated of applications. matched be dynamically the performance support or interface. prevents For example, meet clients can 92]. approach performance. allows can perfor- et al. functional and of our operating that and of high Eicken programs, the pur- frequently extensions workstations. system and between are demands [von match interfaces interfaces SPIN is an operating the tolerant poorly match good 1 implementations result- General system, op- protecting are written that system’s the 81]. SPIN, an application better a type [Stonebraker as multimedia fault systems applications, supporting such operating database applications and Using to the for parallel to operat- into offers while SPIN and its extensions space. written linked approach services, to Eggers in modern for protocol applications, function- mechanisms interfaces are inadequate in order found performance network mance interface and link-time dynamically kernel. system system pose applica- an application of performance algorithms be inappropriate together allow system’s allow Extensions are access to system erating and and system rapid operating fine-grained services. language, that Susan Sirer Engineering ing in poor and system. infrastructure, operating level SPIN uses language ality. ing the underlying operating services, Extensions a particular inexpensively architecture SPIN, an extensible of a core set of extensible tions and Gun 98195 can paper Emin Washington WA Abstract This Pardyak Science University in the re- of the are dyaddress between cost. modularity. Extensions are written [Nelson 91], a modular programming in lan- guage for which boundaries execute not in the access tions the compiler between through kernel’s memory unless have an interface. compiler enables another with been space, given address can- system access enforced to be isolated the tensions device the ● Logzcal protection within logical protection nel namespaces terfaces. that views tected by namic linker tection the resolves to system in-kernel dy- logical pro- are Co-location, An can describe the within overhead the call safely accessed and techniques do not Ultimately, of resources and can with interfaces low overhead. that fme-grained rely is achieved operations are domains call binding ponents to manage to define and modularity protection, relationships extensions The rest and performance of this vate the cuss related need System The SPIN operating and core system kernel’s virtual extensible In the other into the kernel themselves system them. allows and requiring other Although safety within any language space. system tension the existing Once loaded, and cialized com- all runtime system conversion when within the they operating on language and Only language. code that features low-latency in system’s For example, the we have used exten- discuss against of 6 we discuss system our the that in Modula- conclusions. systems few system may run few practice, al. 92bj al. 94, Stodolsky 87, Harty Anderson al. & Cheriton et al. 93, Bershad the performance 92, synchrovirtual & mem- 91, Bershad Bershad 93, Felten 91, McNamee Fall with application’s et al. 93, them can, networking, [Draves et & runs communication, management Maeda but address management, many a spe- systems of a particular change in system behavior. to improve the performance to ensure can in ad- often degrade specialization An access safe cache et to gener- runs contrast, programs, interprocess thread balance In general requirements as to system well. most be specialized such forced A general run In and are Yuhara 92, Young & Armstrong Pasquale 94, Wheeler & Bershad 92, Romer et al. 94, Romer et al. 95, Cao et al. 94]. Unfortunately, existing system structures are not well-suited for specialization, often requiring a substantial programming effort to affect evgn a small communicating requires is written an operating dissys- core services 5 we it and the and the In Section 7 we present may et 90, provide the kernel, applications can be written ancl execute within their own virtual services protection Section systems. writing we moti- systems compare but effort, et al. integrate code. SPIN relies In specialization. well. ory can be loaded infrastructure and design, section 3 we describe of its and in Section programs, dynamic system execute motivation, 4 we describe system. operating ality specific to the applications that require SPIN is primarily written in Modula-3, which extensions to directly use system interfaces with- with to into time. packets Motivation Most export services out dress at any that the operating in terms by 2 to and of a set of extension Extensions video paper Section In Section performance nization, space. kernel buffer. describes for provided needs, services address client the define overview services The into SPIN. In the next of system’s some consists this paper architecture 3. Finally, at runtime. system of work. and functional 1.2 a direct network. frame move SPIN Using implements the exthat as images network video For system screen. an extension incoming rest our experiences ex- and logical between video that and installs to the The several exported to efficiently enforced disk SPIN to specialize transfers an extension and through which that on co-location operations, protection them data memory, programs. to the client’s the decompresses tem’s How- SPIN provides a set of interfaces to applications. core system services, such as memory management scheduling, application sion facilities. to the system’s themselves, be call. protection enable guarantee interfaces and logical extensibility service as a virtual of a procedure binding re- of a thread. interfaces, modularity, clynamic such scheduling declared be defined tensibility. viewer and OSF/1 SPIN ex- of a pro- in with ever, these or defines between to a client/server disk consists of virtual application control server server. extensions built stream displays execute event used the server’s that cross-domain Extensions in the system, fault enforcecl and few thread, bulk its own the DEC number by the of individual the server are pro- the overhead events. action dispatched set enabling requires the The within The a small required also server. implements and provide we have 1.3 page Events the An have needs from units, that in separate with btndtng. any potential memory system code at runtime, call sponse the in- interface, that ample, call. Dynamtc domains, ker- resources system. to occur are and exported are language-level operating communication ● which exist which code on system domains cedure domains, contain Interfaces, represent Extensions domatns. of code that interfaces We cost. system in C, and executes (as do applications). body call one by from operating is written space of a large instruc- explicit a UNIX of the server which privileged Modularity modules low address execute implement interface Extensions, virtual or they enforces modules. extensible namically ex- SPIN to for 268 that is a costly system to meet extensibility Moreover, changes intended of one class of applications of others. and is one that the needs in operating As error-prone can a result, be changed of an application. systems system process. is shown The dyneed clearly by systems tosh such as MS-DOS, Operating not System. designed to mechanisms directly be have modify code [Schulman tions have Windows, Although extensible, allowed et their 92]. from data While this of safe interfaces to either operating operating extension services system configuration “chaos” [Draves protection to structures individual level svstems. . were programmers system al. Macin- systems weak application operating benefited or the these of freedom, system design, mentation with times and ware the lack a cross-domain services or system su~~ort .. Related Previous of about 10 procedure considered Some strated the safety 81] to kernel defined plemented the the Hydra’s high due with to its allocating those highly weighty “large objects” resources influential, the system as the basic programming effort even the a Researchers have tems [Black et & Zwaenepoel 88]. A al. 92, microkernel combined services nately, level a microkernel’s tations & Weihl a the nel service 91], few 90, Draves ponents, grained Unfortu- substantial 94, Davis changes for extending 91, Abrossimov so extended. communication et al. 91, Chen mostly & Bershad to coarse-grained Stevenson protected & Julin interaction occurs extensions, We overhead frequently can believe this 93], 95, Bricker between lim- the performance cation has improved ton Kougiouris & it still does couraging not of cross-domain substantially 93, Hildebrand approach the construction that system nism for to of a procedure fac- and communi- call, rest in- overhead that kernel enable can arbitrary at runtime 88]. In [Heide- these systems because system; any application- et al. 95, Small that Software and data the where degree mecha- segments. is appropriate It for extensions may addition, soft- In model al- hardware. a protection an extension determine memory checks segments of segments. is only on as a co-location sharing, ad- memory if the mechanism number virtual These code & isolacode, on a binary checks memory .~romise isolated isolation define relies protected fine-grained a large fault kernel’s explicit on virtual though, the isolation instructions. shows with into define relatively [Engler on et al. efficient such hardware tional mechanism or the to which a and service inter- a system tion same & en- goals ferent. non-extensible nel from 269 to handling can to its as Aegis can needs. although SPIN uses language extensions and TLB Instead, as libraries space. System be changed by SPIN shares its facilities implements approach that hardware such as virtual are implemented a library and 95]. services, address system ex~ort manage- The system itself minimally provided Kaashoek system scheduling, according redirection to applications. beyond those [Engler in 95] is an operating tra~ as exce~tion operating executing in recent years [Hamil92, Engler et al. 95], of monolithic, the system possible. inserts branch in an application’s the range between and is restricted Fault that relying services, tor. Although data the interface 94, Engler lamzua-ge, and ment, directly no abstractions fine- performance being and making the entire [Lucco ~oftw~re tool Aegis [Golub with any isolation relies et al, 91]. system com- in a system be a limiting is be- which in fault faces et al. services et al. be extended. et al. [Bershad the et al. is not projects space. does not any ker- 89, Forin extensibility access facilities nearly et al. 94, Rozier down system 93, Wald- communication the extensions is unclear, to for limi- et al. control limit use systems languages, therefore interfaces into can bring ware microkernel’s which interfaces. provide to define without occur to compensate [Lee et al. been extensions et al. 90, Otherwise, kernel’s [Lee These interpretation right low programs. a microkernel the ex- the kernel 94]. narrow, extension references can operating user-level in require infrastructure have systems rewriting spaces, was to safely environment Finally, & Popek dress 94]. [Barrera of high address the Second. to be installed writt>n et al. number abstractions and Seltzer 94] are exploring the use of software fault tion [Wahbe et al. 93] to safely link application Cheriton conventional implementation Although cause often 90, a small These as of the in interfaces provide threads, extensions applications spurger include implemented the al. of 85], orcler performance. Several sys- 94, Thacker exports more use extensible et & Duda support Application-specific at or above Mullender channels. to the building typically that communication system investigated for 83, Cheriton abstractions and recently as a vehicle extensions. difficult. specific extension. and is generally Many blocks, affect in First, cumbersome, of the mann had the through of arbitrary programming de- [Colwell et al. problems. the’ language’s prowas building to the expression code on languages” runs three had capability-based that from system of hard- transfer, interface 87, Yuhara make limit resources. “little little, tegration im- on code of ~ossible The themselves managing Consequently, a large microkernels its for et al. call a point provided overhead system suffer structures applications policies. processes although mechanism. signed for the policies overhead requiring be and [Wulf allowed multi-level mechanism demon- extensibility, Hydra that through architecture, tection small For example, processes, have between an infrastructure resources between systems tension and performance. manage of extensible rely et al. As 811, which times its imple- procedure 90]. cross-domain call with call unacceptable operating 94, Mogul three-way defined systems the of interpreted to build ~rotected 100 Int communication generally 93]. work efforts for 93, 432 [Int even procedure of nearly Liedtke the Intel applica- has created 92, comparison, the L3 microkernel. has a protected overhead [Liedtke tend 2.1 For examDle. ,, aggressive defines by the convenmemory executing service the code applica- many of the is quite dif- to protect the protected commu- ker- nication using procedure SPIN provides tensible services. protected nel systems lied on system et that al, an such of the code are used not and the Redell 3.1 In just for the services kernel. can be applied model tual sys- ment only to ex- address for The protection safely system model cess control ables of resources, extensions procedure wards to call. All and on makes that demands dynamic Relevant general of the resources which its and purpose programming The for key type objects, safety, generic the task The safety only; of constructing design and safety, module, automatic module are hidden. tion at compile-time. accessing memory operations must first restriction ond is enforced and run-time defines The memory be checked through checks. inter- in the enforces this and array bounds a combination Automatic views to on the et al. at its type. which are is a reference within definition mesca- supported to a block an interface. and of Fig- use of interfaces SPIN. in prevents dereferenced There al. prob- SPIN implements compile-tame, or et 81], 94], or protected 92], pointers, the [Carter et al. in a pointer a way is no run-time inconsis- overhead for access the from pointer or its the kernel be assumed An to referent. A pointer to a user-level application, be type externalized table safe, reference that contains as an can externalized is an.index type be which into a safe references to in-kernel data structures. The references can later be recovered using the index. Kernel services that intend to pass a reference out to user level externalize the in- reference through this table and instead pass out the index. Protection indexing domains A protection The available and the sec- erating of compile-time storage In- protected on capabilities, [Wulf is declared forged per-application restric- violation. at compile-time, based hardware (pointers) compiler, reference. safety prevents code from A pointer may only refor capabilities passed the implementation type, 1 demonstrates to simplify language’s listed systems only access. using a pointer, passing it across an interface, or dereferencing it, other than the overhead of going to memory storage management. of an implemen- compiler referent’s is enforced and different A pointer type and with are to have et al. using ure tent resources given interfaces [Engler [Black whose storage is a and reference been mechanisms directly being or a of these Individual have a re- interface, extensions special-purpose protection The to services. operating channels cannot on the extensions language. from for obfor aes- features items slow by capabil- of each system. of by the in the parts the and an interface, allocation that collections memory include threads, specifically within Type arbitrarily. of its only visible definitions a system. automatic the which other these mechanisms; and All to objects that a large declares terface. fer abilistic object, page they on 94], virtual sage Modula-3, language interfaces, SPIN depends of encapsulation faces, type An interface tation we find manage- create reference example memory other rely An to which different which relies designed of the and to SPIN are referenced in to ensure and Unlike SPIN exceptions. We rely on the language’s support jects, generic interfaces, threads, and exceptions reasons virtual set of available typechecking in language features interfaces, management, thetic allow low- instead as static written of vir- are frequently 81]. a physical resources en- of Modula-3 are a process range protection can be a system page, pabilities extensions that though, is an unforgeable of interfaces. entire terfaces to- with Consequently, such that a protection ensures expensive et al. of operations a particular spaces, being A capability acof a is biased be implemented hardware, services, model granularity architecture can properties 1990’s. support the spaces within fine-grained [Lazowska kernel the linking. SPIN and early at address the are protected code. fine-grained extension processors. on language-level and clefined system’s conventional few the infrastruc- application efficient, while be The mechanisms cost supports and example, Address for physical a software system set Capabilities ities. combining of spaces the ture from an object In contrast, operating provides the For of resources, to access SPIN Architecture SPIN architecture for controls on inadequate for one another. The referent reused model access memory collection The pointer’s and to resources. addresses. source 3 model based can only protection applies Tjirtual the a live protection A protection [Geschke language The al. space general, on the by heap type. re- system Mesa its extensions. isolate et operating depended system from those SPIN, have in used to the the ker- which a single-address written on language to otherwise programs extend was system, within 91, like of Modula-3. have in the operating tension to ancestor SPIN’s reliance from memory returned a different on hardware by al. 73] programs as Pilot all protection et inst ante, ran 77], tems for relies manner Organick features Pilot, being or applied. 94, language services. prevents infrastructure, a core set of ex- extensions the [Cooper Mossenbock this and Aegis to isolate unspecified are defined Several Using model contrast, calls leaves extensions 80, In system and call. an extension management ing 270 domain defines to an execution system, virtual a protection address spaces. the set of accessible context. domain A name names In a conventional op- is implemented us- within one domain, a virtual address, in another sharing has no relationship domain. operations meaningful Only through is it possible between to that explicit for protection same name mapping and names to creates an instance a module become creates domains. a type error IIi’TERFACE T <: Console; (* An REFAIJY; (* Read interface. as *) “Console. T is opaque. ” *) InterfaceName (* A global PROCEDURE (* a Write PROCEDURE Read(t: Close for T; msg: TEXT); VAR msg: TEXT); (t: the console. *) this names would model for cilities for creating, since are visible introduce ming the system. in the error. The extensions into an procedures, to programmers, an overly program- SPIN and context we felt restrictive Instead, to type modules, coordinating, namespaces IMTERFACE Domain; TYPE REFAMY ; Create (coff: T <: PROCEDURE Returns a file TYPE but variable (* (* Console; An implementation implementation Buf REVEAL space, in all it provides linking fa- program- of protection domains. of = ARRAY = BRAHDED input Q: T output (* OF REF module. Console. [0..31] *) Domain .T is opaque T (* to is a a pointer *) info domain standard This export : T; the specified object file object format) . *) :T; containing module. and from interfaces function allows themselves at runt defined by modules to ime. the *) *) record PROCEDURE *) (* specific a a name (* J > is CreateFromModuleo Create T) created (* CHAR; RECORD ‘coff calling Buf; device (’ CoffFile. domain PROCEDURE T *) Buf; Q: (* T); Console; The module results placing passes original “ConsoleService”; capability (t: PROCEDURE (* by and the of *) returns PROCEDURE MODULE that avoided and type, T Openo:T; Open END = name conflict that level COIJST new a Console. be could a global TYPE of the expecting *) Resolve (source Resolve any undefined against any expOrted ,target: T) symbols ; in symbOls the from target the domain source. *) END ; (* Implementations (* have direct PROCEDURE EIID of interface access Openo:T to = functions the *) revealed type. PROCEDURE Combine(dl (* a Create interfaces *) END Gatekeeper; IMPORT Console; VAR Console. (* A client Figure *) PROCEDURE (* A (* the IntruderAlert capability for console () device The Console .Openo .Write(c, Console .Close(c) ; “Intruder Alert”) Domain symbols and is used keeper. is Gatekeeper through the IntruderAlert unable executes to module within the the fields same interacts Console objects within virtual with interface. mampulate. access the of type object, address SPIN’s Although Console. even space Con- the the level of the naming and language, system. Consequently, occur at the language c is an instance of the Console. T occupy pace. An extension Domain operates b.v t.vpe interface as addresses domain that as T, though it is must on safe in- point- unsafe with manipulate directly. the Console protection not of the interface virtual is at file been signed asserts their files than Any ject 271 OSF/1 “safe share symbols file are services using with exported exported the the ‘to the the object file level device interface interface vendor drivers are written we prefer tend to be [Dig 93], into the in C, the kernel by assertion” to avoid rather to be the using than by source of of bum. can be intersecting to share to ex~orted compiler, driver link as they fair corresponds Modula-3 assert In general, are verification, their the or with by a capability, and one or more lowest the driv~rs safety. that main is created tializes a domain a portion of some symbolic namesConsole. T, that redefines the type DEC ‘Althoug~ plications by SPIN’s to the by code is safe if it is unknown us to dynamically Domains must name c and with can otherwise example, object more memory namespace management level. For example, if the T, then both type Console. files obje;t a set of names. named linking, has kernel. it A domain, An For defines be referenced dynamic safe obiect but allowimz it can interfaces. compiler SPIN the interface described semantics, program to control is identical Gate- module. In are the kernel safe. ‘The of s~mbols, or if the kernel 1: exports *) This which memory access to the domain. ; Gatekeeper; service that domains. interface. T, ~rotection program ; IntruderAlert; Figure :T; = BEGI?J sole T) domain given Domain. Modula-3 one or more EUD the implementation to linker *) The type A SPIN := Console END of respect *) BEGIN c of 2: stances T; d2 : Domain. ers. c: , aggregate . . . Console; MODULE new or o; disjoint, enabling define ones. Create contents new apA do- operation, which of a safe obiect by interfaces defined in”the from the domain, and any inifile. obinl- ported symbols correspond to domain for are left unresolved. interfaces imported which Unresolved by implementations symbols code have and within the yet been not linking. It resolves text domain, and data the cause linking, and in resolved, memory a common idiom, to occurs in the through dlers a pair The that operation Combzne are the bind union of existing together example, the public domain and of related a single domain 2 summarizes the domain or export exports interface particular and nameserver. dinate The the constant exported and ~rocedure system’s exporters on will be called the has low with the interact through many to event sys- ules handler; request, a importer, importer exporter, to when- and the 3.2 The extension model An extension vides or changes service. All another, mines but the extensions allows and ment. can and provide is base In other Extensions with ,’5’PIN facility such it PacketArrived a that model to ap- hints as page to the replace- sys- entirely replace with export stance. A event, further There of events 272 be closure allows service. can be any also passed a single to stack the dewhich The constructs in this the header to 1P ~ach of types does not event mards ill- on “ of handlers installed an on a implementation a handler handler wav, for 1P of the invocation. default handler Packet), additional its allows the processing installation, In number The to be example, is received. interface constraining dispatcher to context. may at a man- the set of 1P protocol a se~arate event. closure For field the events implementation type If then is ignored. allowing IP. each the against handler may 1 The application. terms handler to particular a packet the have activity, offer in the incoming invocation. 1P layer the default upon defines is evaluated handler PacketArrived(pkt: compares guard is raised, basis. If ala guard access to events 1P packet bv the fails. that handler’s each or ~llow provide The event implements an For ~rovided can the mod- implemen- c~n deny the a per-instance for additional installation name, module Other primary the event defines the 1. name the event, ~roce- install handler. to the the handler. the the the event, that for module module otherwise IP. handlers. p~imary to restrict that a is restricted as a procedure, the for event Figure event when whenever which a guard such may raises module, which for the as a scheduler, defined way extension the event model allowing system to a specific are fines between information may prodeter- extension monitor an extension service, appropriate in efficiency example, operations, cases, system one that while For performance extensions certain one more system, in model SPIN’s styles. a system extensible and to passively Other which communication up-to-date to guide in extension be applied. the extensions an existing new is the of interaction plications. tem software it a controlled variety way ease, transparency, an extension provides the on as a direct handler exnorts module prior than dispatched SPIN the with are used dispatcher to the dis~atcher If denied, is invoked; finer in the implementation is true The raise e~am~le, cent acts expressed Guards ularity the ~assin~ dispatcher handler calls. an For irnplem&tation predicate the procedure module shown that be associated the raiser stat’icallv remove installation. a any one implementation dispatcher The by the autho- event. the default reauest a predicate, control by module, lowed, that fine-grained procedure the ac- narneserver of the This direct restrict can register handle Openo the tation the to that or &en installer. devices, the may event implementation is the that the disp~tcher uses dynamic & Proebsting 94] to construct module Console. The 1 defines exporter with named Console coor- 94]. default is the dure which RPC Figure for An identity the its of a service. is imported. because interface, the which can use to uniquely as those procedure interface cost in importers for is used as in to that A by the In fact, and is onlv from right type. to the right procedure. SPIN, there ~aths primar~ is equivalent to optimize where call ‘ The import an in-kernel 90, Brockschmldt of the import. authorization ever interface, version such to a domain through faceName and interfaces, cess at the time rizer call its han- ensuring is also an event. similarity is defined and ~rocessor. in ~iven event. Otherwise, code generation [Engler ex- A module of the import Inter a particular Some the & Burrows Console. identify an this machinery event is preemptive, by the by an interface exploits For to are named An specified a procedur~ can be used used creates domain name within export that the exported [Schroeder name to call event to handlers. arguments the bv throug~ the same over indistinguishable operations interfaces. explicitly exports be specified tems right the having the kernel take two available commonly named an interface interface, is 1 The cannot o~timized The with receives domain an interface as procedures ser- on an event events from a for the event by the section. exported namespaces domains. can raiser. routes previous the the major that to raise interfaces. combines SpanPublic into Figure linkable domains, collections interfaces tensions. creates dispatcher are protected announces that with is invoked The of Re- operations. solve is a procedure the handler in the handler Cross- that or a request registering are defined event it does system a handler names handler only exported. handler extension as a procedure are able is a message of the installs described target symbols; be explic~ly Event reso- Resolution undefined symbols An event state event a central and During An message. domain domains speed. domain’s additional target are patched once dynamic domain, the the source. symbols at for a source from that, target as the basis symbols exported resources resolves to a target ensuring share serves unresolved symbols lution, not takes any against to operation Resolve An in the vice. found. The handlers. change during be used to specify event within module an additional processing, more than The one may constrain a handler asynchronously, order with respect Each of these constraints trust between the dler. For example, quantum cute may a handler execute thread handler to back event a procedure final result [Pardyak mimics handlers der, 4 The The scribed previous These though, manage are similar to the in conventional is straightforward to page, two. Because and then the overhead operations is low vide them as interfaces build up gregate 4.1 A the cost cialized between made it possible and complex ag- simpler interprets physical two, the two. Other performance memory through system. is responsible physical systems have improvements management interfaces Some example, unallocated to manipulate large events that mem- interfaces have such The portance as en- If page, it 91], accesses an the al- Transla- Implementors such or access Transla- abstractions et al. that to the then is raised. events of can as demand 87], distributed concurrent use pag- shared garbage col- & Li 91]. page memory interface than between conditions. . address. services, service the may by raising allows an alternative ultimately attempts [Rashid physical physical menlvirtual processor’s of program management et al. the re- both the a set is raised. define [Carter [Appel volunteer vice to copy-on-write The event. policies objects, these address mappings MMU event memory to into raises virtual PageNotPresent level claim event a length, the ph~sical exceptional memorv unmapped capability’s is used to ex~ress and ca- (MMU). a user virtual but higher spe- if BadAddress lection demon- from various the makes mappings service to an memory the and by the exposed of these for addresses, translation for allocates address, that clients a capability references unit directly Instead, service constructs the management For ing, installs a unit purposes, addressed addresses addresses, and most where servace service This that such represents receive identifier ory. located, ab- space with parameters be a virtual virtual tion, ones, of Clients of attributes program. addresses, decon- memory for address between The com- not service translation correspond to may vtrtual virtual The is not, memory pages. page It a user composed ab- serwce physical A physical The an address address specific and these interface, of physical machine address for physical for or trans- memorv of the series entity memory. virtual service to request storage. physical with an optional an extension is The lati~nship to pro- systems to the speed memory management system addresses, “tuned” management access memory significant or more or contiguity. high and the direct operating as color the of these it is feasible preferences and interact components allocation and by processors, addresses, level a separate event of tion. management are accessible a abstractions, into of repeated page, between each through traditional it high. of virtual mappings strated call), abstractions Extensible memory a mapping use and size uniaue. SPIN virtual the Allocate and simple In the raise referent found provide of accessing abstractions is too allocation ory level simpler stractions create to separate By contrast, because a single (a procedure higher position. they trols 3. physicorrespond spaces. basic by Figure pabilities kernel interfaces of objects. allocate the in the inter- three scribed of the be- service of the a nameable with as address is provided from resources. within internal set core interfaces the systems; a small the of communicate general, secondary over to export to extensions operating functionality physical In are exported processor events and extensions, operations. that and and such exported higher system’s decomposes These services to define the components: virtual re- system services. translation. addresses, system reflect concerned a set services by interface resources Application-specific a certain ker- memory lations. Each for the as memory provides memory use within and con- resources protection basic from memory is enabled three physical or- a framework ultimately such SPIN which system fine-grained faces are Consequently, the provide services resources services, tween section basic memory management [Romer entirely fine-grained virtual and into naming, stractions, de- and namely three executed. mechanisms services to the executes handler extension between Applications, that be the dis- and control, memory SPIN virtual pages 94], for fast, SPIN’s invocation cal storage, the in undefined of the final and manipulating services By default, semantics, The with determines such memory services interfaces processor. can and as cache et al. allowed physical low-overhead the have such [Bala by applications. provides A handlers result the objects, entries None over quired to exe- associating to completion, the result in the 94]. call it multiple ultimately trol han- isolating a single of long. small 94] or TLB the kernel. by a time causes by event. the too raiser, raiser & Bershad protection managing with the that core SP1iV nel. an event, synchronously, and returns which When procedure and bounded the over relatively et al. degree if it executes from to each patcher maybe latency. in response communicated a different implementation it is aborted or arbitrary for the same reflects be asynchronous, from synchronously or in some handlers default in a separate raiser execute time, to other so that handler to in bounded the handler page, candidate invalidates at any time the Ph ysAddr, which page. for may The any mappings do not define this re- R,eclazm event to be of less imtranslation ser- to a reclaimed tire address spaces [Young et al. 87, Khalidi & Nelson 93], or to direct expensive operations, for example page- page. out [Harty & Cheriton 91, McNamee & Armstrong 90], entirely from user level. Others have enabled control model directly, but can be used to implement a range of models using a variety of optimization techniques. The 273 SPIN core services an address space INTERFACE PhysAddr; INTERFACE IMPORT TYPE T <: REFANY; (* PhysAddr Allocate (size: .T is opaque (* Allocate some attributes. Size; physical attrib: memory Attrib) with : Deallocate PROCEDURE Reclaim (p: T) T <: REFAHY; particular PROCEDURE Createo PROCEDURE Destroy (* or Create Request may to handle T) a this alternative END (candidate: reclaim : : to T page. Clients (* <: (* PROCEDURE Allocate (size: PROCEDURE Deallocate example, we UNIX exports For 3: have address and for T) built Add [V with is opaque attrib: *) Attrib) : address from Another management et al. into ,P] the the specified (. A few (* illegal and the system’s physical BadAddress PROCEDURE Protect allocation a memory task may own [Cooper with interfaces use these addresses, virtual : T; v: Virt Addr. T) ; T; Protection ; *) (v: (v: T) thread T) ; ; (v: T) ; and translations. the threads. those and because SPIN and et al. user-level it is not et al. which are an systems Cooper Draves performance is unable 88] have integrated strand can provide that executes high 93]. its within not define semantics multi- an applica- and to the processor define a thread the to impleand thread underlying other that are packages. for an This structure raised or handled A scheduler multi- resources among strands. A strand is similar operating systems in traditional context. has no minimal An rests. model on which processing called processor structure model a set of events Unlike kernel application-specific of the com- in that a thread or requisite an implementation the to signal ser- application scheduler raised aci!~- et al. does and Together, kernel [Davis allow though, state thread strand to it re- other package interface for its thread package and the scheduler im- plement the control flow mechanisms for user-space conthis interface. The interface texts. Figure 4 describes contains two events, Block and Unblockj that can be contrast, scheduler with the kernel, have overhead scheduler across threads. disk with by a name. be- In thread of a thread some defines a processor packages close does contexts, own User- anomalous it the than 92], but only partially. C-Threads implemencan arbitrary semantics SPIN a strand have addressed this & Draves 88, Marsh well-integrated 92]. that to deliver. these execution The services. flects can application’s of the Together to define is defined concur- the constructs. multiplexing by schedulers pro- defines synchronization implementation in- though, package and a thread for scheduling, addresses, Although of the system Applications, system & [Anderson package *) during ionFault applications, abstrac- in terms management of functionality communication In ; context Translation. kernel management thread et al. 91, Anderson For example, Mach’s vations, .T; *) PageEotPresent ment ad- defines Mach’s their synchronization. levels havior raised PROCEDURE tion a context memory Applications level thread management mismatch [Wulf et al. 81, vices VirtAddr Protection) context: .T) translations plexes management tation *) translation ext: Addr PROCEDURE ple one. allocates This and extension thread applications require Virt events controls services. operating thread : protection. ExamineHapping( model address within extension virtual define Extensible rency, v: prot named PROCEDURE peting vides T; RemoveHapping(cont The imple- applications. service. with physical that for memory supporting may managing an existing the from 87]. for extension copying kernel or they lower-level in interface [Young an translation obtained resources interfaces space, the dress services. An context : T; PhysAddr. PROCEDURE EIiD additional filled 4.2 ; addressing T; ; semantics for is subsequently tion .T Size; The space allocating new context terfaces, VirtAddr (v: an interface each *) VirtAddr. Figure new opaque *) VirtAddr; REFANY; EED space, is PhysAddr. TYPE It : T) an AddMapping(context p: nominate candidates. INTERFACE For T T; (context v : ments Translation. destroy T; candidate event (* ; PROCEDURE (* Addr; T; *) PROCEDURE ion; Virt *) TYPE PROCEDURE Translat PhysAddr, driver during dler can unblock 1/0 operation. uler can own thread aging the kernel. allowing 274 the changes can direct an 1/0 operation, a strand with using the package execution to block and to signal In response communicate strand in a strand’s a scheduler state. the an interrupt the completion to these events, the thread Checkpoint and to save and restore the package Resume execution A current hanof the schedmanevents, state. ments a round-robin, We INTERFACE have kernel Strand; T <: REFAEY PROCEDURE Block(s (* to Signal ; (* Strand. :T) a T is opaque *) not runnable. The that s is from Unblock (* to Signal (s: a T) scheduler PROCEDURE Checkpoint (* Signal that should save that (s: s is T) s is runnable. *) interface us to incorporate rectly into rescheduled processor and state rescheduling. that required it for *) the our interface a trusted thread Modula-3 PROCEDURE Resume (* that Signal T) is it should that a (s: s prior to placed on any Checkpoint a processor state saved 4.3 processor scheduling the events kernel. install affecting handlers on This control A flow events, trusted possess not that of can install are handlers be and strands for that terface specification. vices access must step behalf of pro- ensure which of control of the ity for nel belongs user mode the global cessor mode, thread allocation global to relinquish the global of the using scheduler uler can schedule nals that the its Mach the C- kernel, implements the services a Because resources, and of the scheduler package. that strands, while new by the ser- and protection on the and section proper are by the extension could not management services applications that at times enforced mediate and trusted ac- extensions by the SPIN extension an interface (and correctly any others threads. to respect, or at implied by the only the be affected. no more deliv- in the least this runtime are in order the handler’s not interfere this by to start or best in- with, is not package example, handled may the enforced. ignore the thread is runnable, using thread package the than libraries For user-level way, catastrophic that event, thread application In is in the it). packages it a particular to on events thread Although that rely raises application-specific but is isolated that scheduler SPIN event itself the failure the failure found will of an extension of code in conventional is executing systems. sched- Checkpoint reclaimed in- the use An top Resume The the services their services, failure to semantics Drocessor. pres~nts the to because facilities trusted of trusted In designing the interfaces for SPIN’s we have worked to ensure that an extension’s stop Additional Checkpoint control is being trust according previous rely instances interfaces to hardwhich are trusted, model the in the as they application-specific proon trust, hardware. the blocked placed are two is required protection described safely, terests be perform cess to physical itself behalf. primary strands. indicates its own processor and the the as a thread event on kernel, can or receive Resume kerfrom is resumed. is, an ap~lication-specific to the the transfers kernel between scheduler out- checkpointed the schedulers events erv is implements policy of the That it leaves scheduler application-specific the kernel. responsibil- within a thread in thread application-specific -A As executes Modula-3 the services hardware the Without function do manipulate executing reasons, synchronization kernel. kernel thread only threads safety and the to Modula-3 As For scheduling to packages for application kernel. di- 91]. trusted Trust underlying mechanisms that they must side for must outside language. of the thread they within a capability. Application-specific the flow scheduler [Nelson and memory means packages scheduler operations, on on and the raised thread raised package these describes and which thread implementations do interface schedulers these strands. default extensions not Interface. Application-specific particular vide Strand uses Within core services, which provide mechanisms. The core services ware The and Implications SPIN’s 4: which interface threads drivers *) Strand. Figure 1 kernel implementation concurrency. package thread di- of others. and during The El?D server, for built top device C-Threads C- ; being reestablish call UNIX Threads OSF/ 93], threads. are on vendor’s The [Dig interfaces DEC as inter- Modula-3 layered the kernel. threads and these not supporting allows supports ; being any subsequent ; of and implement management kernel 88], policy. to of thread OSF/1 strands priority interface & Draves implementations The PROCEDURE DEC [Cooper rectly .) strand a variety including Threads ; scheduler preemptive, the extensions faces TYPE used sigglobal 5 System performance scheduler. The Block scheduled by the and Unblock disp~tch~r mentation. This implemented and allows new integrated it cannot cation, its current into global be replaced replacement implementation, can on strands In this are routed to compose scheduling scheduling policy the raised schedulers. a~propriate replaceable, and when to the that an application-specific lVhile the global policy. the events, by a~~lication-s~ecific the policies ~ernel, does not the global services be that performance we show system that services SPIN in order enables applications to define perform well. Specifically, of SPIN from four new kernel we evaluate the perspectives: provided is System sue. The size of the system of code and object size demonstrates runtime appli- effects. scheduler . with policy by an arbitrary global to conflict scheduling have imple- section In ating imple- services system the size of the 275 do not kernel necessarily of excessive system’s extensions in terms of lines that advanced create size. In shows an operaddition, that they can be implemented with reasonable amounts more of mundane bles, code. etc. ) kernel. Micro ● bench tem such services, thread SPIN’S protected The system and cross-address have overheads memory, architecture ventional also mechanisms, such con- SCSI with low cliffs that con- show protected Measurements protocols of a suite demonstrate that architecture enables the performance network protocols. End-to-end performance. end-to-end application unit call, hardware in con- that use system the by of we new can without system at 74 SPECint a 512KB 300 disk-drive, card and only & two our machine Each We systems running on tend to scale sons [Anderson 1: and a pair for operating runs stations. sys, a variety 91]. All systems Ethernet inter- agement, adapter The of hosts The system rt, component, ery, domains, ory and section, of svstem while us to track file DEC increas- the vendor’s we port to each ,$PIN salj of five counter, core, scheduling as well as device file implements services Alpha management, system, and classes memory management component, the Modula-3 libraries and handles 23.4 37690 57.4 411065 50.7 227259 50.8 65652 100 810550 100 447274 100 shows the and The the size rt column DEC of different components components contain labeled SRC of the “lines” Modula-3 reveal the a protected does compiler, overhead procedure memory. They and the interfaces not include release measured with averaxe 3..5. define the manbounds a framework internal number op~imistic for presented Alpha’s of a large system thread Times the be overly et al. of basic call, ~rovide operations. in cycle of iterations, regarding cache 92a]. and operating extensions first system enables calls The second and services that to amortize cost two cross-address kernel either not space between part of these of calls. to inappli- the kernel. mechanisms system’s is the extensibility. frequent interaction, from coarse-grained of communication ser- protected services interaction are in a conventional the applications, using and enables of using factor and applications cations overhead system, communicate High overhead discourages ing that a system be built mem- [Re- and exception and Y 5.; communication limiting over requirinterfaces large oper- ations. previous debugger kb, includes I 20.0 [Bershad for SPIN’S extension model protected communication. automatic fourth \ 22397 89586 teract. The component The first a disk-based a network I 104738 a conventional The work- virtual in 5.; 21.8 therefore Protected components, the I mode. different described 42182 size rea- sys, implements the extensibility machinnaming, linking, and dispatching. The component, 2.:1 Data bytes Y/ 21.0 are the may effects are taken main support I 176171 larger mechanisms: that size bytes 170380 virtual section, and as benchmarks on DEC Text Y] performance rather than tion between standard the 21.7 use and this of architectural kernel size [ core such deliver operating in single-user We rt, contains a version of dell 88]. The third component, the DEC SRC hlodula-3 runtime system that supports The approach, that dozen from 16.5 extensions. understanding vices consists and lib network-based ing. a few files “get 22 from 14216 table sys, FORE [Brustoloni with of service. Table 1 shows the size of each in source lines, object bytes, and percentages. second block 10866 Microbenchmarks functions, measurements run of components as a standalone core, entry,” “read Microbenchmarks C2247- maximally hardware 5.2 are 64 MBs ATM comparisons different et al. System SPIN table offering is a DEC which switch. can to an HP 155 Mb/see between avoid poorly Lance This The visible In 5.1 This allows a low- MMU, is a on has cache, ASX-200 1/0 which measurements external Source ke’rne( comments. SPIN 3.0 which 92. TCA-1OO on three V2.1 Mach workstations, to a FORE 93]. the OSF/1 and a 10 Mb/see 53 Mb/see Bershad while the of the requiring 1646 Total appli- platform: 3000/400 use programmed about implements and ta- system Ed4klLu that benefit of operations DEC unified a FORE connected cards sal, sai by applying tree. hash configuration. S’vs Table on the same system, AXP memory, lGB source operating and subset hnes extensions. JVe collected 133 MHz face, run 1995), operating microkernel. rated that August monolithic Alpha We build queues, any a page console,” a small Component high- show describing performance systems of as “install the extension implementation performance architecture compare (VO.4 O.” kernel system. We from drivers ing the size of the kernel, of network- SPIN’S Finally, SPINS cations operating component, to device against OSF/1 call procedure to those final (lists, by systems. Networking. from us to structures required such a character as a system are comparable The interface that services space level functionality show enables measurements that sys- communication, and virtual extension ventional ● of low-level communication-intensive overhead. ing as management struct ● Measurements m arks. data generally process- system calls, can be used for communicaextensions and the core system. Similarly, simple procedure calls, a subset of the cedure calls, be many of the applications 276 offers a third mechanism Simple procedure calls, can and other rather used for services than cross-address communication installed into pro- between the kernel. In Table ferent voking 2 we compare protected the “null The and SPIN. and returns trol transfer. that this test null the in-kernel as a procedure call not System measure the trap call system and handler through dispatcher, call (written in raises patched to a Modula-3 The third OSF/1 line SUN to cross-domain control between calls with Modula-3 thread ent for systems. mes- procedure uses system kernel the kernel and to trans- and in-kernel System na call na .13 7 5 call Cross-address s~ace 845 call signals the the communication Protected OSF/1 nor Mach in-l<ernel protected munication. The table illustrates two points about structure. First, the overhead be that com~unication for in extensions in in-kernel Mach, ~amely to te~sible the an does communication kernel performance and SPIN’S the ‘to execute arbitrary not preclude OSF/ code SPIN’s the other mechanisms time then for a the first the second and Mach, program table kernel that calls. thread exports The and is integrated rest of extensible a performance ones, the when The C-Threads version with when as inter- uses the The SPIN’S scheduling table shows does compared integrated sec- is structured implementation penalty even ” the kernel. thread first extensions interface. latter of for The is implemented “integrated, interface, SPIN’s ” super- SPIN. on a set of kernel labeled system C-Threads measurements on “layered, layered Mach’s the using shows with we measure a C-Threads of C-Threads labeled and locks user-level, with not, to non- kernel ser- vices. in exDEC user SPIN Mach OSF/1 lernel performance encourages. blocks, P-Threads, 1. The extension using extensible and reflects the one another; At same and library the ‘use of tradi- having of the SPIN, implement incur func- OSF/1 Second. that space. same in DEC call. mechanisms kernel user kernel user layered Operation Fork-Join Ping-POng mtegrat e{ 198 1230 101 338 22 262 111 21 264 71 115 17 159 85 the use extensions. in-kernel servative. provide call measures and in SPIN). implementations behavior to that in non-extensible svstems. However. between the performance”of a protected in: call and of in-kernel address calls ability of procjdure synchronizing Ping-Pong OSF/1 strand of ~rotected kernel’s space a~nlicat,ion’s architect~~e comparable the disparity the calls as cross-address remonse tional can executing protected SPIN’s tionality which ,SPIN communication create, in DEC variables as a kernel svstem differ- to thread.wakeup face and the time blocks. ond implementation, com- management thread overheads using the naand by each kernel ( thread.sleep that in microseconds. overhead support concurrent kernel provided a user-level Table 2: Neither DE(2 level, granular- JVe measure tive primitives implementation, 89 to im- user using thread, with second and the thread. and thread first threads a new simals two 4 104 the of thread another to synchronize set, on DEC SPIN terminate p“air of threads condition Mach kernel determines measures overhead, using in the At user Fork-Join synchronization us- the exten- operations. overhead and with the Protected the kernel the termination call As are im- exporting can be used to control schedule, DEC threads package executing overhead threads services. Application-specific concurrent call. space OSF/1 own to perform an optimized that thread interface. 3 shows on Mach DEC pro- operations. operations dis- a trusted which Table trap spaces. Operation of the concurrency kernel in-kernel SPIN’s management user-level as a handler. of the within semantics the system’s implement underlying on threads their ity. with sys- using mentioned. also rely thread from is procedure out sions packages operations plement re- requested time extension address ~lemente~ ref- kernel’s provides and ar- by fixed, communication in procedure fer control the cross-address as an transfer large flow procedure space space is implemented calls shows Mach SPIN’S mreviouslv which installed space RPC. cross-address 94]. the management overhead and the event procedure the change management Thread do- to cross calls but Thread control time to SPIN, cross-address and sages [Draves call In table the there ,Syst em Call in the supports for C). Trap. cross-address ing sockets path a two a procedure a generic, from not model. Although even 1, system to and handler a protected, OSF/ affect therefore SPIN be passed reflects do not and will tection of conin the domains, execute DEC call between can optimizations language “ cost linked. they overhead These ilif- no ar~uments the transfer, between because call only data boundary, In Mach tem reflects dynamically arguments user-kernel turn. takes protected is small erence. call The does of passing .~rocedure been of the mechanisms when inon DEC OSF/1, Mach, it have guments, performance no results; is implemented mains the communication procedure call” Our protected Modula-3 an intermodule intramodule call. compiler corrects piler does tant optimization not procedure compiler call is roughly A more recent this disparity. perform when inlining, calling call time generates twice is code as slow Table con- 3: overhead in microseconds for Virtual which Applications can be an imporsmall management as an version of the Modula-3 In addition, our commany Thread to extend procedures. 277 memory can exploit system services the virtual [Appel memory & Li 91]. fault path For example, concurrent write and faults generational to information. has been There dling each the [Thekkath are two sources a user user/kernel ventional faces that can perform face’s functionality applications sions to to plement must for pay 4 shows the virtual memory et 95]. The time for table measures status nor the of a particular Mach table provide is for svstem: this an additional is required to measures the latency when a handler of the access from It measures cation, enable resume to the the increase the and Prot100 and access decrease Mach’s o~eration l~zily evalua\e traps and the the fault in the handler. fault (Appe12 access faces described time define the in the the First, and the trast, DEC! OSF/ signal and memory, nal and pager plementations, SPIN’s Mach interface nor external tionality 1 requires mprotect pagers, requires [Young though, as the [Thekkath dominance focus & Levy is that that that and 87]. use 94]. each virtual / 382 819 39 351 608 29 second structure of the user stack. Each protocol for packets extension the The on a specific implements et a server by splicing and the al. the a di- network to forwarding profor the HTTP Transport within quickly Proto- the to HTTP stack and the support extension Finally, a re[von provides TCP/IP protocol it for messages extensions directly to respond together copy transport HyperText 94] or extensions, Forward port. by can pro- A.M. the TCP “pulled” graph active from “pushed” kernel, and are except placed is extension and UDP/IP [Berners-Lee the and packets UDP which 89] and of the network video protocols.2 arriving events R,PC package video transparent by within The The stacks, packet at the top implement and 5 il- to be dynamically graph The imple- Figure et al. incoming entirely to Ethernet 96]. protocol code handlers call for [Hutchinson permits 92]. stacks & Bershad z-kernel’s message architecture protocol [Fiuczynski Internet vides in extension SPIN’S The path enabling kernel, requests the local file system. uses pro- Latency Table width han- Bandwidth the volves signals im- a trap where it has 2W. currently func- reason the round trip latency and reliable bandtwo applications using UDP/IP on DEC and several copy for extension, event, C, 278 is safe. and low-latency use manually the access DEC assert to both OSF/1 that the application packet sent in- operations moves across the user/kernel boundary. application code executes as an extension exter- efficient 5 shows between For DEC OSF/1, OSF/1 and SPIN. code executes at user level, and each virtual the memory and inter- use is generalized The 213 Appe12 et al. page). install Neither have especially of each I 1792 I system to manage they et al. 1041 16 Appell procedure the virtual calls applications interfaces 7 106 214 example, rect Protecf~onFault events that occur dlers for Translation. within the application’s virtual address space. In con- UNIX 185 4.5 302 the col memory section, 2 29 1016 the in the SPIN The physical previous UnprOt100 framebuffer. 100 fault application-specific management. virtual I PrOt100 the Eicken resolve to protect on to 260 PrO~l to the mote of page cost per memory to paxe, -. another reasons. Trap to an application. for the benchmark Appell average two 415 SPIN out access as re- systems extensions vide the other for 329 handlers. does not as the benchmarks virtual since is shown memory Fault networks cess the a combination resolving na used through of 100 pages. one, the for the and time increase extension protect SPIN Mach OSF/1 na ATM within Similarly, to protection enables measures outperforms calls page. a range The DEC a set of network lustrates appli- the time measure and time a handler, measures on each SPIN kernel to in on a protected handler, Appe12 and handler the to fault Tra~ and the fault within SPIN’S changes. time level, have that Iazilv: DEC events or messages. Dirty ment thread. than ~ut We time) of the faultin~ the call. these Networking similar over request, 5.3 in the latency is faster and “Appe12 protection measures pages, the Appell Li memory call user of a single traps ker- 4: perceived measure is ~erformed quested. from page protection unprotection shown ,“ a page procedure communicate expensive the application Virtual memory operation overheads in microseconds. DEC OSF/1 nor Mach provide an interface for querying the internal state of a page frame. OSF/1 virtual [svstem Protl protection the time the is the thread. lJnm-of100 . Dirty a page fault to the & the Fault the Neither to query to refl~ct faulting [Appel Neither the standpoint time Table commonly DEC between executes. im- page. service I extenand an application The to is required. labeled to invoke the a allows SPIN several 4 microseconds invoke As the facility. an extension protected though, Operation inter- in virtual between is reflected in-kernel Mach, of more con- of the benchmarks line of interactions han- handling that a fast and inter- crossings to execute 91, al. fault a series application, crossing at once. of it. functionality referenced Engler all the by means et al. exception boundary time OSF’/l First, a subset specialized the through Second, functions only user/kernel precisely Table many requires and fault-based requires general requiring define avoid quite nel a page fault overhead. times, which use reference 94, Anderson several provide applications with application boundary systems result, of this can collect of handling & Levy fault in or problem the overhead in an application collectors invariants A longstanding strategies 91]. garbage maintain the TCP code, as the data the For SPIN, in the kernel, the engine which device as a is written and SPIN in 100pecs ATM on ATM. Mb/see and Protocol , .———, -.1—-.. extension SPIN’s functionality 1———, ventional systems. kernel defined by warding Lance device driver Fore I device driver Figure ~: This figure shows a protocol stack that routes incoming network packets to application-specific endpoints within the kernel. Ovals represent events raised to route control to handlers, which are represented by boxes. Handlers implement the protocol corresponding to their label. an application which for OSF/ 1 with incoming be generated col stack For scheduled each protocol kernel We do not as the for system in thre,ad the outside neither by a path OSF/ col’s 5. to the the Mach, our hosts. it is twice ATM card. and Latency DEc sPmJ DNC copied reveals 1 OSF/ 789 565 8.9 8.9 ATM 631 421 27.9 33 protocol The table the compared user latency which is roughly device driver nor [Thekkath the ATM 41 Mb/sec. using FORE on both not driver 93], and for the throughput. between We estimate the at roughly a pair minimum 250#secs user-level de- between forwarder, the protocol user/kernel each stack where boundary. Ta- implementations, work by done the user-level UDP SPIN L)k!x Osk sPiTJ- ‘/1 Ethernet 2080 1420 1607 1344 ATM 1730 1067 1389 1024 to route 16 Table in 6: packets Round trip latency in microseconds through a protocol forwarder. 5.4 End-to-end We have systems. for both Lance DEC the that system of the b.vte performance for of hosts the local third different round trip on Ethernet that that transforming of to directly in Figure and 279 sends registers a list incoming time system event, second to several as three file another la- Ether- rises implemented applications that, exploit extensibility. One is a networked video system consists of a server and a client viewer. The server is structured Ethernet Lance Using SPIN’s achieve a round-trip latency of 337 and 241 psecs on ATM, while reli- bandwidth start, possibly to be latency are optimized only proto- slow when are handled drivers Neither ATM & Levy is optimized our hardware tends device driver. device drivers we psecs on Ethernet able same vendor packets control, violated. the entirely latency to isolate differences due to those due to the characteristics SPIN from tency driver the same packets round-trip Throughput, OSF/1 and architecture net processing reduce in which We use the underlying that can to a system space. sensitive, shows kernel with TCP in microseconds and receive bandwidth in Mb/sec. We measure latency using small packets [16 bytes), and bandwidth using large packets (1 500 for Ethernet and 8132 for ATM). within connection are sPIm Ethernet 5: Network As se- for the two additional L)kic osF/ 1 Table end-to-end through 1 pack- layer. of connections on the the OSF/ end-to-end size negotiation, the latency the DEC semantics performance DEC together transport congestion across using forwarder. Bandwidth OSF /1 TCP, pro- packets control also interferes two trips ble 6 compares The the the splices a protocol’s of and ser- a secondary protocol above Moreover, makes to socket. window the overall packet Ethernet 1, nor supports detection, A for- into service that to forward intermediary otherwise control number termination for and process case and con- balance a node a similar maintain the algorithms grading handler. for In failure a separately of the interrupt executes cannot A user-level proto- in Figure measurements provides DEC shown it it have extension. data port outgoing able establishment of events UDP/IP is done networking than a series 1P, UDP) processing present efficient causes layer (Ethernet/ATM, SPIN; more packet and is not because a result all implemented incoming forwarder in redirection to load installs redirects a user-level provide servers. a particular We have ets 9 be straightforwardly be used multiple to TCP as a SPIN also stack mantics. Each across used 95] that can an application host. an and are roughly available some et al. modifications can be generally example, SPIN destined ~ I For protocol requests In Ethernet of hosts can not [Balakrishnan required to architecture protocol tocol usable a pair 53 Mb/see. ~ICMP vice maximum between forwarding protocols data. The bandwidths video to the 5. the video itself The client. frame out single server On packets, extensions, video frames over the send into transmits client. using that the on the an decompresses buffer one from uses disk, the network, as a handler the clients. each kernel to read the and a SendPacket a multicast, 30 frames extension and writes structure to ~er aw;its them shown Because eachoutgoingpacket protocol graph stream, SPIN’S clients than To show tion only server this, a server that clients using the processor on OSF/1. DEC user sockets; space and is pushed into the device stack utilization idle by thread driver. the executes of a conventional buffering as a func- policy. In contrast, on top of the file DEC OSF/1 with avoid the into server implements on file type: is copied kernel’s protocol determine processor of a low-priority server. side latency server when the tem server’s though the stack, majority by network face that server’s DEC client one word when At that can send driver both SPIN the network, but the processor. support more clients on a slower using DMA. operating DEC OSF/1 half an event, of can as many SPIN I I I , .’ DEC OSF/1 Driver — T3 Driver --- ,.’ ,’ ,, .’ ,’ .’ .’ dler, an event the when there event, the .“ the I I I I I I I 2 4 6 8 10 12 14 Number of Clienfs Another application architecture is quickly, a web objects, not accessed a that web server cache as a function the and number the with the the event. large [Chankhunthod can should et of the number al. 3 that 95], recently are and system’s about 8 file. number we measure when 50 additional arrival to Presently, 585 psecs register but inter- all 50 guards evaluate we to true, perform as evaluating 94] or representing As the system no common guard matures, we optimizations. automatic extensible on latency, system storage cannot management depend on the correctness of unprivileged clients for its memory integrity. As previously mentioned, memory management schemes that allow extensions unsafe because SPIN’s requests accessed infrequently avoid these is linear installed handlers 50 guards et al. invoked. Ethernet all trees. guards, dispatch handlers such latency of the packet an if true, ultimately psecs. [Yuhara on and, rises to about and UDP When as decision of guard trip as in event dispatcher and at 565 psecs, 637 role installed complexity round optimizations to apply the call such a particular active handlers guards cases, for pair of an event of some to false. other Consequently, example, As han- as a, procedure In evaluates of guards For is critical. registered and to han- is effectively synchronous a more of event raisers system dispatcher guard/handler overhead which An of client Mb/sec. benefit from To service cache objects sys- web server cached a single handlers number the rises of handler. handler. on the Impact approximately server, Oth- file takes event in the takes each depends plan requires same is implemented dispatcher predicates stream web cache. operating for of the dispatcher subexpressions ,“ Each the matches to the are many guard-specific ,, 5’erver utilization server’s user-level the large client- a SPIN a non-caching on based for The to buffering) case raise For latency ,, streams. the procedure the raiser evaluate ,’ ,, video policy dispatcher latency in est in the ., I the In practice, ,’ T3 web is 5 milliseconds double dispatcher from invokes I relies the every mentioned, saturate or Since event, SPIN and delivery. I is in request and SPIN infrequently. through (no cache A no-cache extension cache buffering. issues event SPIN’s processor. 1’ per Other dlers. We as much to DEC OSF/1, a faster network, I that own its caching and A comparable system its control transaction file goes the file. Scalability systems. OSF/1 only files, double caching of supported net- and hybrid HTTP server file 5.5 the a Dig- 45 Mb/see own small an the double buffering. its on top the controls both as a kernel milliseconds proces- with consumes SPIN Compared clients on than is an experimental in both DEC to double avoids from for requested to find that suffers 81]. is built to control to be accessed of the system a server of but inter- server is configured “T3” to tend the caching the SPIN less slowly 6 shows the server clevice 15 streams, that on are data a network of the number The same copies we find grows protocol is unable LRU running erwise, Al- resources that Using Figure adapter. interface use the utilization in the CPU 1/0 as a function of clients. less work server’s though, server’s. streams number at a time. DMA, processor T3PKT work does programmed supports OSF/1 a given of the the sor utilization ital for server SPIN the consumed the processor file but a server [Stonebraker cache caching problem which agents itself system’s allows files SPIN Using the FORE interface, we find that both and DEC OSF/ 1 consume roughly the same fraction of not problem, SPIN caching does communicates progress on the of other that and for the We with A server server packet through measuring that number in isolation. The each outgoing kernel buffering client packet SPIN and the per utilization for the in through once a larger each of clients runs executes not support processes we measure server and can one that of the number is pushed once, double by retaining a reference trace-based, lmostly-copying, 88] to safely m 280 to return objects to the system heap are a rogue client can violate the type system reclaim to a freed memory garbage object, SPIN collector resources. The uses a [Bartlett collector serves as a safety sures that through tion, net inaction Clients or that as a result allocate frequent effects. In practice, ments presented in this collector during out garbage collection, their pattern. same reason plied during Our memory were an efficient operating avoid having with- or the the on that issue with which of extensions its Table 7 shows an amount For are conceptually a dozen) not a few Mach, because circuitous routes tionality. stylized of performance, although we of our ways. As trouble few domain and a result, a particular for pager interested in for and few days features. we has that been the stand than those 7 Conclusions of func- portions The discovering write operating SPIN sible to achieve without Text NULL namic 656 127 1344 1568 CThreads 219 2480 1792 305 2304 3488 263 5712 1472 744 1900s 13088 OSF/1 VM threads workload 1P In tem 5712 4176 Forward 187 4592 2080 UDP Forward 138 4.592 2144 can Video Client 95 2736 1952 time Video Serve 304 9228 3312 and size of some different for at the system written to under- that system extending it is pos- granularity as Co-location, domains to sys- provides services, services. builders language language tures, 392 TCP the kernel easier The protection mechanisms ing .hown more in an extensible extensions and 9840 table logical allow accessed past, policies 16704 This its experience in C. safety. a programming 23968 69040 described and programming .5077 7: with our demonstrates of extensible binding the the 1046 extensions the and and dy- be dynamically of a procedure call. UDP T and mechanisms set modularity, call defined T(7P HTTP SPIN robust performance compromising as a core enforced bytes 96 19 sysca// ~ IPC DEC Table size bytes system good a set of efficient size less to learn of Modula-3, of the written of pro- it takes instance, in user space, well lines In terms that proficient more lan- nothing OSF/1 tem Source found anecdotal, portions that size or execution found semantics become and another C programmer Although are much the language: using code the evidence and large, section. we have both im- faults. Component language’s to ser- language for we have previous obvious advanced the about be effective a competent more in Modula-3 to follow level interface, a complete DEC forced a day another imple- relatively correctly on sometimes pager extensions, syntax to be exceptionally more achieve only the benchmarks we were external were use than not effectiveness, Modula-3. of our on we found prejudices guage. grammer by than Early could the semantics, etc. ), we found definition in it are slow in the considered them. C programmers about we to use Modula-3 our two main as shown the important extensions. In terms design that addressed written functional- simple import extensions us to implement protect to IPC have de- to require their and also and we had to Mach’s required syscall tend fairly extensions tend with and building In contrast, plementing of the extensions interfaces, in found difficult. Null Extensions system have the simple, mentations. event of some SPIN commensurate example, (about size section. of code ity. or the in this more the dif- language of C (type that programs remarkable scribed was of C. As we faced naming, satisfactorily build a language performance version we decided and time, care. to using issue we implemented to abandon Size some infeasible in any management, we understood interfaces was and major of a safe already vice that it without arise each storage system with proceeded, typically context Ultimately, path. that system semantics For Moreover, to be ap- certain syntax, redesign. in the is relatively likely Modula-3 was made of our safe subset issues objects, expected and for is less pressure is least ficult imple- some the the design we disable as well there allo- is avoided allocation pressure a critical grammers, might systems for do this can to use hIodula-3 than subsystems optimized with we had intended to define and implement a for a safe subset of C. All of us, being C pro- global allocation Instead, services the in decision adverse when Even Experiences Originally, compiler of the measure- change a consequence, and none tests. allocators As of memory with generalized (dynamic collector, amounts section latency. SPIN expensive). the 6 termina- and its extensions the high own en- either of premature For example, the usage and extension, is less of a problem SPIN paths. of its an collections this because on fast ment large garbage cation extensions, by reclaimed. trigger be expected untrusted released are eventually because for resources we more s.wtem that operating rely on to performance pha workstation described 281 into with heavily services construct in this have translate believe systems and in relied on operating machine the system compiler only sys- code. Us- appropriate fea- implementors language which run- structure are complementary. Additional information available at http://www-spzn. in this paper. to running paper. about the SPIN CS.Washington. SPIN and the HTTP project is edu, an Alextension Acknowledgements [Bershad et In Many people David Dion system’s have has Alec DE(2 Lamarca, on DEC Levy, and drafts of this T3 Special with JVatson David are of our Mach. due SRC, [Bershad et al. l~oelker, and the Fifth por-t for perfor- 92b] al. 89] [Black earlier us with et al. tem the System Kernels. Symposium 136, V), 92] et al. N., and and us [Bricker et Longtiages pages et 92] on and Levy, Parallelism. & Li Appel, for (lser D., and Spring ’91 [Bala Languages 96-107, et pages al. 9-I] Soft Bala, ware side on on (OSDI), and pages April L1. F., Caching the Monterey, CA, et and al. Katz., 95] R. Wireless Balakrishnan, H. Networks. ference H., Improving E. In O?L hfobzle Proceedings Comput%n.q and Barrera, J. In Symposinrn, pages [Bartlett 88] Bartlett, Ambiguous ary 1988. et S., Ftrst Amir, CA, Compacting Technical 94] Report IPC [Chen Principles, et al. 94] H. F., Blocking and of B. the ACM, N. Practical Concurrent Objects. International Systems, pages Secretr, A. In & Distributed et E. call. 55, D., al. 90] and ACM February 13ershad, Pittsburgh, Levy, El. Transactions B. M. N., Anderson, PA, Lightweight on Computer Remote Systems, and Bershad, B, N. Low- CMU-CS-93-1 32, 1993. and Li, K. Implementation File Caching. Symposium November B., on Oper- (OSDI), pages 1994. Bennett, J. K., Performance ACM N. and of Zwaenepoel, Munin. Symposium 152–64, P., for In on Pacific Keckler, Fast Pro- Operating Grove, the Sixth ,for S. It’., and CA, Oc- Dally, Capability-Based VI), \V. J. .4ddressing. Inter-national C:onjemnce Programming (A SPLOS- al. 95] Languages pages Chankhunthod, Schwartz, Object M., on and 319–327, of A,, and Cache. University 93] of Op- San Danzig, Worrell, Technical Colorado, Chen, Operating K. A Report July J. Jose, P., Neer- Hierarchical CU-CS-766-95, 1995. and Bershad, Structure Proceedings Operating NC, B. System In on & of Systems December B. on the N. The LIemory Fourteenth Pnnc!ples, Im- System ACM pages Sym- 120–133, 1993. 1994. Non- o.f the Thir- & of Destgn 83] Distributed Workstations. on Bretton Woods, 85] In R. Migration Oriented The and of A y. on Oper- (O SD I), pages R. and Zwaenepoel. Performance the for Ninth Disk- ACM pages Sym- 129–140, 1983, Performance Architectural Systems. Mellon D. its PTznczplcs, October J. 1994. and Systems NH, Colwell, tional Implementation Kernel K. Functionalist Sympostnrn PTorcedings Operattng Duds, Kernel November Cheriton, V and USENI.Y and CA, R. System FtTst Monterey, Zwaenepoel The D. Operating o.f the posium [Colwell Cheriton, L’lodel Systems less Web. 94] Proceedings W. Luotonen, for Duda attng 1993. E., C. Implementation pages of et 179–194, ~ornput~nq May T. Lficrosoft 1994. C., Carnegie [Bershad and SuppoTt Bershad In Digi- August Proceedings on .?. High-Bandwidth USENIX Thirteenth Systems Caching Febru- World-Wide Considerations 1991. OLE Report W., First CA, Carter, October [Cheriton with Labs, R., 37(8):76–82, Conference ‘264-274, The the Support Performance. 1991. Collection Cailliau, E. J. Proceedings pact Con- Afach WRL-TR-88-2, T., Perfor- EurOpen Imple- November Research in the E., November USENIX Garbage Western Berners-Lee, Bershad, teenth Monterey, Lessons 1991. Internet over A CA[ Network Second J. for March and Systems [Cheriton al. Nielsen, 93] the LipMicro- Application-Controlled Destgn o.f the daels, 1994. Networking, Mach oj Corporation Cornmunicatzons [Bershad Fast 1–11, Roots. [Berners-Lee A J. F. t al Equipment A., S. PToceedtng~ Instde Brmtolcmi, Carter, Asheville, 91] Systems: M., at May of ceed~ngs posium mentation. Architec- Look Norway, Felten, oj 91] [Chankhunthod 1995. [Barrera New ce, Tromsoe, Implementation CA, Sym- Performance o.f the Kernel Looka- November /IP USENIX Guillemot, A K. Sys- of the of h~onterey, al. In Implementation Seshan, TCP 1992. 1992. LI., Technical P,, Systems DCS [Balakrishnan Systems October Proceedings University, Proceedings erating W. USENI.Y and Cao, Architectural Translation Destgn of Operating Other- M. Processing Ivlellon Hardware Pro- (A SPLOS- Weihl, FZ rst J. R. S~Lp- Opemting MA, In 93] Performance et [Carter In- .foT 1991. and for o,f PrimiFourth Syst~ms CA, Systems 243-253, Memory Support Ellis, .4 TchiiectrlTa[ April Gien, Brockschmidt, Bershad 94] W. of Systems, o,f the Ope.at,ng Proceedin.qs Operating Virtual Clara, Kaashoek, Prefetching In K. P~oceedings Arch~tectui-al and Santa K., Buffers. pos~um Li, In April Proceedings Proceedings and Rozier, Networking. tober and Conference IV), Computer Op- FL, and Microkernel In Operating Protocol al. [Carter Effec- Management on & ating Lazowska, Activations: User-Level Workstation In on WA, A., and Conje~en 165–177, N., A. 1994. and 1991. B. Forin, Performance. Il., and al. Compatibility. 94] In et Mach. UNIX mance et Pro- 1992. }V. gramming [Cao Fourth for (.4 SPLOS- April Scheduler the Programs. ternational Bershad, Transact~ons February 91] tives CA, E., hf. for AC!M 10(1):53–79, [Appel H. Support o.f the Support Clara, D. Boston, Seattle, Bricker, Carnegie Bershad, Systems Redell, Micr-o-A’ervzels Orr, Simple of Architecture Architectural T. M., L. 11–30, 91] [Brustoloni 123– D. al. Latency H. N., 223-233, and J., Press, A CM pages Proceedings Operating Santa Thirteenth Interaction In on Anderson, Kernel the Levy, The and 108–120, al. D., tive D. Shapiro Operating 1989. E., Design. C:on.feTence gramming E. E. and for Principles, December T. System International IV), AZ, Lazowska, of Systems Anderson, Operating [Anderson Proceedin,qs Park, 91] M., and Biscayne, Uniprocessors. Languages Black, pages kis, Rozier, P., on Key Conference pages Architecture tures, provided Management Operating Litchfield [Anderson B. In on V., Memory B. Programming Workshop experiment. infrastructure. Abrmsinmv, Virtual Workshop for International [Brockschmidt et Generic R. System 148–153, Exclusion (A SPLOS- References M. Thtr-d Bershad, Mutual kernel-based [Abrcminmv the pages Draves, Evaluate Hank on who N., 1992. Fast server B. to oj Systems, An- Nichols, Bershad, Proceedings SPIN. provided video to DEC compiler for feedback Boggs in the the system David provided we used thanks much and up Geoff 92a] Microbenchmarks erating it possible from in understanding paper. that bringing driver McNamee, OSF/1 Terri cards made SCSI project. SPIN for Sanislo OSF/1 assisted mance the Jan Dylan Wolman to responsible server. us to use the thony contributed been UNIX al. Using Technical University, Effects Complexity Report August of in FuncObject- CLI{J-CS-8.5-159, 1985. Lazowska, [Cooper Procedure 8(1):37- & Draves Threads. 199o. lon 282 88] Cooper, Technical University, June Report 1988. E. and Ilra”es, CMU-CS-88-1 C. 5-t, R. Carnegie P. C M.l- [Cooper et al. Fox 91] Cooper, Project: Technical versit [Davis et Report al. 93] 93] Davis, E. [Draves of Draves, P. The [Harty & Mellon D., Uni- Fe, The USENIX NM, Case for 94] oj tectural ing Replaceable Systems% Fourth & pages 160-164, Op Napa, of R. P. Control Technical University, Transfer Report May in Operating CMU-CS-94-142, and B,, et al. and 91] Draves, Dean, Thread R. In sium on cific Grove, & W. P., Operatzng Continuations Communication D. Fifth 78–83, Orcas Island, WA, & Proebsting 94] Engler, D. DCG: An tion System. ference guages 272, In on on Hot Topics Proceedings R. 81] Pa- [Int F. Exter- 89] et al. The 94] Engler, Operating In [Engler et tt’o al. J. 95] O. the of D. T. Code Fifteenth ACM Copper & Pasquale 94] Fall, Data tional A. In [Lazowska Genera- et 92] Felten, E. munication W. VI), pages F., and 263– O’Toole, the 159, et J. Focus & 1994 ACM Extensible 96] In Conference, [Forin et al. F., In and Jr, [Liedtke for Pasquale, o,f 1/0 System USENIX Mach No\,ember [Geschke et E. al. A CM, [Golub et 77] May Case for In Intel Fzrst IEEE and 20(8) al. 90] R. Llnix Supercomp uter Systems April and for the 1990 3.0. the In Symposium, 1996 and Winter C., LIorris, with hIesa. August An Dean, The Spring Nucleus: o,f the 1 i/!J3 163–176, J., 147–159, Cincinnati, Lucco, A.cht- M. An D., Levy, Vestal, Im- Operating Winter USENIX January H. M., S. The oj Con1993. Almes, G. T., Architecture the Etghth Principles, R., N. the Second An G. A., ACM pages Microkernel e~ June USENIX for Chang, on R. Memory 148— C. HiPEC: Caching. Sympostum on (O SDI), In Operating pages 153- 1994. Thread Management In Micro-~{ 213-221, J. and and Seattle, Com- Proceedings erne[s Improving IPC Fotmteenth ACM Principles, oj Other WA, by pages the First zng Deszgn and Systems & CA, Bershad the I{ernel April 1992, Kernel Design. Symposzum 175–188, In on OpeT- Asheville, and NC, the et on (OSDI), In Opevat page - 199, 1994. In et Marsh, E. 1993. 283 ACM pages B., N. Protocol Networking. Symposium 244–255, Scott, First-Class M., on Op- Asheville, LeBlanc, User-Level Thirteenth ACM NC, 110–121, 90] McNamee, T., Threads. Sympostum pages Armstrong the Mach User-Level the al. on Pacific Filter: Code. poszum on Austin, TX, D. Pager Replacement Mach October 87] External Page USENIX VT, work Pro- B. In and Proceed- Operating Gro\,e, Sys- CA, Octo- 1991. Packet pages Bershad, Fourteenth Principles, Principles, ton, P. the and High-Performance 1993. 91] & oj C. for oj of the date of Maeda, Systems al. [McNamee June Kougiouri.. Objects. Systems. Symposium Implementation Decomposition ings Rashid, 87–95, C~onference, Microkernel USENI.T November 93] Proceedings ber of Proceedings pages and and Continuations. High-Performance Markatos, Satterthwaite, In Fast of [Marsh CA, unzcat%ons Forin, C., Implementation S. Extending Co njeTence, Summ OH. 43.2 1993. erating B. Monterey, and Comm Hamilton, A 91– Programmer’s CA, l[SENI.Y J. o.f the Systems 94] In [Mogul ceedings iAPX Nelson, Virtual Proceedings USENI.Y of Program. USEN1.Y 93] and 1993 M. November pages Liedtke, Service 1977. Application Kougiouris the Proceedings CA, Without December Proceedings pages B. 1990. [Hamilton& pages Object-Oriented Systems Ftrst Workshop 93] tems S71 mmf T Prtncipies, ACM 1989. Diego, E. In and Liedtke, hlonterey, Application-Specific Bershad, D., New Thirteenth 1992. Elershad, 1996. an the to and Chen, oj the December Com- 171-181, D., Golub. as the San External Design 92] [Lucco January :540-553. Abbott, Systems, Application-Specific M. CA, Geschke, oj R., H., Monterey, ating Interna- 1994. pages Golub, Experiences L., 1981. C. Proceedings In-Kernel 1991. Early an OpeTating Architectures, Improving Computing MA, Mach of A. on Lazowska, Performance USENIX Systems with Diego, for 113-126, 1995. J. the Architecture A., of MzcTo- Evaluating Microprocessor Y. System. munication Proceedings Operating of Forin, i486 Fowler, Lee, Systems Architecture Proceedings San 91] 81] Proceedings European LT. on Fiuczynski, Protocol Networking. Peterson, December UNIX on 94] 164, Performance Conference, Bershad pages x-kernel: Systems AZ, Khalidi, December al. [Maeda [Fiuczynski C., in Proceedings 469-480, Eden High Programmable December Multimedia Protocols. Technology N. RPC Proceedings ht., Symposium CO, and The al. Fischer, of Management. K. Boston, Architectures, on 1990. of pages Lan- Sympostum oa 100–109, Overview Workshop Tntroductton 93] System. Con- System Proceedings Conference pages [FeIten In Nelson International Kaashoek, Playback Paths. File- 1994. Architectural USENI.Y Operating Manual, Programming the Mountain, Continuous-Media In Corporation. ference, [Liedtke [Fall G. Communi- 1981. for a Secure Operating Resource Princip/ts, & 1994. R., An Application-Level oj as September Eugler, Exokernel: the S. Park, plementation Systems, Proebsting, M. Kernel op. Popek, Layers. 1994. Proceedings rksh and February An Kemtel Corporation. Smth Kaashoek, System Machine. SIGOPS D., Clara, J. Hutchinson, on Intel [Khalidi [Lee [Engler Intel 90] Proceedings Ope Tating (A SPLOS- October Operat- 1992. O’Malley, Litchfield tectu-ce, 1995. and of the Systems CA, M. Dynamic Support Operatzng Jose, [Int Sympo- 122–136, In in May Retargettable .4rchztectural and San pages Kaashoek, of Techniques. 101, Operating A Ch4 Abstractions. o.f the Efficient, F., and Santa Implement in Thirteenth and pages [Engler to R. D. Other al. and Reference System Workshop Rashid, 1991. Engler, Operating N., PTinczples, October 95] All o.f the Systems CA, B. and Proceedings Kaashoek minate Bershad. Using Management Systems. [Engler R. Pro- Archi- 187–197, Stackable 12(1):58–89, April Symposium [Draves Heidemann, ACM, WA, Design 1994. the Proceedings et M. Mel- on Languages pages with In [Hutchinson System Carnegie In Conference Programming 94] Hildebrand, Seattle, Draves, for Physical Management. International (A SPLOS-IV), Popek Kernels CA, Fourth 92] QNX. on Application-Controlled Page-Cache Development [Hildebrand Ker- IJ’or!tsh R. 1991. cations Run-Time the April System Wrtting D. Support [Heidemann OSF/1 Harty, External Systems CA, 1993. Kernels. ceedings 3.o. Symposium, 91] Cheriton, using 1993. o,f the and Memory and Mach 1993. DEC Proceedings R., to Mach April Topics, Operat?ng Vaswani, Cheriton K. Software. Carnegie Corporation. In Workstation lon Lee, Systems Activations Third Advanced R. Modules. October 78, McNamee, the Santa DTiVeTS: 93] nel and of Scheduler Equipment Deuice [Draves P.-B., Adding 119–136, Digital R., 1991. Proceedings pages [Dig Harper, Development CMU-CS-91-1 y, August Lazowska, In E., Advanced and Interface Policies. Sympostum, Armstrong, to In pages K. AccommoProceedings 17–29, Burling- 1990. J., Mogul, An In Rashid, Efficient R., Mechanism Pr-oceedzngs Operating Systems November 1987. oj ihe and Accetta, for Ele,enth PTinctples, M. User-level .4 CJf pages The NetSynz39–51, [Mossenbock 94] Mossenbock, System. ary Nordic et al. baurn, 90] A. A in Computing, 91] 3. Mullender, S., pages Hall, The J., the Oberon [Thacker 1(1) :77–93, Febru- G. Tanen- Rossum, and van May V., Staveren, System editor. et for H. the Amoeba 1990’.. editor. B5700/B6700 Transactions & to tn Computer .?emes. System Academic Modula- [Thekkath & Bershad 94] Structuring Pardyak, Mechanism Language national In 312–219, and Bershad, on Object of the Dtstrtbuted Poznan, A June Group et al. 87] Rashid, D., Baron, Golub, J. R.. Black, oj chitectural ating Systems 1987. 881 [von Inter- 94] the Second on S. M., and CA, Management et C., 31–39, D. Experience oj the Parallel with ACM and Topaz and Palo [Wahbe al. and Distributed 92] for et al. 80] Lauer, and C., 92, D. Lynch, Purcell, sonal [Rome. Redell, H. S. C. Alto, et USENI.Y 176–18’7, al. 88] B. N. Conflict Systems 255–266, the TLB and W., Design Memory In A., Overhead Proceedings Symposium on oj [Wulf CA, and Ber- Using On- the Computer M.. Abrossimov, Guillemot, S., and Operating V., ‘M., & System. Armand, 90] of The Computing et al. 92] Schulman, 9-I] Small. Platform for search. Technical ACM Boule, Leonard, Dis- A., and Maxey, C. and D., and L’f. System Report on & .Julin 9.5] US: Unix On the 199.5 tV???ter January [Stodolsky Pietrek, M. VINO: and TR-30-94, An Inte- Database Harvard Re- University, Fast al. 93] Interrupt Kernels. on for OS J, M. Object USENI.Y Stodolsky, and Julin, Servers. In Conference, In New 81] 24(7):412-418, of and Diego, Othe CA, Stonebraker, the T Second I<ernel September 11. Management. July Bershad, Management Proce.dzngs San Database D., Priority A!ltcrokernels 105–110, [Stonebraker Stevenson, Generic D. P. Mach- P~oceedings oj Orleans, LA, 1995. et Wulf, romp: et al. B. for N., and Chen, Operating USENIX B. System Workshop Architectures, pages 1993. operating Co mmuntcations Languages San System of Support the D. E., Goldstein, A Mecha- Computation. In Symposium Gold on Coast, Aus- A CM, 1981. 284 Anderson, pages T, Fault E., Symposium 203–216, and Isolation. In on OpeT- Asheville, NC, C. of Fifth the Weihl, USENIX B. Indexed 124–136, ConsisIn on Languages pages N. Caches. ConjeTence PTog?”amming Sym- 1994. Bershad, Intemtatzona[ E. Implementation November and W. Resource and CA, B. Virtually V), and First Destgn Monterey, for A. Proportional-Share and Boston, Pro- ArchztecOpeTating MA, Octo- R. The OpeTating Systems November 1987. 94] of B. Endpoints 1994 of oj and Harbison, S. CompwteT P. System. W~nter CA, and Eleventh Large January B. Messages. 1994. Operating and Sys- Symposium 63-76, N., Austin, Maeda, Demultiplexing Conference, Golub, D., Communication ACM pages R., Black, a Multiprocessor Packet USENIX and Bershad, Efficient Rashid, W., Memory the M., A., Bolosky, Principles, Yuhara, E. J., Duality Proceedings J. R., Tevanian, Chew, Implementation al. Levin, ErpeTimental M., J., In et A., An Young, Eppinger, the W. 1981. 87] Francisco, Com- S., ACM \Vheeler, for /C. the M, 1992. Seltzer, Operating Burrows, Lucco, Systems (A SPLOS- Moss, 1990. Addison-Wesley, Han- 145–156, Messages: and PToceed%ngs 1-11, the 81] [Yuhara 1994. [Stevenson oj Baron, 1 (4) :305– Transactions February 11’zndows. Seltzer D. Culler, 256–266, Flexible 92] al. in Chorus Systems, hf. RPC. 8(1):1–17, Undocumented grated Schroeder, Firefly Systems, [Schulman pages Bershad Snpport D., Twenty- F., F., W. Hard- Confer- pages Software-Based Operating Hydra tiple Burrows Performance puteT et [Young Architecture, Herrmann, Neuhauser, M. 1992. tem. LI., VI), Waldspurger, y Management ber and Monterey, Karlin, H. Exception PTogTamming Active Fourteenth In Systems Fzrst R., 94] McGraw–Hill, Ohlrich, Levy, International Principles, Weihl on tura[ Dy- Resolu- of E. pages Scheduling: & ten. :81– 1988. [Schroeder & Operattng Limits Computer 1993. & [Wheeler a Per- 23(2) Bershad, Cache for Nineteenth the Systems (OSDI), G., 1995. Langlois, tributed [Small ACM, R., H. for Proceedings pages T., Rozier, Giend, 370, for Promotion. International 1,, and In on Reducing ThtTd P., D., Policies Rome., Superpage et the M. on International Communication Efficient Management. 1994. pages [Rozier Lee, (OSDI), 9.5] B. line T. Murray, System of and Sixth T., K. Wahbe, oj Lottery 1988. Horsley, Operating Hardware. Sympostum al. shad, An H., Mapping November et T. Standard Implementation [Rome. K., the Eicken, the S. L. [Waldspurger In WoTk- October P. R., H. 1992. 93] ceedings Rome., Page on Y. Jones, Levy, Efficient (A SPLOS- Architecture, al. ating CA, 1980. 94] namic tion M. Communications February al. Dalal, C., Pilot: Computer. et D., W. August 1994. von oj May posium [Redell and A. for Support Integrated Proceedings Oper- SIGOPS Debugging, :909–920, 1993. C. oj Schauser, Graham, Ar- Teledebugging. SIGPLAN Satterth- Workstation. Transactions Support Systems and tralia, In on Languages pages and for Conference Programming Thekkath, October ComputeT Chew, Architectures. International C., 37(8) A. May Architectural December Redell, on for Young, W., Memory C. ACM Proceed~ngs Operating nism Bolosky, L. Multiprocessor Computers, Thekkath, Software In Eicken Systems, A., Multiprocessor (A SPLOS-11), Proceedings shop and Support April D., Virtual Uniprocessor PToceedtn,gs Jr., Stewart, a RPC. Levy and Jose, 1994. Tevanian, Machine-Independent Paged [Redell R., on 93] Proceedings [Rashid P., Oriented Fourteenth Computing Poland, C. Firefly: 11(2):179–203, & ence 1973. B. a Distributed Proceedings Conference pages P. for Objects. Levy dling. OrganLza- Press, H. Low-Latency and [Pardyak E. Systems, Programming Thacker, IEEE ware E., 88] Jr., [Thekkath IEEE 1990. System al. waite, 1988. 1991. Organick, trion: V., -P–54, G., Prentice 73] R. Operating Nelson, [Organick S. Renesse, Distributed Computer, [Nelson Extensibility of 1994. [Mullender – H. .Jotirnal In pages on TX, C., for Proceedings 153–165, and Muloj San