4

私は現在、Linux環境でプロセスを1つのコアに設定するプロジェクトに取り組んでいます。私はsched_setaffinityを使用してこの仕事をしていますが、プロセスが実行されているコアを取得するためにLinuxによって提供される関数があるかどうか疑問に思います。topコマンドを使用すると、jオプションを使用してこの情報を取得できることがわかりました。したがって、ユーザースペースでこの情報を取得する方法はいくつかあると確信しています。

4

2 に答える 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 に答える