close

Вход

Забыли?

вход по аккаунту

?

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
– Efficient scheduling of cross-domain calls
– Efficient parameter passing
Spring IPC Model
• Spring provides to its users:
- Secure access to services: through kernelmanaged capabilities
- Easy recovery in the presence of client or
server crashes
- A highly efficient IPC mechanism particularly
when the number of arguments is small
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
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
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
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
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
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
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 services
for large amounts of page-aligned data
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
MY COMMENTS
• Good systems always optimize for the most
frequent case
Systems should always be correct
and should be efficient when it matters
Документ
Категория
Презентации
Просмотров
8
Размер файла
57 Кб
Теги
1/--страниц
Пожаловаться на содержимое документа