0

プログラムはメモリ内にあり、最初のプロセッサがそれを実行し、次に他のコアで実行されると言われている関数への呼び出しがあります-最初のコアが呼び出しアドレスを他のコアに送信する方法は? 両方の共有 RAM 以外のコア間に通信メカニズムはありますか?

4

1 に答える 1

1

よし、こんな感じ。スレッドを呼び出すことはできず、シグナルを送るだけであり、関数は一般にスレッドに関連付けられていません。複数のコア上の複数のスレッドが同じ関数/コードを実行している可能性があります。

とはいえ、コア間で通信できるプロセッサ間ドライバは確かに存在します。これは、スレッドをコアに割り当て、プロセスの終了時に OS がスレッドを停止できるようにするために不可欠です。

コア間通信が必要な場合、プロデューサー スレッドはデータを共有メモリに格納し、ハードウェア割り込みをアサートして他のコアに通知します。これにより、「ターゲット」コアが OS に入り、通知されたデータを処理するようになります。

本質的に、これは些細なことでさえありません。もっと知りたい/脳が形を崩したい場合は、Linuxのスケジューラー/ディスパッチャーコードを参照するか、M$でサインアウトしてください。

于 2013-06-22T22:48:06.010 に答える