私が読んだいくつかの場所で、
各スレッドには、独自の CPU レジスタ セットと独自のスタックがあります。
ここで、スタックについて理解できます。これはデータ構造です。しかし、スレッドが独自の CPU レジスタを持つことができる方法。それらは数が固定されており、システムで実行されているスレッドの数は無制限です。
よろしく
私が読んだいくつかの場所で、
各スレッドには、独自の CPU レジスタ セットと独自のスタックがあります。
ここで、スタックについて理解できます。これはデータ構造です。しかし、スレッドが独自の CPU レジスタを持つことができる方法。それらは数が固定されており、システムで実行されているスレッドの数は無制限です。
よろしく
はい、固定数のレジスタがあります。
OS があるスレッドから別のスレッドに切り替わるとき、すべてのレジスターの現在の値を含む終了スレッドの状態をその記述子にコピーし、次に別のスレッドの記述子から値をレジスターにコピーします。
これらの記述子は RAM に格納されますが、これはハイパー スレッディングが修正しようとしている部分の一部であり、一度に 2 つのスレッドを 1 つの CPU コアに格納できるようにしますが、それはまったく別の議論です。
スケジューラがコンテキスト スイッチを実行すると (別のスレッドがその CPU 時間を取得する)、現在のコンテキストがメモリに保存されます。コンテキストには (すべてではないにしても) ほとんどのレジスタが含まれており、スレッドが再び CPU を取得すると、メモリからレジスタに「ロードバック」されます。
レジスタは、実行がスレッドとの間で切り替わるときに保存/復元されます。