1 / 12

THE SPRING NUCLEUS: A MICROKERNEL FOR OBJECTS

THE SPRING NUCLEUS: A MICROKERNEL FOR OBJECTS. M. Hamilton and P. Kougiouris Sun Microsystems Laboratories. INTRODUCTION. 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

berke
Download Presentation

THE SPRING NUCLEUS: A MICROKERNEL FOR OBJECTS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. THE SPRING NUCLEUS:A MICROKERNEL FOR OBJECTS M. Hamilton and P. Kougiouris Sun Microsystems Laboratories

  2. INTRODUCTION • 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 passing

  3. Spring 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 mechanismparticularly when the number of arguments is small

  4. DOORS (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 domain

  5. DOORS (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 domain

  6. Spring Thread Model (I) • Spring treats the thread issuing a cross-domain call and all downstream threads as a single scheduling entity Domain Domain Kernel

  7. Spring 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 shuttle

  8. SHUTTLES • 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 domain

  9. Error 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 shuttles

  10. Door 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 data

  11. PERFORMANCE • 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 sockets

  12. MY COMMENTS • Good systems always optimize for the most frequent case Systems should always be correct and should be efficient when it matters

More Related