Ich glaube, er versteht nicht so recht, wie die Auslastungsanzeige funktioniert.
Du hast 6 Cores, jeder Core ist in der Lage 2 Rechenaufgaben zur gleichen Zeit auszuführen. Damit hast du 12 Threads (Rechenaufgaben) im Taskmanager(TM).
Jetzt ist es so, dass eine Rechenaufgabe alleine auf einem Core schneller ist als 2x die selbe Aufgabe auf logischen Unterteilungen des Core.
Nehmen wir also an, dass die Rechnung auf nem Core 10secs braucht, dann braucht diese selbe Aufgabe(2x ausgeführt) auf den logischen Parts dann jeweils 15secs. (ein Teil der Recheneinheiten, die bei der 1. Version aktiv waren, werden für die 2. Rechnung benötigt und daher abgezogen; die Werte sind mal Beispielhaft)
Und jetzt kommt der Trick. Beide Rechnungen lasten ja den jeweiligen Part des Prozessors voll aus. Der TM registirert das und stellt fest, dass der Core mit seinen 2 logischen Parts jeweils die Rechenaufgabe haben und dabei ihre ganze Kraft (CPU Zeit) dafür aufwenden müssen. Der TM gibt damit jeweils eine Last von 100% auf dem Teilen aus, also 2x der coole Graph mit Vollanschlag.
2/12 sind also unter vollast. Das sind 1/6=16,6667%. Diese Last würde für 15Secs anliegen, dann wäre der Graph wieder bei 0. Das gilt für 2 Rechnungen.
Nun hast du aber nur eine Rechnung (singlethread). Auch diese Rechnung zieht den Core, aber diesmal nur einen logischen Part, wieder auf vollast. Dass der Core dabei alle Recheneinheiten für diese Aufgabe nutzen kann, ist dabei unerheblich. Fakt ist, dass diese Rechnung wieder Vollast für den Core ist und damit die gesamte CPU Zeit in Anspruch nimmt. Im TM sieht das dann so aus, dass ein Graph auf 100% geht und der Rest bei 0 bleibt.
Du hast also 1/12 = 8,33%. Der Unterschied ist, dass diese Last dann nur für 10Secs anzieht.
Der TM kann nicht erkennen, wieviele Teile des Cores denn nun wirklich rechnen, das geht ihn auch nichts an. Das einzige was er sieht, ist die Rückmeldung, dass dieser Thread grade voll läuft und es keine Pausen für diesen Core gibt.
Dein Problem ist, dass du denkst, dass bei der Belegung nur eines logischen Parts der CPU die CPU sämtlichen internen Bestandteile für eine Rechnung nehmen kann und dies der TM auch mitbekommt(und der TM dann eigentlich anzeigen müßte, dass log. Part 1 und log. Part 2 auf Vollast laufen), dies ist nicht der Fall. Hat ein Core also 100% Rechenkraft, so wird bei einer Rechnung zB nur 66% dieser Kraft genutzt, die anderen kann er nicht nutzen. Hat man nun eine 2. Aufgabe zum Rechnen, geht der Core hin und nutzt diesen Rest auch noch. Hier kommt sind es dann aber nicht 66%+33% sondern eben zB 50%+50%.
Geht man also davon aus, dass ein Core 66% seiner Rechenkraft für einen Thread nutzen kann, so sind das bei 6 Core 11% der Gesamtkraft und eben nicht 17%, denn diese würden bedeuten, dass er 100% seiner Recheneinheiten für einen Thread nutzen könnte.
(die Werte sind Beispielwerte)
Nur obliegt diese Verwalten der internen Recheneinheiten allein der CPU und der internen Verwaltung. Das ist nicht einsehbar vom Betriebssystem. Das einzige was das BS sieht, dass es ggf. schneller fertig ist. Nur kann der TM das nicht über längere Zeiten loggen, sondern immer nur Momentanwerte ausgeben.
Daher sind das eben 1/12 der verfügbaren Threads.
Ich hoffe das erleuchtet dich.