pthreadでは明示的にpolicyとかを指定しない限り、
どのようにスケジューリングされるかは完全にシステム依存だからなあ。
だから、どんなに違和感があろうとも、Linux2.6の挙動は仕様的にアリですな。

スケジューリング方法をもっと細かく操作したいのなら、
pthread_setschedparam()とかで明示的にscheduling policyなどを
指定するしかない。
でも、現在のLinuxでは PTHREAD_SCOPE_SYSTEM なスレッドしか作れないから、
厳密なスケジューリングを期待するのはやっぱり難しい。

ttp://www.opengroup.org/onlinepubs/007904975/functions/xsh_chap02_08.html#tag_02_08_04
ttp://www.opengroup.org/onlinepubs/007904975/functions/xsh_chap02_09.html#tag_02_09_04_02