Multikernel
Kernel Designs |
---|
Models |
Other Concepts |
|
A multikernel treats a multi-core system as a distributed system, where each core runs a separate instance of the kernel. Each task is local to a single core. Inter-core communication is achieved with message passing. No memory is shared between each kernel (except for the purpose of message passing, as with other devices).
The kernels on each core do not have to be identical: each kernel can be specialized for a specific task.
Multikernels are particularly suitable for systems with multiple incompatible cores, e.g. due to different feature sets (for example, a RISC-V system with one set of cores having 128-bit vectors and another set having 512-bit vectors).
In theory, a multikernel-based system should scale wider more naturally since parallel applications do not share memory and instead rely on message passing, removing reliance on a single system with shared memory.
See also
- Barrelfish, a discontinued research OS
References
- The SG2380 has 12+4 P670 and 4 X280 cores. The P670 and X280 have a very similar feature set but incompatible vector widths, making transparent scheduling of tasks between the two core sets impossible.