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

Reply via email to