Multikernel

From OSDev Wiki
Jump to navigation Jump to search
Kernel Designs
Models
Other Concepts

This page is under construction! This page or section is a work in progress and may thus be incomplete. Its content may be changed in the near future.

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

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.