コードのどの部分kernel/sched/core.c
を見れば、カーネルがスレッドのスケジューリングに使用しているスケジューリングのタイプがわかります。それとも、私は正しい場所を見ていますか?複数のプロセスは複数のスレッドを持つことができ、これらの個々のスレッドはどのようにスケジュールされますか? プロセス単位 (ローカル) またはスレッド プール単位 (グローバル)
編集:
現在、プロセスがどのように切り替えられるかを確認するためcontext_switch
に、ファイルに発生する を記録しています。core.c
しかし、このデータを分析しようとすると、複雑になりすぎます。誰でも簡単な方法を提案できますか?
これはhttp://lxr.linux.no/linux+v3.6.6/include/linux/sched.h#L36で見つけました
/*
* Scheduling policies
*/
#define SCHED_NORMAL 0
#define SCHED_FIFO 1
#define SCHED_RR 2
#define SCHED_BATCH 3
/* SCHED_ISO: reserved but not implemented yet */
#define SCHED_IDLE 5
しかし、私が理解できる方法で使用されている場所は見当たりません。