5

私が読んだいくつかの場所で、

各スレッドには、独自の CPU レジスタ セットと独自のスタックがあります。

ここで、スタックについて理解できます。これはデータ構造です。しかし、スレッドが独自の CPU レジスタを持つことができる方法。それらは数が固定されており、システムで実行されているスレッドの数は無制限です。

よろしく

4

3 に答える 3

9

はい、固定数のレジスタがあります。

OS があるスレッドから別のスレッドに切り替わるとき、すべてのレジスターの現在の値を含む終了スレッドの状態をその記述子にコピーし、次に別のスレッドの記述子から値をレジスターにコピーします。

これらの記述子は RAM に格納されますが、これはハイパー スレッディングが修正しようとしている部分の一部であり、一度に 2 つのスレッドを 1 つの CPU コアに格納できるようにしますが、それはまったく別の議論です。

于 2012-04-29T11:52:25.833 に答える
3

スケジューラがコンテキスト スイッチを実行すると (別のスレッドがその CPU 時間を取得する)、現在のコンテキストがメモリに保存されます。コンテキストには (すべてではないにしても) ほとんどのレジスタが含まれており、スレッドが再び CPU を取得すると、メモリからレジスタに「ロードバック」されます。

于 2012-04-29T11:48:23.910 に答える
3

レジスタは、実行がスレッドとの間で切り替わるときに保存/復元されます。

于 2012-04-29T11:48:26.300 に答える