Kurz zu Hyper Threading:
CPU-Befehle aus dem x86-Befehlssatz werden zunächst in CPU-interne Befehle decodiert, dann umgesetzt, dabei wird meist auf Daten zurückgegriffen, dann werden die Ergebnisse zusammengesetzt und in den Hauptspeicher zurückgeschrieben. Von fast jeder Arbeitseinheit besitzen alle modernen Prozessoren mehrere, die grundsätzlich parallel arbeiten können - das nennt man superskalar. Einer von den beiden größten Hemmschuhen für die Leistung heutiger CPUs ist das Warten auf den Hauptspeicher - der aus Sicht der CPU einfach grottenlahm ist. 50 Takte zu warten ist schon eher ziemlich kurz.
Die Idee von Intel ist, im Betriebssystem einen (virtuellen) zweiten Prozessor anzumelden, der in dieser Zeit Befehle ausführen kann, mit den Einheiten, die gerade nichts zu tun haben. Das ganze ist also wie zwei Prozessoren, die sich die ausführenden Einheiten teilen.
Das ist natürlich nur dann ein Vorteil, wenn es tatsächlich rechenintensive (!) Aufgaben gibt, die unabhängig (!) voneinander ausführbar sind. - Und das ist leider eher selten der Fall.
Hyper Threading ist zwar definitiv eine gute Idee, aber eben hauptsächlich Hyper Marketing - aus dem letztgenannten Grund.
------------------------------------
Der Taskmanager von WinXP (derselbe wie bei NT und 2000) ist sogar ziemlich präzise, in fast allen Fällen. Ganz im Gegensatz zu Win98-Auslastungsanzeigen, die in bestimmten Fällen Vollast zeigten, weil der Prozi im Tiefschlaf war. Aus Sicht des Betriebssystems sind mit einem Pentium4 (mit HT) zwei völlig getrennte Prozessoren installiert. Wenn nur einer davon Futter bekommt, der andere (virtuelle) aber nicht, dann sind nach Adam Riese auch nur die Hälfte aller CPU-Ressourcen in Benutzung, der Taskmanager zeigt rund 50% an - völlig korrekt. Daß Windows seit Win2000 die Prozesse ständig zwischen den beiden Prozessoren verteilt und dadurch beide bei nur einer rechenintensiven Aufgabe nicht (viel) über 50% hinauskommen, habe ich weiter oben schon beschrieben.
Man hätte den Flusi ohne Probleme auf HT optimieren können, seit den siebziger Jahren oder meinetwegen früher - so lange gibt es schon Mehrprozessor-Systeme.

Dazu muß man die Software in Threads ("Fäden") unterteilen, die unabhängig voneinander sind - und das ist die Schwierigkeit. Nichts darf auf die Ergebnisse des jeweils anderen Threads angewiesen sein, sonst brächte es keinen Vorteil. Bei Spielen ist das insbesondere ein Problem.
Daß etwas mehr als 50% angezeigt werden, liegt daran, daß es noch ein paar Threads gibt, die parallel ausgeführt werden können. Allein das Management des Mehrprozessor-Systems kostet Rechenzeit.
Wenn Dieter nebenbei zippt, dann teilt das Betriebssystem die Rechenzeit zu, die der Prozessor nur wartet, während er FLUSI.exe ausführt, was ziemlich oft vorkommt. Das gilt aber trotzdem als Rechenzeit und wird vom Taskmanager so angezeigt, als wäre er ausgelastet. (Bei einem Einprozessorsystem kann in der Zeit tatsächlich nichts anderes gemacht werden, außer zu warten.) Dann kann der P4 seine Recheneinheiten dem zweiten, virtuellen Prozessor zuteilen. Und das Betriebssystem teilt sie WinRAR, Winzip oder whatever zu.
Die Flaschenhälse moderner CPU-Architekturen sind das Warten auf Daten aus dem Speicher und Pipeline-Refill bei falscher Sprungvorhersage. Nicht das Rechnen selbst.
In der Hoffnung, hyper-erleuchtend gewesen zu sein

,
Betto
PS. Wenn Euch noch mehr "Innereien" interessieren, dann schaut mal im Taskmanager unter Karteireiter "Prozesse", dann Menü "Ansicht/Spalten auswählen..." und dann die Eigenschaften anklicken, die Euch interessieren.