私は現在、Linux環境でプロセスを1つのコアに設定するプロジェクトに取り組んでいます。私はsched_setaffinityを使用してこの仕事をしていますが、プロセスが実行されているコアを取得するためにLinuxによって提供される関数があるかどうか疑問に思います。topコマンドを使用すると、jオプションを使用してこの情報を取得できることがわかりました。したがって、ユーザースペースでこの情報を取得する方法はいくつかあると確信しています。
2575 次
2 に答える
5
あなたはおそらく欲しいですsched_getcpu()
。古いバージョンのglibcを実行している場合は/proc/[pid]/stat
、適切なpidの39番目のフィールドを読むことができます。詳細については、proc(5)
マニュアルページを参照してください。
于 2010-09-11T14:45:59.393 に答える
1
これを実現するには、インライン アセンブリ (x86 アーキテクチャ上) を使用できます。
mov eax, 1 ; cpuid functionality depends on the value of eax
cpuid ; get cpu info
shr ebx, 24 ; ebx[31:24] is the cpu ID.
mov eax, ebx ; eax contains the cpu ID
ここで CPUID 命令の詳細を読むことができますhttp://download.intel.com/design/processor/applnots/24161832.pdf
于 2010-09-11T16:15:27.653 に答える