SMPな環境だとマルチスレッドプログラムは、複数のCPUを使って処理を実行してくれると
思いますが、

1. 全部のプロセスに対して、各CPUに対するプロセスとスレッドの割り当て状況

2. 一つのプロセスの中の各スレッドが、どのCPUをどの程度使っているのか?

を調べる方法ってありませんか?
卒研でマルチスレッドプログラムの効率化の研究をしているのですが、
各スレッドの動きをフォローしたいと思っています。

プログラム開発や実験は、FreeBSD 6.0Rで、Athlon64 x2 で行っています。
プログラムはC言語で開発していて、posix threadライブラリを
コールしてマルチスレッド化しています。