Hallo,
jeder Kern eines Prozessors kann im Prinzip für sich alleine ein Programm (eine Folge von Berechnungsanweisungen) abarbeiten. Das „im Prinzip“ meint, dass es in Wahrheit etwas komplizierter ist, weil auch die Kerne sich die Abarbeitung eines Programmes teilen, aber das spielt hier für das Verständnis keine Rolle und die Vereinfachung ist ein sehr gutes Modell.
Meist laufen auf einem Rechner viele Programme gleichzeitig. Ein Programm ist hier nicht immer ein Programm wie „Word“, „Firefox“ u.ä., sondern genauer sogenannte „Anweisungs-Fäden“ oder Threads. Ein Programm wie Firefox kann gleichzeitig mehrere Threads haben, die unterschiedliche Aufgaben erfüllen sollen (zB. Kommunikation mit dem Internet, Seitenaufbau, Reaktion auf Benutzereingaben usw). Die allermeisten Threads benötigen aber nicht dauernd Rechenzeit. Zumeist warten sie nur auf irgendwas (eine Eingabe, eine Email, einen Dateizugriff oder auf sonstwas). Solche Warterei belastet den Prozessor kaum. Nur, wenn wirklich gerechnet werden muss, dann muss die verfügbare Rechenleistung zugeteilt werden.
Ein Thread wird begonnen und dann wieder unterbrochen, um mit der Bearbeitung des nächsten Threads fortzufahren usw. Das geht alles rasend schnell, etwa mindestens 50 mal jede Sekunde kommt ein anderer Thread an die Reihe.
Wenn nun wirklich mal zwei rechenintensive Threads anliegen und nur ein Kern da ist, werden beide Threads effektiv nur mit maximal halber Geschwindigkeit ausgeführt, weil sie immer wieder kurz unterbrochen werden und auf die Abarbeitung des anderen Threads warten müssen.
Stehen mehrere Kerne zur Verfügung, kann jedem Thread mehr Rechenleistung zugewiesen werden, d.h., die parallele Ausführung beider Threads läuft schneller.
Bei zwei statt einem Kernen merkt man das beim Arbeiten tatsächlich, weil die Summe aller Threads einen Kern mitunter kurz auslasten können und ein rechenintensiverer Thread, der dann und wann mal ausgeführt werden soll (Seitenumbruch, Seitenaufbau, Suche etc.) dadurch merklich behindert wird. Das ist nicht die Welt, aber ein Zweikern-System wirkt doch reaktionsfreudiger als ein Einkernsystem. Wirklich Vorteilhaft wird es, wenn man tatsächlich mehrere rechenintensive Anwendungen parallel ausführt (intensiv-Virenscan und Videokomprimierung und Fraktalberechnung und und…).
Einen echten Vorteil bieten Mehrkernprozessoren auch dann, wenn man EINE Anwendung laufen lässt, die wirklich gleichzeitig mehrere rechenintensive Threads bearbeiten kann. Dazu muss die Anwendung entsprechend programmiert sein. Photoshop ist so ein Beispiel. Berechnungen an den Bildern (Filter usw.) kann das Programm in mehreren Threads gleichzeitig ausführen. Hat der Prozessor mehrere Kerne, so rechnet jeder Kern gleichzeitig also an einem anderen Teil des Bildes, und das Ergebnis ist schneller berechnet.
Bisher gibt es kaum Anwendungen, die von mehr als 2 Kernen profitieren würden (eben weil sie nicht mehr als ein bis zwei rechenintensive Threads ausführen lassen). Man kann aber davon ausgehen, dass es in Zukunft mehr werden.
Was jetzt auch klar sein sollte: Wenn ein Programm einen Thread ausführt, kann ich eine 10-Kern-CPU haben, und es geht damit trotzdem nicht flotter als mit einem (sonst nicht beanspruchten) 1-Kern-Prozessor.
LG
Jochen