UH COSC 6360 - THE SPRING NUCLEUS- A MICROKERNEL FOR OBJECTS

Unformatted text preview:

THE SPRING NUCLEUS: A MICROKERNEL FOR OBJECTSINTRODUCTIONSpring IPC ModelDOORS (I)DOORS (II)Spring Thread Model (I)Spring Thread Model (II)SHUTTLESError HandlingDoor InvocationPERFORMANCEMY COMMENTSTHE SPRING NUCLEUS:A MICROKERNEL FOR OBJECTSM. Hamilton and P. KougiourisSun Microsystems LaboratoriesINTRODUCTION•Spring is a microkernel OS with two components executing in kernel mode–The virtual memory manager –The microkernel itself (nucleus)•Paper focuses on fast IPC–Efficient scheduling of cross-domain calls–Efficient parameter passingSpring IPC Model•Spring provides to its users:-Secure access to services: through kernel-managed capabilities-Easy recovery in the presence of client or server crashes-A highly efficient IPC mechanism particularly when the number of arguments is smallDOORS (I)•Basic IPC mechanism in Spring•Can be passed between domains•Associated with each door are–The address of an entry point in the target domain and –An integer datum that can specify an individual object in the target domainDOORS (II)•Each domain has a table of doors to which the domain has access •These door tickets or capabilities are stored inside the nucleus•Doors are destroyed when no domain can access them •Spring maintains a reference count for each door in each domainSpring Thread Model (I)•Spring treats the thread issuing a cross-domain call and all downstream threads as a single scheduling entityDomainDomainKernelSpring Thread Model (II)•Merging these threads into a single thread would cause problems:–When target domain is on another machine–When calling domain wants to suspend a thread •Best solution is to create a new scheduling entity: the shuttleSHUTTLES•Single scheduling entities grouping all threads that are involved in a cross-domain call•Applications can explicitly create pools of server threads•Whenever the nucleus executes a cross-domain call, it tries to find an idle thread within the target domainError Handling•Failures of target domains return an error code to the calling thread•Failures of calling threads result in the propagation downstream of an alert bit • Failures of threads in the middle of a call chain crashes break the call chain into two distinct shuttlesDoor Invocation •Three implementations :–Fast path: when all arguments total less than 16 bytes: registers are masked instead of being saved–Vanilla path:the default –Bulk path:uses Spring’s virtual memory servicesfor large amounts of page-aligned dataPERFORMANCE•Cross-domain call times are–One sixth of those of Mach and Windows NT–60% of those of Taos LRPC –Less than 2% of those achieved by Berkeley socketsMY COMMENTS•Good systems always optimize for the most frequent caseSystems should always be correct and should be efficient when it


View Full Document

UH COSC 6360 - THE SPRING NUCLEUS- A MICROKERNEL FOR OBJECTS

Documents in this Course
Load more
Download THE SPRING NUCLEUS- A MICROKERNEL FOR OBJECTS
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view THE SPRING NUCLEUS- A MICROKERNEL FOR OBJECTS and access 3M+ class-specific study document.

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

Join to view THE SPRING NUCLEUS- A MICROKERNEL FOR OBJECTS 2 2 and access 3M+ class-specific study document.

or

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

Already a member?