Section: Linux Programmer's Manual (2) Updated: 2008-07-09 Index JM Home Page roff page 名前 sched_setaffinity, sched_getaffinity, CPU_CLR, CPU_ISSET, CPU_SET, CPU_ZERO - プロセスの CPU affinity マスクを設定・取得する 書式 #define _GNU_SOURCE #include <sched.h> int sched_setaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *mask); int sched_getaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *mask); void CPU_CLR(int c
pthread_...inity_np(3) Library Functions Manual pthread_...inity_np(3) NAME toppthread_setaffinity_np, pthread_getaffinity_np - set/get CPU affinity of a thread LIBRARY topPOSIX threads library (libpthread, -lpthread) SYNOPSIS top#define _GNU_SOURCE /* See feature_test_macros(7) */ #include <pthread.h> int pthread_setaffinity_np(pthread_t thread, size_t cpusetsize, const cp
前回のエントリではimagecfgというユーティティを使用してプロセスアフィニティを設定したが、この方法ではバイナリのイメージヘッダを直接書き換えてしまうため変更は恒久的なものになってしまう。 動的に変更することはできないのだろうかと調べるとWin32にはプロセスアフィニティマスクを取得、設定するAPIが用意されており、例えば.NET C#等からなら簡単に操作することができることが判った。 使うAPIは以下の二つ。 [DllImport("kernel32.dll", SetLastError = true)] static extern bool GetProcessAffinityMask(IntPtr hProcess, out UIntPtr lpProcessAffinityMask, out UIntPtr lpSystemAffinityMask); [DllImport("
Linux 2.6 には sched_setaffinity(2) というシステムコールがあり、これを利用して任意のスレッドを(マルチCPU環境下で)特定の CPU で実行させることができます。http://www-06.ibm.com/jp/developerworks/linux/051028/j_l-affinity.shtml によるとリアルタイムプロセスでマネージャとなるスレッドをこのシステムコールで特定の CPU に固定する...といった応用が考えられるそうです。 へえ、と思ったのでちょっと遊んでみました。LD_PRELOAD を使って任意のプログラムを任意の CPU に固定して動かしてみます。GCC の __attribute__)((constructor))( で sched_setaffinitiy(2) を呼びます。(参考: http://0xcc.net/blog/
4gamer の『Intelのベンチマーク担当に,LynnfieldやArrandaleなどの話をいろいろ聞いてきた』という記事より. ここで少し,現在,すなわちWindows Vistaまでのスケジューラにどういう問題があるのかを,ざっと説明しておこう。 Windows Vistaに限ったことではなく,Windows XP以前もそうなのだが,現行世代のWindowsは,複数のCPUコアに対して,負荷バランスだけを根拠としてスレッドを割り当てていく。スケジューラは,割り当てようとしている先のCPUコアが物理コアなのか論理コアなのかを考慮しないわけだ。そのため,「ある物理コアにスレッドが割り当てられている状況で,別の物理コアは完全に空いているにもかかわらず,『すでにスレッドが割り当てられている物理コアの論理コア』へ,新たにスレッドが割り当てられる」という悲劇が起こり得る。あるいは,一つのCP
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く