Die Verteilung zwischen den Kernen übernimmt Windows.
Nur bedingt richtig.
Jedes Programm, wo Prozesse unabhängig von einander laufen können, wird in Threads eingeteilt. Eine Uhr zum Beispiel würde ohne einen Thread für die Anzeige und einen Thread für das "zählen" nicht funktionierne.
Jetzt kann man einen Thread für die Physik machen und einen für das Spiel. Das ist das sogeannte Multithreadingverfahren.
Windows jedoch , und da ist es egal, ob XP , Vista oder 7 (gleich einschränkgung) erkennt die mehreren Kerne und verteilt nicht die Threads , sondern die Programme. Er würde Divinity II auf Core 0 packen, während auf Core 1 dein Media Player läuft.Aber die Programminternen sachen, die werden vorraussichtilich erst gelöst, wenn DirectX 11 (für Vista und Windows 7) rausgekommen ist, denn dort werden Algorithmen angeboten, die sowas selber übernehmen.
Windows macht das Verteilen der Threads auf die Kerne und die somit wirkliche Nutzung der Mehrkernprozessoren NICHT automatisch, weder mit DualCoreOptimizer oder anderem schmarn. Das muss der Programmierer(gibt auch Tools, welche das Verteilen vereinfachen, dafür, z.B. würde mir jetzt spontan für C++ "QT" als eine Bibliothek einfallen, die das unterstützt). Dennoch muss der Programmierer es selber abwiegen , wieviel "Rechenkapa" braucht der PhysikEngineThread und wieviel die KI?