Multikernel
# Multikernel

| Beteilige dich an der Diskussion! | Dieser Artikel wurde wegen inhaltlicher Mängel auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf mit, die inhaltlichen Mängel dieses Artikels zu beseitigen, und beteilige dich an der Diskussion! (+) Begründung: Wikifizierung --Crazy1880 18:46, 16. Feb. 2010 (CET) |
| - | - |

Ein Multikernel-Betriebssystem behandelt einen Mehrkernprozessor als ein Netzwerk aus einzelnen Kernen, in etwa als wäre der Prozessor ein Verteiltes System. Ein solches System benutzt Message-Passing an Stelle von Shared Memory.

## Arbeitsweise

Das Prinzip, jeden Rechenkern als ein eigenes System zu betrachten und nur Message-Passing zu benutzen, ermöglicht es auf Systemen mit vielen Kernen, besser zu skalieren als auf den klassischen Systemen (zum Beispiel beim Mikrokernel), so kann die Rechenlast günstiger verteilt werden.

Weiterhin geht der Trend in der Entwicklung von Mehrkernsystemen immer mehr zu „großen“ Kernen, die die Arbeit auf viel mehr „kleine“ Kerne verteilen. Klassische homogene Systeme haben das Problem des Verlustes von potenziellem Leistungsgewinn durch mehr Rechenlogik durch Steuerlogik, wodurch das Konzept bei gut parallelisierbaren Aufgaben suboptimal wird (große Kerne können linearen Code schnell ausführen, aber sie sind relativ ungeeignet für parallele Aufgaben, weil man auf der Die-Fläche relativ wenige große Kerne unterbringen kann, aber man könnte viele kleine Kerne auf derselben Fläche unterbringen, die somit besser parallelen Code ausführen können).

Ein Beispiel für diesen Trend sieht man, wenn man sich das Funktionsprinzip der Lastenverteilung auf einem handelsüblichen Mehrkernprozessor mit dem Funktionsprinzip der Lastenaufteilung zwischen den einzelnen Prozessoren einer modernen Grafikkarte anschaut. Dieser Unterschied zeigt, dass man auf der CPU besser Code ausführen kann, der viele Sprünge ausführt und relativ wenig Bandbreite braucht und mit wenigen Threads läuft, aber auf der Grafikkarte kann man besser sehr rechenlastigen Code ausführen, der viel Bandbreite nutzen kann, aber der auch wenig Sprünge ausführt.

Man kann auch mit dem Konzept des Multikernels x86- und ARM- (und SPARC- usw.) Prozessoren miteinander kooperieren lassen, wodurch man eine bessere Performance erreichen kann. Das Multikernel-Konzept beschränkt sich nur auf eine Maschine mit ein oder mehreren Prozessorsockeln, aber die Realisierung mit mehreren Maschinen, auf denen ein Multikernel läuft, ist auch möglich und bringt weitere Vorteile, zum Beispiel eine gute Lastenverteilung und erhöhte Ausfallsicherheit.

## Beispiel

Ein Beispiel für ein Multikernel-Betriebssystem ist Barrelfish, das ein kooperatives Forschungsprojekt der ETH Zürich und Microsoft Research Cambridge ist.

