2016-11-24 2 views
0

Meine Frage ist, ob ein Thread eine eigene Registersatz benötigt, wie viele Threads gleichzeitig erstellt werden können, wenn der Registersatz in einer CPU begrenzt ist?Registersatz erforderlich für Threads

+1

Viele, denn wenn das Betriebssystem Threads schaltet, stashes es die Register für den vorherigen Thread an anderer Stelle ... –

+0

Siehe auch https://en.wikipedia.org/wiki/Context_switch – xmojmr

+0

Der Thread Kontextspeicher ist sehr klein Kartoffeln im Vergleich an den Adressraum, der für die Stacks des Benutzers und des Kernelmodus erforderlich ist, nördlich eines Megabytes. Ein 32-Bit-Prozess läuft bei etwas mehr als 2000 Threads aus. Viele mehr in einem 64-Prozess, normalerweise begrenzt durch Seitengrößenbeschränkungen. Passt zu der üblichen "Wenn Sie es wissen müssen, dann machen Sie es falsch" Diagnose. –

Antwort

0

Ein Prozessor verfügt über eine Reihe von allgemeinen Registern, die von allen Threads/Prozessen gemeinsam genutzt werden.

Die meisten Prozessoren verfügen über Process Context-Anweisungen zum Speichern und Laden, die die Register in einem Speicherblock speichern (oder laden). Der Vorgang des Ladens des Prozesskontextes in Register ist der Wechsel von Prozessen/Threads.

Verwandte Themen