Sorry, aber es ist sehr unbestimmt.
Wenn Sie HT aktiviert haben, haben Sie pro Kern zwei logische Prozessoren. Wenn Sie es deaktiviert haben, haben Sie nur einen. (Dadurch können wir über die Funktionsweise des Schedulers sprechen, ohne ständig zu definieren, was wir unter einer "CPU" verstehen.) In jedem Fall wird ein logischer Prozessor vom Betriebssystem als Prozessor betrachtet, und mit Ausnahme einiger Versuche, Optimierungen einzuplanen, macht das Betriebssystem dies nicht nichts anderes durch, für oder wegen Hyperthreading.
Ab dem Zeitpunkt, zu dem ein LP-Kontext zu einem Thread wechselt, bis zu einem anderen Thread, wird davon ausgegangen, dass der LP zu 100% von diesem Thread verwendet wird. Das Betriebssystem hat keine Möglichkeit zu wissen, ob ein Thread in einer LP 10% des Kerns oder 90% des Kerns verwendet oder vollständig wegen eines Problems blockiert ist, das der Thread in der anderen LP ausführt. Das Betriebssystem glaubt nur, dass es läuft.
HT implementiert auch keine Thread-Prioritäten. Wenn also zwei Threads versuchen, in den beiden LPs eines Kerns zu laufen, und einer im Betriebssystem auf eine höhere Priorität als der andere gesetzt ist, kann der Kern nichts dagegen tun - es gibt keine Möglichkeit, es überhaupt zu wissen. Der Kern behandelt die beiden Threads als gleichrangig und weist die Ressourcen der Mikroarchitektur entsprechend zu.
* Optimierungen: Moderne Betriebssysteme kennen die Beziehung zwischen LPs und Kernen und versuchen beispielsweise, nur eine LP aus jedem Kern zu verwenden, bis mehr als number_of_cores- Threads ausgeführt werden sollen. Die zwei LP eines Kerns werden hinsichtlich der Cache-Investitionen als gleichwertig betrachtet. usw.