1

マルチコア環境でのコア移行について勉強しています。それについて質問があります。移行中に必要な CPU レジスタはどれですか。

たとえば、テスト マシンにはいくつかのコアがあります。コア 0 は、サイクルごとにランダムな値をメモリに書き込む特定のプログラムを実行します。ですから、このプログラムが正常に動作することを示すつもりです。

このプロセスをコア 0 からコア 1 に移行しようとすると、この期間にどの CPU レジスタが必要かわかりません。もちろん、たくさんの CPU レジスタがあります: eax, ebx,... esp, esi (Intel リファレンスのマニュアルにあります) など。しかし、私は移行にとって絶対に不可欠な価値を見つけようとしています。

4

1 に答える 1

0

これは、1 つのコアで複数のプロセスを実行する場合と同じです。

プロセスは、ユーザー モード (リング 3) の概念です。OSが新しいプロセスの実行をスケジュールするときはいつでも、すべてのレジスタの内容を、プロセスが最後に実行されたときの状態に復元する必要があります。この全体の状態は、プロセスが切り替えられるたびに維持されます。

そのため、プロセスが最後に実行されたコアとは異なるコアでプロセスをスケジュールする場合 (移行) は、今では異なります。OS は単にこのレジスタの状態を別の CPU コアに復元します。

于 2013-08-15T08:33:42.223 に答える