On Oct 14, 2009, at 9:32 PM, Tim Newsham wrote:
If you look at the core of Barrelfish, you'll see that this is
essentially what they are doing -- essentially using an extremely
small microkernel (like L4) that's very
efficient at various forms of message passing. That's the only
thing that is duplicated on the various cores. The services
themselves can be distributed
and/or replicated as appropriate (although their approach favors
replication) -- it all depends on the characteristics of the
workload.
it sounds like the kernel (L4-like, supposedly tuned to the specific
hardware) and the "monitor" (userland, portable) are shared, from
the paper.
I'm confused what you mean by "shared".
The monitor is replicated on every core as it is responsible for
coordination amongst the cores - some things are replicated while
others are coordinated. They do choose to replicate most things as
part of their core scalability argument, in an effort to reduce lock
contention to centralized resources.
(from section 4.4): On each core, replicated data structures, such as
memory alloca- tion tables and address space mappings, are kept
globally consistent by means of an agreement protocol run by the
monitors. Application requests that access global state are handled by
the monitors, which mediate access to remote copies of state.
-eric